浏览代码

feat: hello plugin support system prompt

zhayujie 2 年之前
父节点
当前提交
865e4b5349
共有 4 个文件被更改,包括 8 次插入9 次删除
  1. 3 6
      bot/linkai/link_ai_bot.py
  2. 0 2
      channel/chat_channel.py
  3. 3 1
      plugins/hello/hello.py
  4. 2 0
      plugins/linkai/midjourney.py

+ 3 - 6
bot/linkai/link_ai_bot.py

@@ -370,12 +370,9 @@ class LinkAISessionManager(SessionManager):
 
 class LinkAISession(ChatGPTSession):
     def calc_tokens(self):
-        try:
-            cur_tokens = super().calc_tokens()
-        except Exception as e:
-            logger.debug("Exception when counting tokens precisely for query: {}".format(e))
-            cur_tokens = len(str(self.messages))
-        return cur_tokens
+        if not self.messages:
+            return 0
+        return len(str(self.messages))
 
     def discard_exceeding(self, max_tokens, cur_tokens=None):
         cur_tokens = self.calc_tokens()

+ 0 - 2
channel/chat_channel.py

@@ -184,8 +184,6 @@ class ChatChannel(Channel):
         reply = e_context["reply"]
         if not e_context.is_pass():
             logger.debug("[WX] ready to handle context: type={}, content={}".format(context.type, context.content))
-            if e_context.is_break():
-                context["generate_breaked_by"] = e_context["breaked_by"]
             if context.type == ContextType.TEXT or context.type == ContextType.IMAGE_CREATE:  # 文字和图片消息
                 context["channel"] = e_context["channel"]
                 reply = super().build_reply_content(context.content, context)

+ 3 - 1
plugins/hello/hello.py

@@ -22,6 +22,7 @@ class Hello(Plugin):
         super().__init__()
         self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context
         logger.info("[Hello] inited")
+        self.config = super().load_config()
 
     def on_handle_context(self, e_context: EventContext):
         if e_context["context"].type not in [
@@ -30,7 +31,8 @@ class Hello(Plugin):
             ContextType.PATPAT,
         ]:
             return
-
+        if not self.config or not self.config.get("use_character_desc"):
+            e_context["context"]["generate_breaked_by"] = EventAction.BREAK
         if e_context["context"].type == ContextType.JOIN_GROUP:
             if "group_welcome_msg" in conf():
                 reply = Reply()

+ 2 - 0
plugins/linkai/midjourney.py

@@ -88,6 +88,8 @@ class MJBot:
         context = e_context['context']
         if context.type == ContextType.TEXT:
             cmd_list = context.content.split(maxsplit=1)
+            if not cmd_list:
+                return None
             if cmd_list[0].lower() == f"{trigger_prefix}mj":
                 return TaskType.GENERATE
             elif cmd_list[0].lower() == f"{trigger_prefix}mju":