使用说明
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=<your_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=...