Files
task_6a1864f78a94f887e50d46…/README.md
T
2026-06-02 11:46:20 +00:00

65 lines
1.5 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
## Overview
This project implements a RetrievalAugmented Generation (RAG) agent that can search a local knowledge base stored in ChromaDB and the web via Tavily. The agent automatically chooses the appropriate source and indicates it in the response.
## Features
- Local vector store with Ollama embeddings (`nomic-embed-text`)
- Web search powered by Tavily
- Two tools: **Local KB Search** and **Web Search**
- Automatic source selection
- Persistent vector store between runs
- CLI chat loop with exit command
## Installation
```bash
# Pull required models
ollama pull llama3
ollama pull nomic-embed-text
# Install Python dependencies
pip install langchain langchain-chroma langchain-tavily langchain-ollama tavily-python chromadb python-dotenv
```
## Setup
Create a `.env` file in the project root with your Tavily API key:
```
TAVILY_API_KEY=your_api_key_here
CHAT_BASE_URL=http://localhost:11434/v1
CHAT_API_KEY=ollama
CHAT_MODEL=llama3
```
## Usage
```bash
python main.py --docs_dir path/to/documents
```
- `--docs_dir` (optional) Directory containing `.txt` or `.md` files to index into the vector store. If omitted, the agent will use the existing persisted store.
### Example
```
You: What are the latest news about AI agents?
Agent: 1. AI Agents in 2024 (https://example.com) ...
Source: tavily
You: Tell me about LangGraph in my notes.
Agent: LangGraph is a framework for building ...
Source: chromadb
```
## Exiting
Type `exit` or `quit` to exit the chat loop.
## License
MIT