feat: 兼容旧版的动态选择模型
This commit is contained in:
@@ -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:
|
||||
"""处理被 @ 消息
|
||||
|
||||
Reference in New Issue
Block a user