MCP Hub
Back to servers

AgentChat

AgentChat is a comprehensive LLM platform integrating LangChain and the Model Context Protocol (MCP) to support multi-agent collaboration, RAG, and extensive tool calling for tasks like web search and document processing.

Stars
228
Forks
32
Tools
12
Updated
Dec 23, 2025
Validated
Jan 9, 2026
alt text

Python Version Vue Version FastAPI License

🌟 一个基于大语言模型的现代化智能对话系统 🌟

支持多Agent协作 • 知识库检索 • 工具调用 • MCP服务器集成 • 实时对话

🚀 快速开始📦 部署📖 在线文档💻 在线体验


📋 目录


🎯 项目简介

AgentChat 是一个现代化的智能对话系统,基于大语言模型构建,提供了丰富的AI对话功能。系统采用前后端分离架构,支持多种AI模型、知识库检索、工具调用、MCP服务器集成等高级功能。

🌟 核心亮点

  • 🤖 多模型支持: 集成OpenAI、DeepSeek、Qwen等主流大语言模型
  • 🧠 智能Agent: 支持多Agent协作,具备推理和决策能力
  • 📚 知识库检索: RAG技术实现精准知识检索和问答
  • 🔧 工具生态: 内置多种实用工具,支持自定义扩展
  • 🌐 MCP集成: 支持Model Context Protocol服务器
  • 💬 实时对话: 流式响应,提供流畅的对话体验
  • 🎨 现代界面: 基于Vue 3和Element Plus的美观UI

✨ 功能展示

🎨 界面预览 - 体验现代化的智能对话系统

🖥️新增工作区

新增工作区,工作区和应用中心可随意切换 c453afd6-84ed-4bb7-b268-407fb531a1c9

✨灵寻任务规划

实时的任务流程图,更加直观的感受 cc59faad-4112-48cd-b9b1-6f89d3cbdb39

📊数据看板

能够根据Agent、模型、时间范围进行筛选调用次数和Token使用量 5e90c531-0a10-4457-962d-984b0568f25d

🏠 智言平台首页

简洁现代的主界面,提供直观的功能导航

5a6ee271-7c81-4032-aeca-57496634a64f

🔐 智言平台登录页

安全便捷的用户认证系统

d67ba546-b3bd-40e0-b09c-9b1615afda29

🤖 智能体管理页面

强大的Agent配置和管理中心

智能体页面

🌟 智能Agent功能演示

🌤️ 天气查询Agent

实时天气信息查询和预报

天气查询Agent

🎨 文生图Agent

AI驱动的图像生成服务

文生图Agent

🔁智能体工具多轮调用

平台中智能体支持工具多轮调用(指的是根据工具C依赖工具B结果,执行工具B依赖工具A结果,所以调用工具的顺序是 A --> B --> C) dc426a1b220af20a06b068a4ffc2bb10

🔌 MCP服务器集成

支持Model Context Protocol,可上传自定义MCP服务

MCP集成

📚 知识库管理系统

智能知识管理,为Agent提供丰富的外部知识支持

知识库管理

📄 文档解析引擎

支持PDF、Markdown、Docx、Txt等多种格式的智能解析

文档解析

🛠️ 工具管理中心

丰富的内置工具集,持续扩展中

工具管理

🧠 AI模型管理

多模型支持,灵活配置不同AI服务

模型管理

📰 生成AI日报

获取最新的AI咨询,支持生成图片类型的日报

image

🚨 重要版本说明

⚠️ 从 AgentChat v2.2.0 版本开始,LangChain 已升级至 1.0 版本,代码改动较大!

🔄 版本📦 LangChain版本🔧 兼容性📝 说明
v2.1.x 及以下0.x⚠️ 旧版本使用旧版LangChain API
v2.2.0+1.0+✅ 最新版本重大更新,API变化较大

升级注意事项:

  • 🔄 LangChain 1.0 引入了重大API变更
  • 📚 部分工具和Agent配置方式已更新
  • 🛠️ 建议查看迁移指南了解详细变更
  • 💡 新用户建议直接使用最新版本

💡 功能特性

全方位的AI智能服务 - 从对话到工具,从知识到决策

🎯 核心功能模块

🤖 AI对话引擎

智能、自然、高效的对话体验

  • 多模型生态: 支持OpenAI、Anthropic、通义千问等主流LLM
  • 🌊 流式响应: 实时显示生成内容,无需等待
  • 🧠 上下文记忆: 支持长对话,智能理解对话历史
  • 🔍 思考可视化: 深度思考面板,展示AI推理过程
  • 📝 对话管理: 完整的对话历史存储和检索
  • 🎛️ 参数调优: 温度、Top-p等参数精细控制

🧠 智能Agent系统

多智能体协作,自动化任务执行

  • 🤝 多Agent协作: 智能体间任务分工与协调
  • 🔧 任务自动化: 智能分解复杂任务,自动执行
  • ⚙️ 能力配置: 灵活的Agent能力定义和管理
  • 🔄 工作流编排: 可视化工作流设计和执行
  • 📊 执行监控: 实时监控Agent执行状态
  • 🎯 目标导向: 基于目标的智能决策和行动

📚 知识库系统

企业级知识管理,RAG技术加持

  • 📎 多格式支持: PDF、Word、Excel、Markdown、TXT等
  • 🧩 智能分块: 语义级别的文档分割和处理
  • 🔍 向量检索: 基于语义的精准知识检索
  • 💡 RAG问答: 检索增强生成,提高回答准确性
  • 🗂️ 知识组织: 分类管理,标签系统
  • 📈 使用统计: 知识库使用情况分析

🛠️ 丰富工具生态

10+内置工具,无限扩展可能

  • 📧 通信工具: 邮件发送、消息推送
  • 🔍 信息检索: Google搜索、学术论文搜索
  • 🌤️ 生活服务: 天气查询、快递追踪
  • 📄 文档处理: 格式转换、内容提取
  • 🎨 多媒体: 文生图、图像识别、OCR
  • 📊 数据分析: Excel处理、数据可视化
  • 🤖 自动化: 简历优化、内容重写
  • 🕷️ 网络工具: 网页爬取、内容抓取

🔧 高级特性

🌐 MCP服务器

Model Context Protocol集成

  • 🔌 协议支持: 完整MCP协议实现
  • 🏗️ 自定义服务: 支持用户自定义MCP服务器
  • 📦 内置服务: 天气、ArXiv等预构建服务
  • 🔄 动态加载: 运行时动态加载MCP服务
  • 高性能: 异步处理,快速响应

👤 用户管理

安全的身份认证与权限控制

  • 🔐 安全认证: JWT令牌,安全可靠
  • 👥 用户系统: 注册、登录、个人资料
  • 🛡️ 权限控制: 细粒度权限管理
  • ⚙️ 个性配置: 个人偏好设置
  • 📊 使用统计: 用户行为分析

🏗️ 系统架构

现代化的技术架构

  • 🔄 前后端分离: Vue3 + FastAPI
  • 📡 实时通信: WebSocket支持
  • 💾 多数据库: MySQL、Redis、ChromaDB
  • 🐳 容器化: Docker部署,易于扩展
  • 📈 可监控: 完整的日志和监控体系

🎨 技术亮点

🌟 特性📝 描述🔧 技术
流式响应实时生成内容,提升用户体验Server-Sent Events
向量检索语义级别的知识检索ChromaDB + Embedding
异步处理高并发任务处理FastAPI + AsyncIO
模块化设计松耦合架构,易于扩展微服务架构
智能缓存Redis缓存,提升响应速度Redis + 智能缓存策略

🛠 技术栈

后端技术

  • 框架: FastAPI (Python 3.12+)
  • AI集成: LangChain, OpenAI, Anthropic
  • 数据库: MySQL 8.0, Redis 7.0
  • 向量数据库: ChromaDB, Milvus
  • 搜索引擎: Elasticsearch
  • 文档处理: PyMuPDF, Unstructured
  • 异步任务: Celery
  • 部署: Docker, Gunicorn, Uvicorn

前端技术

  • 框架: Vue 3.4+ (Composition API)
  • UI组件: Element Plus
  • 状态管理: Pinia
  • 路由: Vue Router 4
  • 构建工具: Vite 5
  • 开发语言: TypeScript
  • 样式: SCSS
  • Markdown: md-editor-v3

开发工具

  • 包管理: Poetry (后端), npm (前端)
  • 代码格式: Black, Prettier
  • 类型检查: mypy, TypeScript
  • 容器化: Docker, Docker Compose

📁 项目结构

🏗️ 完整的项目架构 - 模块化设计,清晰的职责分离

🔍 点击展开完整项目结构
AgentChat/                          # 🏠 项目根目录
├── 📄 README.md                   # 📖 项目说明文档
├── 📄 LICENSE                     # ⚖️ 开源许可证
├── 📄 .gitignore                  # 🚫 Git忽略文件配置
├── 📄 pyproject.toml              # 🐍 Python项目配置
├── 📄 requirements.txt            # 📦 Python依赖包列表
│
├── 📁 .vscode/                    # 🔧 VSCode编辑器配置
├── 📁 .idea/                      # 💡 JetBrains IDE配置
│
├── 📁 docs/                       # 📚 项目文档目录
│   ├── 📄 API_Documentation_v3.0.md  # 🔄 最新API文档
│   ├── 📄 API_Documentation_v2.0.md  # 📋 v2.0 API文档
│   └── 📄 API_Documentation_v1.0.md  # 📝 v1.0 API文档
│
├── 📁 docker/                     # 🐳 容器化配置
│   ├── 📄 Dockerfile              # 🐳 Docker镜像构建文件
│   └── 📄 docker-compose.yml      # 🔧 Docker编排配置
│
└── 📁 src/                        # 💻 源代码目录
    ├── 📁 backend/                # 🔧 后端服务
    │   ├── 📁 chroma_db/          # 🗄️ ChromaDB向量数据库
    │   └── 📁 agentchat/          # 🤖 核心后端应用
    │       ├── 📄 __init__.py     # 🐍 Python包初始化文件
    │       ├── 📄 main.py         # 🚀 FastAPI应用入口
    │       ├── 📄 settings.py     # ⚙️ 应用配置设置
    │       ├── 📄 config.yaml     # 📋 YAML配置文件
    │       │
    │       ├── 📁 api/            # 🌐 API路由层
    │       │   ├── 📄 __init__.py
    │       │   ├── 📄 router.py   # 🔀 主路由配置
    │       │   ├── 📄 JWT.py      # 🔐 JWT认证处理
    │       │   ├── 📁 v1/         # 📊 v1版本API接口
    │       │   ├── 📁 services/   # 🔧 服务层API
    │       │   └── 📁 errcode/    # ❌ 错误码定义
    │       │
    │       ├── 📁 core/           # 🏗️ 核心功能模块
    │       │   ├── 📄 __init__.py
    │       │   └── 📁 models/     # 🧠 AI模型管理
    │       │
    │       ├── 📁 database/       # 🗃️ 数据库层
    │       │   ├── 📄 __init__.py # 🔗 数据库连接配置
    │       │   ├── 📄 init_data.py # 🏗️ 数据库初始化脚本
    │       │   ├── 📁 models/     # 📊 数据模型定义
    │       │   └── 📁 dao/        # 💾 数据访问对象
    │       │
    │       ├── 📁 services/       # 🎯 业务服务层
    │       │   ├── 📄 __init__.py
    │       │   ├── 📄 retrieval.py      # 🔍 信息检索服务
    │       │   ├── 📄 rag_handler.py    # 📚 RAG处理服务
    │       │   ├── 📄 aliyun_oss.py     # ☁️ 阿里云OSS服务
    │       │   ├── 📄 redis.py          # 💾 Redis缓存服务
    │       │   ├── 📁 rag/              # 📖 RAG检索增强生成
    │       │   ├── 📁 mars/             # 🚀 Mars智能体服务
    │       │   ├── 📁 mcp/              # 🔌 MCP协议服务
    │       │   ├── 📁 mcp_agent/        # 🤖 MCP Agent服务
    │       │   ├── 📁 mcp_openai/       # 🧠 MCP OpenAI集成
    │       │   ├── 📁 deepsearch/       # 🕵️ 深度搜索服务
    │       │   ├── 📁 transform_paper/  # 📄 论文转换服务
    │       │   ├── 📁 autobuild/        # 🏗️ 自动构建服务
    │       │   └── 📁 rewrite/          # ✏️ 内容重写服务
    │       │
    │       ├── 📁 tools/          # 🛠️ 工具集成
    │       │   ├── 📄 __init__.py # 🧰 工具注册和管理
    │       │   ├── 📁 arxiv/      # 📚 ArXiv论文工具
    │       │   ├── 📁 delivery/   # 📦 快递查询工具
    │       │   ├── 📁 web_search/ # 🔍 网络搜索工具
    │       │   ├── 📁 get_weather/     # 🌤️ 天气查询工具
    │       │   ├── 📁 send_email/      # 📧 邮件发送工具
    │       │   ├── 📁 text2image/      # 🎨 文本转图片工具
    │       │   ├── 📁 image2text/      # 👁️ 图片转文本工具
    │       │   ├── 📁 convert_to_pdf/  # 📄 PDF转换工具
    │       │   ├── 📁 convert_to_docx/ # 📝 Word转换工具
    │       │   ├── 📁 resume_optimizer/# 📋 简历优化工具
    │       │   ├── 📁 rag_data/        # 📊 RAG数据处理工具
    │       │   └── 📁 crawl_web/       # 🕷️ 网页爬虫工具
    │       │
    │       ├── 📁 mcp_servers/    # 🖥️ MCP服务器集合
    │       ├── 📁 prompts/        # 💬 提示词模板库
    │       ├── 📁 config/         # ⚙️ 配置文件目录
    │       ├── 📁 schema/         # 📋 数据模式定义
    │       ├── 📁 data/           # 💾 数据存储目录
    │       ├── 📁 utils/          # 🧰 通用工具函数
    │       └── 📁 test/           # 🧪 测试代码目录
    │
    └── 📁 frontend/               # 🎨 前端应用
        ├── 📄 package.json       # 📦 Node.js项目配置
        ├── 📄 package-lock.json  # 🔒 依赖版本锁定
        ├── 📄 tsconfig.json      # 🔧 TypeScript配置
        ├── 📄 tsconfig.app.json  # 📱 应用TypeScript配置
        ├── 📄 tsconfig.node.json # 🔧 Node环境TypeScript配置
        ├── 📄 vite.config.ts     # ⚡ Vite构建配置
        ├── 📄 index.html         # 🌐 HTML入口文件
        ├── 📄 .gitignore         # 🚫 前端Git忽略配置
        ├── 📄 README.md          # 📖 前端说明文档
        ├── 📄 DEBUGGING_GUIDE.md # 🐛 调试指南
        ├── 📄 auto-imports.d.ts  # 🔄 自动导入类型声明
        ├── 📄 components.d.ts    # 🧩 组件类型声明
        │
        ├── 📁 public/            # 🌍 静态资源目录
        │
        └── 📁 src/               # 💻 前端源代码
            ├── 📄 main.ts        # 🚀 Vue应用入口
            ├── 📄 App.vue        # 🏠 根组件
            ├── 📄 style.css      # 🎨 全局样式
            ├── 📄 type.ts        # 📋 TypeScript类型定义
            ├── 📄 vite-env.d.ts  # 🔧 Vite环境类型声明
            │
            ├── 📁 components/    # 🧩 可复用组件库
            │   ├── 📁 agentCard/      # 🤖 Agent卡片组件
            │   ├── 📁 commonCard/     # 🃏 通用卡片组件
            │   ├── 📁 dialog/         # 💬 对话框组件
            │   ├── 📁 drawer/         # 📜 抽屉组件
            │   └── 📁 historyCard/    # 📜 历史记录卡片
            │
            ├── 📁 pages/         # 📄 页面组件
            │   ├── 📄 index.vue       # 🏠 首页
            │   ├── 📁 agent/          # 🤖 Agent管理页面
            │   ├── 📁 configuration/ # ⚙️ 配置页面
            │   ├── 📁 construct/      # 🏗️ 构建页面
            │   ├── 📁 conversation/   # 💬 对话页面
            │   ├── 📁 homepage/       # 🏠 主页模块
            │   ├── 📁 knowledge/      # 📚 知识库页面
            │   ├── 📁 login/          # 🔐 登录页面
            │   ├── 📁 mars/           # 🚀 Mars对话页面
            │   ├── 📁 mcp-server/     # 🖥️ MCP服务器页面
            │   ├── 📁 model/          # 🧠 模型管理页面
            │   ├── 📁 notFound/       # ❓ 404页面
            │   ├── 📁 profile/        # 👤 用户资料页面
            │   └── 📁 tool/           # 🛠️ 工具管理页面
            │
            ├── 📁 router/        # 🛣️ 路由配置
            ├── 📁 store/         # 🗄️ 状态管理(Pinia)
            ├── 📁 apis/          # 🌐 API接口定义
            ├── 📁 utils/         # 🧰 工具函数库
            └── 📁 assets/        # 🖼️ 静态资源(图片、字体等)

📊 项目统计

📂 类别📈 数量📝 说明
后端模块15+API、服务、工具、数据库等核心模块
前端页面12+完整的用户界面和交互页面
内置工具10+涵盖搜索、文档、图像、通信等功能
AI模型5+支持主流大语言模型和嵌入模型
MCP服务多个可扩展的MCP协议服务器

📊 代码量统计

📝 基于文件扩展名的详细代码统计

🔍 文件类型📁 文件数量📄 总行数📉 最少行数📈 最多行数📊 平均行数
🐍 Python24719,59901,03979
🎨 Vue3121,907122,588706
📰 Markdown83,47551,079434
⚡ TypeScript462,103121245
📋 TXT1539539539539
📦 JSON11348711031
⚙️ TOML1328328328328
🎨 CSS1176176176176
🔧 YML21775212588
📋 YAML21523511776
⚙️ CONF1101101101101
🚀 Shell287355243
🚦 PROD141414141
🚫 GitIgnore124242424
🌐 HTML113131313
🐳 DockerIgnore110101010

📊 总计: 356 个文件,48,560 行代码

🏆 技术栈占比

🎯 技术栈📈 占比🔥 特点
🎨 前端 (Vue+TS)45.1%现代化响应式界面,TypeScript强类型支持
🐍 后端 (Python)40.4%高性能异步服务,丰富的AI集成
📚 文档 (MD)7.2%完整的项目文档和API说明
⚙️ 配置 (JSON/YAML)7.3%灵活的配置管理和部署支持

💡 项目采用前后端分离架构,代码结构清晰,文档完善


🚀 快速开始

🎯 三种部署方式任你选择 - Docker一键部署 | 本地开发 | 生产环境

📋 系统要求

🛠️ 组件🔢 版本要求📝 说明
Python3.12+后端运行环境
Node.js18+前端构建环境
MySQL8.0+主数据库
Redis7.0+缓存和会话存储
Docker20.10+容器化部署(推荐)

🎉 方式一:Docker一键部署(推荐)

💫 点击展开Docker部署步骤

🔥 超简单三步部署

# 1️⃣ 克隆项目
git clone https://github.com/Shy2593666979/AgentChat.git
cd AgentChat

# 2️⃣ 配置API密钥
cp src/backend/agentchat/config.yaml.example src/backend/agentchat/config.yaml
# 编辑配置文件,填入你的API密钥

# 3️⃣ 一键启动
cd docker
docker-compose up --build -d

验证部署

# 查看服务状态
docker-compose ps

# 查看日志
docker-compose logs -f app

🎊 完成! 访问 http://localhost:8090 开始使用!

🛠️ 方式二:本地开发环境

👨‍💻 点击展开本地开发步骤

🔧 后端环境搭建

# 1️⃣ 克隆项目
git clone https://github.com/Shy2593666979/AgentChat.git
cd AgentChat

# 使用pip安装依赖
pip install -r requirements.txt

⚙️ 配置文件设置

创建并编辑配置文件 src/backend/agentchat/config.yaml:

🚀 启动服务

# 后端服务
cd src/backend
uvicorn agentchat.main:app --port 7860 --host 0.0.0.0

# 新终端 - 前端服务
cd src/frontend
npm install
npm run dev

🌐 访问地址

🎯 服务🔗 地址📝 说明
前端界面localhost:8090用户界面
后端APIlocalhost:7860API服务
API文档localhost:7860/docsSwagger文档

📦 高级部署指南

🎯 灵活的部署选择 - 从开发测试到生产环境的完整方案

🌐 部署架构选择


📖 文档

📚 API文档

🔧 开发文档

📋 配置指南

向量数据库配置

  • Milvus: 安装指南
  • ChromaDB: 项目中已集成,无需额外配置

模型服务配置

搜索引擎配置


🔧 开发指南

⚠️ 重要提示 (目前已单独放到与agentchat并列,不需要再额外处理)

由于 fastapi-jwt-auth 库使用较旧版本的 Pydantic,而项目中的 LangChain、MCP 等组件需要 Pydantic >= 2,需要手动修改库文件:

找到你的虚拟环境中的文件:

/path/to/your/env/lib/python3.12/site-packages/fastapi_jwt_auth/config.py

替换为以下内容:

点击展开配置代码
from datetime import timedelta
from typing import Optional, Union, Sequence, List
from pydantic import (
    BaseModel,
    validator,
    StrictBool,
    StrictInt,
    StrictStr
)

class LoadConfig(BaseModel):
    authjwt_token_location: Optional[List[StrictStr]] = ['headers']
    authjwt_secret_key: Optional[StrictStr] = None
    authjwt_public_key: Optional[StrictStr] = None
    authjwt_private_key: Optional[StrictStr] = None
    authjwt_algorithm: Optional[StrictStr] = "HS256"
    authjwt_decode_algorithms: Optional[List[StrictStr]] = None
    authjwt_decode_leeway: Optional[Union[StrictInt,timedelta]] = 0
    authjwt_encode_issuer: Optional[StrictStr] = None
    authjwt_decode_issuer: Optional[StrictStr] = None
    authjwt_decode_audience: Optional[Union[StrictStr,Sequence[StrictStr]]] = None
    authjwt_denylist_enabled: Optional[StrictBool] = False
    authjwt_denylist_token_checks: Optional[List[StrictStr]] = ['access','refresh']
    authjwt_header_name: Optional[StrictStr] = "Authorization"
    authjwt_header_type: Optional[StrictStr] = "Bearer"
    authjwt_access_token_expires: Optional[Union[StrictBool,StrictInt,timedelta]] = timedelta(minutes=15)
    authjwt_refresh_token_expires: Optional[Union[StrictBool,StrictInt,timedelta]] = timedelta(days=30)
    # # option for create cookies
    authjwt_access_cookie_key: Optional[StrictStr] = "access_token_cookie"
    authjwt_refresh_cookie_key: Optional[StrictStr] = "refresh_token_cookie"
    authjwt_access_cookie_path: Optional[StrictStr] = "/"
    authjwt_refresh_cookie_path: Optional[StrictStr] = "/"
    authjwt_cookie_max_age: Optional[StrictInt] = None
    authjwt_cookie_domain: Optional[StrictStr] = None
    authjwt_cookie_secure: Optional[StrictBool] = False
    authjwt_cookie_samesite: Optional[StrictStr] = None
    # # option for double submit csrf protection
    authjwt_cookie_csrf_protect: Optional[StrictBool] = True
    authjwt_access_csrf_cookie_key: Optional[StrictStr] = "csrf_access_token"
    authjwt_refresh_csrf_cookie_key: Optional[StrictStr] = "csrf_refresh_token"
    authjwt_access_csrf_cookie_path: Optional[StrictStr] = "/"
    authjwt_refresh_csrf_cookie_path: Optional[StrictStr] = "/"
    authjwt_access_csrf_header_name: Optional[StrictStr] = "X-CSRF-Token"
    authjwt_refresh_csrf_header_name: Optional[StrictStr] = "X-CSRF-Token"
    authjwt_csrf_methods: Optional[List[StrictStr]] = ['POST','PUT','PATCH','DELETE']

    @validator('authjwt_access_token_expires')
    def validate_access_token_expires(cls, v):
        if v is True:
            raise ValueError("The 'authjwt_access_token_expires' only accept value False (bool)")
        return v

    @validator('authjwt_refresh_token_expires')
    def validate_refresh_token_expires(cls, v):
        if v is True:
            raise ValueError("The 'authjwt_refresh_token_expires' only accept value False (bool)")
        return v

    @validator('authjwt_denylist_token_checks', each_item=True)
    def validate_denylist_token_checks(cls, v):
        if v not in ['access','refresh']:
            raise ValueError("The 'authjwt_denylist_token_checks' must be between 'access' or 'refresh'")
        return v

    @validator('authjwt_token_location', each_item=True)
    def validate_token_location(cls, v):
        if v not in ['headers','cookies']:
            raise ValueError("The 'authjwt_token_location' must be between 'headers' or 'cookies'")
        return v

    @validator('authjwt_cookie_samesite')
    def validate_cookie_samesite(cls, v):
        if v not in ['strict','lax','none']:
            raise ValueError("The 'authjwt_cookie_samesite' must be between 'strict', 'lax', 'none'")
        return v

    @validator('authjwt_csrf_methods', each_item=True)
    def validate_csrf_methods(cls, v):
        if v.upper() not in ["GET", "HEAD", "POST", "PUT", "DELETE", "PATCH"]:
            raise ValueError("The 'authjwt_csrf_methods' must be between http request methods")
        return v.upper()

    class Config:
        str_min_length = 1
        str_strip_whitespace = True

其实找起来挺麻烦的,所以提供了一个直接修改源代码的脚本

python scripts/fix_fastapi_jwt_auth.py # 进行脚本修复(前提是需要将依赖包安装完整)

🤝 贡献指南

💪 共建AI未来 - 每一个贡献都让AgentChat变得更好

🌟 我们欢迎所有形式的贡献!

🐛 Bug修复

发现问题,解决问题

  1. 🔍 搜索已有Issues
  2. 📝 创建详细Bug报告
  3. 🧪 提供复现步骤
  4. 💡 提交修复方案

功能开发

新想法,新功能

  1. 💭 创建Feature Request
  2. 📋 详细描述需求场景
  3. 🎨 设计实现方案
  4. 🚀 开发并测试

📚 文档完善

知识共享,助力他人

  1. 📖 补充API文档
  2. ✍️ 编写使用教程
  3. 🌍 多语言翻译
  4. 🎥 制作视频教程

🧪 社区支持

帮助他人,分享经验

  1. ❓ 回答社区问题
  2. 💬 参与技术讨论
  3. 🎤 分享使用心得
  4. 🤝 推广项目

📄 许可证

本项目采用 MIT License 开源许可证

这意味着你可以自由使用、修改和分发本项目 🎉


🌟 感谢支持 AgentChat!

如果这个项目对你有帮助,请给我们一个 ⭐️

让更多的人发现这个项目,一起构建AI的未来!

Made with ❤ by the AgentChat Author MingGuang Tian

Star History Chart

Reviews

No reviews yet

Sign in to write a review