From 176a6b9c2e73da718981f909b2f5aadbbd608cf5 Mon Sep 17 00:00:00 2001 From: minecraft1024a Date: Sat, 16 Aug 2025 22:15:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(config):=20=E4=B8=BA=E8=A1=A8=E6=83=85?= =?UTF-8?q?=E5=8C=85=E8=AF=86=E5=88=AB=E6=B7=BB=E5=8A=A0=E7=8B=AC=E7=AB=8B?= =?UTF-8?q?=E7=9A=84VLM=E6=A8=A1=E5=9E=8B=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 为表情包识别功能(emoji_vlm)引入了专门的模型任务配置,使其与通用的视觉语言模型(VLM)配置分离。这提高了配置的灵活性和模块化程度。 - 在 `api_ada_configs.py` 中新增 `emoji_vlm` 任务配置。 - 更新 `emoji_manager.py` 以使用新的 `emoji_vlm` 配置。 - 在 `model_config_template.toml` 中添加了相应的配置模板。 --- src/chat/emoji_system/emoji_manager.py | 12 ++++++------ src/config/api_ada_configs.py | 6 ++++++ template/model_config_template.toml | 7 ++++++- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/chat/emoji_system/emoji_manager.py b/src/chat/emoji_system/emoji_manager.py index d2d2e2c07..a228e7479 100644 --- a/src/chat/emoji_system/emoji_manager.py +++ b/src/chat/emoji_system/emoji_manager.py @@ -389,7 +389,7 @@ class EmojiManager: self._scan_task = None - self.vlm = LLMRequest(model_set=model_config.model_task_config.vlm, request_type="emoji") + self.vlm = LLMRequest(model_set=model_config.model_task_config.emoji_vlm, request_type="emoji") self.llm_emotion_judge = LLMRequest( model_set=model_config.model_task_config.utils, request_type="emoji" ) # 更高的温度,更少的token(后续可以根据情绪来调整温度) @@ -945,11 +945,11 @@ class EmojiManager: with get_db_session() as session: # from src.common.database.database_model_compat import Images - stmt = select(Images).where((Images.emoji_hash == image_hash) & (Images.type == "emoji")) - existing_image = session.execute(stmt).scalar_one_or_none() - if existing_image and existing_image.description: - existing_description = existing_image.description - logger.info(f"[复用描述] 找到已有详细描述: {existing_description[:50]}...") + stmt = select(Images).where((Images.emoji_hash == image_hash) & (Images.type == "emoji")) + existing_image = session.query(Images).filter((Images.emoji_hash == image_hash) & (Images.type == "emoji")).one_or_none() + if existing_image and existing_image.description: + existing_description = existing_image.description + logger.info(f"[复用描述] 找到已有详细描述: {existing_description[:50]}...") except Exception as e: logger.debug(f"查询已有描述时出错: {e}") diff --git a/src/config/api_ada_configs.py b/src/config/api_ada_configs.py index 839f747da..ccdb2762e 100644 --- a/src/config/api_ada_configs.py +++ b/src/config/api_ada_configs.py @@ -148,6 +148,12 @@ class ModelTaskConfig(ConfigBase): )) """视频分析模型配置""" + emoji_vlm: TaskConfig = field(default_factory=lambda: TaskConfig( + model_list=["qwen2.5-vl-72b"], + max_tokens=800 + )) + """表情包识别模型配置""" + def get_task(self, task_name: str) -> TaskConfig: """获取指定任务的配置""" if hasattr(self, task_name): diff --git a/template/model_config_template.toml b/template/model_config_template.toml index 208d5bb60..649c42c8d 100644 --- a/template/model_config_template.toml +++ b/template/model_config_template.toml @@ -1,5 +1,5 @@ [inner] -version = "1.2.2" +version = "1.2.3" # 配置文件版本号迭代规则同bot_config.toml @@ -144,6 +144,11 @@ max_tokens = 800 model_list = ["qwen2.5-vl-72b"] max_tokens = 800 +[model_task_config.emoji_vlm] # 专用表情包识别模型 +model_list = ["qwen2.5-vl-72b"] +max_tokens = 800 + + [model_task_config.utils_video] # 专用视频分析模型 model_list = ["qwen2.5-vl-72b"] temperature = 0.3