# Agent with RAG Memory This project implements a retrieval‑augmented generation (RAG) agent that uses **Qdrant** as the vector store and **Ollama** for local LLM inference. The agent follows the latest LangChain API and is fully configurable via environment variables. ## Features - **Qdrant** vector store (via `langchain-qdrant`) - **Ollama** local LLM integration (via `langchain-ollama`) - Retrieval‑augmented generation with conversation memory - Simple CLI interface for quick testing ## Installation ```bash # Clone the repository git clone https://git.brojs.ru/kuzakhmetovartur/agent-s-rag-pamyatyu.git cd agent-s-rag-pamyatyu # Create a virtual environment (optional but recommended) python -m venv .venv source .venv/bin/activate # On Windows: .venv\\Scripts\\activate # Install dependencies pip install -r requirements.txt ``` ## Configuration Create a `.env` file in the project root (or set environment variables directly): ```dotenv # Qdrant QDRANT_HOST=localhost QDRANT_PORT=6333 QDRANT_API_KEY= # leave empty if no key # Ollama OLLAMA_HOST=localhost OLLAMA_PORT=11434 OLLAMA_MODEL=llama3 # Optional: collection name QDRANT_COLLECTION=documents ``` > **Note**: The Qdrant instance must be running and accessible at the specified host/port. > The Ollama server must be running locally and expose the chosen model. ## Usage ### Adding Documents ```python from src.agent import Agent from langchain_core.documents import Document agent = Agent() docs = [ Document(page_content="Python is a programming language.", metadata={"source": "python.txt"}), Document(page_content="LangChain is a framework for LLM applications.", metadata={"source": "langchain.txt"}), ] agent.add_documents(docs) ``` ### Querying the Agent ```bash python -m src.agent "What is LangChain?" ``` or from Python: ```python response = agent.run("What is LangChain?") print(response["answer"]) ``` The response will include the answer and the source documents used. ## Project Structure ``` agent-s-rag-pamyatyu/ ├── src/ │ ├── agent.py │ ├── config.py │ └── vector_store.py ├── requirements.txt ├── pyproject.toml └── README.md ``` ## License MIT License