[Documents] → [Chunking] → [Embeddings] → [Qdrant]
                                                ↓
[Question] → [Embedding requête] → [Similarity Search] → [LLM] → [Réponse]
🔧 Stack technique
ComposantRôleVersion
QdrantBase de données vectorielleLatest
EmbeddingsTransformation texte → vecteursnomic-embed-text
LangChainOrchestration pipeline RAG0.3.x
OllamaLLM en sortie du RAGLocal
📂 Datasets ZFS
DatasetContenu
ragDocuments sources (PDF, TXT, MD)
embeddingsVecteurs précalculés
qdrantBase Qdrant persistée
🐍 Pipeline Python (cible)
python
from langchain.document_loaders import DirectoryLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.embeddings import OllamaEmbeddings
from langchain_community.vectorstores import Qdrant

# 1. Chargement
loader = DirectoryLoader('/mnt/qdrant/rag/')
docs = loader.load()

# 2. Découpage
splitter = RecursiveCharacterTextSplitter(
    chunk_size=500, chunk_overlap=50)
chunks = splitter.split_documents(docs)

# 3. Embeddings + indexation
embeddings = OllamaEmbeddings(model='nomic-embed-text')
vectorstore = Qdrant.from_documents(
    chunks, embeddings,
    url='http://localhost:6333',
    collection_name='portfolio')

# 4. Recherche
results = vectorstore.similarity_search('Qu\'est-ce que VFIO ?', k=3)

Pages liées