Saltearse al contenido

Chroma DB

Chroma DB es un componente que te permite guardar y buscar información representada como vectores. Con él puedes añadir nuevos documentos, buscar los más similares a una consulta o crear un “retriever” que devuelva documentos relevantes cuando lo necesites.

¿Cómo funciona?

Chroma DB utiliza la base de datos de vectores Chroma, que almacena cada documento como un vector numérico. Cuando añades un documento, el componente convierte el texto en un vector (usando la entrada Embedding) y lo guarda en la colección especificada. Para buscar, el componente compara el vector de tu consulta con los vectores almacenados y devuelve los más cercanos según el tipo de búsqueda que elijas. Si habilitas SSL, la comunicación con el servidor se cifra, añadiendo una capa de seguridad.

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 nuevos documentos al almacén de vectores.
  • Search: Busca documentos similares a una consulta y devuelve los resultados.
  • Retriever: Crea un objeto “retriever” que puede usarse en flujos de trabajo para obtener documentos relevantes cuando se necesiten.

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

Entradas

Campos de Entrada

Los siguientes campos están disponibles para configurar este componente. Cada campo puede estar visible en diferentes operaciones:

  • Embedding: Representación vectorial de los datos que se añadirán o buscarán.

    • Visible en: Add, Search, Retriever
  • Ingest Data: Los documentos que quieres añadir al almacén.

    • Visible en: Add
  • Operation: Selecciona la operación que quieres ejecutar (Add, Search o Retriever).

    • Visible en: Add, Search, Retriever
  • Allow Duplicates: Si es falso, no se añadirán documentos que ya existan en el almacén.

    • Visible en: Add, Search, Retriever
  • Server CORS Allow Origins: Orígenes permitidos para peticiones CORS.

    • Visible en: Add, Search, Retriever
  • Server gRPC Port: Puerto del servidor gRPC.

    • Visible en: Add, Search, Retriever
  • Server Host: Dirección del servidor.

    • Visible en: Add, Search, Retriever
  • Server HTTP Port: Puerto del servidor HTTP.

    • Visible en: Add, Search, Retriever
  • Server SSL Enabled: Habilita o deshabilita SSL para la comunicación.

    • Visible en: Add, Search, Retriever
  • Collection Name: Nombre de la colección donde se guardarán los vectores.

    • Visible en: Add, Search, Retriever
  • Limit: Límite de registros a comparar cuando Allow Duplicates es falso.

    • Visible en: Add, Search, Retriever
  • Number of Results: Número de resultados que quieres recibir.

    • Visible en: Search, Retriever
  • Persist Directory: Directorio donde se guardan los datos de forma persistente.

    • Visible en: Add, Search, Retriever
  • Search Query: Consulta de búsqueda. Si lo dejas vacío, se recuperarán todos los documentos.

    • Visible en: Search
  • Search Score Threshold: Umbral mínimo de similitud para los resultados de búsqueda.

    • Visible en: Search, Retriever
  • Search Type: Tipo de búsqueda a realizar. Puede ser ‘similarity’ o ‘similarity_score_threshold’.

    • Visible en: Search, Retriever

Salidas

  • Retriever: Un objeto que puede usarse para recuperar documentos relevantes en flujos de trabajo posteriores.
  • Results: Los documentos encontrados durante una búsqueda, junto con sus puntuaciones de similitud.
  • Vector Store: La instancia del almacén de vectores, útil si quieres manipularla directamente en otro componente.

Ejemplo de Uso

  1. Agregar documentos

    • Selecciona la operación Add.
    • Proporciona un vector de embedding y los datos del documento en Ingest Data.
    • Configura Collection Name y, si lo deseas, desactiva Allow Duplicates.
    • Haz clic en “Ejecutar” y el documento quedará guardado en Chroma.
  2. Buscar documentos

    • Cambia la operación a Search.
    • Ingresa el vector de embedding de la consulta en Embedding y escribe una frase en Search Query (opcional).
    • Ajusta Number of Results y Search Score Threshold según necesites.
    • Ejecuta y obtendrás una lista de documentos similares en la salida Results.

Componentes Relacionados

  • ChromaCustom – Base sobre la que se construye este componente, ofrece funcionalidades comunes para trabajar con Chroma.
  • VectorStore – Componente genérico que permite interactuar con diferentes almacenes de vectores.

Consejos y Mejores Prácticas

  • Usa Allow Duplicates = False cuando quieras evitar redundancias y ahorrar espacio.
  • Configura Server SSL Enabled en entornos de producción para proteger la comunicación.
  • Ajusta Search Score Threshold para filtrar resultados no suficientemente relevantes.
  • Si trabajas con grandes volúmenes, considera usar Persist Directory para mantener los datos entre reinicios.

Consideraciones de Seguridad

  • Cuando habilites SSL, asegúrate de que el certificado sea válido y esté actualizado.
  • Limita los orígenes en Server CORS Allow Origins a los dominios que realmente necesiten acceder al servicio.
  • Guarda las credenciales de acceso al servidor en variables de entorno seguras y no las expongas en el flujo de trabajo.