From 3e92d076184933ff48368b38e4a8bf10e3c6f432 Mon Sep 17 00:00:00 2001 From: taoguoliang <852765192@qq.com> Date: Sun, 7 May 2023 15:22:24 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=91=BD=E4=BB=A4):=20=E6=B7=BB=E5=8A=A0s?= =?UTF-8?q?et=5Fgpt=5Fmodel=E3=80=81set=5Fgpt=5Fmodel=E3=80=81set=5Fgpt=5F?= =?UTF-8?q?model=20=E5=87=A0=E4=B8=AA=E5=91=BD=E4=BB=A4=E7=9A=84=E4=BD=BF?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bot/chatgpt/chat_gpt_bot.py | 2 +- channel/chat_channel.py | 1 + plugins/godcmd/godcmd.py | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/bot/chatgpt/chat_gpt_bot.py b/bot/chatgpt/chat_gpt_bot.py index b46751abf..c5bef2a78 100644 --- a/bot/chatgpt/chat_gpt_bot.py +++ b/bot/chatgpt/chat_gpt_bot.py @@ -66,7 +66,7 @@ def reply(self, query, context=None): logger.debug("[CHATGPT] session query={}".format(session.messages)) api_key = context.get("openai_api_key") - + self.args['model'] = context.get('gpt_model') or "gpt-3.5-turbo" # if context.get('stream'): # # reply in stream # return self.reply_text_stream(query, new_query, session_id) diff --git a/channel/chat_channel.py b/channel/chat_channel.py index a9b90f2aa..795787b2b 100644 --- a/channel/chat_channel.py +++ b/channel/chat_channel.py @@ -50,6 +50,7 @@ def _compose_context(self, ctype: ContextType, content, **kwargs): cmsg = context["msg"] user_data = conf().get_user_data(cmsg.from_user_id) context["openai_api_key"] = user_data.get("openai_api_key") + context["gpt_model"] = user_data.get("gpt_model") if context.get("isgroup", False): group_name = cmsg.other_user_nickname group_id = cmsg.other_user_id diff --git a/plugins/godcmd/godcmd.py b/plugins/godcmd/godcmd.py index ecfb0c026..eee579a2a 100644 --- a/plugins/godcmd/godcmd.py +++ b/plugins/godcmd/godcmd.py @@ -41,6 +41,18 @@ "alias": ["reset_openai_api_key"], "desc": "重置为默认的api_key", }, + "set_gpt_model": { + "alias": ["set_gpt_model"], + "desc": "设置你的私有模型", + }, + "reset_gpt_model": { + "alias": ["reset_gpt_model"], + "desc": "重置你的私有模型", + }, + "gpt_model": { + "alias": ["gpt_model"], + "desc": "查询你使用的模型", + }, "id": { "alias": ["id", "用户"], "desc": "获取用户id", # wechaty和wechatmp的用户id不会变化,可用于绑定管理员 @@ -264,6 +276,26 @@ def on_handle_context(self, e_context: EventContext): ok, result = True, "你的OpenAI私有api_key已清除" except Exception as e: ok, result = False, "你没有设置私有api_key" + elif cmd == "set_gpt_model": + if len(args) == 1: + user_data = conf().get_user_data(user) + user_data["gpt_model"] = args[0] + ok, result = True, "你的GPT模型已设置为" + args[0] + else: + ok, result = False, "请提供一个GPT模型" + elif cmd == "gpt_model": + user_data = conf().get_user_data(user) + model = conf().get('model') + if 'gpt_model' in user_data: + model = user_data['gpt_model'] + ok, result = True, "你的GPT模型为" + str(model) + elif cmd == "reset_gpt_model": + try: + user_data = conf().get_user_data(user) + user_data.pop("gpt_model") + ok, result = True, "你的GPT模型已重置" + except Exception as e: + ok, result = False, "你没有设置私有GPT模型" elif cmd == "reset": if bottype in [const.OPEN_AI, const.CHATGPT, const.CHATGPTONAZURE]: bot.sessions.clear_session(session_id)