En este tutorial, demostraremos cómo aprovechar el poder de las capacidades de búsqueda vectorial en Couchbase con la plataforma de automatización de flujos de trabajo de n8n. Construiremos un sencillo flujo de trabajo de agencia de viajes que recomiende destinos vacacionales en función de las consultas de los usuarios, utilizando incrustaciones vectoriales para proporcionar resultados contextualmente relevantes.

Introducción

La búsqueda vectorial permite realizar búsquedas basadas en similitudes semánticas en lugar de en coincidencias exactas. El nodo Couchbase Search Vector en n8n permite realizar operaciones de búsqueda vectorial utilizando el servicio de búsqueda de Couchbase, soportando la recuperación, actualización e inserción de documentos en una base de datos vectorial.

En este tutorial, vamos a:

    1. Configurar un clúster Couchbase Capella
    2. Configurar el cubo, el ámbito y la colección necesarios
    3. Crear un índice de búsqueda para la búsqueda vectorial
    4. Cree un flujo de trabajo n8n con ingestión de datos y funciones de chat
    5. Pruebe nuestra sencilla agencia de viajes

Requisitos previos

    • Una instancia autoalojada de n8n
    • El paquete de nodos comunitarios n8n-nodes-couchbase instalado en su instancia n8n
      • Información sobre la instalación de nodos comunitarios aquí
    • Una cuenta Couchbase Capella (el nivel gratuito es suficiente)
    • Claves API para OpenAI y Gemini (para incrustaciones y funciones LLM)

Paso 1: Despliegue de un clúster Couchbase

Empecemos desplegando un cluster en la capa gratuita de Couchbase Capella, aunque cualquier tipo de cluster con el servicio de búsqueda funcionará.

    1. Entrar en Couchbase Capellao Regístrese para obtener una cuenta Couchbase Capella
    2. Despliegue de un clúster operativo
      • La agrupación debe tener activado el servicio de búsqueda

Paso 2: Configure su base de datos Couchbase

    1. Crear un cubo llamado agente de viajes
    2. Crear un ámbito dentro de los vectores llamados travel-agent
    3. Dentro de ese ámbito, crear una colección puntos de interés

Paso 3: Crear un índice de búsqueda

    1. Importar una definición de índice de búsqueda mediante Capella UI

Paso 4: Configurar el acceso al clúster

    1. Crear credenciales de acceso al clúster
    2. Configurar las direcciones IP permitidas
      • Debe permitir que la dirección IP de la máquina que ejecuta n8n
      • Puede permitir el acceso desde cualquier lugar con fines de prueba, pero no debe utilizarse en situaciones de producción.

Paso 5: Trabajar con el flujo de trabajo del n8n

Se proporciona una plantilla del flujo de trabajo aquí. Nuestro flujo de trabajo n8n consta de dos componentes principales:

Flujo de trabajo de ingestión de datos

    1. Nodo Webhook (para escuchar peticiones HTTP)
    2. Nodo OpenAI Embeddings (para generar incrustaciones al insertar un documento)
    3. Nodo Couchbase Vector (configurado para la inserción de documentos)
    4. Cargador de datos por defecto y divisor de texto de caracteres recursivo

Flujo de trabajo de la aplicación de chat

    1. Nodo Chat Trigger
    2. El nodo AI Tools Agent se conecta a:
      • Gemini (como modelo de chat, para generar respuestas)
      • Memoria simple (como la Memoria, para mantener el contexto de la conversación)
      • Nodo Couchbase Search Vector (como la herramienta, para la búsqueda)
      • Nodo OpenAI Embeddings (como modelo Embedding para el nodo Couchbase Search Vector, para convertir consultas en vectores)

Paso 6: Configurar los nodos vectoriales de Couchbase

    1. Crear una nueva credencial Couchbase con:
      • Cadena de conexión (desde la pestaña "Conectar" de Capella)
      • El nombre de usuario y la contraseña de las credenciales de acceso al clúster (creadas en el paso 4)
    2. Para ambos nodos de Couchbase Vector, configure los ajustes del nodo:
      • Cubo: travel-agent
      • Ámbito: vectores
      • Colección: puntos de interés
      • Índice: poi-index

Paso 7: Ingesta de datos de muestra

Ingeriremos datos de destinos de viaje de muestra con descripciones utilizando un script de shell proporcionado.

    1. Guardar y activar su flujo de trabajo
    2. Copie la URL del webhook de producción
    3. Descargar el script de shell proporcionadoy ejecútelo para insertar algunos puntos de interés:

El script creará incrustaciones para cada descripción de destino y las almacenará en Couchbase con sus representaciones vectoriales.

Paso 8: Ponga a prueba a su agencia de viajes

Ahora puede interactuar con su agente de viajes haciéndole preguntas como:

    • "¿Dónde deberíamos ir de vacaciones para hacer turismo?"
    • "Quiero unas vacaciones llenas de aventuras"
    • "¿Cuál es un buen destino romántico?"

El flujo de trabajo será:

    1. Convierte tu consulta en una incrustación vectorial
    2. Buscar en Couchbase destinos semánticamente similares
    3. Utilizar el LLM para formular una respuesta basada en la información de destino recuperada.

Próximos pasos

Aunque esta agencia de viajes puede no ser muy práctica para planificar unas vacaciones, demuestra de forma efectiva cómo podemos aprovechar Couchbase y Vector Search para recuperar datos de una base de datos y utilizarlos en conversaciones LLM utilizando las potentes herramientas de flujo de trabajo de n8n.

Eche un vistazo a nuestro Libro de recetas de búsqueda vectorial para ver ejemplos de otras aplicaciones de búsqueda vectorial en Couchbase para inspirarte, ¡y pruébalas en n8n usando el Nodo Vectorial de Búsqueda de Couchbase! ¡Feliz automatización!

Recursos

Autor

Publicado por Elliot Scribner - Ingeniero de software

Elliot Scribner es Ingeniero de Software en el equipo de Experiencia del Desarrollador y Ecosistema en Couchbase. Con experiencia sustancial en varios lenguajes y tecnologías, incluyendo Full Stack Node.js (TypeScript) y Python, Elliot ha liderado el desarrollo de múltiples proyectos de integración que han mejorado las ofertas para desarrolladores de Couchbase. Colabora con otras funciones para garantizar un desarrollo sin fisuras y ofrecer integraciones exitosas. Elliot es un apasionado de la potenciación de los desarrolladores a través de herramientas robustas y ecosistemas intuitivos.

Dejar una respuesta