🔍

EasySearch - Local RAG

Completed 2024 Microservices Architecture with Local Processing - Streamlit, Qdrant, Redis, Ollama

EasySearch (LocalRAG Easy Search) is a local Retrieval Augmented Generation (RAG) application that enables users to query their documents using natural language processing. The application uses a fully local architecture, ensuring data privacy and confidentiality by processing all operations on-premises without sending data to external services. The system leverages LangChain for RAG orchestration, Qdrant for vector storage, Redis for conversation history, and Ollama for local LLM inference. The application supports multiple document formats (PDF, DOCX, TXT, MD) and provides an intuitive Streamlit-based chat interface for document-based question answering.

Data Science Machine Learning Python Development RAG Natural Language Processing AI/LLM Integration Document Processing

Overview

EasySearch (LocalRAG Easy Search) is a local Retrieval Augmented Generation (RAG) application that enables users to query their documents using natural language processing. The application uses a fully local architecture, ensuring data privacy and confidentiality by processing all operations on-premises without sending data to external services. The system leverages LangChain for RAG orchestration, Qdrant for vector storage, Redis for conversation history, and Ollama for local LLM inference. The application supports multiple document formats (PDF, DOCX, TXT, MD) and provides an intuitive Streamlit-based chat interface for document-based question answering.

Key Features

Local RAG application with complete on-premises processing

Multi-format document support (PDF, DOCX, TXT, MD)

Natural language question-answering based on document content

Qdrant vector database for semantic search

Redis-based conversation history for context-aware responses

Ollama local LLM inference (Llama3/Llama3.2)

Streamlit chat interface for intuitive interaction

Privacy-preserving architecture with no external API calls

Docker Compose deployment with microservices architecture

Automatic document indexing and embedding generation

Document-grounded answers only (no hallucination)

Session-based chat history management

pages.portfolio.projects.easysearch_local_rag.features.12

Technical Highlights

Developed fully local RAG application ensuring data privacy

Implemented LangChain-based RAG orchestration with Qdrant vector store

Created multi-format document processing pipeline

Integrated Ollama for local LLM inference without external dependencies

Built Redis-based conversation history for context-aware responses

Designed Docker Compose microservices architecture for easy deployment

Challenges and Solutions

Local LLM Setup

Configured Ollama for easy local LLM inference with pre-configured models

Vector Store Management

Implemented Qdrant vector database with HuggingFace embeddings for efficient semantic search

Conversation Context

Developed Redis-based chat history with session management for context maintenance

Document Processing

Integrated LangChain document loaders for multiple format support (PDF, DOCX, TXT, MD)

Response Quality

Ensured document-grounded answers using system prompts and context filtering

Deployment Complexity

Orchestrated multiple services using Docker Compose for easy deployment and management

Technologies

RAG Framework

LangChain LangChain Community LangChain HuggingFace LangChain Qdrant LangChain Ollama

Vector Database

Qdrant HuggingFace Embeddings

LLM

Ollama Llama3 Llama3.2

Frontend

Streamlit

Storage

Redis Redis Stack

Document Processing

PyPDF Docx2txt TextLoader UnstructuredMarkdownLoader RecursiveCharacterTextSplitter

Deployment

Docker Docker Compose

Environment

Python 3.11+ Poetry

Project Information

Status
Completed
Year
2024
Architecture
Microservices Architecture with Local Processing - Streamlit, Qdrant, Redis, Ollama
Category
Data Science