Files
Agents/common/knowledge_loader.py
2026-06-10 19:32:03 +08:00

63 lines
1.4 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
知识库加载器 — 支持按需加载单个知识库文件
"""
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")])