From b4f2bdafdd28c27dcff25d8e243e96911b081f88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=D0=B8=D0=BD=D0=B0=D1=80=20=D0=9C=D0=B8=D1=80=D0=B7?= =?UTF-8?q?=D0=B0=D0=B3=D0=B8=D1=82=D0=BE=D0=B2?= Date: Wed, 17 Jun 2026 13:13:03 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=83=D0=B1=D0=BB=D0=B8=D0=BA=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20=D0=BF=D0=BE=D0=BB=D0=BD=D0=BE=D0=B3=D0=BE?= =?UTF-8?q?=20=D0=BD=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=D0=BE=D0=B2:=20add=20main.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..bb8c6e6 --- /dev/null +++ b/main.py @@ -0,0 +1,51 @@ +import argparse + +from dotenv import load_dotenv + +from agent import agent +from vectorstore import create_vectorstore, load_documents + + +def ingest_documents(directory: str) -> None: + vectorstore = create_vectorstore() + chunk_count = load_documents(directory, vectorstore) + print(f"Loaded {chunk_count} chunks from {directory} into ChromaDB.") + + +def run_chat() -> None: + print("RAG agent ready. Type 'exit' to quit.") + while True: + user_input = input("You: ").strip() + if user_input.lower() == "exit": + print("Goodbye!") + return + if not user_input: + continue + + result = agent.invoke( + {"messages": [{"role": "user", "content": user_input}]} + ) + final_message = result["messages"][-1] + print(f"Assistant: {final_message.content}") + + +def main() -> None: + load_dotenv() + + parser = argparse.ArgumentParser() + parser.add_argument( + "--ingest", + metavar="DIRECTORY", + help="Load .txt and .md files from DIRECTORY into ChromaDB before the demo.", + ) + args = parser.parse_args() + + if args.ingest: + ingest_documents(args.ingest) + return + + run_chat() + + +if __name__ == "__main__": + main()