EVA, the Enhanced Video Archive, provides intelligent search and retrieval capabilities for video content using RAG (Retrieval-Augmented Generation), making video content easily searchable and accessible. While the Adobe Photoshop video tutorial dataset (PsTuts) is used as an example, the tool is designed to work with any video transcript dataset. 📚
![]() |
![]() |
|---|---|
| EVA | Link to here |
This is a work-in-progress project, developed by 👤 Marko Budisic during AI Makerspace Cohort 6. If you are interested in jump starting your own AI education, I cannot think of a better place than AI Makerspace.
Here is the video of the project demo as presented in June 2025.
Features to be built:
- Automatic transcription of
.mp4(currently relying on transcripts provided with PsTuts) - OCR of the video to provide a second source of context.
- Search-by-screenshot
The tool's behavior is controlled through environment variables, giving you complete flexibility in setup:
- 🌐 Remote AI APIs: Use external AI services (OpenAI, HuggingFace) for processing
- 🏠 Ollama APIs: Run local AI models for privacy and offline operation
- 🔧 Hybrid Mode: Mix and match APIs based on your needs
LLM_API: Choose betweenOPENAI,HUGGINGFACE, orOLLAMAEMBEDDING_API: Select embedding provider (OPENAI,HUGGINGFACE, orOLLAMA)EVA_SEARCH_PERMISSION: Control web search permissions (yes,no, orask)
Here are 5 essential parts of the codebase with direct links to the source:
- Multi-Agent System - Orchestrates AI agents for video search and web research
- RAG Implementation - Core retrieval-augmented generation logic
- Configuration - APIs selectable via environment variables
- Context chunking - Timestamp-enriched document chunking
- Main Application - Chainlit web interface and user interaction
- Python 3.8+
- Git
- uv package manager (recommended)
-
Clone the repository:
git clone https://github.com/mbudisic/pstuts-rag.git cd pstuts-rag -
Install dependencies with uv:
# Basic installation uv sync # With development tools uv sync --extra dev # With web server components uv sync --extra web # Full installation with all features uv sync --extra dev --extra web --extra extras
-
Set up environment variables:
# Copy the example environment file cp env.example .env # Edit .env file with your actual API keys and configuration # The template includes all available options with explanations
-
Run the application:
uv run chainlit run app.py
-
Open your browser and navigate to
http://localhost:8000
For detailed configuration options, see the Developer Documentation which includes:
- Complete environment variable reference
- API integration guides
- Custom model configuration
- Performance optimization tips
Ready to enhance your video archive? 🚀 Start with the installation steps above and explore the power of AI-driven video content retrieval!

