feat: emoji选择逻辑优化

This commit is contained in:
tcmofashi
2025-03-06 06:30:27 +08:00
parent 052c9c32c4
commit fea3285d20

View File

@@ -51,6 +51,7 @@ class EmojiManager:
self.db = Database.get_instance()
self._scan_task = None
self.llm = LLM_request(model=global_config.vlm, temperature=0.3, max_tokens=1000)
self.lm = LLM_request(model=global_config.llm_reasoning_minor, max_tokens=1000)
def _ensure_emoji_dir(self):
"""确保表情存储目录存在"""
@@ -106,7 +107,8 @@ class EmojiManager:
self._ensure_db()
# 获取文本的embedding
text_embedding = get_embedding(text)
text_for_search= await self._get_kimoji_for_text(text)
text_embedding = get_embedding(text_for_search)
if not text_embedding:
logger.error("无法获取文本的embedding")
return None
@@ -202,6 +204,18 @@ class EmojiManager:
logger.error(f"获取标签失败: {str(e)}")
return None
async def _get_kimoji_for_text(self, text:str):
try:
prompt = f'这是{global_config.BOT_NICKNAME}将要发送的消息内容:\n{text}\n若要为其配上表情包,请你输出这个表情包应该表达怎样的情感,应该给人什么样的感觉,不要太简洁也不要太长,注意不要输出任何对内容的分析内容,只输出\"一种什么样的感觉\"中间的形容词部分。'
content, _ = await self.llm.generate_response_async(prompt)
logger.info(f"输出描述: {content}")
return content
except Exception as e:
logger.error(f"获取标签失败: {str(e)}")
return None
async def _compress_image(self, image_path: str, target_size: int = 0.8 * 1024 * 1024) -> Optional[str]:
"""压缩图片并返回base64编码
Args: