From af76364619b676e48597caf26f036226cd506871 Mon Sep 17 00:00:00 2001 From: hissin Date: Tue, 20 Dec 2022 22:29:24 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=9A=E9=80=82?= =?UTF-8?q?=E9=85=8D=E5=99=A8=E6=94=AF=E6=8C=81=EF=BC=8C=E7=94=A8=E4=BA=8E?= =?UTF-8?q?ws=E9=80=9A=E9=81=93=E5=86=B2=E7=AA=81=E6=97=B6=E5=8F=AF?= =?UTF-8?q?=E7=94=A8http=E9=80=82=E9=85=8D=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config-template.py | 2 ++ pkg/qqbot/manager.py | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/config-template.py b/config-template.py index b30da67a..aa1a65ef 100644 --- a/config-template.py +++ b/config-template.py @@ -3,11 +3,13 @@ import logging # [必需] Mirai的配置 # 请到配置mirai的步骤中的教程查看每个字段的信息 +# adapter: 选择适配器,目前支持HTTPAdapter和WebSocketAdapter # host: 运行mirai的主机地址 # port: 运行mirai的主机端口 # verifyKey: mirai-api-http的verifyKey # qq: 机器人的QQ号 mirai_http_api_config = { + "adapter": "HTTPAdapter", "host": "localhost", "port": 8080, "verifyKey": "yirimirai", diff --git a/pkg/qqbot/manager.py b/pkg/qqbot/manager.py index 04e41e35..517b8f57 100644 --- a/pkg/qqbot/manager.py +++ b/pkg/qqbot/manager.py @@ -4,7 +4,7 @@ import os import threading import openai.error -from mirai import At, GroupMessage, MessageEvent, Mirai, Plain, StrangerMessage, WebSocketAdapter, FriendMessage, Image +from mirai import At, GroupMessage, MessageEvent, Mirai, Plain, StrangerMessage, WebSocketAdapter,HTTPAdapter, FriendMessage, Image import config import pkg.openai.session @@ -73,7 +73,8 @@ class QQBotManager: else: self.reply_filter = pkg.qqbot.filter.ReplyFilter([]) - bot = Mirai( + if mirai_http_api_config['adapter'] == "WebSocketAdapter": + bot = Mirai( qq=mirai_http_api_config['qq'], adapter=WebSocketAdapter( verify_key=mirai_http_api_config['verifyKey'], @@ -81,6 +82,15 @@ class QQBotManager: port=mirai_http_api_config['port'] ) ) + elif mirai_http_api_config['adapter'] == "HTTPAdapter": + bot = Mirai( + qq=mirai_http_api_config['qq'], + adapter=HTTPAdapter( + verify_key=mirai_http_api_config['verifyKey'], + host=mirai_http_api_config['host'], + port=mirai_http_api_config['port'] + ) + ) @bot.on(FriendMessage) async def on_friend_message(event: FriendMessage): From c886f912ed9ae8af1eb946a7ac1bb2458e7c7c3a Mon Sep 17 00:00:00 2001 From: hissin Date: Tue, 20 Dec 2022 23:30:54 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=9C=A8config.py=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E4=B8=BB=E4=BA=BA/=E6=9C=BA=E5=99=A8=E4=BA=BA=E5=90=8D?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- config-template.py | 11 +++++++++-- pkg/openai/session.py | 8 +++++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 637f4dc0..c03c7d15 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ config.py .idea/ __pycache__/ database.db -qchatgpt.log \ No newline at end of file +qchatgpt.log +config.py \ No newline at end of file diff --git a/config-template.py b/config-template.py index aa1a65ef..a5d4b62f 100644 --- a/config-template.py +++ b/config-template.py @@ -30,9 +30,13 @@ openai_config = { }, } -# 管理员QQ号,用于接收报错等通知,为0时不发送通知 -admin_qq = 0 +# [可选] 机器人的配置 +#user_name: 管理员(主人)的名字 +#bot_name: 机器人的名字 +user_name = 'You' +bot_name = 'Bot' +# [可选] 情景预设(机器人人格) # 每个会话的预设信息,影响所有会话,无视指令重置 # 可以通过这个字段指定某些情况的回复,可直接用自然语言描述指令 # 例如: 如果我之后想获取帮助,请你说“输入!help获取帮助”, @@ -40,6 +44,9 @@ admin_qq = 0 # 可参考 https://github.com/PlexPt/awesome-chatgpt-prompts-zh default_prompt = "如果我之后想获取帮助,请你说“输入!help获取帮助”" +# 管理员QQ号,用于接收报错等通知,为0时不发送通知 +admin_qq = 0 + # 群内响应规则 # 符合此消息的群内消息即使不包含at机器人也会响应 # 支持消息前缀匹配及正则表达式匹配 diff --git a/pkg/openai/session.py b/pkg/openai/session.py index 56402fcb..7596b86c 100644 --- a/pkg/openai/session.py +++ b/pkg/openai/session.py @@ -53,7 +53,9 @@ def dump_session(session_name: str): # 从配置文件获取会话预设信息 def get_default_prompt(): - return "You:{}\nBot:好的\n".format(config.default_prompt) if hasattr(config, 'default_prompt') and \ + user_name = config.user_name if hasattr(config, 'user_name') and config.user_name != '' else 'You' + bot_name = config.bot_name if hasattr(config, 'bot_name') and config.bot_name != '' else 'Bot' + return user_name+":{}\n"+bot_name+":好的\n".format(config.default_prompt) if hasattr(config, 'default_prompt') and \ config.default_prompt != "" else '' @@ -81,8 +83,8 @@ class Session: prompt = get_default_prompt() - user_name = 'You' - bot_name = 'Bot' + user_name = config.user_name if hasattr(config, 'user_name') and config.user_name != '' else 'You' + bot_name = config.bot_name if hasattr(config, 'bot_name') and config.bot_name != '' else 'Bot' create_timestamp = 0