fix:优化记忆提取,提供细节prompt debug项目

This commit is contained in:
SengokuCola
2025-11-03 22:41:21 +08:00
parent 6d70cf7528
commit 3e5058eb0f
8 changed files with 53 additions and 79 deletions

View File

@@ -379,7 +379,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.vlm, request_type="emoji.see")
self.llm_emotion_judge = LLMRequest(
model_set=model_config.model_task_config.utils, request_type="emoji"
) # 更高的温度更少的token后续可以根据情绪来调整温度
@@ -940,16 +940,16 @@ class EmojiManager:
image_base64 = get_image_manager().transform_gif(image_base64) # type: ignore
if not image_base64:
raise RuntimeError("GIF表情包转换失败")
prompt = "这是一个动态图表情包,每一张图代表了动态图的某一帧,黑色背景代表透明,描述一下表情包表达的情感和内容,描述细节,从互联网梗,meme的角度去分析"
prompt = "这是一个动态图表情包,每一张图代表了动态图的某一帧,黑色背景代表透明,简短描述一下表情包表达的情感和内容,描述细节,从互联网梗,meme的角度去分析"
description, _ = await self.vlm.generate_response_for_image(
prompt, image_base64, "jpg", temperature=0.3, max_tokens=1000
prompt, image_base64, "jpg", temperature=0.5
)
else:
prompt = (
"这是一个表情包,请详细描述一下表情包所表达的情感和内容,描述细节,从互联网梗,meme的角度去分析"
"这是一个表情包,请详细描述一下表情包所表达的情感和内容,简短描述细节,从互联网梗,meme的角度去分析"
)
description, _ = await self.vlm.generate_response_for_image(
prompt, image_base64, image_format, temperature=0.3, max_tokens=1000
prompt, image_base64, image_format, temperature=0.5
)
# 审核表情包
@@ -970,13 +970,14 @@ class EmojiManager:
# 第二步LLM情感分析 - 基于详细描述生成情感标签列表
emotion_prompt = f"""
请你识别这个表情包的含义和适用场景给我简短的描述每个描述不要超过15个字
这是一个基于这个表情包的描述:'{description}'
你可以关注其幽默和讽刺意味,动用贴吧,微博,小红书的知识,必须从互联网梗,meme的角度去分析
请直接输出描述,不要出现任何其他内容,如果有多个描述,可以用逗号分隔
这是一个聊天场景中的表情包描述:'{description}'
请你识别这个表情包的含义和适用场景给我简短的描述每个描述不要超过15个字
你可以关注其幽默和讽刺意味,动用贴吧,微博,小红书的知识,必须从互联网梗,meme的角度去分析
请直接输出描述,不要出现任何其他内容,如果有多个描述,可以用逗号分隔
"""
emotions_text, _ = await self.llm_emotion_judge.generate_response_async(
emotion_prompt, temperature=0.7, max_tokens=600
emotion_prompt, temperature=0.7, max_tokens=256
)
# 处理情感列表

View File

@@ -136,7 +136,8 @@ class DefaultReplyer:
# logger.debug(f"replyer生成内容: {content}")
logger.info(f"replyer生成内容: {content}")
logger.info(f"replyer生成推理: {reasoning_content}")
if global_config.debug.show_replyer_reasoning:
logger.info(f"replyer生成推理:\n{reasoning_content}")
logger.info(f"replyer生成模型: {model_name}")
llm_response.content = content
@@ -1000,7 +1001,7 @@ class DefaultReplyer:
# 直接使用已初始化的模型实例
# logger.info(f"\n{prompt}\n")
if global_config.debug.show_prompt:
if global_config.debug.show_replyer_prompt:
logger.info(f"\n{prompt}\n")
else:
logger.debug(f"\nreplyer_Prompt:{prompt}\n")

View File

@@ -922,7 +922,7 @@ class PrivateReplyer:
# 直接使用已初始化的模型实例
logger.info(f"\n{prompt}\n")
if global_config.debug.show_prompt:
if global_config.debug.show_replyer_prompt:
logger.info(f"\n{prompt}\n")
else:
logger.debug(f"\n{prompt}\n")
@@ -934,6 +934,8 @@ class PrivateReplyer:
content = content.strip()
logger.info(f"使用 {model_name} 生成回复内容: {content}")
if global_config.debug.show_replyer_reasoning:
logger.info(f"使用 {model_name} 生成回复推理:\n{reasoning_content}")
return content, reasoning_content, model_name, tool_calls
async def get_prompt_info(self, message: str, sender: str, target: str):