Travel_Assistant / modules /knowledge_base.py
Eliot0110's picture
improve: 优化模型调用并对各组件升级
af60cba
raw
history blame
1.2 kB
# modules/knowledge_base.py
import json
from pathlib import Path
from utils.logger import log
class KnowledgeBase:
def __init__(self, file_path: Path = Path("./config/general_travelplan.json")):
self.knowledge = []
try:
with open(file_path, 'r', encoding='utf-8') as f:
self.knowledge = json.load(f).get('clean_knowledge', [])
log.info(f"✅ 知识库加载完成")
except Exception as e:
log.error(f"❌ 知识库加载失败: {e}", exc_info=True)
raise
def search(self, query: str) -> list:
relevant_knowledge = []
query_lower = query.lower()
for item in self.knowledge:
# 简单实现:如果查询的城市在知识库的目的地中,则返回该知识
destinations = item.get('knowledge', {}).get('travel_knowledge', {}).get('destination_info', {}).get('primary_destinations', [])
for dest in destinations:
if dest.lower() in query_lower:
if item not in relevant_knowledge:
relevant_knowledge.append(item)
break
return relevant_knowledge