多域工具第一聊天机器人
生产型FastAPI+LangGraph聊天机器人,跨三个域路由:
- 通过MCP价格服务器进行电子商务价格比较
- 通过MCP财务服务器获取财务/股票信息(仅供参考)
- 使用具有user_id范围的私人用户库(RAG)进行饮食/营养问答
快速入门
Windows(CMD)
- 创建venv+安装:
cd D:\Users\achelladurai\Downloads\C_MCP
python -m venv .venv
.\.venv\Scripts\activate.bat
python -m pip install --upgrade pip
pip install -r requirements.txt- 设置环境变量(CMD) 对于此终端会话:
set OPENAI_API_KEY=sk-REPLACE_WITH_YOUR_KEY
set LANGCHAIN_TRACING_V2=true
set LANGSMITH_API_KEY=ls-REPLACE_IF_YOU_USE_LANGSMITH
set LANGSMITH_PROJECT=multi-domain-chatbot可选(如果您愿意 .env):创建 .env 在repo根目录中手动执行以下操作:
OPENAI_API_KEY=sk-REPLACE_WITH_YOUR_KEY
LANGCHAIN_TRACING_V2=true
LANGSMITH_API_KEY=ls-REPLACE_IF_YOU_USE_LANGSMITH
LANGSMITH_PROJECT=multi-domain-chatbot- 从以下内容构建本地饮食库指数(FAISS)
data/user_vault/u123.txt:
python -m src.rag.vault_store- 启动服务器(打开3个单独的CMD窗口):
- 窗口A(价格MCP):
cd D:\Users\achelladurai\Downloads\C_MCP
.\.venv\Scripts\activate.bat
python -m mcp_servers.price_server.server- 窗口B(金融MCP;实时报价使用Screener HTML):
cd D:\Users\achelladurai\Downloads\C_MCP
.\.venv\Scripts\activate.bat
python -m mcp_servers.finance_server.server- 窗口C(主要API):
cd D:\Users\achelladurai\Downloads\C_MCP
.\.venv\Scripts\activate.bat
uvicorn src.app.main:app --reload- 测试:
curl -X POST http://127.0.0.1:8000/chat ^
-H "Content-Type: application/json" ^
-d "{\"user_id\":\"u123\",\"session_id\":\"s456\",\"query\":\"Show TCS last 30 days trend and summarize latest news\",\"locale\":\"en-IN\"}"端点
POST /chat身体:
{"user_id":"u123","session_id":"s456","query":"Is paneer okay for dinner?","locale":"en-IN"}返回结构化JSON,包括路由、答案、引用、tool_calls、拒绝和meta(延迟/令牌占位符)。
备注
- 由env变量控制的LangSmith追踪(
LANGCHAIN_TRACING_V2=true,LANGSMITH_API_KEY,LANGSMITH_PROJECT). - MCP服务器使用模拟的夹具,但强制执行Pydantic模式和确定性输出。
- 饮食路线总是执行按user_id过滤的保险库检索(FAISS,顶部K=4);其他路线永远不会触及金库。
