2022-12-10 17:43:33 +08:00
|
|
|
|
# 配置文件: 注释里标[必需]的参数必须修改, 其他参数根据需要修改, 但请勿删除
|
2022-12-09 00:01:49 +08:00
|
|
|
|
import logging
|
|
|
|
|
|
2022-12-10 17:43:33 +08:00
|
|
|
|
# [必需] Mirai的配置
|
2022-12-08 14:54:17 +08:00
|
|
|
|
# 请到配置mirai的步骤中的教程查看每个字段的信息
|
2022-12-20 22:29:24 +08:00
|
|
|
|
# adapter: 选择适配器,目前支持HTTPAdapter和WebSocketAdapter
|
2022-12-08 14:54:17 +08:00
|
|
|
|
# host: 运行mirai的主机地址
|
|
|
|
|
# port: 运行mirai的主机端口
|
|
|
|
|
# verifyKey: mirai-api-http的verifyKey
|
|
|
|
|
# qq: 机器人的QQ号
|
2023-01-02 12:06:12 +08:00
|
|
|
|
#
|
|
|
|
|
# 注意: QQ机器人配置不支持热重载及热更新
|
2022-12-07 16:48:32 +08:00
|
|
|
|
mirai_http_api_config = {
|
2022-12-21 14:17:57 +08:00
|
|
|
|
"adapter": "WebSocketAdapter",
|
2022-12-11 20:35:52 +08:00
|
|
|
|
"host": "localhost",
|
2022-12-08 12:06:04 +08:00
|
|
|
|
"port": 8080,
|
2022-12-11 20:35:52 +08:00
|
|
|
|
"verifyKey": "yirimirai",
|
|
|
|
|
"qq": 1234567890
|
2022-12-07 16:48:32 +08:00
|
|
|
|
}
|
|
|
|
|
|
2022-12-10 17:43:33 +08:00
|
|
|
|
# [必需] OpenAI的配置
|
2022-12-08 14:54:17 +08:00
|
|
|
|
# api_key: OpenAI的API Key
|
2023-03-03 14:12:53 +08:00
|
|
|
|
# http_proxy: 请求OpenAI时使用的代理,None为不使用,https和socks5暂不能使用
|
2022-12-15 17:52:41 +08:00
|
|
|
|
# 若只有一个api-key,请直接修改以下内容中的"openai_api_key"为你的api-key
|
2023-02-10 19:03:25 +08:00
|
|
|
|
#
|
2022-12-15 17:52:41 +08:00
|
|
|
|
# 如准备了多个api-key,可以以字典的形式填写,程序会自动选择可用的api-key
|
2023-01-31 12:48:55 +08:00
|
|
|
|
# 例如
|
|
|
|
|
# openai_config = {
|
|
|
|
|
# "api_key": {
|
|
|
|
|
# "default": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
|
|
|
# "key1": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
|
|
|
# "key2": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
|
|
|
# },
|
2023-03-03 14:12:53 +08:00
|
|
|
|
# "http_proxy": "http://127.0.0.1:12345"
|
2023-01-31 12:48:55 +08:00
|
|
|
|
# }
|
2022-12-07 16:48:32 +08:00
|
|
|
|
openai_config = {
|
2022-12-15 17:52:41 +08:00
|
|
|
|
"api_key": {
|
2023-02-09 21:02:07 +08:00
|
|
|
|
"default": "openai_api_key"
|
2022-12-15 17:52:41 +08:00
|
|
|
|
},
|
2023-03-03 14:12:53 +08:00
|
|
|
|
"http_proxy": None
|
2022-12-07 16:48:32 +08:00
|
|
|
|
}
|
|
|
|
|
|
2023-01-05 18:08:18 +08:00
|
|
|
|
# [必需] 管理员QQ号,用于接收报错等通知及执行管理员级别指令
|
2023-02-25 15:39:31 +08:00
|
|
|
|
# 支持多个管理员,可以使用list形式设置,例如:
|
|
|
|
|
# admin_qq = [12345678, 87654321]
|
2023-01-02 13:06:48 +08:00
|
|
|
|
admin_qq = 0
|
|
|
|
|
|
2022-12-26 23:30:37 +08:00
|
|
|
|
# 情景预设(机器人人格)
|
2022-12-12 17:21:37 +08:00
|
|
|
|
# 每个会话的预设信息,影响所有会话,无视指令重置
|
2022-12-12 14:00:50 +08:00
|
|
|
|
# 可以通过这个字段指定某些情况的回复,可直接用自然语言描述指令
|
2023-02-19 11:46:12 +08:00
|
|
|
|
# 例如:
|
|
|
|
|
# default_prompt = "如果我之后想获取帮助,请你说“输入!help获取帮助”"
|
2022-12-12 22:18:29 +08:00
|
|
|
|
# 这样用户在不知所措的时候机器人就会提示其输入!help获取帮助
|
2022-12-12 17:21:37 +08:00
|
|
|
|
# 可参考 https://github.com/PlexPt/awesome-chatgpt-prompts-zh
|
2023-02-19 11:46:12 +08:00
|
|
|
|
#
|
|
|
|
|
# 如果需要多个情景预设,并在运行期间方便切换,请使用字典的形式填写,例如
|
|
|
|
|
# default_prompt = {
|
|
|
|
|
# "default": "如果我之后想获取帮助,请你说“输入!help获取帮助”",
|
|
|
|
|
# "linux-terminal": "我想让你充当 Linux 终端。我将输入命令,您将回复终端应显示的内容。",
|
|
|
|
|
# "en-dict": "我想让你充当英英词典,对于给出的英文单词,你要给出其中文意思以及英文解释,并且给出一个例句,此外不要有其他反馈。",
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# 在使用期间即可通过指令:
|
|
|
|
|
# !reset [名称]
|
|
|
|
|
# 来使用指定的情景预设重置会话
|
|
|
|
|
# 例如:
|
|
|
|
|
# !reset linux-terminal
|
|
|
|
|
# 若不指定名称,则使用默认情景预设
|
|
|
|
|
#
|
|
|
|
|
# 也可以使用指令:
|
|
|
|
|
# !default <名称>
|
|
|
|
|
# 将指定的情景预设设置为默认情景预设
|
|
|
|
|
# 例如:
|
|
|
|
|
# !default linux-terminal
|
|
|
|
|
# 之后的会话重置时若不指定名称,则使用linux-terminal情景预设
|
2023-02-25 17:10:30 +08:00
|
|
|
|
#
|
|
|
|
|
# 还可以加载文件中的预设文字,使用方法请查看:https://github.com/RockChinQ/QChatGPT/wiki/%E5%8A%9F%E8%83%BD%E4%BD%BF%E7%94%A8#%E9%A2%84%E8%AE%BE%E6%96%87%E5%AD%97
|
2023-02-19 11:46:12 +08:00
|
|
|
|
default_prompt = {
|
|
|
|
|
"default": "如果我之后想获取帮助,请你说“输入!help获取帮助”",
|
|
|
|
|
}
|
2022-12-12 14:00:50 +08:00
|
|
|
|
|
2022-12-19 16:47:13 +08:00
|
|
|
|
# 群内响应规则
|
|
|
|
|
# 符合此消息的群内消息即使不包含at机器人也会响应
|
|
|
|
|
# 支持消息前缀匹配及正则表达式匹配
|
2023-01-05 21:09:03 +08:00
|
|
|
|
# 注意:由消息前缀(prefix)匹配的消息中将会删除此前缀,正则表达式(regexp)匹配的消息不会删除匹配的部分
|
2022-12-19 16:47:13 +08:00
|
|
|
|
# 前缀匹配优先级高于正则表达式匹配
|
|
|
|
|
# 正则表达式简明教程:https://www.runoob.com/regexp/regexp-tutorial.html
|
|
|
|
|
response_rules = {
|
2022-12-19 17:25:09 +08:00
|
|
|
|
"prefix": ["/ai", "!ai", "!ai", "ai"],
|
2022-12-24 10:02:04 +08:00
|
|
|
|
"regexp": [] # "为什么.*", "怎么?样.*", "怎么.*", "如何.*", "[Hh]ow to.*", "[Ww]hy not.*", "[Ww]hat is.*", ".*怎么办", ".*咋办"
|
2022-12-19 16:47:13 +08:00
|
|
|
|
}
|
|
|
|
|
|
2023-02-23 10:02:55 +08:00
|
|
|
|
# 消息忽略规则
|
|
|
|
|
# 适用于私聊及群聊
|
|
|
|
|
# 符合此规则的消息将不会被响应
|
|
|
|
|
# 支持消息前缀匹配及正则表达式匹配
|
|
|
|
|
# 此设置优先级高于response_rules
|
|
|
|
|
# 用以过滤mirai等其他层级的指令
|
|
|
|
|
# @see https://github.com/RockChinQ/QChatGPT/issues/165
|
|
|
|
|
ignore_rules = {
|
|
|
|
|
"prefix": ["/"],
|
|
|
|
|
"regexp": []
|
|
|
|
|
}
|
|
|
|
|
|
2022-12-19 16:07:02 +08:00
|
|
|
|
# 敏感词过滤开关,以同样数量的*代替敏感词回复
|
|
|
|
|
# 请在sensitive.json中添加敏感词
|
|
|
|
|
sensitive_word_filter = True
|
|
|
|
|
|
2023-02-10 19:03:25 +08:00
|
|
|
|
# 启动时是否发送赞赏码
|
|
|
|
|
# 仅当使用量已经超过2048字时发送
|
|
|
|
|
encourage_sponsor_at_start = True
|
|
|
|
|
|
2022-12-19 16:07:02 +08:00
|
|
|
|
# 每次向OpenAI接口发送对话记录上下文的字符数
|
2023-02-13 17:21:23 +08:00
|
|
|
|
# 最大不超过(4096 - max_tokens)个字符,max_tokens为下方completion_api_params中的max_tokens
|
2022-12-19 16:07:02 +08:00
|
|
|
|
# 注意:较大的prompt_submit_length会导致OpenAI账户额度消耗更快
|
2023-01-04 20:03:17 +08:00
|
|
|
|
prompt_submit_length = 1024
|
2022-12-19 16:07:02 +08:00
|
|
|
|
|
2023-03-03 00:23:44 +08:00
|
|
|
|
# OpenAI补全API的参数
|
|
|
|
|
# 请在下方填写模型,程序自动选择接口
|
|
|
|
|
# 现已支持的模型有:
|
|
|
|
|
#
|
|
|
|
|
# 'gpt-3.5-turbo'
|
|
|
|
|
# 'gpt-3.5-turbo-0301'
|
|
|
|
|
# 'text-davinci-003'
|
|
|
|
|
# 'text-davinci-002'
|
|
|
|
|
# 'code-davinci-002'
|
|
|
|
|
# 'code-cushman-001'
|
|
|
|
|
# 'text-curie-001'
|
|
|
|
|
# 'text-babbage-001'
|
|
|
|
|
# 'text-ada-001'
|
|
|
|
|
#
|
2022-12-19 16:07:02 +08:00
|
|
|
|
# 具体请查看OpenAI的文档: https://beta.openai.com/docs/api-reference/completions/create
|
2022-12-07 16:48:32 +08:00
|
|
|
|
completion_api_params = {
|
2023-03-03 00:25:26 +08:00
|
|
|
|
"model": "gpt-3.5-turbo",
|
2023-02-10 19:03:25 +08:00
|
|
|
|
"temperature": 0.9, # 数值越低得到的回答越理性,取值范围[0, 1]
|
2023-03-03 21:18:31 +08:00
|
|
|
|
"max_tokens": 1024, # 每次获取OpenAI接口响应的文字量上限, 不高于4096
|
2022-12-10 17:43:33 +08:00
|
|
|
|
"top_p": 1, # 生成的文本的文本与要求的符合度, 取值范围[0, 1]
|
2022-12-09 23:30:44 +08:00
|
|
|
|
"frequency_penalty": 0.2,
|
2022-12-19 16:07:02 +08:00
|
|
|
|
"presence_penalty": 1.0,
|
2022-12-07 22:27:05 +08:00
|
|
|
|
}
|
2022-12-07 22:50:49 +08:00
|
|
|
|
|
2022-12-27 22:52:53 +08:00
|
|
|
|
# OpenAI的Image API的参数
|
|
|
|
|
# 具体请查看OpenAI的文档: https://beta.openai.com/docs/api-reference/images/create
|
|
|
|
|
image_api_params = {
|
2022-12-28 00:05:25 +08:00
|
|
|
|
"size": "256x256", # 图片尺寸,支持256x256, 512x512, 1024x1024
|
2022-12-27 22:52:53 +08:00
|
|
|
|
}
|
|
|
|
|
|
2023-01-27 13:59:49 +08:00
|
|
|
|
# 群内回复消息时是否引用原消息
|
2023-01-01 17:20:54 +08:00
|
|
|
|
quote_origin = True
|
|
|
|
|
|
|
|
|
|
# 回复绘图时是否包含图片描述
|
|
|
|
|
include_image_description = True
|
|
|
|
|
|
2022-12-10 17:39:02 +08:00
|
|
|
|
# 消息处理的超时时间,单位为秒
|
2023-01-07 23:24:13 +08:00
|
|
|
|
process_message_timeout = 30
|
2022-12-07 23:37:52 +08:00
|
|
|
|
|
2023-02-14 18:34:10 +08:00
|
|
|
|
# [暂未实现] 群内会话是否启用多对象名称
|
2023-01-31 12:48:55 +08:00
|
|
|
|
# 若不启用,群内会话的prompt只使用user_name和bot_name
|
|
|
|
|
multi_subject = False
|
|
|
|
|
|
2022-12-19 16:07:02 +08:00
|
|
|
|
# 回复消息时是否显示[GPT]前缀
|
|
|
|
|
show_prefix = False
|
|
|
|
|
|
2022-12-08 14:54:17 +08:00
|
|
|
|
# 消息处理超时重试次数
|
2022-12-07 23:37:52 +08:00
|
|
|
|
retry_times = 3
|
|
|
|
|
|
2023-02-08 17:06:54 +08:00
|
|
|
|
# 消息处理出错时是否向用户隐藏错误详细信息
|
|
|
|
|
# 设置为True时,仅向管理员发送错误详细信息
|
|
|
|
|
# 设置为False时,向用户及管理员发送错误详细信息
|
|
|
|
|
hide_exce_info_to_user = False
|
|
|
|
|
|
|
|
|
|
# 消息处理出错时向用户发送的提示信息
|
|
|
|
|
# 仅当hide_exce_info_to_user为True时生效
|
|
|
|
|
# 设置为空字符串时,不发送提示信息
|
|
|
|
|
alter_tip_message = '出错了,请稍后再试'
|
|
|
|
|
|
2022-12-10 17:39:02 +08:00
|
|
|
|
# 每个会话的过期时间,单位为秒
|
2022-12-09 00:01:49 +08:00
|
|
|
|
# 默认值20分钟
|
|
|
|
|
session_expire_time = 60 * 20
|
|
|
|
|
|
2023-02-25 00:27:14 +08:00
|
|
|
|
# 会话限速
|
|
|
|
|
# 单会话内每分钟可进行的对话次数
|
|
|
|
|
# 若不需要限速,可以设置为一个很大的值
|
|
|
|
|
# 默认值60次,基本上不会触发限速
|
|
|
|
|
rate_limitation = 60
|
|
|
|
|
|
|
|
|
|
# 会话限速策略
|
|
|
|
|
# - "wait": 每次对话获取到回复时,等待一定时间再发送回复,保证其不会超过限速均值
|
|
|
|
|
# - "drop": 此分钟内,若对话次数超过限速次数,则丢弃之后的对话,每自然分钟重置
|
|
|
|
|
rate_limit_strategy = "wait"
|
|
|
|
|
|
|
|
|
|
# drop策略时,超过限速均值时,丢弃的对话的提示信息
|
|
|
|
|
# 仅当rate_limitation_strategy为"drop"时生效
|
|
|
|
|
# 若设置为空字符串,则不发送提示信息
|
|
|
|
|
rate_limit_drop_tip = "本分钟对话次数超过限速次数,此对话被丢弃"
|
|
|
|
|
|
2023-01-04 17:59:10 +08:00
|
|
|
|
# 是否上报统计信息
|
|
|
|
|
# 用于统计机器人的使用情况,不会收集任何用户信息
|
|
|
|
|
# 仅上报时间、字数使用量、绘图使用量,其他信息不会上报
|
|
|
|
|
report_usage = True
|
|
|
|
|
|
2022-12-09 00:01:49 +08:00
|
|
|
|
# 日志级别
|
2022-12-09 15:43:59 +08:00
|
|
|
|
logging_level = logging.INFO
|
2022-12-10 00:33:42 +08:00
|
|
|
|
|
|
|
|
|
# 定制帮助消息
|
|
|
|
|
help_message = """此机器人通过调用OpenAI的GPT-3大型语言模型生成回复,不具有情感。
|
|
|
|
|
你可以用自然语言与其交流,回复的消息中[GPT]开头的为模型生成的语言,[bot]开头的为程序提示。
|
|
|
|
|
了解此项目请找QQ 1010553892 联系作者
|
|
|
|
|
请不要用其生成整篇文章或大段代码,因为每次只会向模型提交少部分文字,生成大部分文字会产生偏题、前后矛盾等问题
|
|
|
|
|
每次会话最后一次交互后{}分钟后会自动结束,结束后将开启新会话,如需继续前一次会话请发送 !last 重新开启
|
|
|
|
|
欢迎到github.com/RockChinQ/QChatGPT 给个star
|
|
|
|
|
|
|
|
|
|
帮助信息:
|
|
|
|
|
!help - 显示帮助
|
|
|
|
|
!reset - 重置会话
|
|
|
|
|
!last - 切换到前一次的对话
|
|
|
|
|
!next - 切换到后一次的对话
|
|
|
|
|
!prompt - 显示当前对话所有内容
|
2022-12-15 18:50:15 +08:00
|
|
|
|
!list - 列出所有历史会话
|
|
|
|
|
!usage - 列出各个api-key的使用量""".format(session_expire_time // 60)
|