重构七天训练营老师

This commit is contained in:
2026-06-10 19:32:03 +08:00
parent 3b7abb9796
commit 826de3d7bb
17 changed files with 3893 additions and 17 deletions

View File

@@ -0,0 +1,62 @@
"""
知识库加载器 — 支持按需加载单个知识库文件
"""
from pathlib import Path
def load_knowledge_base(kb_dir: Path) -> str:
"""
加载指定目录下的所有 .md 文件内容,按文件名排序后拼接。
Args:
kb_dir: 知识库目录路径
Returns:
所有 md 文件内容的拼接文本
"""
if not kb_dir.exists():
return ""
files = sorted(kb_dir.glob("*.md"))
if not files:
return ""
parts = []
for f in files:
parts.append(f"\n# {f.name}\n")
parts.append(f.read_text(encoding="utf-8"))
return "\n".join(parts)
def load_knowledge_file(kb_dir: Path, filename: str) -> str:
"""
按需加载单个知识库文件。
Args:
kb_dir: 知识库目录路径
filename: 文件名(如 "01_课程底层逻辑与场景路由.md"
Returns:
文件内容,文件不存在时返回空字符串
"""
f = kb_dir / filename
if not f.exists():
return ""
return f.read_text(encoding="utf-8")
def list_knowledge_files(kb_dir: Path) -> list[str]:
"""
列出知识库目录下所有 .md 文件名。
Args:
kb_dir: 知识库目录路径
Returns:
按文件名排序的列表
"""
if not kb_dir.exists():
return []
return sorted([f.name for f in kb_dir.glob("*.md")])