搭建一个Telegram 机器人 并接入 Gemini API 进行图片创作
1. 准备工作
1.1 获取 Gemini API Key
- 访问 https://aistudio.google.com/ 并登录你的 Google 账号。
- 在 API 密钥管理 部分,生成一个新的 API Key(
gemini_token)。 - 确保你的网络环境可以访问 Google 服务(可能需要 VPN 或代理)。
1.2 创建 Telegram 机器人
- 在 Telegram 中搜索 @BotFather,发送
/newbot命令,按照提示创建机器人。 - 获取机器人的 Token(格式为
数字:字母),保存备用。
2. 选择开发方式
你可以选择以下两种方式之一来开发机器人:
2.1 使用现成框架(推荐)
- MuseBot 或 AstrBot:这些开源框架支持多平台(包括 Telegram)和多种大模型(如 Gemini),适合快速部署。
- 下载 https://github.com/yincongcyincong/MuseBot
- 配置参数(如
gemini_token和 Telegram Bot Token) - 运行后,机器人会自动响应 Telegram 消息。
| 平台 | 支持情况 | 简要说明 | 文档 / 链接 |
|---|---|---|---|
| 🟦 Telegram | ✅ | 支持 Telegram 机器人(基于 go-telegram-bot-api,可处理命令、内联按钮、ForceReply 等) | 文档 |
| 🌈 Discord | ✅ | 支持 Discord 机器人 | 文档 |
| 🌛 Web API | ✅ | 提供 HTTP/Web API 与 LLM 交互(适合构建自己的前端或后端集成) | 文档 |
| 🔷 Slack | ✅ | 支持 Slack(Socket Mode / Events API / Block Kit 交互) | 文档 |
| 🟣 Lark(飞书) | ✅ | 支持 Lark 长连接与消息处理(基于 larksuite SDK,支持图片/音频下载与消息更新) | 文档 |
| 🆙 钉钉 | ✅ | 支持钉钉长链接服务 | 文档 |
| ⚡️ Work WeChat | ✅ | 支持企业微信触发大模型 | 文档 |
| ✅ | 支持QQ机器人触发大模型 | 文档 | |
| ✅ | 支持微信触发大模型 | 文档 |
| 模型 | 提供方 | 文本生成 | 图片生成 | 视频生成 | 识别照片 | 返回语音 | 链接 |
|---|---|---|---|---|---|---|---|
| 🌟 Gemini | 谷歌 | ✅ | ✅ | ✅ | ✅ | ✅ | 文档 |
| 💬 ChatGPT | OpenAI | ✅ | ✅ | ❌ | ✅ | ✅ | 文档 |
| 🐦 Doubao | 字节跳动 | ✅ | ✅ | ✅ | ✅ | ✅ | 文档 |
| 🐦 Qwen | 阿里云 | ✅ | ✅ | ✅ | ✅ | ✅ | 文档 |
| ⚙️ 302.AI | 302.AI | ✅ | ✅ | ✅ | ✅ | ❌ | 文档 |
| 🧠 DeepSeek | DeepSeek | ✅ | ❌ | ❌ | ❌ | ❌ | 文档 |
| 🌐 OpenRouter | OpenRouter | ✅ | ✅ | ❌ | ✅ | ❌ | 文档 |
| 🌐 ChatAnywhere | ChatAnywhere | ✅ | ✅ | ❌ | ✅ | ❌ | 文档 |
2.2 自行编写代码(Python 示例)
如果你希望更灵活地控制功能,可以使用 Python 的 python-telegram-bot 库和 google-generativeai SDK:
- 安装依赖库:
pip install python-telegram-bot google-generativeai - 编写代码python:
注意:Gemini 2.5 Flash Image 的 API 调用可能需要额外参数(如
from telegram import Update from telegram.ext import Application, CommandHandler, MessageHandler, filters import google.generativeai as genai # 配置 Gemini genai.configure(api_key="你的Gemini_API_KEY") model = genai.GenerativeModel('gemini-pro-vision') # 用于图像生成 # 处理 /start 命令 async def start(update: Update, context): await update.message.reply_text("欢迎使用图片创作机器人!发送描述生成图片。") # 处理用户输入的文本生成图片 async def generate_image(update: Update, context): prompt = update.message.text response = model.generate_content(f"生成图片:{prompt}") # 实际调用需根据 Gemini 图片 API 调整 image_url = response.images[0].url # 假设返回图片 URL await update.message.reply_photo(image_url) # 主程序 app = Application.builder().token("你的Telegram_Bot_Token").build() app.add_handler(CommandHandler("start", start)) app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, generate_image)) app.run_polling()image_config指定比例)。
3. 部署机器人
3.1 本地测试
- 直接运行代码,通过 Telegram 与机器人交互测试功能。
3.2 服务器部署
- 推荐使用 Vercel、Render 或 Docker 部署:
- 如果是 Python 项目,可用
docker-compose打包。 - 对于 MuseBot/AstrBot,参考其文档部署到云服务器。
- 如果是 Python 项目,可用
3.3 内网穿透(可选)
- 如果本地开发需要外网访问,可使用 cpolar 或 ngrok 暴露端口。
4. 功能扩展
- 多模态支持:结合 Gemini 的文本+图像理解能力,实现更复杂的指令(如“修改图片背景”)。
- 成本优化:通过代理服务(如
laozhang.ai)降低 API 调用成本。 - 用户管理:添加
/balance查询额度、/clear清除上下文等功能。
5. 参考资源
- Gemini API 文档:https://ai.google.dev/docs
- Telegram Bot API:https://core.telegram.org/bots/api
- 开源项目:https://github.com/yincongcyincong/MuseBot
- 多模型切换功能:还没写
相关文档
评论与补充0
有问题或想补充的,写在下面 · 选中正文文字再点「报告错误」会自动引用还没有评论。有疑问、补充,或者发现错字,都可以写在下面。
