LangChain
LangChain proporciona primitivas componibles para aplicaciones de LLM: modelos, recuperadores, herramientas y cadenas. La sintaxis de pipe de LCEL conecta los pasos en pipelines.
Busca en todas las páginas de la documentación
LangChain proporciona primitivas componibles para aplicaciones de LLM: modelos, recuperadores, herramientas y cadenas. La sintaxis de pipe de LCEL conecta los pasos en pipelines.
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_chroma import Chroma
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
llm = ChatOpenAI(model="gpt-4o-mini")
retriever = Chroma(embedding_function=OpenAIEmbeddings()).as_retriever()"""langchain.py - Cadena RAG con LCEL."""
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_chroma import Chroma
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_text_splitters import RecursiveCharacterTextSplitter
docs = ["pytest ejecuta pruebas con fixtures.", "FastAPI usa Pydantic para la validación."]
splits = RecursiveCharacterTextSplitter(chunk_size=200).split_text("\n".join(docs))
vectorstore = Chroma.from_texts(splits, OpenAIEmbeddings())
retriever = vectorstore.as_retriever(search_kwargs={"k": 2})
prompt = ChatPromptTemplate.from_template(
"Responde solo con el contexto:\n{context}\n\nPregunta: {question}"
)
def format_docs(docs):
return "\n---\n".join(d.page_content for d in docs)
chain = (
{"context": retriever | format_docs, "question": RunnablePassthrough()}
| prompt
| ChatOpenAI(model="gpt-4o-mini", temperature=0)
| StrOutputParser()
)
print(chain.invoke("¿Cómo funciona pytest?"))langchain-core.| Alternativa | Usar cuando | No usar cuando |
|---|---|---|
| LangChain | Pipelines de LLM de múltiples pasos | Llamada a API única |
| LlamaIndex | RAG centrado en datos | Cadenas simples |
| LangGraph | Agentes con estado | Pipelines lineales |
| SDK Directo | Control total, aprendizaje | Aplicaciones complejas de múltiples pasos |
Versiones de la pila: Esta página se escribió para Python 3.14.0 (estable 3.14, mantenimiento 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+ y uv 0.6+.
Revisado por Chris St. John·Última actualización: 16 jul 2026