d27e6f34d366bfe5d61d842db5f1f1a2b02a352e
RAG Agent with ChromaDB and Web Search
This repository implements a simple RAG (Retrieval‑Augmented Generation) agent that can answer questions using a local knowledge base stored in ChromaDB and also perform real‑time 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
exitto quit.
Setup
# 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
- Load documents – Place your
.txtor.mdfiles in thedocuments/folder. - Run the agent
python agent.py - Chat – Type your question. Type
exitto 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_kbandweb_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.
Description
Languages
Python
100%