|
1 Minggu lalu | |
---|---|---|
knowledge_base | 1 Minggu lalu | |
prompts | 1 Minggu lalu | |
scripts | 1 Minggu lalu | |
src | 1 Minggu lalu | |
tests | 1 Minggu lalu | |
.env | 1 Minggu lalu | |
.gitignore | 1 Minggu lalu | |
.python-version | 1 Minggu lalu | |
BUGFIX_SUMMARY.md | 1 Minggu lalu | |
DEPLOYMENT.md | 1 Minggu lalu | |
INTELLIGENT_DECISION_UPGRADE.md | 1 Minggu lalu | |
PROMPT_MODULARIZATION_UPGRADE.md | 1 Minggu lalu | |
README.md | 1 Minggu lalu | |
TOOL_CALL_UPGRADE.md | 1 Minggu lalu | |
docx_function_impl.py | 1 Minggu lalu | |
docx_functions.json | 1 Minggu lalu | |
main.py | 1 Minggu lalu | |
pyproject.toml | 1 Minggu lalu | |
report_generation.py | 1 Minggu lalu | |
requirements.txt | 1 Minggu lalu | |
test_fix.py | 1 Minggu lalu | |
test_json_fix.py | 1 Minggu lalu | |
uv.lock | 1 Minggu lalu |
这是一个为MES(制造执行系统)开发的首页AI后端服务模块,提供智能对话功能。支持四种核心AI能力:
用户输入问题
↓
问题编排Agent判断问题类型
↓
调用相应专家Agent
↓
专家Agent判断是否需要RAG
↓ (如需要)
执行RAG查询,获取知识库内容
↓
专家Agent判断是否需要Tool Call
↓ (如需要)
执行工具调用(页面跳转/数据库查询)
↓
专家Agent生成回复
↓
总结Agent美化最终答案
↓
返回给用户
# 安装uv(如果未安装)
pip install uv
# 安装项目依赖
uv sync
创建.env
文件:
# 复制模板(如果存在)
cp .env.example .env
# 或者手动创建
echo "MES_AI_OPENAI_API_KEY=your_openai_api_key_here" > .env
echo "MES_AI_DEBUG=true" >> .env
# 方式1: 使用启动脚本(推荐)
python scripts/start.py
# 方式2: 直接启动
python main.py
# 方式3: 使用uv
uv run python main.py
访问以下地址验证服务是否正常:
POST /api/v1/chat
请求体:
{
"message": "我想进行物料入库",
"session_id": "optional_session_id",
"context": {}
}
响应:
{
"message": "AI回复内容",
"question_type": "page_navigation",
"session_id": "generated_or_provided_session_id",
"need_rag": true,
"need_tool_call": true,
"metadata": {
"classification_confidence": 0.95,
"rag_results_count": 2,
"tool_calls_count": 1
}
}
GET /api/v1/chat/history/{session_id}
响应:
{
"session_id": "session_id",
"history": [
{
"role": "user",
"content": "用户消息",
"question_type": "page_navigation"
},
{
"role": "assistant",
"content": "AI回复",
"question_type": "page_navigation"
}
],
"message_count": 2
}
配置项 | 环境变量 | 默认值 | 说明 |
---|---|---|---|
OpenAI API密钥 | MES_AI_OPENAI_API_KEY |
- | 必填,OpenAI API密钥 |
服务端口 | MES_AI_PORT |
8000 | 服务监听端口 |
调试模式 | MES_AI_DEBUG |
false | 是否开启调试模式 |
日志级别 | MES_AI_LOG_LEVEL |
INFO | 日志输出级别 |
知识库路径 | MES_AI_KNOWLEDGE_BASE_PATH |
knowledge_base | 向量数据库存储路径 |
完整配置项请参考 src/utils/config.py
imes/
├── src/ # 源代码目录
│ ├── agents/ # AI Agent模块
│ │ ├── orchestrator.py # 问题编排Agent
│ │ ├── expert_agents.py # 专家Agent
│ │ └── summary_agent.py # 总结Agent
│ ├── services/ # 服务模块
│ │ ├── ai_service.py # AI服务主类
│ │ ├── rag_service.py # RAG服务
│ │ └── tool_service.py # 工具调用服务
│ ├── models/ # 数据模型
│ │ └── schemas.py # Pydantic模型
│ ├── api/ # API接口
│ │ └── routes.py # 路由定义
│ ├── utils/ # 工具模块
│ │ └── config.py # 配置管理
│ └── app.py # FastAPI应用
├── scripts/ # 脚本目录
│ └── start.py # 启动脚本
├── main.py # 服务入口
├── pyproject.toml # 项目配置
└── README.md # 项目文档
src/agents/expert_agents.py
中继承 BaseExpertAgent
need_rag()
, need_tool_call()
, generate_response()
ExpertAgentFactory
中注册新的Agentsrc/services/tool_service.py
中继承 BaseTool
execute()
方法和 name
属性ToolService
中注册新工具使用 RAGService.add_documents()
方法添加新的文档:
documents = [
{
"content": "文档内容",
"metadata": {"source": "来源", "type": "类型"}
}
]
await rag_service.add_documents(documents, "collection_name")
FROM python:3.11-slim
WORKDIR /app
COPY . .
RUN pip install uv
RUN uv sync
EXPOSE 8000
CMD ["python", "main.py"]
MES_AI_DEBUG=false
MES_AI_WORKERS
数量MES_AI_LOG_FILE
MES_AI_SECRET_KEY
OpenAI API调用失败
向量数据库初始化失败
服务启动失败
本项目采用MIT许可证。详见LICENSE文件。
如有问题或建议,请提交Issue或联系项目维护者。