餐厅订单自动化助手

一个基于AI的对话机器人,用于通过Telegram从Zomato订购食物,支持Google Gemini和OpenAI多模型切换。

  • by Gagan2004
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Gagan2004/Zomato_MCP_Bot

使用说明

AI餐厅订单自动化助手

这是一个由人工智能驱动的对话机器人,用于通过Telegram从Zomato订购食物。它使用谷歌的Gemini Flash模型进行自然语言理解,并通过模型上下文协议(MCP)连接到Zomato。

先决条件

  • Python 3.10+
  • Telegram Bot令牌
  • Gemini API密钥
  • 已安装/配置Zomato MCP服务器

设置

  1. 克隆存储库 (如果你还没有):

    git clone https://github.com/Gagan2004/Zomato_MCP_Bot.git
    cd Zomato_MCP_Bot
    
  2. 创建并激活虚拟环境:

    python -m venv venv
    # Windows
    venv\Scripts\activate
    # Linux/Mac
    source venv/bin/activate
    
  3. 安装依赖项:

    pip install -r requirements.txt
    
  4. 配置环境: 重命名 .env.example 到 .env (或创建 .env)并填写以下值:

    ZOMATO_MCP_COMMAND=npx.cmd          # Command to run Zomato MCP (Windows: npx.cmd, Mac/Linux: npx)
    ZOMATO_MCP_ARGS=-y mcp-remote https://mcp-server.zomato.com/mcp
    
    LLM_PROVIDER=openai 
    # if LLM_PROVIDER is not set to openai , ageny.py will look for GEMINI_API_KEY
    
    OPENAI_API_KEY=<your_openai_api_key>
    
    TELEGRAM_TOKEN=your_telegram_bot_token
    
    GEMINI_API_KEY=your_gemini_api_key
    
    

    注意:此配置连接到远程Zomato MCP服务器。

运行Bot

  1. 启动机器人:

    python main.py
    
  2. 互动: 打开你的Telegram机器人并发送 /start。然后,您可以问:

    • “显示[位置]附近的披萨店”
    • “给我看[餐厅名称]的菜单”
    • “点一份玛格丽塔披萨”
    • “跟踪我的订单”

故障排除

  • MCP连接失败:如果机器人说“MCP会话未激活”,请检查您的 ZOMATO_MCP_COMMAND。您可以通过运行以下命令来验证执行情况 python verify_mcp.py.

  • Gemini错误:请确保您的API密钥有效,并且可以访问 gemini-2.5-flash.

项目结构

  • main.py:入口点,Telegram机器人处理程序。
  • agent.py:具有工具调用和多LLM支持的LangChain代理逻辑。
  • tools.py:支持分页的Zomato MCP客户端包装器。
  • config.py:配置加载器。

特性

  • 多LLM支持:使用以下命令在Google Gemini和OpenAI(GPT-4o)之间切换 LLM_PROVIDER env变量。
  • 高级搜索:通过自动分页和智能过滤获取所有餐厅。
  • 稳健的错误处理:API限制的自动重试和长响应的智能消息拆分。

配置

将这些添加到您的 .env 高级功能文件:

# Optional: Use OpenAI instead of Gemini
LLM_PROVIDER=openai
OPENAI_API_KEY=sk-...

# API Key Rotation (Optional)
GEMINI_API_KEY_2=...
GEMINI_API_KEY_3=...