QChatGPT/config-template.py

118 lines
4.8 KiB
Python
Raw Normal View History

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的步骤中的教程查看每个字段的信息
# adapter: 选择适配器目前支持HTTPAdapter和WebSocketAdapter
2022-12-08 14:54:17 +08:00
# host: 运行mirai的主机地址
# port: 运行mirai的主机端口
# verifyKey: mirai-api-http的verifyKey
# qq: 机器人的QQ号
2022-12-07 16:48:32 +08:00
mirai_http_api_config = {
"adapter": "HTTPAdapter",
"host": "localhost",
2022-12-08 12:06:04 +08:00
"port": 8080,
"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
# 若只有一个api-key请直接修改以下内容中的"openai_api_key"为你的api-key
# 如准备了多个api-key可以以字典的形式填写程序会自动选择可用的api-key
# 例如{
# "api0": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
# "api1": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
# }
2022-12-07 16:48:32 +08:00
openai_config = {
"api_key": {
"default": "openai_api_key"
},
2022-12-07 16:48:32 +08:00
}
# [可选] 机器人的配置
#user_name: 管理员(主人)的名字
#bot_name: 机器人的名字
user_name = 'You'
bot_name = 'Bot'
2022-12-11 16:10:12 +08:00
# [可选] 情景预设(机器人人格)
2022-12-12 17:21:37 +08:00
# 每个会话的预设信息,影响所有会话,无视指令重置
2022-12-12 14:00:50 +08:00
# 可以通过这个字段指定某些情况的回复,可直接用自然语言描述指令
2022-12-12 22:18:29 +08:00
# 例如: 如果我之后想获取帮助,请你说“输入!help获取帮助”
# 这样用户在不知所措的时候机器人就会提示其输入!help获取帮助
2022-12-12 17:21:37 +08:00
# 可参考 https://github.com/PlexPt/awesome-chatgpt-prompts-zh
2022-12-12 22:18:29 +08:00
default_prompt = "如果我之后想获取帮助,请你说“输入!help获取帮助”"
2022-12-12 14:00:50 +08:00
# 管理员QQ号用于接收报错等通知为0时不发送通知
admin_qq = 0
2022-12-19 16:47:13 +08:00
# 群内响应规则
# 符合此消息的群内消息即使不包含at机器人也会响应
# 支持消息前缀匹配及正则表达式匹配
# 注意:由消息前缀(prefix)匹配的消息中将会删除此前缀,正则表达式匹配的消息不会删除匹配的部分
# 前缀匹配优先级高于正则表达式匹配
# 正则表达式简明教程https://www.runoob.com/regexp/regexp-tutorial.html
response_rules = {
2022-12-19 17:25:09 +08:00
"prefix": ["/ai", "!ai", "ai", "ai"],
"regexp": ["为什么.*", "怎么?样.*", "怎么.*", "如何.*", "[Hh]ow to.*", "[Ww]hy not.*", "[Ww]hat is.*", ".*怎么办", ".*咋办"]
2022-12-19 16:47:13 +08:00
}
2022-12-19 16:07:02 +08:00
# 单个api-key的使用量警告阈值
# 当使用此api-key进行请求的文字量达到此阈值时会在控制台输出警告并通知管理员
# 若之后还有未使用超过此值的api-key则会切换到新的api-key进行请求
api_key_usage_threshold = 900000
# 敏感词过滤开关,以同样数量的*代替敏感词回复
# 请在sensitive.json中添加敏感词
sensitive_word_filter = True
# 每次向OpenAI接口发送对话记录上下文的字符数
# 最大不超过(4096 - max_tokens)个字符max_tokens为上述completion_api_params中的max_tokens
# 注意较大的prompt_submit_length会导致OpenAI账户额度消耗更快
prompt_submit_length = 1536
2022-12-08 14:54:17 +08:00
# OpenAI的completion API的参数
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 = {
2022-12-07 22:27:05 +08:00
"model": "text-davinci-003",
2022-12-10 17:43:33 +08:00
"temperature": 0.6, # 数值越低得到的回答越理性,取值范围[0, 1]
2022-12-12 23:19:02 +08:00
"max_tokens": 512, # 每次向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-12 23:19:02 +08:00
process_message_timeout = 15
2022-12-07 23:37:52 +08:00
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
# 每个会话的过期时间,单位为秒
2022-12-09 00:01:49 +08:00
# 默认值20分钟
session_expire_time = 60 * 20
# 日志级别
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)