feat: emoji选择逻辑优化
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user