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 回复中断 #200

Closed uJZk closed 2 months ago

uJZk commented 1 year ago

版本号

描述问题 gpt-4 回复不完整,差不多回复 60 - 70 字左右就会停止输出,发生中断。 经测试 gpt-3.5-turbo 不会发生这个问题。

预期行为 可以完整地完成回复。

截图 截图1 为 gpt-4 的回复: gpt-4

截图2 为 gpt-3.5-turbo 的回复: gpt-3 5-turbo

其他信息 ‘’‘ # gpt-4 所使用的 WRANGLER_TOML # name = "gpt" compatibility_date = "2023-03-14" main = "./dist/index.js" workers_dev = true kv_namespaces = [ { binding = "DATABASE", id = "..." } ]

[vars] API_KEY = "..." TELEGRAM_AVAILABLE_TOKENS = "...:..." CHAT_WHITE_LIST = "..." I_AM_A_GENEROUS_PERSON = "false" AUTO_TRIM_HISTORY = "true" MAX_HISTORY_LENGTH = "100" MAX_TOKEN_LENGTH = "8000" CHAT_MODEL = "gpt-4" ENABLE_USAGE_STATISTICS = "true" HIDE_COMMAND_BUTTONS = "" DEBUG_MODE = "false" STREAM_MODE = "false"

# 群组相关配置 # GROUP_CHAT_BOT_ENABLE = "true" # TELEGRAM_BOT_NAME = "" # GROUP_CHAT_BOT_SHARE_MODE = "false" # CHAT_GROUP_WHITE_LIST = "" ’‘’

uJZk commented 1 year ago

我的也是,怎么解决?

我没能解决这个问题,猜测 gpt-4 要更长的 timeout。

TBXark commented 1 year ago

现在写的是5分钟的超时时间,可能是cloudflare限制,就算代码写了也没办法生效。

uJZk commented 1 year ago

现在写的是5分钟的超时时间,可能是cloudflare限制,就算代码写了也没办法生效。

奇怪的是 cloudflare 的管理面板没有统计到错误,超时不算错误吗?

TBXark commented 1 year ago

你倒是可以看看实时日志倒是知道有没有超时

uJZk commented 1 year ago

你倒是可以看看实时日志倒是知道有没有超时

你好,我应该如何查看日志?打开 debug 吗?我对 Worker 不熟悉。

TBXark commented 1 year ago
image
uJZk commented 1 year ago

{ "outcome": "ok", "scriptName": "gpt", "exceptions": [], "logs": [ { "message": [ { "API_KEY": [ "sk-" ], "CHAT_MODEL": "gpt-4", "TELEGRAM_AVAILABLE_TOKENS": [ ":" ], "TELEGRAM_BOT_NAME": [], "I_AM_A_GENEROUS_PERSON": false, "CHAT_WHITE_LIST": [ "" ], "CHAT_GROUP_WHITE_LIST": [], "GROUP_CHAT_BOT_ENABLE": true, "GROUP_CHAT_BOT_SHARE_MODE": false, "AUTO_TRIM_HISTORY": true, "MAX_HISTORY_LENGTH": 100, "MAX_TOKEN_LENGTH": 8000, "GPT3_TOKENS_COUNT": false, "STREAM_MODE": true, "SAFE_MODE": true, "SYSTEM_INIT_MESSAGE": "你是一个得力的助手", "SYSTEM_INIT_MESSAGE_ROLE": "assistant", "ENABLE_USAGE_STATISTICS": true, "HIDE_COMMAND_BUTTONS": [ "/role" ], "SHOW_REPLY_BUTTON": false, "UPDATE_BRANCH": "master", "BUILD_TIMESTAMP": 1683647702, "BUILD_VERSION": "60ca629", "I18N": { "env": { "system_init_message": "你是一个得力的助手" }, "utils": { "not_supported_configuration": "不支持的配置项或数据类型错误" }, "message": { "loading": "加载中", "not_supported_chat_type_message": "暂不支持非文本格式消息" }, "command": { "help": { "summary": "当前支持以下命令:\n", "help": "获取命令帮助", "new": "发起新的对话", "start": "获取你的ID, 并发起新的对话", "img": "生成一张图片, 命令完整格式为 /img 图片描述, 例如/img 月光下的沙滩", "version": "获取当前版本号, 判断是否需要更新", "setenv": "设置用户配置,命令完整格式为 /setenv KEY=VALUE", "delenv": "删除用户配置,命令完整格式为 /delenv KEY", "usage": "获取当前机器人的用量统计", "system": "查看当前一些系统信息", "role": "设置预设的身份", "redo": "重做上一次的对话, /redo 加修改过的内容 或者 直接 /redo", "echo": "回显消息", "bill": "查看当前账单" }, "role": { "not_defined_any_role": "还未定义任何角色", "help": "格式错误: 命令完整格式为 /role 操作\n当前支持以下操作:\n /role show 显示当前定义的角色.\n /role 角色名 del 删除指定名称的角色.\n /role 角色名 KEY=VALUE 设置指定角色的配置.\n 目前以下设置项:\n SYSTEM_INIT_MESSAGE:初始化消息\n OPENAI_API_EXTRA_PARAMS:OpenAI API 额外参数,必须为JSON", "delete_role_success": "删除角色成功", "update_role_success": "更新配置成功" }, "img": { "help": "请输入图片描述。命令完整格式为 /img 狸花猫" }, "new": { "new_chat_start": "新的对话已经开始" }, "setenv": { "help": "配置项格式错误: 命令完整格式为 /setenv KEY=VALUE", "update_config_success": "更新配置成功" }, "version": {}, "usage": { "usage_not_open": "当前机器人未开启用量统计", "current_usage": "📊 当前机器人用量\n\nTokens:\n", "no_usage": "- 暂无用量" }, "permission": { "not_authorized": "身份权限验证失败" }, "bill": {} } }, "LANGUAGE": "zh-cn", "DEBUG_MODE": false, "DEV_MODE": false, "TELEGRAM_API_DOMAIN": "https://api.telegram.org", "OPENAI_API_DOMAIN": "https://api.openai.com" } ], "level": "log", "timestamp": 1685356148757 }, { "message": [ "{\"update_id\":,\"message\":{\"message_id\":,\"from\":{\"id\":,\"is_bot\":false,\"first_name\":\"\",\"username\":\"njmkdt\",\"language_code\":\"zh-hans\"},\"chat\":{\"id\":,\"first_name\":\"\",\"username\":\"\",\"type\":\"private\"},\"date\":1685356088,\"text\":\"共济会\"}}" ], "level": "log", "timestamp": 1685356148757 }, { "message": [ { "chat_id": , "reply_to_message_id": null, "parse_mode": "Markdown", "editMessageId": null } ], "level": "log", "timestamp": 1685356148757 }, { "message": [ { "currentBotId": "", "currentBotToken": ":", "currentBotName": null, "chatHistoryKey": "history::", "chatLastMessageIDKey": "last_message_id:history::", "configStoreKey": "user_config::", "groupAdminKey": null, "usageKey": "usage:", "chatType": "private", "chatId": , "speakerId": , "role": null } ], "level": "log", "timestamp": 1685356148757 }, { "message": [ { "SYSTEM_INIT_MESSAGE": "你是一个得力的助手", "OPENAI_API_EXTRA_PARAMS": {}, "OPENAI_API_KEY": null } ], "level": "log", "timestamp": 1685356148796 } ], "eventTimestamp": 1685356148750, "event": { "request": { "url": "https://***:REDACTED/webhook", "method": "POST", "headers": { "accept-encoding": "", "cf-connecting-ip": "", "cf-ipcountry": "NL", "cf-ray": "", "cf-visitor": "{\"scheme\":\"https\"}", "connection": "Keep-Alive", "content-length": "286", "content-type": "application/json", "host": "gpt.isvs.workers.dev", "x-forwarded-proto": "https", "x-real-ip": "" }, "cf": { "clientTcpRtt": 1, "longitude": "", "latitude": "", "tlsCipher": "AEAD-AES256-GCM-SHA384", "continent": "EU", "asn": 62041, "clientAcceptEncoding": "gzip, deflate", "country": "NL", "isEUCountry": "1", "tlsClientAuth": { "certIssuerDNLegacy": "", "certIssuerSKI": "", "certSubjectDNRFC2253": "", "certSubjectDNLegacy": "", "certFingerprintSHA256": "", "certNotBefore": "", "certSKI": "", "certSerial": "", "certIssuerDN": "", "certVerified": "NONE", "certNotAfter": "", "certSubjectDN": "", "certPresented": "0", "certRevoked": "0", "certIssuerSerial": "", "certIssuerDNRFC2253": "", "certFingerprintSHA1": "" }, "tlsExportedAuthenticator": { "clientFinished": "REDACTED", "clientHandshake": "REDACTED", "serverHandshake": "REDACTED", "serverFinished": "***" }, "tlsVersion": "TLSv1.3", "colo": "AMS", "timezone": "Europe/Amsterdam", "city": "Amsterdam", "edgeRequestKeepAliveStatus": 1, "requestPriority": "", "httpProtocol": "HTTP/1.1", "region": "North Holland", "regionCode": "NH", "asOrganization": "Telegram Messenger Inc", "postalCode": "1012" } }, "response": { "status": 200 } }, "id": 0 }

daiaji commented 1 year ago

咋回事啊?我也这样。

bincat233 commented 1 year ago

现在写的是5分钟的超时时间,可能是cloudflare限制,就算代码写了也没办法生效。

可是没到五分钟呀, 只有两分钟左右

uJZk commented 1 year ago

现在写的是5分钟的超时时间,可能是cloudflare限制,就算代码写了也没办法生效。

最多 30 秒

daiaji commented 1 year ago

现在写的是5分钟的超时时间,可能是cloudflare限制,就算代码写了也没办法生效。

最多 30 秒

确实这么多限制。 和下载差不多。 也是最多30秒

bincat233 commented 1 year ago

我不太了解机制, 不过可不可以在断开之后接着之前断开的地方继续生成?

Silentely commented 1 year ago

一样、我这边最后一直卡在加载中

xiangyingchang commented 11 months ago

我用的gpt3.5也遇到这个问题,稍微长一点就会显示loading,不知道有没有解决方式

TBXark commented 11 months ago

worker超时这个在cliudflare目前机制下应该是解决不了,可以关闭流模式试一试或者在设定角色的时候规定他每次回答字数不超多多少字。

xiangyingchang commented 11 months ago

worker超时这个在cliudflare目前机制下应该是解决不了,可以关闭流模式试一试或者在设定角色的时候规定他每次回答字数不超多多少字。

大佬你好,好像不是这个原因,是最近才开始出现的。使用OpenAI的3.5模型会频繁遇到(我没有plus,所以确定不了4有没有问题);而用Azure是OK的,方便时可以查一下。我不太懂代码,如果需要我提供什么信息,可以随时联系 IMG_2327

xiangyingchang commented 11 months ago

最近发生次数还挺多的: img_v2_935a2053-71e2-4f4f-af37-777fb7de0ebg

xiangyingchang commented 11 months ago

再补充一下,只有OpenAI 遇到这个问题,Azure OpenAI 是正常的,不知道这里有什么额外的差异。

TBXark commented 2 months ago

dev分支 针对消息分块发送和telegram bot发送频率进行了优化