README
🚀 天气机器人与 OpenAI 代理 SDK
本项目是一个 Telegram 机器人,借助 OpenAI 的代理 SDK 和模型上下文协议(MCP),为用户提供实时天气信息。它能通过自然语言查询,获取全球任意城市的当前天气状况,由 GPT-4o-mini 模型驱动。
🚀 快速开始
- 克隆仓库:
git clone https://github.com/esakrissa/agents-sdk-telegram.git
cd agents-sdk-telegram
- 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate # Windows 用户请使用:venv\Scripts\activate
- 安装依赖项:
pip install -r requirements.txt
- 创建项目根目录下的 .env 文件:
TELEGRAM_BOT_TOKEN=你的机器人令牌
OPENAI_API_KEY=你的 OpenAI API 密钥
- 运行机器人:
python main.py
✨ 主要特性
- 实时天气数据获取:使用 Open-Meteo API 实现实时天气数据获取。
- 自然语言处理:借助 OpenAI 代理 SDK(GPT-4o-mini)进行自然语言处理。
- MCP 服务器实现:简单的 MCP 服务器实现以获取天气数据。
- 原生消息格式输出:以原生 Telegram 消息格式输出。
- 易用界面:支持简单的天气查询,界面友好易用。
📦 安装指南
克隆仓库
git clone https://github.com/esakrissa/agents-sdk-telegram.git
cd agents-sdk-telegram
创建并激活虚拟环境
python -m venv venv
source venv/bin/activate # Windows 用户请使用:venv\Scripts\activate
安装依赖项
pip install -r requirements.txt
配置环境变量
在项目根目录下创建 .env 文件,并添加以下内容:
TELEGRAM_BOT_TOKEN=你的机器人令牌
OPENAI_API_KEY=你的 OpenAI API 密钥
运行机器人
python main.py
💻 使用示例
基础用法
只需向机器人发送一条消息,询问任意城市的天气情况即可:
乌布的天气怎么样?
机器人将回复当前天气状况,包括:
- 温度
- 天气状况描述
- 风速
📚 详细文档
OpenAI 代理 SDK 集成
该机器人使用 OpenAI 的代理 SDK 和 GPT-4o-mini 模型来处理自然语言查询并生成人类可读的回复。代理根据指令处理天气相关查询,并维护对话上下文。
模型上下文协议(MCP)
项目实现了一个简单的 MCP 服务器 (weather_mcp.py),提供 get_weather 工具。这展示了如何:
- 创建自定义 MCP 工具
- 处理工具请求和响应
- 将外部 API (Open-Meteo)与 MCP 集成
🔧 技术细节
技术栈
- Python 3.11+
- OpenAI 代理 SDK
- 模型上下文协议(MCP)
- python-telegram-bot
- Open-Meteo API(无需 API 密钥)
📄 许可证
MIT 协议 © Esa Krissa
Scan to join WeChat group