English | 简体中文 | 繁體中文 | 日本語 | Español | Français | Русский | Deutsch
GPT-Telegram-Bot 是一个功能强大的 Telegram 机器人,集成了多种 AI 模型,提供智能对话、图像生成和分析等功能。
- 多模型支持 🎭:任意兼容OpenAI API的模型、Google Gemini、Anthropic Claude、Groq 和 Azure OpenAI
- 智能对话 💬:支持上下文记忆的自然语言交互
- 图像生成 🎨:基于文字描述创建图像
- 图像分析 🔍:解读并描述上传的图片
- 多语言支持 🌐:支持多种语言的本地化
- 流式响应 ⚡:实时生成和显示 AI 回复
- 用户白名单 🔐:可设置仅允许特定用户访问
- OpenAI 系列:强大的语言模型 🚀
- Google Gemini:Google 的新一代 AI 模型 🧑🔬
- Anthropic Claude:另一个强大的语言模型选择 🎭
- Groq:高速推理的 AI 模型 ⚡
- Azure OpenAI:微软托管的 OpenAI 服务 👔
GPT-Telegram-Bot/
├── api/ # api相关配置
│ ├── telegram.js # 处理Telegram bot交互
├── src/ # 源代码
│ ├── api.js # 处理兼容OpenAI的API交互
│ ├── bot.js # 主要的Telegram bot逻辑
│ ├── config.js # 配置文件
│ ├── azureOpenAI.js # 处理azureOpenAI交互
│ ├── claude.js # 处理claude交互
│ ├── generateImage.js# 处理DALL·E交互
│ ├── geminiApi.js # 处理Gemini交互
│ ├── groqapi.js # 处理Groq交互
│ ├── uploadhandler.js# 上传图片处理相关逻辑
│ ├── localization.js # 多语言支持逻辑
│ ├── redis.js # upstash redis数据库功能
├── locales/ # 多语言支持文件
│ ├── en.json
│ ├── zh-cn.json
│ ├── zh-hant.json
│ └── ja.json
│ └── es.json
│ └── fr.json
│ └── ru.json
│ └── de.json
├── docs/ # 多语言 README 文件目录
│ ├── README.zh-cn.md
│ ├── README.zh-hant.md
│ ├── README.ja.md
│ ├── README.es.md
│ ├── README.fr.md
│ ├── README.ru.md
│ └── README.de.md
├── public/ # 部署完成后的vercel网页
│ └── index.html # 网页入口文件
├── package.json # 项目依赖
├── vercel.json # Vercel配置文件
└── README.md # 项目说明文件
-
克隆仓库:
git clone https://github.com/snakeying/GPT-Telegram-Bot.git cd GPT-Telegram-Bot
-
安装依赖:
npm install
-
配置环境变量: 创建
.env
文件并填入必要的配置信息(参考下方的环境变量配置)。 -
部署到 Vercel:
- Fork这个repo
- 按照readme最下方的指引修改
- 点击"Deploy with Vercel" 按钮
- 连接你的 GitHub 仓库
- 配置环境变量
- 完成部署
-
设置 Telegram Webhook: 部署完成后,使用以下 URL 设置 Webhook:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook?url=<YOUR_VERCEL_DOMAIN>/api/telegram
在部署和运行 GPT-Telegram-Bot 之前,您需要设置以下环境变量。创建一个 .env
文件在项目根目录下,并配置以下变量:
变量名 | 描述 | 默认值 |
---|---|---|
OPENAI_API_KEY |
OpenAI API 密钥 | - |
OPENAI_BASE_URL |
OpenAI API 基础 URL | https://api.openai.com/v1 |
OPENAI_MODELS |
使用的 OpenAI 模型(逗号分隔) | - |
DEFAULT_MODEL |
默认使用的模型 | OPENAI_MODELS 的第一个模型 |
AZURE_OPENAI_API_KEY |
Azure OpenAI API 密钥 | - |
AZURE_OPENAI_ENDPOINT |
Azure OpenAI 端点 | - |
AZURE_OPENAI_MODELS |
使用的 Azure OpenAI 模型(逗号分隔) | - |
TELEGRAM_BOT_TOKEN |
Telegram Bot Token | - |
WHITELISTED_USERS |
允许使用的用户 ID(逗号分隔) | - |
DALL_E_MODEL |
使用的 DALL-E 模型 | dall-e-3 |
UPSTASH_REDIS_REST_URL |
Upstash Redis REST URL | - |
UPSTASH_REST_TOKEN |
Upstash Redis REST Token | - |
SYSTEM_INIT_MESSAGE |
系统初始化消息 | You are a helpful assistant. |
SYSTEM_INIT_MESSAGE_ROLE |
系统消息角色 | system |
GEMINI_API_KEY |
Google Gemini API 密钥 | - |
GOOGLE_MODELS |
使用的 Google 模型(逗号分隔) | - |
GEMINI_ENDPOINT |
Gemini API 端点 | https://generativelanguage.googleapis.com/v1beta/models |
GROQ_API_KEY |
Groq API 密钥 | - |
GROQ_MODELS |
使用的 Groq 模型(逗号分隔) | - |
MAX_HISTORY_LENGTH |
最大历史记录长度 | 50 |
CLAUDE_API_KEY |
Anthropic Claude API 密钥 | - |
CLAUDE_MODELS |
使用的 Claude 模型(逗号分隔) | - |
CLAUDE_ENDPOINT |
Claude API 端点 | https://api.anthropic.com/v1/chat/completions |
确保在部署到 Vercel 或其他平台时,将这些环境变量添加到项目的环境配置中。
/start
- 初始化机器人/new
- 开始新的对话/history
- 查看对话历史摘要/help
- 获取帮助信息/switchmodel <模型名称>
- 切换 AI 模型/img <描述> [尺寸]
- 生成图像/language <语言代码>
- 切换界面语言- 发送图片以进行分析
- 直接发送消息进行对话
支持的语言(使用 /language 命令):
- 英语 (en)
- 简体中文 (zh-cn)
- 繁体中文 (zh-hant)
- 日语 (ja)
- 西班牙语 (es)
- 法语 (fr)
- 俄语 (ru)
- 德语 (de)
- 合理使用 API 配额,特别是在使用图像功能时 💸
- 妥善保管环境变量和 API 密钥 🔒
- 不同 AI 模型可能有不同的特性和限制 🔄
- 定期检查和更新依赖,以确保安全性和性能 🔧
欢迎提交 Pull Requests 或开 Issues 来改进这个项目!您的贡献将使这个 AI 助手变得更加强大和有趣。
本项目采用 MIT 许可证。
关于 "Deploy to Vercel" 按钮: 这个按钮提供了一键部署到 Vercel 的功能,非常方便。但是,请注意:
- 按钮中的链接指向的是原始仓库(https://github.com/snakeying/GPT-Telegram-Bot)。
- 如果您 fork 了这个项目并希望部署您自己的版本,您需要更新 README 中的这个按钮链接。
- 更新方法:将链接中的
snakeying/GPT-Telegram-Bot
替换为您的 GitHub 用户名和仓库名。
例如,如果您的 GitHub 用户名是 "yourname",您应该将按钮的链接更改为:
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fyourname%2FGPT-Telegram-Bot)
这样可以确保 "Deploy to Vercel" 按钮会部署您 fork 的版本,而不是原始仓库。