TBXark / ChatGPT-Telegram-Workers

Deploy your own Telegram ChatGPT bot on Cloudflare Workers with ease.
https://t.me/ChatGPT_Telegram_Workers
MIT License
3.41k stars 819 forks source link

[BUG] 部署 GPT-4 版本后端后,API会一直在固定时间间隔后被反复请求 #140

Closed mengwangme closed 1 year ago

mengwangme commented 1 year ago

版本号

你可以在代码编辑器中前几行找到, 它们分别是BUILD_TIMESTAMPBUILD_VERSION, 这俩个数据对于我们定位问题非常重要]

  • ts: 1678945730
  • sha: 9e23846

描述问题

配置变量 CHAT_MODEL 为 gpt-4后,API就一直在被恶意反复请求,请求间隔固定且为5分钟。请问出现这种原因的现象是什么呢? CHAT_WHITE_LIST 也已经设置,应该不存在他人调用 bot 的可能。

复现问题 重现问题的步骤:

  1. 进入“...”
  2. 点击“...”
  3. 发送到“...”

预期行为 简要而清晰地说明预期的行为。

截图

Screenshot 2023-03-28 at 13 42 02

其他信息 提供与问题相关的任何其他信息。

TBXark commented 1 year ago

有可能某个提问导致workers cpu 超时,导致回调失败了 TG一直在重试

TBXark commented 1 year ago

你要不要试一下先把白名单清空,群白名单也清空。 然后让他回调成功一次。过五分钟再恢复。

mengwangme commented 1 year ago

有可能某个提问导致workers cpu 超时,导致回调失败了 TG一直在重试

可能是这个原因,后面一直发 Prompt,Bot 也没有任何反应了。在后面的版本,出现超时这种问题可以提醒一下吗?

你要不要试一下先把白名单清空,群白名单也清空。 然后让他回调成功一次。过五分钟再恢复。

为什么把白名单清空就能成功回调呢? 我已经把这个 Service 给删除了,不能验证是否可以了。之后遇到同样问题的人可以试一下。

mengwangme commented 1 year ago

@TBXark 你好,今天在另外一个Bot上遇到了类似的问题,让其翻译一段300字左右的日语,但是没有任何回复,后续发送信息继续也没有任何响应。 但是在KV数据库里却有返回的答案记录。

在尝试清空白名单的操作后,确实可以正常使用了。这是代码的Bug吗?

TBXark commented 1 year ago

@mengwangme 就是workers处理超时然后报错给telegram,然后重试然后还是超时,无限循环。workers没有给一个超时处理的方法,目前是无解。

TBXark commented 1 year ago

@mengwangme 清空白名单的操作后,workers处理起来就会非常快,里面给刚才报错的消息返回一个成功处理的结果(没有权限)。然后tg就不会重试这条消息了。

TBXark commented 1 year ago

遇到超时假死可以尝试设置环境变量 GPT3_TOKENS_COUNTfalse 加快处理速度。

mengwangme commented 1 year ago

@TBXark 谢谢回答,我现在关闭这个问题。

binux commented 1 year ago

我也遇到了这个问题,严重的时候一天被刷了$8。 看了一下代码,或许可以在history 中记录一下 "message_id",检查最后一个 history 的 message_id 是否一致,如果遇到重放的,,直接返回错误?

TBXark commented 1 year ago

最新版master分支1.5.0添加了这个功能 你可以更新一下


From: Roy Binux @.> Sent: Monday, May 8, 2023 11:24:19 AM To: TBXark/ChatGPT-Telegram-Workers @.> Cc: TBXark @.>; Mention @.> Subject: Re: [TBXark/ChatGPT-Telegram-Workers] [BUG] 部署 GPT-4 版本后端后,API会一直在固定时间间隔后被反复请求 (Issue #140)

我也遇到了这个问题,严重的时候一天被刷了$8。 看了一下代码,或许可以在history 中记录一下 "message_id",检查最后一个 history 的 message_id 是否一致,如果遇到重放的,,直接返回错误?

― Reply to this email directly, view it on GitHubhttps://github.com/TBXark/ChatGPT-Telegram-Workers/issues/140#issuecomment-1537685959, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACISXI3N3YIGCNN4OFZCSFTXFBROHANCNFSM6AAAAAAWKAQMQU. You are receiving this because you were mentioned.Message ID: @.***>