Files
task-6a1864f78a94f887e50d46da/README.md
T
2026-06-02 07:11:07 +00:00

63 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# RAG Agent with ChromaDB and Web Search
This repository implements a simple RAG (RetrievalAugmented Generation) agent that can answer questions using a local knowledge base stored in **ChromaDB** and also perform realtime web search via **Tavily**. The agent automatically decides which source to use and reports the chosen source in the answer.
## Features
- **Local knowledge base** Text files (.txt, .md) are loaded, chunked, and stored in a persistent ChromaDB collection.
- **Semantic search** Uses Ollama embeddings (`nomic-embed-text`).
- **Web search** Powered by Tavily.
- **Automatic source selection** The agent chooses between local and web search based on the query.
- **CLI** Simple chat loop with `exit` to quit.
## Setup
```bash
# 1. Create a virtual environment (optional but recommended)
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 2. Install dependencies
pip install -r requirements.txt
# 3. Pull required Ollama models
ollama pull llama3
ollama pull nomic-embed-text
# 4. Set your Tavily API key
export TAVILY_API_KEY=YOUR_KEY # Windows: set TAVILY_API_KEY=YOUR_KEY
```
## Usage
1. **Load documents** Place your `.txt` or `.md` files in the `documents/` folder.
2. **Run the agent**
```bash
python agent.py
```
3. **Chat** Type your question. Type `exit` to quit.
## Example
```
Query: Какие последние новости про AI-агентов?
[Web Search] ...
Источник: tavily
Query: Что в наших конспектах про LangGraph?
[Local KB] ...
Источник: chromadb
```
## Project Structure
- `vectorstore.py` Functions to create and load the ChromaDB vector store.
- `rag_tools.py` Two LangChain tools: `search_local_kb` and `web_search`.
- `agent.py` Main script that sets up the agent and runs the chat loop.
- `requirements.txt` Python dependencies.
- `README.md` This file.
## License
MIT License.