feat: 兼容旧版的动态选择模型

This commit is contained in:
touer angler
2023-11-16 16:25:01 +08:00
parent 8cdeb22846
commit 4477267744
5 changed files with 88 additions and 38 deletions
+31 -11
View File
@@ -9,6 +9,7 @@ from threading import Thread
from wcferry import Wcf, WxMsg
from constants import ChatType
from configuration import Config
from func_chatgpt import ChatGPT
from func_chatglm import ChatGLM
@@ -23,24 +24,43 @@ class Robot(Job):
"""个性化自己的机器人
"""
def __init__(self, config: Config, wcf: Wcf) -> None:
def __init__(self, config: Config, wcf: Wcf, chat_type: int) -> None:
self.wcf = wcf
self.config = config
self.LOG = logging.getLogger("Robot")
self.wxid = self.wcf.get_self_wxid()
self.allContacts = self.getAllContacts()
if self.config.TIGERBOT:
self.chat = TigerBot(self.config.TIGERBOT)
elif self.config.CHATGPT:
cgpt = self.config.CHATGPT
self.chat = ChatGPT(cgpt.get("key"), cgpt.get("api"), cgpt.get("proxy"), cgpt.get("prompt"))
elif self.config.XINGHUO_WEB:
self.chat = XinghuoWeb(self.config.XINGHUO_WEB)
elif self.config.CHATGLM:
self.chat = ChatGLM(self.config.CHATGLM,wcf)
if chat_type == ChatType.UnKnown.value:
if all(value is not None for value in self.config.TIGERBOT.values()):
self.chat = TigerBot(self.config.TIGERBOT)
elif all(value is not None for value in self.config.CHATGPT.values()):
cgpt = self.config.CHATGPT
self.chat = ChatGPT(cgpt.get("key"), cgpt.get("api"), cgpt.get("proxy"), cgpt.get("prompt"))
elif all(value is not None for value in self.config.XINGHUO_WEB.values()):
self.chat = XinghuoWeb(self.config.XINGHUO_WEB)
elif all(value is not None for value in self.config.CHATGLM.values()):
self.chat = ChatGLM(self.config.CHATGLM)
else:
self.LOG.warning('未配置模型')
self.chat = None
else:
self.chat = None
if chat_type == ChatType.TIGER_BOT.value and all(
value is not None for value in self.config.TIGERBOT.values()):
self.chat = TigerBot(self.config.TIGERBOT)
elif chat_type == ChatType.CHATGPT.value and all(
value is not None for value in self.config.CHATGPT.values()):
cgpt = self.config.CHATGPT
self.chat = ChatGPT(cgpt.get("key"), cgpt.get("api"), cgpt.get("proxy"), cgpt.get("prompt"))
elif chat_type == ChatType.XINGHUO_WEB.value and all(
value is not None for value in self.config.XINGHUO_WEB.values()):
self.chat = XinghuoWeb(self.config.XINGHUO_WEB)
elif chat_type == ChatType.CHATGLM.value and all(
value is not None for value in self.config.CHATGLM.values()):
self.chat = ChatGLM(self.config.CHATGLM)
else:
self.LOG.warning('未配置模型')
self.chat = None
def toAt(self, msg: WxMsg) -> bool:
"""处理被 @ 消息