Contenido del curso
Chat Models y Prompt templates
- 5

Flujo de conversación con trim_message en LangChain
09:35 min - 6

Conexión y uso de modelos de chat con LangChain y OpenAI
07:51 min - 7

Uso de Modelos de Google AI Gemini en LangChain
03:39 min - 8

Creación de Plantillas de Prompts en LangChain
08:45 min - 9

Técnicas de Few-Shot Prompting en Modelos de Lenguaje
12:18 min
Cadenas en LangChain
- 10

Creación de Cadenas en LangChain con String Output Parser
04:53 min - 11

Gestión de Historial de Chat con LangChain
07:52 min - 12

Integración de Herramientas Claves en LangChain: Runnable, OutputParser, Streaming
14:08 min - 13

Creación de Chatbots Inteligentes con Memoria Conversacional
13:55 min - 14

Cadena de Procesos para Memoria Conversacional con GPT-3.5 Turbo
07:37 min
Carga de documentos en LangChain
Retrieval-augmented generation (RAG)
- 18

Gestión de Vectores de Texto con Chroma y LangChain
05:46 min - 19

Embeddings y su aplicación en modelos de lenguaje y RAG
08:19 min - 20

Pinecone como vector store con LangChain
Viendo ahora - 21

Creación de Chatbot RAG con LangChain y ChromaDB
12:52 min - 22

Construcción de un Asistente Conversacional con LangChain y RAG
13:44 min
Agentes en LangChain
Ecosistema de LangChain
Pinecone como vector store con LangChain
Resumen
Elegir una vector database adecuada define el rendimiento de cualquier aplicación de machine learning que use embeddings. Pinecone es una solución gestionada en la nube que destaca por su escalabilidad y facilidad de uso para búsquedas semánticas a gran escala, y aquí vas a ver cómo conectarla con LangChain y OpenAI paso a paso.
¿Qué es Pinecone y por qué usarlo como vector store?
Pinecone es un vector store gestionado que almacena representaciones numéricas de texto (vectores) y permite recuperar fragmentos relevantes mediante búsqueda por similitud. A diferencia de Chroma, que suele correr en local, Pinecone vive en la nube y se enfoca en aplicaciones que necesitan alto rendimiento sobre millones de vectores.
¿Qué es una vector database? Es una base de datos que guarda vectores numéricos generados por un modelo de embeddings y permite buscar los más cercanos a una consulta usando métricas como coseno o distancia euclidiana.
La elección entre Pinecone y Chroma depende del caso de uso, la escalabilidad esperada y los costos. Pinecone es de pago, así que cada vector cargado cuenta.
¿Cómo crear un index en Pinecone con las dimensiones correctas?
Dentro del panel de Pinecone, la sección de index es donde nacen los proyectos y se gestionan las API keys [01:00]. Al crear un nuevo index hay que respetar reglas de nombre (no se permiten mayúsculas) y, sobre todo, definir bien la dimensión.
La dimensión es el número de vectores que produce el modelo de embeddings que vas a usar. Si los números no coinciden, la carga falla.
- Modelo elegido: text-embedding-3-large de OpenAI.
- Dimensión correspondiente: 3072 vectores [02:10].
- Métrica de distancia: coseno o euclidiana, según el caso.
- Proveedor cloud: Azure, Google Cloud o AWS, con su región.
Una vez creado el index, los dos datos críticos para el código son el nombre del index y la API key de Pinecone.
¿Qué métrica de distancia conviene elegir?
La diferencia de cosenos es la más común para texto porque mide el ángulo entre vectores y funciona bien con embeddings normalizados. La distancia euclidiana, que viene del álgebra lineal, mide la separación absoluta y se usa más cuando la magnitud importa.
¿Cómo conectar LangChain con Pinecone y OpenAI?
En Colaboratory necesitas tener cargadas la OpenAI API key, la API key de Pinecone y las dependencias langchain-openai, langchain-community y langchain-pinecone [04:30]. Un truco rápido para confirmar la conexión con OpenAI es usar invoke sobre el Large Language Model y revisar que devuelva respuesta.
El flujo de trabajo se resume así:
- Cargar el documento fuente (en este caso un TXT corto, un poema sobre el hidrógeno generado con ChatGPT).
- Dividirlo en fragmentos con
CharacterTextSplitter. - Generar embeddings con OpenAI.
- Cargar los vectores al index de Pinecone.
¿Cómo configurar el chunk size y el overlap?
El chunk_size define cuántos caracteres tiene cada fragmento y el chunk_overlap cuántos se repiten entre uno y otro para preservar contexto. En el ejemplo se probó primero con valores muy bajos (15 y 5) y LangChain lanzó una alerta por fragmentos demasiado pequeños [08:20].
- Valor inicial probado: chunk size 15, overlap 5.
- Valor final recomendado para el texto: chunk size 200, overlap 40.
- Regla práctica: el overlap suele ser entre el 10% y el 20% del chunk size.
Después de ajustar estos números, la división se ejecuta sin advertencias.
¿Cómo cargar los embeddings al index y hacer búsquedas semánticas?
El modelo se inicializa con OpenAIEmbeddings(model="text-embedding-3-large") y la carga se hace con PineconeVectorStore.from_documents, pasando los documentos fragmentados, el index_name y el objeto embedding (no como string, sino como variable) [10:45].
python from langchain_pinecone import PineconeVectorStore
vector_store = PineconeVectorStore.from_documents( documents=docs, index_name=index_name, embedding=embedding, )
El tiempo de carga depende del volumen: con un TXT corto tarda segundos, pero con CSV de muchas filas o PDFs largos puede tardar minutos. Siempre conviene verificar en el panel de Pinecone que el index dejó de estar vacío.
¿Cómo sé que los vectores se cargaron en Pinecone? El index deja de mostrarse vacío en el panel y el objeto
vector_storepermite acceder a los valores numéricos de cada vector y a los metadatos asociados.
¿Cómo hacer una consulta por similitud?
Una buena práctica para validar la carga es generar preguntas a partir del texto original. En el ejemplo, la consulta fue ¿dónde nació el hidrógeno? y se ejecutó con similarity_search sobre el vector_store.
La respuesta devuelve objetos Document ordenados por cercanía al vector de la pregunta, no por coincidencia exacta de palabras. Eso es lo que diferencia una búsqueda semántica de un buscador tradicional.
¿Qué cuidados debes tener al usar herramientas de pago?
Tanto Pinecone como OpenAI cobran por uso, así que monitorear el consumo es parte del trabajo de un ingeniero de natural language processing. En entornos empresariales suelen existir límites de gasto, y aun cuando no los haya, conviene autoimponerlos.
- Empieza con archivos pequeños para calibrar costos.
- Revisa el dashboard de consumo en cada plataforma.
- Ajusta el
chunk_sizepara no inflar el número de vectores innecesariamente.
El siguiente paso natural después de tener la vector store lista es construir una cadena RAG que combine recuperación y generación. Y aquí va una pregunta para ti: además de la búsqueda por similitud, ¿qué otros tipos de búsqueda existen y cuál es la importancia de cada una? Déjala en los comentarios.