综合介绍
GPT-Telegram-Worker 是一个基于 Cloudflare Workers 的多模型 AI Telegram 机器人,支持 OpenAI、Claude、Azure 等多个 API。该项目采用 TypeScript 开发,模块化设计便于扩展,提供快速、可扩展的服务体验。机器人具备智能对话、图像生成、图像分析等功能,并支持多语言,满足多样化需求。
功能列表
- 多模型支持:整合 OpenAI、Google Gemini、Anthropic Claude、Groq 和 Azure OpenAI 等多个 AI 模型。
- 智能对话:具备上下文记忆能力,确保对话流畅自然。
- 图像生成:支持文字描述生成图像,采用 DALL·E 和 Cloudflare Flux 技术。
- 图像分析:支持用户上传图片并进行智能分析,可使用 OpenAI 或 Google Gemini 模型。
- 多语言支持:内建 i18n 功能,支持 8 种语言。
- 用户权限管理:通过白名单功能控制访问权限,提升安全性。
- 高性能部署:利用 Cloudflare Workers 的边缘计算能力,实现快速响应。
- 高效数据管理:使用 Redis 进行数据缓存和管理,确保高效处理。
- Flux 提示词优化:通过外部 API 优化 Flux 模型的图像生成提示词。
使用帮助
安装流程
- 准备工作:
- Cloudflare 账号
- Telegram 账号和 Bot Token
- Upstash Redis 数据库(需开启 Eviction 功能)
- 至少一个 AI 服务的 API 密钥
- 快速上手:
- 克隆项目仓库:
git clone https://github.com/snakeying/GPT-Telegram-Worker.git
- 配置必要的环境变量:在
.env
文件中设置 Cloudflare、Telegram 和 Redis 的相关信息。 - 部署到 Cloudflare Workers:
npm install -g @cloudflare/wrangler wrangler login wrangler init telegram-bot cp dist/index.js telegram-bot/ wrangler publish
- 设置 Telegram Webhook:
curl -F "url=https://your-worker.your-subdomain.workers.dev" https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook
- 克隆项目仓库:
使用说明
- 启动机器人:
- 使用
/start
命令启动机器人。 - 使用
/language
切换语言。 - 使用
/switchmodel
切换 AI 模型。 - 使用
/new
开始新的对话。 - 使用
/history
获取对话历史摘要。 - 使用
/help
获取帮助信息。
- 使用
- 图像生成:
- 使用
/img
命令生成图像(DALL-E)。 - 使用
/flux
命令生成图像(Cloudflare Flux)。
- 使用
- 图像分析:
- 上传图片后,机器人会自动进行智能分析,并返回结果。
- 权限管理:
- 通过白名单功能控制用户访问权限,确保安全性。
- 数据管理:
- 使用 Redis 进行数据缓存和管理,确保高效处理。
详细操作流程
- 配置环境变量:
- 在项目根目录下创建
.env
文件,添加以下内容:TELEGRAM_BOT_TOKEN=<Your Telegram Bot Token> CLOUDFLARE_ACCOUNT_ID=<Your Cloudflare Account ID> REDIS_URL=<Your Redis URL>
- 确保所有变量都已正确配置。
- 在项目根目录下创建
- 部署到 Cloudflare Workers:
- 使用 Wrangler CLI 部署项目:
wrangler publish
- 在 Cloudflare Dashboard 中配置环境变量。
- 使用 Wrangler CLI 部署项目:
- 设置 Telegram Webhook:
- 使用 Telegram Bot API 设置 Webhook:
curl -F "url=https://your-worker.your-subdomain.workers.dev" https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook
- 使用 Telegram Bot API 设置 Webhook:
- 使用机器人:
- 启动机器人后,可以使用各种命令与机器人进行交互,生成图像、分析图片、切换语言和模型等。