该部分完整配置参考:
点此展开
[response]
mode = "mixed"
buffer_delay = 15
default_ai = "chatgpt-web"
# 匹配指令成功但没有对话内容时发送的消息
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 = "抱歉,当前服务器压力有点大,请稍后再找我吧!"
# 重置会话时发送的消息
reset = "会话已重置。"
# 回滚成功时发送的消息
rollback_success = "已回滚至上一条对话,你刚刚发的我就忘记啦!"
# 回滚失败时发送的消息
rollback_fail = "回滚失败,没有更早的记录了!"
quote = true
timeout = 30.0
timeout_format = "我还在思考中,请再等一下~"
max_timeout = 600
cancel_wait_too_long = "啊哦,这个问题有点难,让我想了好久也没想明白。试试换个问法?"
max_queue_size = 10
queue_full = "抱歉!我现在要回复的人有点多,暂时没有办法接收新的消息了,请过会儿再给我发吧!"
queued_notice_size = 3
queued_notice = "消息已收到!当前我还有{queue_size}条消息要回复,请您稍等。"
下面介绍各个配置的含义。
请注意
所有的配置项都要写在 [response]
的后面,你只需要写一个 [response]
,然后跟着配置项和参数即可。
响应模式
[response]
# 默认的响应模式
mode = "mixed"
目前支持三种响应模式:
mixed
- 图文混合模式
在这个模式下,普通文本会以文字形式发送,而 Markdown、公式等富文本会以图片形式发送。
text
- 文本模式
在这个模式下,消息会全部以文字的形式发送。
需要注意的是,在 QQ 群中,由于腾讯风控比较严格,文字消息可能会发送失败。此时机器人会尝试使用图片模式来重新发送内容。
image
- 图片模式
在这个模式下,机器人的消息会渲染成图片再发送。
有关渲染成图片的有关设置请阅读:
文字转图片
除此之外,你也可以在聊天窗口发送命令来切换响应模式,关于这部分的操作请阅读指令章节。
分段发送
有些时候,AI 生成回复所花费的时间过长。 为了避免长时间的等待,我们加入了分段发送功能。
[response]
# 分段发送延迟
# 设置为 0 关闭分段发送功能
buffer_delay = 15
这个功能会每隔一段时间将 AI 生成的内容发送给用户,参数的单位为秒。
如果你要开启这个功能,建议把参数设置为 15 或以上,以免出现 BUG 和刷屏。
如果你把参数设置成 0,即表示关闭分段发送功能,消息会等待 AI 全部生成完毕以后再回复。
默认语言模型
你可以在配置文件中指定默认使用的语言模型。
默认情况下,程序会根据已经接入的语言模型设置,自动选择语言模型(不要钱的优先)。
[response]
default_ai = "chatgpt-web"
可以填的参数:
chatgpt-api
- API 版 ChatGPT (GPT3.5-turbo)
bing-c
- New Bing (新必应对话风格-创造力)
bing-p
- New Bing (新必应对话风格-精确)
bing-b
- New Bing (新必应对话风格-平衡)
chatglm-api
- 清华 ChatGLM-API 接口
poe-claude2
- POE Claude2 模型
poe-claude
- POE Claude 模型
poe-chatgpt
- POE ChatGPT 模型
poe-nutria
- POE Dragonfly 模型
引用发送的消息
你可以设置机器人在回复时引用发送的消息,方便定位上下文。
[response]
quote = true
消息排队
因为聊天是有上下文的,机器人必须一条一条地处理发送过来的消息,才能保证上下文的连贯性。
当消息发送过多,机器人还没来得及反应时,后来的消息会加入到一个队列中等待。
[response]
# 等待处理的消息的最大数量,如果要关闭此功能,设置为 0
max_queue_size = 10
# 队列满时的提示
queue_full = "抱歉!我现在要回复的人有点多,暂时没有办法接收新的消息了,请过会儿再给我发吧!"
# 新消息加入队列会发送通知的长度最小值
queued_notice_size = 3
# 新消息进入队列时,发送的通知。 queue_size 是当前排队的消息数
queued_notice = "消息已收到!当前我还有{queue_size}条消息要回复,请您稍等。"
消息等待
如果语言模型太久没有响应,机器人可以发送一段消息安抚用户。
[response]
# 发送下面那个提醒之前的等待时间
timeout = 30.0
# 超过响应时间时要发送的提醒
timeout_format = "我还在思考中,请再等一下~"
max_timeout = 600
# 对于每个提问的最长等待时间,超过此时间不再等待
cancel_wait_too_long = "啊哦,这个问题有点难,让我想了好久也没想明白。试试换个问法?"
# 超过最长等待时间后发送的信息
当超过最长等待时间时,机器人会取消这次语言模型的生成请求。
其他消息提示
[response]
# 匹配指令成功但没有对话内容时发送的消息
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 = "抱歉,当前服务器压力有点大,请稍后再找我吧!"
# 重置会话时发送的消息
reset = "会话已重置。"
# 回滚成功时发送的消息
rollback_success = "已回滚至上一条对话,你刚刚发的我就忘记啦!"
# 回滚失败时发送的消息
rollback_fail = "回滚失败,没有更早的记录了!"