# 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