MCPcopy Create free account
hub / github.com/Enfoirer/Text2GraphRAG / build_knowledge_base

Method build_knowledge_base

main.py:124–183  ·  view source on GitHub ↗

构建知识库(如果需要)

(self)

Source from the content-addressed store, hash-verified

122 raise
123
124 def build_knowledge_base(self):
125 """构建知识库(如果需要)"""
126 print("\n检查知识库状态...")
127
128 try:
129 # 检查Milvus集合是否存在
130 if self.index_module.has_collection():
131 print("✅ 发现已存在的知识库,尝试加载...")
132 if self.index_module.load_collection():
133 print("知识库加载成功!")
134
135 # 重要:即使从已存在的知识库加载,也需要加载图数据以支持图索引
136 print("加载图数据以支持图检索...")
137 self.data_module.load_graph_data()
138 print("构建疾病文档...")
139 self.data_module.build_recipe_documents()
140 print("进行文档分块...")
141 chunks = self.data_module.chunk_documents(
142 chunk_size=self.config.chunk_size,
143 chunk_overlap=self.config.chunk_overlap
144 )
145
146 self._initialize_retrievers(chunks)
147 return
148 else:
149 print("❌ 知识库加载失败,开始重建...")
150
151 print("未找到已存在的集合,开始构建新的知识库...")
152
153 # 从Neo4j加载图数据
154 print("从Neo4j加载图数据...")
155 self.data_module.load_graph_data()
156
157 # 构建疾病文档
158 print("构建疾病文档...")
159 self.data_module.build_recipe_documents()
160
161 # 进行文档分块
162 print("进行文档分块...")
163 chunks = self.data_module.chunk_documents(
164 chunk_size=self.config.chunk_size,
165 chunk_overlap=self.config.chunk_overlap
166 )
167
168 # 构建Milvus向量索引
169 print("构建Milvus向量索引...")
170 if not self.index_module.build_vector_index(chunks):
171 raise Exception("构建向量索引失败")
172
173 # 初始化检索器
174 self._initialize_retrievers(chunks)
175
176 # 显示统计信息
177 self._show_knowledge_base_stats()
178
179 print("✅ 知识库构建完成!")
180
181 except Exception as e:

Callers 2

mainFunction · 0.95

Calls 8

has_collectionMethod · 0.80
load_collectionMethod · 0.80
load_graph_dataMethod · 0.80
chunk_documentsMethod · 0.80
build_vector_indexMethod · 0.80

Tested by

no test coverage detected