3.1 KiB
Educational Agent with Retrieval-Augmented Generation (RAG) Memory
This repository contains a lightweight educational agent that demonstrates Retrieval-Augmented Generation (RAG) using only Python standard libraries. The implementation is fully self‑contained and does not rely on external AI services or heavy dependencies, making it suitable for the Deep Agents Virtual File System environment.
Features
- RAG Memory – Stores documents and builds simple bag‑of‑words embeddings.
- Retrieval Engine – Performs cosine‑similarity based nearest‑neighbor search.
- Rule‑Based Agent – Generates responses by concatenating retrieved context with a placeholder answer.
- CLI – Ask a question and receive an answer that includes relevant context.
Project Structure
.
├── src
│ └── index.py # Main implementation
└── README.md # This file
Installation
No external dependencies are required. The code uses only the Python standard library.
# Clone the repository
git clone https://git.brojs.ru/kuzakhmetovartur/agent-s-rag-pamyatyu.git
cd agent-s-rag-pamyatyu
# Ensure you have Python 3.8+ installed
python3 --version
Usage
-
Prepare a data directory
Place one or more.txtfiles in a directory. Each file will be treated as a separate document. Example:data/ ├── doc1.txt ├── doc2.txt └── doc3.txt -
Run the agent
python3 src/index.py --data-dir data --question "What is the capital of France?"The agent will:
- Load all
.txtfiles fromdata/. - Compute bag‑of‑words embeddings for each document.
- Retrieve the top 3 most relevant documents for the question.
- Print the question, retrieved context, and a placeholder answer.
- Load all
How It Works
-
Tokenization & Vectorization
Text is tokenized by lowercasing, removing punctuation, and splitting on whitespace. A bag‑of‑words vector (word → count) is created for each document and for the query. -
Similarity Calculation
Cosine similarity between the query vector and each document vector is computed using only standard Python data structures. -
Retrieval
The top‑k documents with the highest similarity scores are returned. -
Response Generation
The agent concatenates the question, the retrieved context snippets, and a simple placeholder answer.
Extending the Agent
- Better Embeddings – Replace the bag‑of‑words approach with a lightweight embedding model (e.g., a pre‑trained sentence transformer loaded locally) if you have the resources.
- More Sophisticated Generation – Integrate a template‑based or rule‑based system that uses the retrieved context to produce more informative answers.
- Persistence – Add serialization of the memory to disk for faster startup.
Individual Effort Statement
This work was completed independently by the author and does not rely on external automated tools or AI services for the core implementation.
License
MIT License – see LICENSE for details.