diff --git a/src/chat/emoji_system/emoji_manager.py b/src/chat/emoji_system/emoji_manager.py index 00f93421a..10669b140 100644 --- a/src/chat/emoji_system/emoji_manager.py +++ b/src/chat/emoji_system/emoji_manager.py @@ -723,7 +723,7 @@ class EmojiManager: emoji = await self.get_emoji_from_manager(emoji_hash) if emoji and emoji.emotion: logger.info(f"[缓存命中] 从内存获取表情包描述: {emoji.emotion}...") - return emoji.emotion + return ",".join(emoji.emotion) # 如果内存中没有,从数据库查找 self._ensure_db() diff --git a/src/chat/knowledge/qa_manager.py b/src/chat/knowledge/qa_manager.py index 5354447af..b8b31efb4 100644 --- a/src/chat/knowledge/qa_manager.py +++ b/src/chat/knowledge/qa_manager.py @@ -24,7 +24,9 @@ class QAManager: self.kg_manager = kg_manager self.qa_model = LLMRequest(model_set=model_config.model_task_config.lpmm_qa, request_type="lpmm.qa") - async def process_query(self, question: str) -> Optional[Tuple[List[Tuple[str, float, float]], Optional[Dict[str, float]]]]: + async def process_query( + self, question: str + ) -> Optional[Tuple[List[Tuple[str, float, float]], Optional[Dict[str, float]]]]: """处理查询""" # 生成问题的Embedding @@ -56,7 +58,8 @@ class QAManager: logger.debug(f"关系检索用时:{part_end_time - part_start_time:.5f}s") for res in relation_search_res: - rel_str = self.embed_manager.relation_embedding_store.store.get(res[0]).str + if store_item := self.embed_manager.relation_embedding_store.store.get(res[0]): + rel_str = store_item.str print(f"找到相关关系,相似度:{(res[1] * 100):.2f}% - {rel_str}") # TODO: 使用LLM过滤三元组结果 @@ -105,7 +108,7 @@ class QAManager: if not query_res: logger.debug("知识库查询结果为空,可能是知识库中没有相关内容") return None - + knowledge = [ ( self.embed_manager.paragraphs_embedding_store.store[res[0]].str, diff --git a/src/chat/utils/utils_image.py b/src/chat/utils/utils_image.py index 58df290d4..7aaa207bf 100644 --- a/src/chat/utils/utils_image.py +++ b/src/chat/utils/utils_image.py @@ -101,6 +101,8 @@ class ImageManager: image_bytes = base64.b64decode(image_base64) image_hash = hashlib.md5(image_bytes).hexdigest() emoji = await emoji_manager.get_emoji_from_manager(image_hash) + if not emoji: + return "[表情包:未知]" emotion_list = emoji.emotion tag_str = ",".join(emotion_list) return f"[表情包:{tag_str}]" diff --git a/src/config/config.py b/src/config/config.py index a9f926b58..021275514 100644 --- a/src/config/config.py +++ b/src/config/config.py @@ -70,8 +70,8 @@ def get_key_comment(toml_table, key): return item.trivia.comment if hasattr(toml_table, "keys"): for k in toml_table.keys(): - if isinstance(k, KeyType) and k.key == key: - return k.trivia.comment + if isinstance(k, KeyType) and k.key == key: # type: ignore + return k.trivia.comment # type: ignore return None