重构七天训练营老师
This commit is contained in:
62
common/knowledge_loader.py
Normal file
62
common/knowledge_loader.py
Normal 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")])
|
||||
Reference in New Issue
Block a user