50 lines
1.6 KiB
Markdown
50 lines
1.6 KiB
Markdown
# RAG Agent with Qdrant and 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.
|
||
|
||
## Features
|
||
|
||
* **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.
|
||
|
||
## Setup
|
||
|
||
```bash
|
||
# 1. Install 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
|
||
```
|
||
|
||
## Usage
|
||
|
||
```bash
|
||
python -m workspace.task-6a02e23da6fe2e4ac16acf65.cli
|
||
```
|
||
|
||
The CLI accepts the following commands:
|
||
|
||
* `/add <title>` – add a new document. After the title you will be prompted to paste the content; finish with a line containing only `END`.
|
||
* `/search <query>` – perform a semantic search.
|
||
* `/quit` – exit.
|
||
|
||
Anything else is forwarded to the agent.
|
||
|
||
## Project structure
|
||
|
||
```
|
||
workspace/
|
||
├── task-6a02e23da6fe2e4ac16acf65/
|
||
│ ├── agent.py # Agent and tool definitions
|
||
│ ├── cli.py # Interactive command line interface
|
||
│ ├── vector_store.py # Qdrant + Ollama wrapper
|
||
│ ├── requirements.txt
|
||
│ └── README.md
|
||
``` |