diff --git a/README.md b/README.md deleted file mode 100644 index 7b4c38b..0000000 --- a/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# RAG Agent with ChromaDB - -## Overview -This repository implements a simple RAG (Retrieval‑Augmented Generation) agent that uses **ChromaDB** as the vector store and **Ollama** for embeddings and LLM inference. The agent can: - -1. Add documents to the knowledge base. -2. Search the knowledge base semantically. -3. Interact via a lightweight CLI. - -## File Structure -- `requirements.txt` – Python dependencies. -- `chunker.py` – Text chunking utilities (RecursiveCharacterTextSplitter). -- `vector_store.py` – Wrapper around ChromaDB collection. -- `tools.py` – LangChain tools for search and add operations. -- `agent.py` – Agent creation with LangChain `create_agent`. -- `cli.py` – Simple command‑line interface. -- `init_documents.py` – Helper to load all `.txt` files from a directory into the vector store. - -## Installation -```bash -# Pull Ollama models -ollama pull llama3 -ollama pull nomic-embed-text - -# Install Python packages -pip install -r requirements.txt -``` - -## Usage -1. **Load documents** (optional): - ```bash - python init_documents.py - ``` -2. **Run the CLI**: - ```bash - python cli.py - ``` - Type any question or `/quit` to exit. - -## Architecture -- **Chunking**: `chunker.split_text()` splits large texts into 500‑char chunks with 100‑char overlap using LangChain’s `RecursiveCharacterTextSplitter`. -- **Vector Store**: `vector_store.ChromaVectorStore` handles adding documents and similarity search. Embeddings are generated by `langchain_ollama.OllamaEmbeddings` (`nomic-embed-text`). -- **Tools**: Two tools decorated with `@tool`: `search_knowledge_base` and `add_to_knowledge_base`. They interact with the vector store. -- **Agent**: Created via LangChain’s `create_agent`, configured to use the two tools and a simple system prompt. The LLM is an Ollama `llama3` instance. - -## Testing -Run the CLI and try: -``` -/quit -Hello, what can you do? -``` -The agent should respond using the knowledge base or add new documents if prompted.