lss233 / chatgpt-mirai-qq-bot

🚀 一键部署!真正的 AI 聊天机器人!支持ChatGPT、文心一言、讯飞星火、Bing、Bard、ChatGLM、POE,多账号,人设调教,虚拟女仆、图片渲染、语音发送 | 支持 QQ、Telegram、Discord、微信 等平台
GNU Affero General Public License v3.0
13.37k stars 1.57k forks source link

[BUG] 成功登录到chatgtp mirai 但不回复 #341

Closed d4renk closed 1 year ago

d4renk commented 1 year ago

提交 issue 前,请先确认:

表现
描述 BUG 的表现情况

运行环境:

复现步骤

~/a/chatgpt-mirai-qq-bot browser-version ?1 ❯ python3.9 bot.py             8m 29s app@akg 14:15:39
2023-03-13 14:15:41.842 | ERROR    | config:scan_presets:267 - 检查预设:正常 <==> presets/default.txt [失败:文件不存在]
2023-03-13 14:15:41.843 | SUCCESS  | config:scan_presets:265 - 检查预设:猫娘 <==> presets/catgirl.txt [成功]
2023-03-13 14:15:41.843 | SUCCESS  | config:scan_presets:278 - 注册预设:catgirl <==> ./presets/catgirl.txt [成功]
2023-03-13 14:15:41.845 | SUCCESS  | config:scan_presets:278 - 注册预设:预设模板 <==> ./presets/预设模板.txt [成功]
2023-03-13 14:15:41.846 | INFO     | __main__:<module>:16 - 检测到 mirai 配置,将以 mirai 模式启动……
2023-03-13 14:15:42.090 | ERROR    | utils.text_to_img:<module>:49 - 未检测到 wkhtmltoimage,无法进行 Markdown 渲染!
2023-03-13 14:15:42.129 | INFO     | launart.manager:launch_blocking:479 - Starting launart main task...
2023-03-13 14:15:42.130 | INFO     | launart.manager:launch:331 - Launching 5 components as async task...
2023-03-13 14:15:42.288 | INFO     | graia.ariadne.service:base_telemetry:108 - 
    _         _           _
   / \   _ __(_) __ _  __| |_ __   ___
  / _ \ | '__| |/ _` |/ _` | '_ \ / _ \
 / ___ \| |  | | (_| | (_| | | | |  __/
/_/   \_\_|  |_|\__,_|\__,_|_| |_|\___|

graia-amnesia: 0.7.1
graia-ariadne: 0.11.1
graia-broadcast: 0.19.1
launart: 0.6.3
statv: 0.3.2
2023-03-13 14:15:42.292 | SUCCESS  | launart.manager:launch:384 - Layer #1:[cache.client/memcache, http.client/aiohttp] preparation completed.
2023-03-13 14:15:42.293 | INFO     | ariadne_bot:start_background:129 - OpenAI 服务器登录中……
2023-03-13 14:15:42.294 | INFO     | manager.bot:__check_proxy:172 - [代理测试] 正在检查代理配置:http://127.0.0.1:7890
2023-03-13 14:15:43.078 | SUCCESS  | manager.bot:__check_proxy:181 - [代理测试] 连接成功!
2023-03-13 14:15:43.079 | INFO     | manager.bot:login_openai:110 - 正在登录第 1 个 OpenAI 账号
2023-03-13 14:15:43.081 | INFO     | manager.bot:__login_openai_apikey:255 - 尝试使用 api_key 登录中...
2023-03-13 14:15:43.083 | INFO     | manager.bot:__check_proxy:172 - [代理测试] 正在检查代理配置:http://127.0.0.1:7890
2023-03-13 14:15:43.832 | SUCCESS  | manager.bot:__check_proxy:181 - [代理测试] 连接成功!
2023-03-13 14:15:44.833 | SUCCESS  | manager.bot:login_openai:125 - 登录成功!
2023-03-13 14:15:44.834 | SUCCESS  | manager.bot:login_openai:142 - 成功登录 1/1 个 OpenAI 账号!
2023-03-13 14:15:44.834 | INFO     | manager.bot:login:81 - AI 类型:chatgpt-web - 可用账号: 0 个
2023-03-13 14:15:44.835 | INFO     | manager.bot:login:81 - AI 类型:openai-api - 可用账号: 1 个
2023-03-13 14:15:44.836 | INFO     | manager.bot:login:81 - AI 类型:bing-cookie - 可用账号: 0 个
2023-03-13 14:15:44.837 | INFO     | ariadne_bot:start_background:134 - OpenAI 服务器登录成功
2023-03-13 14:15:44.837 | INFO     | ariadne_bot:start_background:135 - 尝试从 Mirai 服务中读取机器人 QQ 的 session key……
2023-03-13 14:15:44.839 | INFO     | ariadne_bot:start_background:141 - [提示] 当前为正向 ws + http 模式,请确保你的 mirai api http 设置了正确的 ws 和 http 配置
2023-03-13 14:15:44.841 | INFO     | ariadne_bot:start_background:142 - [提示] 配置不正确或 Miria 未登录 QQ 都会导致 【Websocket reconnecting...】 提示的出现。
2023-03-13 14:15:44.842 | SUCCESS  | launart.manager:launch:384 - Layer #3:[elizabeth.service] preparation completed.
2023-03-13 14:15:44.843 | INFO     | launart.manager:launch:389 - All components prepared, start blocking phase.
2023-03-13 14:15:44.856 | SUCCESS  | graia.ariadne.connection.ws:_:62 - Successfully got session key
2023-03-13 14:15:50.018 | INFO     | graia.ariadne.model:log:82 - ***: [RECV][~(****)] -> 哈哈哈哈哈哈

预期行为
描述你认为正常情况下应该看见的情况

截图
相关日志、聊天记录的截图,没有可跳过

其他内容
此处填写其他内容,没有可跳过

d4renk commented 1 year ago

文本模式 图片模式都切换过了 还是不行

lss233 commented 1 year ago

看着没问题,估计你配置文件设置前缀了。

d4renk commented 1 year ago

看着没问题,估计你配置文件设置前缀了。

我没有设置会话前缀 这个是配置文件

# 这里是 ChatGPT for QQ 的所有配置文件
# 请注意:以 "#" 开头的文本均为注释
# 不会被程序读取
# 如果你想要使用某个设置,请确保前面没有 "#" 号
[mirai]
# Mirai 相关设置

qq =  ***

manager_qq = ***

# 以下设置如果不懂 无需理会

api_key = "yirimirai" 
# mirai-http-api 中的 verifyKey
# mirai api http 反向连接模式
# 使用此模式可以将本项目与 mirai 分离在两个不同服务器部署
#reverse_ws_host = "localhost"
#reverse_ws_port = 8554
# mirai api http 正向连接模式
# 使用此模式时需注释上面的反向连接模式
http_url = "http://localhost:8080"
ws_url = "http://localhost:8080"
# ==== OpenAI 账号部分开始
[openai]
# OpenAI 相关设置
# 自 3月9日 开始,不设置此项将无法正常使用 browserless 模式下的网页版 ChatGPT
browserless_endpoint = "https://bypass.duti.tech/"

# 你可以用多种不同的方式登录 OpenAI
# 你也可以登录很多个不同的账号(无限多个)
# 下面的例子会向你演示使用不同方式登录时
# 配置文件的写法

# 第 1 个 OpenAI 账号
# 使用 access_token 登录
# 优点:
# 1. 适用于在国内网络环境
# 2. 适用于通过 Google / 微软 注册的 OpenAI 账号
# 3. 登录过程较快
# 缺点:
# 1. 有效期为 30 天,到期后需更换
#!!!!!!!
# [[openai.accounts]]
# mode = "browserless"

# # 你的 access_token,登录 OpenAI 后访问`https://chat.openai.com/api/auth/session`获取
# access_token = "***"
# auto_remove_old_conversations = true
# paid = false
# proxy="http://127.0.0.1:7890"
# title_pattern="qq-{session_id}"
# 下面是所有的 OpenAI 账号都可以有的设置
# ========= 开始 ========

# # 如果你在国内,需要配置代理
# proxy="http://127.0.0.1:7890"

# # 使用 ChatGPT Plus(plus 用户此项设置为 true 使用 legacy 模型)
# paid = false

# 是否开启标题自动重命名
# 若为空或保持注释即不开启
# 支持的变量: {session_id} - 此对话对应的上下文 ID,若产生在好友中,则为好友 QQ 号,若产生在群聊中,则为群号
# 具体见 README 中的介绍
# title_pattern="qq-{session_id}"

# 是否自动删除旧的对话,开启后用户发送重置对话时会自动删除以前的会话内容
# auto_remove_old_conversations = true

# ===== 结束 =====

# 第 2 个 OpenAI 账号
# 使用 session_token 登录
# 此方法已很少人使用
# 优点:
# 1. 适用于通过 Google / 微软 注册的 OpenAI 账号
# 缺点:
# 1. 有效期较短,具体时间未知
# 2. 登录过程需要几秒钟时间
# [[openai.accounts]]
# mode = "browserless"

# # 你的 session_token,使用方法见 README
# session_token = "一串 ey 开头的东西"

# # 如果你在国内,需要配置代理
# proxy="http://127.0.0.1:7890"

# # 使用 ChatGPT Plus(plus 用户此项设置为 true 使用 legacy 模型)
# paid = false

# # 是否开启标题自动重命名
# title_pattern="qq-{session_id}"

# # 是否自动删除旧的对话
# auto_remove_old_conversations = true

# 第 3 个 OpenAI 账号
# 使用 邮箱+密码 登录
# 优点:
# 1. 自动刷新 access_token 和 session_token,无需人工操作
# 缺点:
# 1. 需要国外网络环境
# 2. 如果使用代理,需要确保你的代理未被 OpenAI 封禁
# [[openai.accounts]]
# mode = "browserless"

# 你的 OpenAI 邮箱
# email = "xxxx" 
# 你的 OpenAI 密码
# password = "xxx"

# 第 4 个 OpenAI 账号
# 使用 api key 登录
# 当你设置了 API Key 之后
# 你就可以使用 OpenAI 中收费的 ChatGPT API、AI 画图等功能
# 优点:
# 1. 响应快
# 缺点:
# 1. 烧钱
[[openai.accounts]]
# 你的 API key,可以在这里看: https://platform.openai.com/account/api-keys
api_key="***"
# 如果你在国内,需要配置代理
proxy="http://127.0.0.1:7890"
paid = false

# 是否开启标题自动重命名
title_pattern="qq-{session_id}"

# 是否自动删除旧的对话
auto_remove_old_conversations = true

# === OpenAI 账号部分结束

# === Bing 设置部分开始
# 如果你没有 Bing 账号,可以直接删除这部分
# [bing]

# 第 1 个 Bing 账号
# 理论上,你可以添加无限多个 Bing 账号。  
# 多账号的配置方法和 OpenAI 的一样。
# [[bing.accounts]]
# 你的账号 Cookie,获取方法见 README
# cookie_content = 'MUID=xxxxx; SRCHD=AF=xxxx; SRCHUID=V=2&GUID=xxxxxxxx;  MicrosoftApplicationsTelemetryDeviceId=xxxxxx-xxxx-xxxx-xxx-xxxxx; ...一串很长的文本...'
# === Bing 设置部分结束

[text_to_image]
# 文字转图片

# 是否强制开启,设置后所有的消息强制以图片发送,减小风控概率  
always = false

# 是否默认开启,设置后所有的消息默认以图片发送,减小风控概率  
default = false

# 字体大小
font_size = 30

# 图片宽度
width = 700

# 字体
font_path = "fonts/sarasa-mono-sc-regular.ttf" 

# [备用模式]起始点 X
offset_x = 50 

# [备用模式]起始点 Y
offset_y = 50 

[trigger]
# 配置机器人要如何响应,下面所有项均可选 (也就是可以直接删掉那一行)

# 全局聊天前缀,在群聊和私聊中,符合下面的前缀才会响应,可以自己增减
prefix = [ "",]

# 私聊聊天前缀,在私聊中,符合下面的前缀也会响应,可以自己增减
prefix_friend = [ "",]

# 群聊聊天前缀,在群聊中,符合下面的前缀也会响应,可以自己增减
prefix_group = [ "",]

# 直接和指定的 AI 对话(不切换AI)
# 此处的前缀是在上面的前缀之后的
# 例: 
# prefix = [ "ask" ]
# prefix_ai = { "bing-c" = ["bing"] }
# 则用户发送: ask bing 你好
# 则会直接把 “你好” 两个字发给 New Bing AI
prefix_ai = { "chatgpt-web" = ["gpt"], "bing-c" = ["bing"] }

# AI 画图的前缀
# 需要有 OpenAI 的 api_key 才能使用
prefix_image = ["画", "看"]
# 配置群里如何让机器人响应,"at" 表示需要群里 @ 机器人,"mention" 表示 @ 或者以机器人名字开头都可以,"none" 表示不需要
require_mention = "at"

# 重置会话的命令
reset_command = [ "重置会话",]

# 回滚会话的命令
rollback_command = [ "回滚会话",]

[response]
# 默认使用的 AI 类型,不填写时自动推测
# 目前支持的类型:
# chatgpt-web: 网页版 ChatGPT
# chatgpt-api: API 版 ChatGPT (GPT3.5-turbo)
# bing-c: New Bing (新必应对话风格-创造力)
# bing-p: New Bing (新必应对话风格-精确)
# bing-b: New Bing (新必应对话风格-平衡)
default_ai = "chatgpt-api"
# 匹配指令成功但没有对话内容时发送的消息
placeholder = "您好!我是 Assistant,一个由 OpenAI 训练的大型语言模型。我不是真正的人,而是一个计算机程序,可以通过文本聊天来帮助您解决问题。如果您有任何问题,请随时告诉我,我将尽力回答。\n如果您需要重置我们的会话,请回复`重置会话`。"

# 发生错误时要发送的消息
error_format = "出现故障!如果这个问题持续出现,请和我说“重置会话” 来开启一段新的会话,或者发送 “回滚会话” 来回溯到上一条对话,你上一条说的我就当作没看见。\n{exc}"

# 发生网络错误时发送的消息,请注意可以插入 {exc} 作为异常占位符
error_network_failure = "网络故障!连接 OpenAI 服务器失败,我需要更好的网络才能服务!\n{exc}"

# OpenAI 账号登录失效时的提示
error_session_authenciate_failed = "身份验证失败!无法登录至 ChatGPT 服务器,请检查账号信息是否正确!\n{exc}"

# OpenAI 提示 Too many requests(太多请求) 时的提示
error_request_too_many = "糟糕!当前收到的请求太多了,我需要一段时间冷静冷静。你可以选择“重置会话”,或者过一会儿再来找我!\n{exc}"

# 服务器提示 Server overloaded(过载) 时的提示
error_server_overloaded = "抱歉,当前服务器压力有点大,请稍后再找我吧!"

# 是否要回复触发指令的消息
quote = true

# 发送下面那个提醒之前的等待时间
timeout = 30.0

# 超过响应时间时要发送的提醒
timeout_format = "我还在思考中,请再等一下~"

# 重置会话时发送的消息
reset = "会话已重置。"

# 回滚成功时发送的消息
rollback_success = "已回滚至上一条对话,你刚刚发的我就忘记啦!"

# 回滚失败时发送的消息
rollback_fail = "回滚失败,没有更早的记录了!"

# 等待处理的消息的最大数量,如果要关闭此功能,设置为 0
max_queue_size = 10

# 队列满时的提示
queue_full = "抱歉!我现在要回复的人有点多,暂时没有办法接收新的消息了,请过会儿再给我发吧!"

# 新消息加入队列会发送通知的长度最小值
queued_notice_size = 3

# 新消息进入队列时,发送的通知。 queue_size 是当前排队的消息数
queued_notice = "消息已收到!当前我还有{queue_size}条消息要回复,请您稍等。"

[baiducloud]
# 是否启动百度云内容安全审核
# 注册地址: http://console.bce.baidu.com/ai/#/ai/antiporn/overview/index
check = false

# 百度云API_KEY 24位英文数字字符串
baidu_api_key = ""

# 百度云SECRET_KEY 32位的英文数字字符串
baidu_secret_key =""

# 不合规消息自定义返回
illgalmessage = "[百度云]请珍惜机器人,当前返回内容不合规"

[system]
# 是否自动同意进群邀请
accept_group_invite = true

# 是否自动同意好友请求
accept_friend_request = true

[presets]
# 切换预设的命令: 加载预设 猫娘
command = "加载预设 (\\w+)"

loaded_successful = "预设加载成功!"

[presets.keywords]
# 预设关键词 <-> 实际文件
"正常" = "presets/default.txt"
"猫娘" = "presets/catgirl.txt"

[ratelimit]
# 额度限制功能,可以在 wiki 中了解此功能的用法

# 额度使用达到此比例时进行警告
warning_rate = 0.8

# 警告消息
warning_msg = "\n\n警告:额度即将耗尽!\n目前已发送:{usage}条消息,最大限制为{limit}条消息/小时,请调整您的节奏。\n额度限制整点重置,当前服务器时间:{current_time}"

# 超额消息
exceed = "已达到额度限制,请等待下一小时继续和我对话。"
d4renk commented 1 year ago

用管理员qq 向机器人发送 重置会话 也没有回复

dellnoantechnp commented 1 year ago

同样的问题 能收Q消息,能正常登陆OpenAI 但是不回复 私聊 群at 都不行

d4renk commented 1 year ago

什么都没改 现在能正常响应 似乎是节点 或者是openai服务器故障

d4renk commented 1 year ago

同样的问题 能收Q消息,能正常登陆OpenAI 但是不回复 私聊 群at 都不行

你再试试 我什么都没改 自己恢复正常了