# knowledge.py import json import os import re BASE_DIR = os.path.dirname(__file__) COURSE_DB_PATH = os.path.join(BASE_DIR, "courses.json") with open(COURSE_DB_PATH, "r", encoding="utf-8") as f: COURSE_DB = json.load(f) def lookup_course(course_name: str) -> str: course_name = course_name.strip() if course_name in COURSE_DB: # 将知识点按“第n章”或“;”分割,并每章换行 content = COURSE_DB[course_name] # 优先按“第n章”分割 chapters = re.split(r'(第[0-9一二三四五六七八九十]+章:[^;;。]*)[;。]?', content) # re.split会保留分组内容,需合并 result = [] i = 1 while i < len(chapters): if chapters[i]: result.append(chapters[i].strip()) i += 2 # 如果没有“第n章”,则按“;”分割 if not result: result = [x.strip() for x in re.split(r'[;;]', content) if x.strip()] return '\n'.join(result) else: return f"未在本地知识库中找到“{course_name}”,你可以输入其他课程名或使用 LLM 问答模式。"