完善整个示例,并增加查询测试模式
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import json
|
||||
from pathlib import Path
|
||||
from typing import List
|
||||
|
||||
@@ -19,7 +20,7 @@ def main():
|
||||
# 初始化知识库
|
||||
knowledge_base = initialize_mingci_knowledge_base()
|
||||
|
||||
LoadKnowledgeToDatabase(knowledge_base, mingci_knowledge_source_dir)
|
||||
LoadMingCiKnowledgeToDatabase(knowledge_base, mingci_knowledge_source_dir)
|
||||
|
||||
knowledge_source_dir = os.getenv("KNOWLEDGE_SOURCE_DIR")
|
||||
if knowledge_source_dir and os.path.exists(knowledge_source_dir):
|
||||
@@ -28,6 +29,30 @@ def main():
|
||||
|
||||
LoadKnowledgeToDatabase(knowledge_base, knowledge_source_dir)
|
||||
|
||||
def LoadMingCiKnowledgeToDatabase(knowledge_base, knowledge_source_dir):
|
||||
logger.info(f"加载知识库: {knowledge_source_dir}")
|
||||
for root, _, files in os.walk(knowledge_source_dir):
|
||||
for file in files:
|
||||
file_path = os.path.join(root, file)
|
||||
file_ext = os.path.splitext(file)[1][1:] # 获取文件扩展名
|
||||
reader = get_reader(file_ext)
|
||||
if reader:
|
||||
try:
|
||||
docs = []
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
json_obj = json.load(f)
|
||||
for item in json_obj:
|
||||
file_contents = "{}\n 同义词: {}".format(item["name"], item["synonymous"])
|
||||
|
||||
docs.append(Document(
|
||||
name=item["name"],
|
||||
id=item["name"],
|
||||
content=file_contents,
|
||||
))
|
||||
knowledge_base.load_documents(docs, upsert=True)
|
||||
except Exception as e:
|
||||
logger.warning(f"无法加载文档 {file_path}: {str(e)}")
|
||||
|
||||
def LoadKnowledgeToDatabase(knowledge_base, knowledge_source_dir):
|
||||
logger.info(f"加载知识库: {knowledge_source_dir}")
|
||||
for root, _, files in os.walk(knowledge_source_dir):
|
||||
@@ -43,6 +68,5 @@ def LoadKnowledgeToDatabase(knowledge_base, knowledge_source_dir):
|
||||
except Exception as e:
|
||||
logger.warning(f"无法加载文档 {file_path}: {str(e)}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user