From e95d105f8f97ac8b49e88006af7a1e621446134a Mon Sep 17 00:00:00 2001 From: minecraft1024a Date: Wed, 13 Aug 2025 21:32:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=A1=A8=E6=83=85=E5=8C=85?= =?UTF-8?q?=E6=83=85=E6=84=9F=E5=88=86=E6=9E=90=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E5=85=81=E8=AE=B8=E9=80=9A=E8=BF=87=E9=85=8D=E7=BD=AE=E5=90=AF?= =?UTF-8?q?=E7=94=A8=E4=BA=8C=E6=AC=A1=E8=AF=86=E5=88=AB=E4=BB=A5=E7=94=9F?= =?UTF-8?q?=E6=88=90=E6=83=85=E6=84=9F=E5=85=B3=E9=94=AE=E8=AF=8D=EF=BC=8C?= =?UTF-8?q?=E5=B9=B6=E6=9B=B4=E6=96=B0=E7=9B=B8=E5=85=B3=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E5=92=8C=E9=85=8D=E7=BD=AE=E6=A8=A1=E6=9D=BF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/emoji_system/emoji_manager.py | 40 +++++++++++++++----------- src/config/official_configs.py | 3 ++ template/bot_config_template.toml | 3 +- 3 files changed, 28 insertions(+), 18 deletions(-) diff --git a/src/chat/emoji_system/emoji_manager.py b/src/chat/emoji_system/emoji_manager.py index db26ec971..c2a2e7f1e 100644 --- a/src/chat/emoji_system/emoji_manager.py +++ b/src/chat/emoji_system/emoji_manager.py @@ -953,25 +953,31 @@ class EmojiManager: if content == "否": return "", [] - # 第二步:LLM情感分析 - 基于详细描述生成情感标签列表 - emotion_prompt = f""" - 请你识别这个表情包的含义和适用场景,给我简短的描述,每个描述不要超过15个字 - 这是一个基于这个表情包的描述:'{description}' - 你可以关注其幽默和讽刺意味,动用贴吧,微博,小红书的知识,必须从互联网梗,meme的角度去分析 - 请直接输出描述,不要出现任何其他内容,如果有多个描述,可以用逗号分隔 - """ - emotions_text, _ = await self.llm_emotion_judge.generate_response_async( - emotion_prompt, temperature=0.7, max_tokens=600 - ) + # 第二步:LLM情感分析 - 基于详细描述生成情感标签列表(可选) + emotions = [] + if global_config.emoji.enable_emotion_analysis: + logger.info("[情感分析] 启用表情包感情关键词二次识别") + emotion_prompt = f""" + 请你识别这个表情包的含义和适用场景,给我简短的描述,每个描述不要超过15个字 + 这是一个基于这个表情包的描述:'{description}' + 你可以关注其幽默和讽刺意味,动用贴吧,微博,小红书的知识,必须从互联网梗,meme的角度去分析 + 请直接输出描述,不要出现任何其他内容,如果有多个描述,可以用逗号分隔 + """ + emotions_text, _ = await self.llm_emotion_judge.generate_response_async( + emotion_prompt, temperature=0.7, max_tokens=600 + ) - # 处理情感列表 - emotions = [e.strip() for e in emotions_text.split(",") if e.strip()] + # 处理情感列表 + emotions = [e.strip() for e in emotions_text.split(",") if e.strip()] - # 根据情感标签数量随机选择 - 超过5个选3个,超过2个选2个 - if len(emotions) > 5: - emotions = random.sample(emotions, 3) - elif len(emotions) > 2: - emotions = random.sample(emotions, 2) + # 根据情感标签数量随机选择 - 超过5个选3个,超过2个选2个 + if len(emotions) > 5: + emotions = random.sample(emotions, 3) + elif len(emotions) > 2: + emotions = random.sample(emotions, 2) + else: + logger.info("[情感分析] 表情包感情关键词二次识别已禁用") + emotions = [] logger.info(f"[注册分析] 详细描述: {description[:50]}... -> 情感标签: {emotions}") diff --git a/src/config/official_configs.py b/src/config/official_configs.py index 148d8ed8c..820392ab5 100644 --- a/src/config/official_configs.py +++ b/src/config/official_configs.py @@ -575,6 +575,9 @@ class EmojiConfig(ConfigBase): filtration_prompt: str = "符合公序良俗" """表情包过滤要求""" + enable_emotion_analysis: bool = True + """是否启用表情包感情关键词二次识别,启用后表情包在第一次识别完毕后将送入第二次大模型识别来总结感情关键词,并构建进回复和决策器的上下文消息中""" + @dataclass class MemoryConfig(ConfigBase): diff --git a/template/bot_config_template.toml b/template/bot_config_template.toml index 1bb617d63..2927dafb1 100644 --- a/template/bot_config_template.toml +++ b/template/bot_config_template.toml @@ -1,5 +1,5 @@ [inner] -version = "6.3.1" +version = "6.3.2" #----以下是给开发人员阅读的,如果你只是部署了麦麦,不需要阅读---- #如果你想要修改配置文件,请递增version的值 @@ -172,6 +172,7 @@ check_interval = 10 # 检查表情包(注册,破损,删除)的时间间 steal_emoji = true # 是否偷取表情包,让麦麦可以将一些表情包据为己有 content_filtration = false # 是否启用表情包过滤,只有符合该要求的表情包才会被保存 filtration_prompt = "符合公序良俗" # 表情包过滤要求,只有符合该要求的表情包才会被保存 +enable_emotion_analysis = false # 是否启用表情包感情关键词二次识别,启用后表情包在第一次识别完毕后将送入第二次大模型识别来总结感情关键词,并构建进回复和决策器的上下文消息中 [memory] enable_memory = true # 是否启用记忆系统