Saltearse al contenido

Pinecone

El componente Pinecone permite almacenar, buscar y recuperar documentos usando la base de datos vectorial de Pinecone. Con él puedes añadir nuevos documentos a un índice, buscar los más similares a una consulta o crear un retriever que será usado por modelos de lenguaje para obtener información relevante.

¿Cómo funciona?

El componente se conecta a Pinecone a través de la API que ofrece el servicio. Cuando seleccionas la operación Add, los datos que ingreses se convierten en documentos, se generan embeddings con el modelo que hayas configurado y se guardan en el índice especificado.
Con la operación Search se envía una consulta de texto, se calcula su embedding y Pinecone devuelve los documentos más cercanos según la métrica de distancia elegida (Cosine, Euclidean o Dot Product).
La operación Retriever crea un objeto retriever que puede ser usado por otros componentes de LangChain para obtener documentos relevantes cuando se necesite.

Operaciones

Este componente ofrece varias operaciones que puedes seleccionar según lo que necesites hacer. Solo puedes usar una operación a la vez:

  • Add: Añade documentos al índice de Pinecone.
  • Search: Busca los documentos más similares a una consulta de texto.
  • Retriever: Crea un retriever que puede ser usado por modelos de lenguaje para obtener documentos relevantes.

Para usar el componente, primero selecciona la operación que necesitas en el campo “Operation” (Operación).

Entradas

  • Embedding: Modelo de embeddings que se usará para convertir textos en vectores.

    • Visible en: Add, Search, Retriever
  • Ingest Data: Documentos que se añadirán al índice cuando uses la operación Add.

    • Visible en: Add
  • Operation: Selecciona la operación que quieres ejecutar.

    • Visible en: Add, Search, Retriever
  • Distance Strategy: Métrica de distancia que Pinecone usará para comparar vectores.

    • Visible en: Add, Search, Retriever
  • Index Name (REQUIRED): Nombre del índice de Pinecone donde se guardarán los documentos.

    • Visible en: Add, Search, Retriever
  • Namespace: Espacio de nombres dentro del índice para organizar los documentos.

    • Visible en: Add, Search, Retriever
  • Number of Results: Cuántos documentos quieres que Pinecone devuelva en una búsqueda.

    • Visible en: Add, Search, Retriever
  • Search Query: Texto que quieres buscar. Si lo dejas vacío, se devolverán todos los documentos.

    • Visible en: Search
  • Text Key: Nombre del campo en cada documento que contiene el texto que se indexará.

    • Visible en: Add, Search, Retriever

Credencial
Este componente necesita una credencial de tipo Pinecone API.

  1. Ve a la sección de credenciales de Nappai y crea una nueva credencial llamada Pinecone API.
  2. Ingresa tu Pinecone Api Key (es una contraseña).
  3. En el componente, selecciona esa credencial en el campo Credential.
    Los campos de la credencial (como la API Key) no aparecen en la lista de entradas.

Salidas

  • Retriever: Un objeto que puede ser usado por otros componentes para recuperar documentos relevantes.
  • Results: Lista de documentos encontrados por la búsqueda.
  • Vector Store: El objeto Pinecone que representa el índice completo.

Ejemplo de Uso

  1. Añadir documentos

    • Selecciona la operación Add.
    • Conecta tu modelo de embeddings al campo Embedding.
    • Pega o conecta los documentos que quieres indexar en Ingest Data.
    • Configura el Index Name, Namespace y Distance Strategy según tu caso.
    • Haz clic en Run y el componente añadirá los documentos al índice.
  2. Buscar documentos

    • Cambia la operación a Search.
    • Conecta el mismo modelo de embeddings.
    • Escribe una frase en Search Query.
    • Ajusta Number of Results si quieres más o menos resultados.
    • Ejecuta el flujo y obtendrás la lista de documentos más similares en la salida Results.
  3. Crear un retriever

    • Selecciona la operación Retriever.
    • Conecta el modelo de embeddings.
    • Configura el índice y la métrica.
    • Ejecuta y obtén el objeto Retriever que puedes usar en un flujo de preguntas y respuestas.

Componentes Relacionados

  • OpenAI LLM – Usa el retriever para alimentar un modelo de lenguaje.
  • Text Splitter – Divide textos largos antes de enviarlos a Pinecone.
  • Data Loader – Carga datos desde archivos o bases de datos para luego enviarlos a Pinecone.

Consejos y Mejores Prácticas

  • Organiza tus índices: Usa diferentes índices o namespaces para separar proyectos o tipos de documentos.
  • Revisa la métrica: Cosine suele funcionar bien para textos, pero prueba Euclidean o Dot Product si tus embeddings son de otro tipo.
  • Controla el tamaño: Pinecone tiene límites de tamaño por índice; revisa la documentación de Pinecone si trabajas con millones de documentos.
  • Actualiza embeddings: Si cambias el modelo de embeddings, vuelve a indexar los documentos para mantener la coherencia.

Consideraciones de Seguridad

  • La API Key de Pinecone se almacena en la credencial y no se muestra en el flujo.
  • Asegúrate de que solo usuarios autorizados tengan acceso a la credencial y al componente.
  • Si compartes el flujo, verifica que la credencial no se exponer accidentalmente.