AI餐厅订单自动化助手
这是一个由人工智能驱动的对话机器人,用于通过Telegram从Zomato订购食物。它使用谷歌的Gemini Flash模型进行自然语言理解,并通过模型上下文协议(MCP)连接到Zomato。
先决条件
- Python 3.10+
- Telegram Bot令牌
- Gemini API密钥
- 已安装/配置Zomato MCP服务器
设置
- 克隆存储库 (如果你还没有):
git clone https://github.com/Gagan2004/Zomato_MCP_Bot.git
cd Zomato_MCP_Bot- 创建并激活虚拟环境:
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate- 安装依赖项:
pip install -r requirements.txt- 配置环境:
重命名 .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=
TELEGRAM_TOKEN=your_telegram_bot_token
GEMINI_API_KEY=your_gemini_api_key
*注意:此配置连接到远程Zomato MCP服务器。*
运行Bot
- 启动机器人:
python main.py- 互动:
打开你的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_PROVIDERenv变量。 - 高级搜索:通过自动分页和智能过滤获取所有餐厅。
- 稳健的错误处理: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=...