🔍

EasySearch - RAG Local

Completed 2024 Architecture Microservices avec Traitement Local - Streamlit, Qdrant, Redis, Ollama

EasySearch (LocalRAG Easy Search) est une application Retrieval Augmented Generation (RAG) locale qui permet aux utilisateurs d'interroger leurs documents utilisant traitement du langage naturel. L'application utilise une architecture entièrement locale, assurant confidentialité et protection des données en traitant toutes opérations sur site sans envoyer données à services externes. Le système exploite LangChain pour orchestration RAG, Qdrant pour stockage vectoriel, Redis pour historique de conversation et Ollama pour inférence LLM locale. L'application prend en charge plusieurs formats de documents (PDF, DOCX, TXT, MD) et fournit interface de chat intuitive basée sur Streamlit pour question-réponse basée sur documents.

Data Science Apprentissage automatique Développement Python RAG Traitement du Langage Naturel Intégration IA/LLM Traitement de Documents

Aperçu

EasySearch (LocalRAG Easy Search) est une application Retrieval Augmented Generation (RAG) locale qui permet aux utilisateurs d'interroger leurs documents utilisant traitement du langage naturel. L'application utilise une architecture entièrement locale, assurant confidentialité et protection des données en traitant toutes opérations sur site sans envoyer données à services externes. Le système exploite LangChain pour orchestration RAG, Qdrant pour stockage vectoriel, Redis pour historique de conversation et Ollama pour inférence LLM locale. L'application prend en charge plusieurs formats de documents (PDF, DOCX, TXT, MD) et fournit interface de chat intuitive basée sur Streamlit pour question-réponse basée sur documents.

Fonctionnalités clés

Application RAG locale avec traitement entièrement sur site

Support multi-formats de documents (PDF, DOCX, TXT, MD)

Question-réponse langage naturel basée sur contenu de documents

Base de données vectorielle Qdrant pour recherche sémantique

Historique de conversation basé sur Redis pour réponses contextuelles

Inférence LLM locale Ollama (Llama3/Llama3.2)

Interface de chat Streamlit pour interaction intuitive

Architecture préservant confidentialité sans appels API externes

Déploiement Docker Compose avec architecture microservices

Indexation automatique de documents et génération d'embeddings

Réponses basées uniquement sur documents (pas d'hallucination)

Gestion d'historique de chat basée sur sessions

pages.portfolio.projects.easysearch_local_rag.features.12

Principales fonctionnalités

Développement d'application RAG entièrement locale assurant confidentialité des données

Implémentation d'orchestration RAG basée sur LangChain avec stockage vectoriel Qdrant

Création de pipeline de traitement de documents multi-formats

Intégration d'Ollama pour inférence LLM locale sans dépendances externes

Construction d'historique de conversation basé sur Redis pour réponses contextuelles

Conception d'architecture microservices Docker Compose pour déploiement facile

Défis et solutions

Configuration LLM Local

Configuration d'Ollama pour inférence LLM locale facile avec modèles pré-configurés

Gestion de Stockage Vectoriel

Implémentation de base de données vectorielle Qdrant avec embeddings HuggingFace pour recherche sémantique efficace

Contexte de Conversation

Développement d'historique de chat basé sur Redis avec gestion de sessions pour maintien de contexte

Traitement de Documents

Intégration de chargeurs de documents LangChain pour support multi-formats (PDF, DOCX, TXT, MD)

Qualité de Réponse

Assurance de réponses basées sur documents utilisant prompts système et filtrage de contexte

Complexité de Déploiement

Orchestration de plusieurs services utilisant Docker Compose pour déploiement et gestion faciles

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

Informations du projet

Statut
Completed
Année
2024
Architecture
Architecture Microservices avec Traitement Local - Streamlit, Qdrant, Redis, Ollama
Category
Data Science