English | 中文
一个基于 Node.js 的 ChatGPT 电报机器人。支持非浏览器和基于浏览器的 API。
Fun fact: 这篇中文文档是 ChatGPT 翻译的。
🎉 v2 已发布!
🔔 2023 年 4 月 3 日 (v2.5.0)
- 支持不同用户/群组的多个会话 by @Vadko.
- 支持将消息队列设置为可选 by @Vadko.
历史更新
🔔 2023 年 3 月 10 日 (v2.4.0)
- 添加超时机制以防止消息队列被卡住。您可以在配置文件中覆盖默认超时时间。
🔔 2023 年 3 月 7 日 (v2.3.2)
- 您现在可以从 Docker Hub 拉取 预构建的 Docker 镜像 了!
🔔 2023 年 3 月 2 日 (v2.3.0)
- 支持 OpenAI 官方 chat completions API。
- 支持使用自定义的 fetch 函数进行代理。
我们强烈建议您使用 official API。有传言称如果您继续使用 unofficial 和 browser API,OpenAI 可能会禁止您的账户。
🔔 2023 年 2 月 28 日 (v2.2.0)
- 支持消息队列以避免速率限制。
- 改善 Markdown 解析。
🔔 2023 年 2 月 22 日 (v2.1.1)
- 支持自定义提示前缀和后缀(允许您自定义机器人的身份和行为)。
- 支持 Node.js v19。
🔔 2023 年 2 月 19 日 (v2.1.0)
我们已经添加了对 @acheong08 的非官方代理 API 的支持。此 API 使用代理服务器,允许用户绕过 Cloudflare 保护并使用真正的 ChatGPT。请参阅 使用方法 获取更多详情。
对于老用户,我们已更新我们的 API 选项。
api.version现在变为了api.type,可选项为browser(之前的v3)、official(之前的v4)和unofficial。请相应地更新您的配置文件。
🔔 2023 年 2 月 17 日
根据维护者之一的说法,OpenAI 已经修补了这种方法。所以你要么使用带官方模型的无浏览器 Official API(需要付费),要么使用基于浏览器的解决方案。
🔔 2023 年 2 月 15 日
我们发布了 v2.0.0 版本的这个机器人,支持 非浏览器 和 基于浏览器 的 API。您可以随时使用配置文件在两个 API 之间切换。此外,我们已经重构了代码库,使其更易于维护和扩展。
对于老用户,您需要从
.env文件切换到config/文件夹下的 json 文件。
| 私聊 | 群聊 |
|---|---|
![]() |
![]() |
api.official.systemMessage)感谢 @transitive-bullshit 制作了这个易于理解的表格!
| 类型 | 免费? | 稳定? | 质量? |
|---|---|---|---|
official |
❌ 否 | ✅ 是 | ✅ 真实 ChatGPT 模型 |
unofficial |
✅ 是 | ☑️ 可能 | ✅ 真实 ChatGPT |
browser |
✅ 是 | ❌ 否 | ✅ 真实 ChatGPT |
official: 使用 OpenAI 官方的 chat completions API,默认基于 gpt-3.5-turbo 模型 (官方、稳定,但不免费)unofficial: 使用一个非官方的代理服务器以绕过 Cloudflare 访问 ChatGPT 网页版的后端 API (使用真实的 ChatGPT,非常轻量级,但依赖第三方服务器并且受速率限制)browser (不推荐使用): 使用 Puppeteer 访问官方的 ChatGPT 网页版 (使用真实的ChatGPT,但非常不稳定、耗费资源,并且容易出错)Warning
有传言称,如果您继续使用
unofficial和browserAPI,OpenAI 可能会封禁您的账户。请自行决定是否使用。
要开始使用,请按照以下步骤操作:
config/ 文件夹下创建 local.json。可以将 config/default.json 复制为模板。local.json。local.json 中的设置将覆盖 default.json 中的默认设置。api.type 设置为 official。然后提供您的OpenAI API密钥和其他设置。您可以参考这里获取更多详细信息。请注意,这将消耗您的账户余额。api.type 设置为 unofficial。然后提供您的 OpenAI 访问令牌 (如何获取访问令牌?) 和其他设置。您可以参考这里获取更多详细信息。api.type 设置为 browser。然后提供 OpenAI / Google / Microsoft 凭证和其他设置。您可以参考这里和这里获取更多详细信息。请确保您已安装基于 Chromium 的浏览器。然后,您可以使用以下命令启动机器人:
pnpm install
pnpm build && pnpm start
请按以下步骤开始:
config 的文件夹,并在其中创建一个 local.json 文件。您可以按照“选项 1: Node”中的说明自定义设置。运行以下命令启动机器人:
shell
docker run -d -v ./config:/app/config raineggplant/chatgpt-telegram-bot:latest
这将拉取最新的只支持无浏览器 API 的镜像。如果您想使用基于浏览器的 API,则可以将标签后缀添加为 -browser,例如 raineggplant/chatgpt-telegram-bot:latest-browser。
要在 Telegram 中与机器人聊天,您可以:
/chat 或您在 JSON 配置文件中指定的命令)Note 在将机器人添加到群组之前,请确保已启用机器人的隐私模式,否则它将回复群组中的每条消息。
该机器人还有几个命令。
/help:显示帮助信息。/reset:重置当前聊天线程并开始新线程。/reload(需要管理员权限,只适用于基于浏览器的 API):刷新 ChatGPT 会话。Note 在群组中使用命令时,请确保在命令之后包含提及,例如
/help@chatgpt_bot。
您可以使用 Xvfb 在无头服务器上创建虚拟帧缓冲区,并运行以下程序:
xvfb-run -a --server-args="-screen 0 1280x800x24 -nolisten tcp -dpi 96 +extension RANDR" pnpm start
我们建议您使用 Google 验证,以避免复杂的登录 Recaptchas。如果您使用 OpenAI 帐户,则可能需要使用 nopecha 或 2captcha 或手动解决Recaptcha(通过使用 x11vnc 连接到显示服务器)。有关 CAPTCHA 解决的更多详细信息,请参阅API存储库。
如果您觉得这个项目有用,请给它一个 star ⭐。
$ claude mcp add chatgpt-telegram-bot \
-- python -m otcore.mcp_server <graph>