From 42e00dd0aa75780e688c937265eb5ce4e40b9ae3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E6=A2=93=E6=9F=92?= <1787882683@qq.com> Date: Sun, 3 Aug 2025 11:27:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0KGManager=E5=92=8C=E7=9F=A5?= =?UTF-8?q?=E8=AF=86=E5=BA=93=E9=85=8D=E7=BD=AE=EF=BC=8C=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E4=BD=BF=E7=94=A8global=5Fconfig=E7=9A=84lpmm=5Fknowledge?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=EF=BC=8C=E7=A7=BB=E9=99=A4=E6=9C=AA=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=9A=84MemoryActiveManager=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/knowledge/kg_manager.py | 14 +++++++------- src/chat/knowledge/knowledge_lib.py | 23 +++++++---------------- src/chat/knowledge/mem_active_manager.py | 1 + 3 files changed, 15 insertions(+), 23 deletions(-) diff --git a/src/chat/knowledge/kg_manager.py b/src/chat/knowledge/kg_manager.py index de81ef8c5..da082e39d 100644 --- a/src/chat/knowledge/kg_manager.py +++ b/src/chat/knowledge/kg_manager.py @@ -20,7 +20,7 @@ from quick_algo import di_graph, pagerank from .utils.hash import get_sha256 from .embedding_store import EmbeddingManager, EmbeddingStoreItem -from .lpmmconfig import global_config +from src.config.config import global_config from .global_logger import logger @@ -179,14 +179,14 @@ class KGManager: assert isinstance(ent, EmbeddingStoreItem) # 查询相似实体 similar_ents = embedding_manager.entities_embedding_store.search_top_k( - ent.embedding, global_config["rag"]["params"]["synonym_search_top_k"] + ent.embedding, global_config.lpmm_knowledge.rag_synonym_search_top_k ) res_ent = [] # Debug for res_ent_hash, similarity in similar_ents: if res_ent_hash == ent_hash: # 避免自连接 continue - if similarity < global_config["rag"]["params"]["synonym_threshold"]: + if similarity < global_config.lpmm_knowledge.rag_synonym_threshold: # 相似度阈值 continue node_to_node[(res_ent_hash, ent_hash)] = similarity @@ -369,7 +369,7 @@ class KGManager: for ent_hash in ent_weights.keys(): ent_weights[ent_hash] = 1.0 else: - down_edge = global_config["qa"]["params"]["paragraph_node_weight"] + down_edge = global_config.lpmm_knowledge.qa_paragraph_node_weight # 缩放取值区间至[down_edge, 1] for ent_hash, score in ent_weights.items(): # 缩放相似度 @@ -378,7 +378,7 @@ class KGManager: ) + down_edge # 取平均相似度的top_k实体 - top_k = global_config["qa"]["params"]["ent_filter_top_k"] + top_k = global_config.lpmm_knowledge.qa_ent_filter_top_k if len(ent_mean_scores) > top_k: # 从大到小排序,取后len - k个 ent_mean_scores = {k: v for k, v in sorted(ent_mean_scores.items(), key=lambda item: item[1], reverse=True)} @@ -407,7 +407,7 @@ class KGManager: for pg_hash, score in pg_sim_scores.items(): pg_weights[pg_hash] = ( - score * global_config["qa"]["params"]["paragraph_node_weight"] + score * global_config.lpmm_knowledge.qa_paragraph_node_weight ) # 文段权重 = 归一化相似度 * 文段节点权重参数 del pg_sim_scores @@ -420,7 +420,7 @@ class KGManager: self.graph, personalization=ppr_node_weights, max_iter=100, - alpha=global_config["qa"]["params"]["ppr_damping"], + alpha=global_config.lpmm_knowledge.qa_ppr_damping, ) # 获取最终结果 diff --git a/src/chat/knowledge/knowledge_lib.py b/src/chat/knowledge/knowledge_lib.py index 31cc20c1d..13629f18b 100644 --- a/src/chat/knowledge/knowledge_lib.py +++ b/src/chat/knowledge/knowledge_lib.py @@ -1,11 +1,8 @@ -from src.chat.knowledge.lpmmconfig import global_config from src.chat.knowledge.embedding_store import EmbeddingManager -from src.chat.knowledge.llm_client import LLMClient -from src.chat.knowledge.mem_active_manager import MemoryActiveManager from src.chat.knowledge.qa_manager import QAManager from src.chat.knowledge.kg_manager import KGManager from src.chat.knowledge.global_logger import logger -from src.config.config import global_config as bot_global_config +from src.config.config import global_config import os INVALID_ENTITY = [ @@ -34,15 +31,9 @@ qa_manager = None inspire_manager = None # 检查LPMM知识库是否启用 -if bot_global_config.lpmm_knowledge.enable: +if global_config.lpmm_knowledge.enable: logger.info("正在初始化Mai-LPMM") logger.info("创建LLM客户端") - llm_client_list = {} - for key in global_config["llm_providers"]: - llm_client_list[key] = LLMClient( - global_config["llm_providers"][key]["base_url"], # type: ignore - global_config["llm_providers"][key]["api_key"], # type: ignore - ) # 初始化Embedding库 embed_manager = EmbeddingManager() @@ -78,11 +69,11 @@ if bot_global_config.lpmm_knowledge.enable: kg_manager, ) - # 记忆激活(用于记忆库) - inspire_manager = MemoryActiveManager( - embed_manager, - llm_client_list[global_config["embedding"]["provider"]], - ) + # # 记忆激活(用于记忆库) + # inspire_manager = MemoryActiveManager( + # embed_manager, + # llm_client_list[global_config["embedding"]["provider"]], + # ) else: logger.info("LPMM知识库已禁用,跳过初始化") # 创建空的占位符对象,避免导入错误 diff --git a/src/chat/knowledge/mem_active_manager.py b/src/chat/knowledge/mem_active_manager.py index 3998c0664..a55b929fc 100644 --- a/src/chat/knowledge/mem_active_manager.py +++ b/src/chat/knowledge/mem_active_manager.py @@ -1,3 +1,4 @@ +raise DeprecationWarning("MemoryActiveManager is not used yet, please do not import it") from .lpmmconfig import global_config from .embedding_store import EmbeddingManager from .llm_client import LLMClient