add init_documents.py

This commit is contained in:
2026-05-28 09:27:47 +00:00
parent 8b8c44bb53
commit 975b2c9222
+16 -21
View File
@@ -1,25 +1,20 @@
""" """
Script to load all .txt files from a directory into the knowledge base. Script to load all .txt files from a directory into the vector store.
""" """
import os
import argparse
from pathlib import Path from pathlib import Path
from agent import agent from chunker import load_and_split
from langchain_core.messages import HumanMessage from vector_store import vector_store
async def init_docs(dir_path: Path): if __name__ == "__main__":
for txt_file in dir_path.rglob("*.txt"): docs_dir = Path("docs")
content = txt_file.read_text(encoding="utf-8") if not docs_dir.exists():
title = txt_file.stem print("Docs directory not found.")
await agent.ainvoke( exit(1)
{"messages": [HumanMessage(content=f"Add document: {title}")]}, chunks = load_and_split(docs_dir)
{"configurable": {"thread_id": f"init-{txt_file.name}"}}, # Each chunk is (text, metadata)
) documents = []
print("Initialization complete.") for idx, (chunk, meta) in enumerate(chunks):
documents.append({"content": chunk, "metadata": meta})
if __name__ == "__main__": # pragma: no cover vector_store.add_documents(documents)
parser = argparse.ArgumentParser(description="Initialize knowledge base from directory") print(f"Loaded {len(documents)} chunks into the vector store.")
parser.add_argument("dir", type=Path, help="Directory with text files")
args = parser.parse_args()
import asyncio
asyncio.run(init_docs(args.dir))