"""Загрузка документов из директории в векторное хранилище.""" from __future__ import annotations import argparse from pathlib import Path try: from knowledge_base import build_knowledge_base except ModuleNotFoundError: from .knowledge_base import build_knowledge_base SUPPORTED_SUFFIXES = {".txt", ".md", ".markdown"} def load_directory(directory: str | Path) -> int: root = Path(directory) if not root.exists(): raise FileNotFoundError(f"Директория не найдена: {root}") kb = build_knowledge_base() total_chunks = 0 for path in sorted(root.rglob("*")): if not path.is_file() or path.suffix.lower() not in SUPPORTED_SUFFIXES: continue content = path.read_text(encoding="utf-8") title = str(path.relative_to(root)) total_chunks += kb.add_document(content, title) print(f"Загружен: {title} ({len(content)} символов)") return total_chunks def main() -> None: parser = argparse.ArgumentParser(description="Инициализация базы знаний из папки") parser.add_argument( "--dir", default="./docs", help="Путь к директории с .txt/.md файлами", ) args = parser.parse_args() chunks = load_directory(args.dir) print(f"Готово. Всего чанков: {chunks}") if __name__ == "__main__": main()