# langChainGraph **Repository Path**: cep/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-08-25 - **Last Updated**: 2025-08-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LangChainGraph 项目 LangChainGraph是一个基于LangChain和Neo4j的知识图谱增强型研究助理系统。它结合了大型语言模型(LLM)、网络搜索和知识图谱技术,提供智能化的信息检索和分析能力。 ## 核心功能 - 基于LangGraph的工作流引擎 - 网络搜索与信息聚合 - Neo4j知识图谱存储与查询 - 多模态内容处理(图像、表格等) - 模型驱动的智能分析 - 多代理协作系统 ## 技术架构 ### 后端技术栈 - Python 3.11+ - FastAPI (Web框架) - LangChain/LangGraph (LLM工作流) - Neo4j (图数据库) - Py2neo (Neo4j Python驱动) - Sentence-Transformers (嵌入模型) - FAISS (向量搜索) - spaCy (自然语言处理) ### 前端技术栈 - Vue 3 + TypeScript - Element Plus UI组件库 - Axios (HTTP客户端) - Socket.IO (实时通信) ## 项目结构 ``` langChainGraph/ ├── src/ # 核心源代码 │ ├── config/ # 配置文件 │ ├── core/ # 核心模块 │ ├── feishu/ # 飞书集成 │ ├── models/ # 数据模型 │ ├── research_core/ # 研究助理核心 │ ├── routes/ # API路由 │ ├── services/ # 业务服务 │ ├── tools/ # 工具模块 │ └── utils/ # 工具函数 ├── data/ # 数据文件 ├── docs/ # 文档 ├── static/ # 静态文件 ├── tests/ # 测试文件 └── ... ``` ## 配置说明 ### 环境变量配置 系统通过环境变量进行配置,支持以下主要配置项: #### 数据库配置 ``` DATABASE_URL=neo4j+s://username:password@host:port/database DATABASE_POOL_SIZE=10 DATABASE_MAX_OVERFLOW=20 ``` #### JWT配置 ``` JWT_SECRET_KEY=your_jwt_secret_key JWT_ALGORITHM=HS256 JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30 ``` #### OpenAI配置 ``` RESEARCH_OPENAI_API_BASE=https://api.deepseek.com RESEARCH_OPENAI_API_KEY=your_openai_api_key RESEARCH_OPENAI_MODEL=deepseek-chat RESEARCH_OPENAI_MAX_TOKENS=1000 RESEARCH_OPENAI_TEMPERATURE=0.7 ``` #### 应用配置 ``` DEBUG=True HOST=0.0.0.0 PORT=8000 LOG_LEVEL=INFO ``` #### CORS配置 ``` CORS_ORIGINS=["*"] ``` #### MCP配置 ``` MCP_ENABLED=False MCP_SERVERS=[] ``` #### 搜索配置 ``` RESEARCH_SEARCH_MAX_RESULTS=10 RESEARCH_SEARCH_TIMEOUT=30 ``` #### 工作流配置 ``` RESEARCH_WORKFLOW_MAX_ITERATIONS=5 RESEARCH_WORKFLOW_TIMEOUT=300 ``` #### 缓存配置 ``` RESEARCH_CACHE_ENABLED=True RESEARCH_CACHE_TTL=3600 ``` #### 多代理配置 ``` RESEARCH_MULTI_AGENT_ENABLED=True RESEARCH_AGENT_COORDINATION_TIMEOUT=60 ``` ## 多代理系统优化 #### 性能优化 - 降低递归限制至30,避免过多循环导致性能问题 - 限制输出步骤数量,避免过多调试信息 - 添加超时机制(5分钟),防止长时间等待 - 控制最大迭代次数(3次),避免无限循环 - 实现内存缓存机制,减少重复搜索的开销 - 添加缓存统计功能,便于性能监控和调优 #### 内容安全处理 - 增强内容清理机制,移除可能触发敏感词过滤的特殊字符 - 实现详细的内容安全错误处理,提供友好的错误提示 - 添加长度限制(2000字符),自动截断过长内容 - 增强危险内容检测,防止脚本注入和SQL注入等攻击 #### 错误处理机制 - 实现详细的错误分类和处理策略 - 添加降级处理机制,在主要路径失败时使用备选方案 - 提供更友好的错误提示和建议 - 增强网络异常处理,提供具体的网络错误提示 #### 工作流逻辑优化 - 修复协调员路由逻辑,使其更加精确和可靠 - 添加状态跟踪机制,避免重复处理 - 实现基于内容长度的智能判断机制 - 添加迭代计数器防止无限循环 - 改进协调员代理决策逻辑,增加多个明确的决策条件: - 基于迭代次数的决策(最大迭代次数限制为3次) - 基于质量评估结果的决策(检查"充足"/"sufficient"关键字) - 基于分析内容长度的决策(超过500字符时认为内容足够) - 基于状态历史记录的决策(避免重复处理相同状态) - 实现标准化的输出处理,确保决策结果的一致性(只有三种有效操作:improve_search、new_search、generate_answer) - 增强异常处理机制,确保在任何异常情况下都有默认的决策路径(默认选择生成答案以避免无限循环) - 分离决策逻辑到独立函数[_get_coordinator_decision](file://d:\workspace\projects\langChainGraph\src\research_core\multi_agent_workflow.py#L520-L553),提高代码可读性和可维护性 #### 可扩展性改进 - 设计更模块化的代理架构 - 实现动态代理加载和配置 - 增加对不同模型和工具的支持 #### 流式处理支持 - 实现异步流式处理,实时输出工作流执行过程 - 支持实时反馈,改善用户体验 - 提供简化版流式接口,便于集成和使用 - 支持事件驱动的流式处理模式 ## 使用方法 ### 基本运行 ```bash # 运行标准多代理系统 python run_multi_agent.py # 运行标准多代理系统并指定问题 python run_multi_agent.py --question "人工智能的发展趋势是什么?" ``` ### 交互式运行 ```bash # 运行交互式多代理系统 python run_multi_agent_interactive.py # 运行增强版交互式多代理系统 python run_multi_agent_interactive_enhanced.py ``` ### 流式处理运行 ```bash # 运行流式多代理系统(新功能) python run_multi_agent.py --stream # 运行流式多代理系统并指定问题 python run_multi_agent.py --stream --question "人工智能的发展趋势是什么?" # 或者使用专门的流式处理脚本 python run_streaming_multi_agent.py ``` ### 故障排除 如果流式处理没有输出,请尝试以下方法: 1. 确保使用的是支持异步的Python环境(Python 3.7+) 2. 检查是否正确安装了所有依赖包 3. 尝试使用不同的运行方式: ```bash # 直接运行脚本 python run_streaming_multi_agent.py # 或使用主脚本的流式模式 python run_multi_agent.py --stream ``` 4. 查看是否有错误信息输出,根据错误信息进行相应处理 5. 如果仍然没有输出,可能是以下原因: - 工作流执行太快,导致看起来没有输出 - 工作流在执行过程中出现异常但被静默处理 - 缓冲区问题导致输出没有及时显示 - 工作流没有产生任何中间状态变化 ### 多模态运行 ```bash # 运行多模态演示 python demo_multimodal.py ``` ### API文档 访问 `http://localhost:8000/docs` 查看自动生成的API文档。 ## 开发指南 ### 代码规范 - 遵循PEP 8 Python编码规范 - 使用类型注解 - 编写单元测试 - 保持代码简洁和可读性 ### 测试 运行测试: ```bash python -m pytest tests/ ``` ## 故障排除 常见问题及解决方案: 1. **数据库连接失败**: 检查Neo4j服务是否启动,配置是否正确 2. **API密钥无效**: 检查环境变量中的API密钥配置 3. **模型加载失败**: 检查网络连接和模型配置 ## 贡献指南 欢迎提交Issue和Pull Request来改进项目。 ## 许可证 本项目采用MIT许可证。 # langChainGraph 基于 LangGraph 构建的项目,用于构建和运行基于图结构的 LangChain 应用。 ## 功能特性 - 图结构流程控制: 使用 LangGraph 实现复杂流程的编排 - LangChain 集成: 支持 LangChain 的各种组件和功能 - 支持 OpenAI API: 通过 langchain-openai 集成 OpenAI 模型 - 支持检查点(langgraph-checkpoint) - 支持预构建组件(langgraph-prebuilt) - 支持 LangSmith 调试和追踪(langsmith) ## 系统架构 ``` langChainGraph/ ├── src/ │ ├── research_core/ # 核心研究逻辑 │ │ ├── workflow.py # 基础工作流 │ │ ├── multi_agent_workflow.py # 多代理工作流 │ │ ├── optimized_multi_agent_workflow.py # 优化版多代理工作流 │ │ ├── optimized_workflow.py # 优化工作流管理器 │ │ ├── nodes.py # 工作流节点 │ │ ├── state.py # 状态定义 │ │ └── prompts.py # 提示词模板 │ ├── services/ # 业务服务 │ ├── routes/ # API路由 │ ├── tools/ # 工具模块 │ └── config/ # 配置文件 ├── tests/ # 测试文件 └── run.py # 主运行脚本 ``` ## 安装依赖 ```bash pip install -r requirements.txt ``` ## 使用方法 ### 基础研究助手 ```bash python run.py "你的问题" ``` ### 多代理研究助手 ```bash # 使用标准多代理工作流 python run_multi_agent.py "你的问题" multi-agent # 使用优化版多代理工作流 python run_multi_agent.py "你的问题" optimized-multi-agent ``` ### API 服务 ```bash python src/main.py ``` 访问 `http://localhost:8000/docs` 查看 API 文档。 ## 工作流类型 ### 单代理工作流 (single-agent) 最基础的工作流,使用单个代理完成整个研究任务。 ### 多代理工作流 (multi-agent) 使用多个专业代理协同完成研究任务,包括: - 搜索策略专家 - 搜索专家 - 分析专家 - 质量保证专家 - 写作专家 - 协调员代理 ### 优化版多代理工作流 (optimized-multi-agent) 在标准多代理工作流基础上进行优化: - 改进了协调员代理的决策逻辑 - 增强了内容质量评估机制 - 优化了迭代控制和防重复机制 - 添加了更智能的缓存策略 - 增强了错误处理和降级机制 ## 配置 复制 [.env.example](.env.example) 文件并重命名为 `.env`,然后根据需要修改配置。 ## 测试 ```bash python -m pytest tests/ ``` ## 许可证 [MIT](LICENSE)