Building a RAG Pipeline with LangChain

Diseño de un pipeline de Retrieval-Augmented Generation usando embeddings, vector stores y LLMs para responder preguntas sobre documentación interna.

Arquitectura

El pipeline consta de tres etapas principales: ingestión de documentos, vectorización con embeddings, y generación de respuestas con un LLM.

Ingestión

Usamos DirectoryLoader para cargar PDFs y Markdown, luego RecursiveCharacterTextSplitter para dividir en chunks.

from langchain.document_loaders import DirectoryLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter

loader = DirectoryLoader("./docs", glob="**/*.md")
splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
docs = splitter.split_documents(loader.load())

Vector Store

ChromaDB como vector store local con embeddings de OpenAI.

Generación

Chain de QA con contexto recuperado y GPT-4 como modelo generador.