feat: 使用WSAdapter作为yirimirai默认适配器

This commit is contained in:
Rock Chin
2022-12-21 14:17:57 +08:00
parent abc45e3e0d
commit 4d17c8362e
2 changed files with 26 additions and 19 deletions

View File

@@ -9,7 +9,7 @@ import logging
# verifyKey: mirai-api-http的verifyKey # verifyKey: mirai-api-http的verifyKey
# qq: 机器人的QQ号 # qq: 机器人的QQ号
mirai_http_api_config = { mirai_http_api_config = {
"adapter": "HTTPAdapter", "adapter": "WebSocketAdapter",
"host": "localhost", "host": "localhost",
"port": 8080, "port": 8080,
"verifyKey": "yirimirai", "verifyKey": "yirimirai",

View File

@@ -4,7 +4,8 @@ import os
import threading import threading
import openai.error import openai.error
from mirai import At, GroupMessage, MessageEvent, Mirai, Plain, StrangerMessage, WebSocketAdapter,HTTPAdapter, FriendMessage, Image from mirai import At, GroupMessage, MessageEvent, Mirai, Plain, StrangerMessage, WebSocketAdapter, HTTPAdapter, \
FriendMessage, Image
import config import config
import pkg.openai.session import pkg.openai.session
@@ -73,24 +74,24 @@ class QQBotManager:
else: else:
self.reply_filter = pkg.qqbot.filter.ReplyFilter([]) self.reply_filter = pkg.qqbot.filter.ReplyFilter([])
if mirai_http_api_config['adapter'] == "WebSocketAdapter": if 'adapter' not in mirai_http_api_config or mirai_http_api_config['adapter'] == "WebSocketAdapter":
bot = Mirai( bot = Mirai(
qq=mirai_http_api_config['qq'], qq=mirai_http_api_config['qq'],
adapter=WebSocketAdapter( adapter=WebSocketAdapter(
verify_key=mirai_http_api_config['verifyKey'], verify_key=mirai_http_api_config['verifyKey'],
host=mirai_http_api_config['host'], host=mirai_http_api_config['host'],
port=mirai_http_api_config['port'] port=mirai_http_api_config['port']
)
) )
)
elif mirai_http_api_config['adapter'] == "HTTPAdapter": elif mirai_http_api_config['adapter'] == "HTTPAdapter":
bot = Mirai( bot = Mirai(
qq=mirai_http_api_config['qq'], qq=mirai_http_api_config['qq'],
adapter=HTTPAdapter( adapter=HTTPAdapter(
verify_key=mirai_http_api_config['verifyKey'], verify_key=mirai_http_api_config['verifyKey'],
host=mirai_http_api_config['host'], host=mirai_http_api_config['host'],
port=mirai_http_api_config['port'] port=mirai_http_api_config['port']
)
) )
)
@bot.on(FriendMessage) @bot.on(FriendMessage)
async def on_friend_message(event: FriendMessage): async def on_friend_message(event: FriendMessage):
@@ -201,13 +202,19 @@ class QQBotManager:
reply += ",当前处于全新会话或不在此页" reply += ",当前处于全新会话或不在此页"
elif cmd == 'usage': elif cmd == 'usage':
api_keys = pkg.openai.manager.get_inst().key_mgr.api_key api_keys = pkg.openai.manager.get_inst().key_mgr.api_key
reply = "[bot]api-key使用情况:(阈值:{})\n\n".format(pkg.openai.manager.get_inst().key_mgr.api_key_usage_threshold) reply = "[bot]api-key使用情况:(阈值:{})\n\n".format(
pkg.openai.manager.get_inst().key_mgr.api_key_usage_threshold)
using_key_name = "" using_key_name = ""
for api_key in api_keys: for api_key in api_keys:
reply += "{}:\n - {}{}%\n".format(api_key, reply += "{}:\n - {}{}%\n".format(api_key,
pkg.openai.manager.get_inst().key_mgr.get_usage(api_keys[api_key]), pkg.openai.manager.get_inst().key_mgr.get_usage(
round(pkg.openai.manager.get_inst().key_mgr.get_usage(api_keys[api_key]) / pkg.openai.manager.get_inst().key_mgr.api_key_usage_threshold * 100, 3)) api_keys[api_key]),
round(
pkg.openai.manager.get_inst().key_mgr.get_usage(
api_keys[
api_key]) / pkg.openai.manager.get_inst().key_mgr.api_key_usage_threshold * 100,
3))
if api_keys[api_key] == pkg.openai.manager.get_inst().key_mgr.using_key: if api_keys[api_key] == pkg.openai.manager.get_inst().key_mgr.using_key:
using_key_name = api_key using_key_name = api_key
reply += "\n当前使用:{}".format(using_key_name) reply += "\n当前使用:{}".format(using_key_name)
@@ -299,7 +306,7 @@ class QQBotManager:
reply = '' reply = ''
def process(text = None) -> str: def process(text=None) -> str:
replys = "" replys = ""
if At(self.bot.qq) in event.message_chain: if At(self.bot.qq) in event.message_chain:
event.message_chain.remove(At(self.bot.qq)) event.message_chain.remove(At(self.bot.qq))