Sign in
All templates
Template· Starters

RAG pipeline scaffold

Chunk → embed → retrieve → answer, with citations.

Sign in to save
#rag#python
python
"""
Minimal RAG pipeline: ingest -> chunk -> embed -> store -> retrieve.
Docs: https://python.langchain.com/docs/tutorials/rag/
"""
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_postgres import PGVector

DB_URL = "postgresql+psycopg://user:pass@localhost:5432/rag"
COLLECTION = "docs"

def ingest(documents: list[str]) -> None:
    splitter = RecursiveCharacterTextSplitter(chunk_size=800, chunk_overlap=100)
    chunks = splitter.create_documents(documents)
    store = PGVector(
        embeddings=OpenAIEmbeddings(model="text-embedding-3-large"),
        collection_name=COLLECTION,
        connection=DB_URL,
    )
    store.add_documents(chunks)

def retrieve(query: str, k: int = 5):
    store = PGVector(
        embeddings=OpenAIEmbeddings(model="text-embedding-3-large"),
        collection_name=COLLECTION,
        connection=DB_URL,
    )
    return store.similarity_search(query, k=k)

if __name__ == "__main__":
    ingest(["Your first document text here."])
    print(retrieve("example question"))