# langChainGraph **Repository Path**: elfbobo_admin_admin/langChainGraph ## Basic Information - **Project Name**: langChainGraph - **Description**: 使用langChainGraph fastapi fastmcp apscheduler搭建包含权限认证、分组管理、AI工作编排、mcp服务管理、飞书集成、任务管理、通用数据库表查询、工单系统等功能 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-09-03 - **Last Updated**: 2025-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LangChainGraph 智能研究助理系统 LangChainGraph 是一个基于 FastAPI 和 LangGraph 构建的智能研究助理系统,集成了研究助理、工单系统、群组管理、定时任务、飞书集成和通用数据库查询等功能。 ## 功能特性 ### 核心功能 - 🤖 多代理研究助理:基于 LangGraph 构建的智能研究助理 - 🎫 工单系统:完整的工单管理功能 - 👥 用户组管理:灵活的用户组和权限管理 - 🔍 通用数据库查询:支持多种数据库的通用查询接口 - 📅 定时任务:基于 APScheduler 的定时任务系统 - 📊 知识图谱:基于 Neo4j 的知识图谱存储和查询 - 🚀 飞书集成:飞书机器人和消息推送功能 - 🎤 语音电话:与大模型实时语音对话功能 - 🏗️ 项目管理:多智能体项目协作系统 ### 项目管理功能 - 📋 项目协调员:整体项目管理和进度跟踪 - 🎯 产品经理:需求分析和产品设计方案 - 🎨 UI/UX设计师:界面设计和用户体验优化 - 💻 开发工程师:技术实现和代码开发 - 🧪 测试工程师:质量保证和测试用例设计 - 🤝 实时协作:WebSocket实时通信和文档协同编辑 - 🔄 工作流管理:基于LangGraph的项目状态工作流 - 👥 团队管理:多角色团队配置和权限分配 ### 服务网关 - 🌐 自然语言服务调用:通过自然语言描述调用系统服务 - 📋 服务发现:自动发现和注册系统服务 - ⚡ 异步处理:支持异步服务调用和批量处理 - 🛡️ 安全控制:完善的权限验证和访问控制 - 📈 指标监控:服务执行指标和健康状态监控 ### 研究助理 - 🧠 多代理架构:协调员代理、搜索专家代理、分析专家代理、质量保证代理和写作专家代理 - 🌐 多模态支持:支持文本、图像和表格内容处理 - 🔍 智能搜索:集成多种搜索工具 - 💾 缓存优化:多级缓存机制提升性能 - 🔄 迭代优化:智能迭代控制和质量评估 - 📊 迭代效果评估:量化评估每次迭代的改进效果,基于历史数据进行优化 - 🎯 阶段特定策略:为不同项目阶段(需求、设计、开发、测试)定制化迭代策略 - ⚡ 自适应决策:基于改进效果和质量指标智能决定阶段转换 ### 系统架构增强 - 🏗️ 工作流管理:增强的工作流管理器,支持性能监控和指标收集 - 📦 分布式缓存:支持内存、磁盘和Redis的三级缓存系统 - 🔗 服务依赖管理:完善的服务依赖关系跟踪和管理 - 📊 系统监控:全面的性能指标收集和健康状态监控 ## 技术架构 ### 核心组件 - **FastAPI**:高性能 Web 框架 - **LangGraph**:基于图结构的流程编排 - **LangChain**:语言模型集成框架 - **OpenAI**:AI 模型支持 - **SQLAlchemy**:数据库 ORM - **Neo4j**:知识图谱存储 ### 系统模块 - `src/main.py`:应用入口点 - `src/routes/`:API 路由 - `src/services/`:业务逻辑服务 - `src/models/`:数据模型 - `src/research_core/`:研究助理核心逻辑 - `src/tools/`:工具模块 ### 项目管理模块 - `src/research_core/project_state.py`:项目状态模型 - `src/research_core/project_prompts.py`:专业提示词模板 - `src/research_core/project_agents.py`:专业代理角色函数 - `src/research_core/project_workflow.py`:项目管理工作流 - `src/services/project_websocket_service.py`:项目WebSocket协作服务 - `src/routes/projects.py`:项目管理API路由 - `examples/project_demo.py`:项目演示示例 ## 服务网关功能详解 服务网关提供了一个统一的接口,允许用户通过自然语言描述来调用系统中的各种服务。 ### 自然语言服务调用 用户可以通过自然语言查询来调用服务,例如: - "查询用户admin的信息" → 调用用户管理服务 - "研究人工智能的发展趋势" → 调用研究服务 - "创建一个系统故障的工单" → 调用票务服务 ### 服务注册与发现 系统支持自动服务注册和发现: - 服务自动注册到服务注册表 - 基于关键词匹配的服务发现 - 服务健康状态监控 - 服务版本管理 - 服务依赖关系管理 - 服务状态管理(活跃、停用、废弃、维护中) ### 服务执行优化 服务执行器经过优化,支持: - 异步和同步服务执行 - 超时控制和重试机制 - 并发控制 - 执行指标收集 - 统一的错误处理 ### 批量处理 支持批量服务调用: - 一次请求执行多个服务 - 保持执行顺序 - 统一的超时和错误处理 ### 健康检查和监控 提供全面的健康检查和监控功能: - 服务健康状态检查 - 执行指标统计 - 缓存状态监控 - 性能指标收集 ## API 端点 ### 服务网关端点 - `POST /api/services/execute` - 执行自然语言服务请求 - `POST /api/services/batch-execute` - 批量执行服务请求 - `GET /api/services/list` - 获取所有可用服务列表 - `GET /api/services/{service_name}/info` - 获取特定服务信息 - `POST /api/services/{service_name}/execute` - 直接执行指定服务 - `GET /api/services/health` - 服务网关健康检查 - `GET /api/services/metrics` - 获取服务指标 ### 认证端点 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/logout` - 用户登出 - `GET /api/auth/me` - 获取当前用户信息 ### 工单系统端点 - `GET /api/tickets` - 获取工单列表 - `POST /api/tickets` - 创建工单 - `GET /api/tickets/{ticket_id}` - 获取工单详情 - `PUT /api/tickets/{ticket_id}` - 更新工单 - `DELETE /api/tickets/{ticket_id}` - 删除工单 ### 用户组端点 - `GET /api/groups` - 获取组列表 - `POST /api/groups` - 创建组 - `GET /api/groups/{group_id}` - 获取组详情 - `PUT /api/groups/{group_id}` - 更新组 - `DELETE /api/groups/{group_id}` - 删除组 ### 语音电话端点 - `POST /api/voice/call/start` - 开始语音通话 - `POST /api/voice/call/{call_id}/end` - 结束语音通话 - `GET /api/voice/call/{call_id}/info` - 获取通话信息 - `GET /api/voice/call/{call_id}/users` - 获取通话用户列表 - `POST /api/voice/transcribe` - 语音转文本 - `POST /api/voice/synthesize` - 文本转语音 - `GET /api/voice/health` - 语音服务健康检查 - `WS /api/voice/call/ws/{call_id}` - 语音通话WebSocket连接 ### 项目管理端点 - `POST /api/projects/` - 创建新项目 - `GET /api/projects/` - 获取项目列表 - `GET /api/projects/{project_id}` - 获取项目详情 - `POST /api/projects/{project_id}/start` - 启动项目工作流 - `POST /api/projects/{project_id}/assign-role` - 分配项目角色 - `WS /api/projects/{project_id}/collaborate` - 项目WebSocket协作 - `GET /api/projects/{project_id}/collaboration/users` - 获取协作用户列表 - `GET /api/projects/{project_id}/collaboration/history` - 获取协作历史 ## 部署说明 ### 环境要求 - Python 3.10+ - pip 包管理器 ### 安装依赖 ```bash pip install -r requirements.txt # 安装语音功能额外依赖 pip install -r requirements_voice.txt ``` ### 运行应用 ```bash python run.py ``` ### 访问语音电话界面 启动应用后,在浏览器中访问: ``` http://localhost:8000/static/voice_call.html ``` ### 环境变量配置 在 `.env` 文件中配置必要的环境变量: - `DATABASE_URL`:数据库连接URL - `JWT_SECRET_KEY`:JWT密钥 - `OPENAI_API_KEY`:OpenAI API密钥(可选) ### Redis缓存配置(可选) 要启用Redis缓存支持,请配置以下环境变量: - `REDIS_HOST`:Redis服务器主机地址 - `REDIS_PORT`:Redis服务器端口 - `REDIS_DB`:Redis数据库编号 - `REDIS_PASSWORD`:Redis密码(如果需要) ### 语音服务配置(可选) 要启用语音电话功能,可配置以下环境变量: - `STT_PROVIDER`:语音识别提供商(whisper, azure, openai) - `TTS_PROVIDER`:语音合成提供商(edge, azure) - `OPENAI_API_KEY`:OpenAI API密钥(用于Whisper API) - `AZURE_SPEECH_KEY`:Azure Speech服务密钥 - `AZURE_SPEECH_REGION`:Azure Speech服务区域 ## 开发指南 ### 项目结构 ``` src/ ├── main.py # 应用入口 ├── routes/ # API路由 ├── services/ # 业务服务 ├── models/ # 数据模型 ├── research_core/ # 研究助理核心 ├── tools/ # 工具模块 ├── config/ # 配置文件 ├── utils/ # 工具函数 └── middleware/ # 中间件 ``` ### HTTPS配置 系统支持HTTPS加密传输,配置步骤如下: 1. 获取SSL证书和私钥文件(可以使用Let's Encrypt免费证书或自签名证书) 2. 将证书文件放置在项目目录中,例如: ``` langChainGraph/ ├── certs/ │ ├── cert.pem # 证书文件 │ └── key.pem # 私钥文件 ``` 3. 在.env文件中配置HTTPS相关设置: ```env HTTPS_ENABLED=True HTTPS_CERT_PATH=certs/cert.pem HTTPS_KEY_PATH=certs/key.pem ``` 4. 启动服务后即可通过HTTPS访问 ### 添加新服务 要添加新服务到服务网关: 1. 在 `src/services/service_wrappers.py` 中创建服务封装函数 2. 在 `register_all_services()` 函数中注册服务 3. 确保服务函数接受 `**parameters` 参数并返回字典格式的结果 示例: ```python def my_new_service(**parameters) -> Dict[str, Any]: """新服务描述""" # 实现服务逻辑 return {"result": "success", "data": parameters} # 在 register_all_services 中注册 service_registry.register_service( name="my_new_service", description="新服务描述", function=my_new_service, parameters={"param1": "参数1描述"}, keywords=["关键词1", "关键词2"] ) ``` ### 服务执行器改进 服务执行器已优化支持: - 正确的参数传递机制(使用lambda函数包装) - 异步和同步执行方法的一致性 - 超时控制和重试机制 - 并发控制(信号量限制) - 执行指标收集和健康状态跟踪 ### 缓存系统 系统实现了多级缓存架构: - 内存缓存:快速访问最近使用的数据 - 磁盘缓存:持久化存储,跨进程共享 - Redis缓存(可选):分布式缓存支持,适用于集群部署 缓存系统特点: - 自动缓存键生成 - 可配置的过期时间 - 缓存统计和监控 - 语义缓存支持(基于内容相似度) ### 工作流管理 系统支持多种工作流模式: - 单代理工作流:适用于简单快速响应场景 - 多代理工作流:标准的协作式研究流程 - 优化多代理工作流:减少迭代次数,提高响应速度 - 流式多代理工作流:支持实时流式输出 工作流管理增强功能: - 工作流性能监控 - 执行时间跟踪 - 缓存命中率统计 - 错误处理和恢复 ## 故障排除 ### 常见问题 1. **服务执行参数错误** - 确保服务函数正确使用 `**parameters` 接收参数 - 检查服务注册时参数描述是否正确 2. **模型加载失败** - 系统支持优雅降级,即使模型不可用也不会中断核心服务 - 可设置 `TRANSFORMERS_OFFLINE=1` 环境变量启用离线模式 3. **数据库连接问题** - 检查 `.env` 文件中的数据库配置 - 确保数据库服务正常运行 ### 健康检查 通过访问 `/api/services/health` 端点检查服务网关健康状态。 ## 更新日志 详细更新日志请查看 [CHANGELOG.md](CHANGELOG.md) 文件。 ## 许可证 [MIT License](LICENSE)