高级聊天机器人后端(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日志
______________________________________________________________________
建筑
后端设计用于 可扩展性和模块化:
- API层: 按功能模块组织的FastAPI路由(
auth,threads,messages,documents,tools,chat,user_profile). - 图形层: LangGraph构造表示对话状态、RAG检索和工具操作的节点和边。
- 工具层:
- 通过FastMCP执行的本地工具(stdio 运输) - 通过HTTP端点的远程工具(streamable_http)
- RAG发动机: 处理多文档搜索、嵌入和人工智能辅助答案。
- 用户设置管理(&S):
- 存储在数据库中的用户配置文件和首选项 - 按用户控制工具访问(允许/拒绝)
- 安全和限制:
- 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
