diff --git a/bot/chatgpt/chat_gpt_bot.py b/bot/chatgpt/chat_gpt_bot.py index b46751a..c5bef2a 100644 --- a/bot/chatgpt/chat_gpt_bot.py +++ b/bot/chatgpt/chat_gpt_bot.py @@ -66,7 +66,7 @@ class ChatGPTBot(Bot, OpenAIImage): 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 a9b90f2..795787b 100644 --- a/channel/chat_channel.py +++ b/channel/chat_channel.py @@ -50,6 +50,7 @@ class ChatChannel(Channel): 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 ecfb0c0..eee579a 100644 --- a/plugins/godcmd/godcmd.py +++ b/plugins/godcmd/godcmd.py @@ -41,6 +41,18 @@ COMMANDS = { "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 @@ class Godcmd(Plugin): 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)