高级聊天机器人后端

一个基于FastAPI的多功能AI助手后端,支持高级RAG、多工具代理能力和LangChain集成,适用于智能聊天应用开发。

  • by HiteshKumarMeghwar
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 HiteshKumarMeghwar/Advanced-ChatBot

使用说明

高级聊天机器人后端(FastAPI)

作者 HiteshKumarMeghwar
最后更新时间: 2025年12月


概述

这个项目是 多功能AI助手后端 建造于 快速API,旨在支持高级RAG(检索增强生成)、多工具代理功能,并与 LangChain 和 LangGraph。它提供了一个完整的易用API层,用于为智能聊天应用程序提供多文档支持、自动工具选择和用户管理。

此后端的主要亮点:

  • LangGraph节点和边系统: 动态管理会话上下文和推理的知识图。
  • 自动工具调用系统: 智能路由到本地和远程工具(通过FastMCP)。
  • RAG系统: 支持多文档检索、嵌入和上下文感知响应。
  • 用户工具管理: 用户可以从其可访问的工具列表中单独激活/停用工具。
  • 多文档上传: 支持RAG的分块文档摄取、处理和矢量化。
  • 身份验证和授权: 安全的用户注册、登录、密码重置(Redis支持)和令牌管理。
  • 速率限制和安全: 通过暴力保护、IP黑名单和MFA支持保护端点。

目录


技术栈

  • 后端框架: Fastapi(异步)
  • 数据库: MySQL+SQLAlchemy ORM
  • 迁移: 蒸馏器
  • 缓存/令牌管理: 瑞迪斯
  • 矢量数据库: FAISS(当地指数)
  • AI和LLM工具: LangChain,LangGraph
  • MCP客户端: FastMCP(本地和远程工具)
  • 前端(兼容): Next.js(高级用户界面)
  • 记录和监控: Loguru,JSON日志

建筑

后端设计用于 可扩展性和模块化:

  1. API层: 按功能模块组织的FastAPI路由(auth, threads, messages, documents, tools, chat, user_profile).
  2. 图形层: LangGraph构造表示对话状态、RAG检索和工具操作的节点和边。
  3. 工具层:
    • 通过FastMCP执行的本地工具(stdio 运输)
    • 通过HTTP端点的远程工具(streamable_http)
  4. RAG发动机: 处理多文档搜索、嵌入和人工智能辅助答案。
  5. 用户设置管理(&S):
    • 存储在数据库中的用户配置文件和首选项
    • 按用户控制工具访问(允许/拒绝)
  6. 安全和限制:
    • Redis支持的密码重置令牌
    • 通过SlowAPI进行速率限制
    • 暴力登录保护
    • MFA执行和基于地理/设备的阻止

特性

身份验证和用户管理

  • 注册、登录、注销和基于JWT的身份验证
  • 通过重置密码 电子邮件+重定向令牌。
  • 具有每个用户首选项和工具访问权限的配置文件管理

多工具代理系统

  • 用户查询的自动工具路由
  • 通过以下方式发现和注册工具 FastMCP客户端
  • 支持两者 本地 (stdio传输)和 远程 (HTTP传输)工具
  • 按用户激活/停用工具

LangGraph和LangChain集成

  • 用于跟踪对话上下文的节点和边缘系统
  • 基于图推理的自动工具调用
  • 每次对话的图形状态动态更新

RAG系统

  • 多文档摄取和分块
  • 存储在FAISS索引中的向量嵌入
  • 跨文档的上下文感知检索
  • 查询来源跟踪

文档管理

  • 上传多种文件类型(PDF、TXT等)
  • 自动分块和嵌入生成
  • 状态跟踪: uploaded, processing, indexed, failed

速率限制和安全

  • IP封禁和黑名单支持
  • 登录暴力保护
  • 外交部对敏感行动的执法
  • 基于地理和设备指纹规则

项目结构

Advanced-ChatBot/
│
├─ api/                  # API routes for all modules
├─ core/                 # Configs, database connection, utils
├─ db/                   # SQLAlchemy models & database setup
├─ graphs/               # LangGraph node/edge building
├─ services/             # Redis, FAISS, Limiting, Tools
├─ MCP/                  # FastMCP client config (local & remote tools)
├─ tools/                # Local tool implementations
├─ uploads/              # Uploaded user files
├─ worker/               # Background processing & ingestion
├─ faiss_indexes/        # Saved FAISS indexes per document set
├─ tests/                # Unit & integration tests
├─ main.py               # FastAPI app entrypoint
├─ requirements.txt      # Python dependencies
├─ docker-compose.yml    # Optional container setup
├─ Dockerfile            # Production-ready Dockerfile
├─ logs.json             # Structured logs via Loguru

设置和安装

1.克隆回购

  • 克隆https://github.com/HiteshKumarMeghwar/Advanced-ChatBot.git
  • cd高级聊天机器人

2.安装依赖项

  • python-m venv-venv
  • 源venv/bin/activate#Linux/Mac
  • venv\Scripts\activate#Windows
  • pip安装-r要求.txt

3.配置环境

  • 在.env中设置REDIS_URL、DATABASE_URL和FASTCMP_CONFIG

4.创建名为的数据库

  • chatbot_db

5.运行数据库迁移

  • alembic升级主管

6.启动开发服务器

  • uvicorn主:应用程序--reload

7.在浏览器上

  • http://localhost:8000/docs

许可证

  • 麻省理工学院许可证©HiteshKumarMeghwar