多领域聊天机器人

一个基于FastAPI和LangGraph的多领域聊天机器人,提供电子商务价格比较、金融股票信息和饮食营养问答功能。

  • by aravindh-c
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 aravindh-c/Multi_Domain_MCP

使用说明

多域工具第一聊天机器人

生产型FastAPI+LangGraph聊天机器人,跨三个域路由:

  • 通过MCP价格服务器进行电子商务价格比较
  • 通过MCP财务服务器获取财务/股票信息(仅供参考)
  • 使用具有user_id范围的私人用户库(RAG)进行饮食/营养问答

快速入门

Windows(CMD)

  1. 创建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
    
  2. 设置环境变量(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
    
  3. 从以下内容构建本地饮食库指数(FAISS) data/user_vault/u123.txt:

    python -m src.rag.vault_store
    
  4. 启动服务器(打开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
      
  5. 测试:

    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);其他路线永远不会触及金库。