diff --git a/README.md b/README.md index f64ac73..98a8071 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,84 @@ -# RAG Agent with Qdrant and Ollama +# RAG‑Agent with Qdrant & Ollama -This repository contains a minimal but fully‑functional example of an AI agent that uses **Qdrant** as a local vector store, **Ollama** for embeddings and a local LLM, and **LangChain** for the agent logic. +This repository contains a minimal but functional implementation of a **RAG (Retrieval‑Augmented Generation) agent** that: -## Features +* Stores embeddings in a **Qdrant** vector database. +* Generates embeddings with **Ollama** (`nomic-embed-text`). +* Uses **LangChain** (v1+) for the agent, tools and prompt‑engineering. -* **Semantic search** – `search_knowledge_base` tool queries the vector store. -* **Document ingestion** – `add_to_knowledge_base` tool splits text into chunks and stores them. -* **Interactive CLI** – simple command line interface for adding documents, searching and chatting with the agent. -* **Modular design** – vector store, tools and agent logic are separated into distinct modules. +The agent can: -## Setup +* Search the knowledge base (`/search`). +* Add new documents (`/add`). +* Interact through a simple CLI. + +## Installation ```bash -# 1. Install Ollama models +# 1. Pull required Ollama models ollama pull llama3 ollama pull nomic-embed-text # 2. Install Python dependencies pip install -r requirements.txt -# 3. Start Qdrant (Docker recommended) -# docker run -p 6333:6333 qdrant/qdrant +# 3. Run the CLI +python -m src.cli +``` + +> **Note**: Qdrant must be running locally on port 6333. You can start it using Docker: +> +> ```bash +> docker run -p 6333:6333 qdrant/qdrant +> ``` + +## Directory structure + +``` +workspace/task-6a02e23da6fe2e4ac16acf65/ +├─ src/ +│ ├─ vector_store.py # Qdrant wrapper +│ ├─ tools.py # LangChain tools +│ ├─ agent.py # Agent implementation +│ ├─ loader.py # Utility for bulk loading +│ └─ cli.py # Interactive CLI +├─ requirements.txt +└─ README.md ``` ## Usage +### Load documents from a folder + ```bash -python -m workspace.task-6a02e23da6fe2e4ac16acf65.cli +python -m src.loader /path/to/text/files ``` -The CLI accepts the following commands: - -* `/add