Parte 1 - Construir con Vonage y Couchbase para transformar la comunicación y los datos
Imaginemos un cambio de paradigma en la forma en que percibimos el papel de la IA en el lugar de trabajo. En lugar de sustituir funciones, ¿qué pasaría si viniera a mejorar el trabajo de las personas en esas mismas funciones? En otras palabras, en lugar de temer que la IA haga que los puestos de trabajo sean redundantes, la utilizamos para mejorar nuestros propios flujos de trabajo y ser más productivos.
¿Le parece descabellado? No tiene por qué serlo.
En esta serie de entradas de blog en dos partes, vamos a descubrir cómo aprovechar la precisión y claridad de la búsqueda vectorial para construir una experiencia de atención al cliente que capacite a los agentes de soporte. El resultado final será mejorar su eficacia, no sustituirlos.
¿Por qué centrarse en los agentes de atención al cliente? Bueno, porque ellos, más a menudo que muchas otras funciones, pasan todo el día necesitando acceder a grandes cantidades de conocimientos sobre una amplia variedad de temas y cambiar de contexto entre temas de forma rápida y eficiente. Tienen que hacer todo esto al tiempo que mantienen la amabilidad y la accesibilidad con los clientes que acuden a ellos a menudo en un estado de angustia. Los agentes de atención al cliente hacen este trabajo día tras día.
¿Podríamos crear una experiencia para ellos que les proporcionara acceso a un contexto útil más rápidamente y con menos esfuerzo por su parte para todas y cada una de las solicitudes de los clientes en las que están trabajando? Sí, y eso es exactamente lo que vamos a hacer.
tl;dr En caso de que desee pasar directamente a la aplicación, puede encontrar un ejemplo totalmente funcional de esta aplicación en GitHub junto con instrucciones detalladas README.
Esto es lo que vamos a construir juntos -
Una aplicación Ruby on Rails que permite a los agentes de atención al cliente:
-
- Recibir y responder a los clientes en el salpicadero de la aplicación a través de WhatsApp.
- Ver respuestas a consultas resueltas anteriormente que se relacionan con el ticket abierto actual para proporcionar un contexto crítico.
- Marcar los tickets como resueltos y añadir su respuesta resuelta a la base de conocimientos para que sirva de contexto para futuras consultas de los clientes.
Todo ello se construirá utilizando tres servicios:
-
- Couchbase Capellauna base de datos como servicio (DBaaS) totalmente gestionada para almacenar información sobre usuarios y billetes, junto con las incrustaciones vectoriales que representan la base de conocimientos de las soluciones resueltas
- API de mensajes de Vonageuna API de comunicaciones multicanal que permite conversaciones bidireccionales en WhatsApp, SMS, Facebook Messenger y otros proveedores.
- API de incrustación de OpenAIun servicio de OpenAI que convierte los datos proporcionados en representaciones vectoriales de los mismos para permitir la búsqueda vectorial.
¿No sabe qué son la búsqueda vectorial y las incrustaciones vectoriales? Consulte esta entrada del blog que lo explica todo y cómo empezar en 5 minutos. Cuando termines de leerlo, ¡vuelve aquí y continúa el viaje!
¿Listo para empezar a construir? Pongámonos manos a la obra.
Andamiaje de la aplicación Rails
El primer paso para cualquier nueva aplicación Rails, comienza con el querido raíles nuevo en el terminal, y este proyecto no es diferente.
Sigue adelante e inicializa una nueva aplicación ejecutando lo siguiente en tu línea de comandos:
|
1 |
raíles nuevo soporte_sapp_aplicación -css viento de cola |
Este comando creará una nueva aplicación Rails con TailwindCSS instalado. Utilizaremos Tailwind para el estilo del frontend de la aplicación.
A continuación, una vez que el comando haya terminado de ejecutarse, cambia al nuevo directorio e instalemos las dependencias adicionales que necesitaremos, a saber, el SDK Ruby de Vonage, el ORM Ruby de Couchbase y un popular SDK OpenAI de Ruby:
|
1 |
paquete añada vonage couchbase-orm rubí-openai |
En este punto, ejecute instalación del paquete para instalar estas dependencias.
Ahora, vamos a crear el inicializador para los clientes de Vonage y OpenAI en nuestra aplicación:
|
1 2 |
toque config/inicializadores/vonage.rb toque config/inicializadores/openai.rb |
Mientras estamos creando archivos en el directorio config, vamos a añadir también el archivo de configuración donde definiremos nuestra configuración de conexión a Couchbase:
|
1 |
toque config/couchbase.yml |
Una vez que hemos creado los archivos para los inicializadores, podemos crear los archivos para contener nuestros futuros Modelos y Controladores:
|
1 2 3 4 5 |
toque aplicación/controladores/controlador_de_mensajes.rb toque aplicación/controladores/dashboard_controller.rb toque aplicación/modelos/billete.rb toque aplicación/modelos/usuario.rb toque aplicación/modelos/agente.rb |
Los únicos archivos que quedan por crear en este punto son las vistas frontales, que crearemos más adelante en la sección Creación de la interfaz de la aplicación sección.
Llegados a este punto, la estructura de archivos debería parecerse a esto, incluyendo también todos los archivos estándar de Rails que no se mencionan a continuación:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
whatsapp_support_app/ aplicación/ controladores/ controlador_de_aplicación.rb controlador_de_mensajes.rb dashboard_controller.rb modelos/ registro_de_aplicación.rb billete.rb usuario.rb agente.rb config/ inicializadores/ vonage.rb openai.rb couchbase.yml aplicación.rb medio ambiente.rb rutas.rb |
Lo último que añadiremos en este punto es un archivo para guardar nuestras credenciales y otra información confidencial que no queramos consultar en Git ni hacer pública:
|
1 |
toque .env |
Con este último archivo, ya estamos listos para seguir adelante y crear nuestra cuenta de Couchbase Capella, nuestro cluster y nuestro bucket para guardar los datos de tickets y usuarios.
Configuración de Couchbase Capella
Capella es una base de datos como servicio (DBaaS) totalmente gestionada que ofrece Couchbase. Ofrece una plataforma de datos completa que te ayudará a satisfacer muchas de tus necesidades, desde el almacenamiento en caché hasta la búsqueda de texto completo y el análisis de big data. Columnar. Para esta aplicación, vamos a aprovechar la base de datos de documentos JSON de Capella junto con sus capacidades de búsqueda vectorial.
Cada documento alojado en Capella será un billete o un usuario:
-
- A usuario contendrá el número de teléfono de WhatsApp con el que el usuario envió el mensaje.
- A billete tendrá la consulta original, el ID del usuario que realizó la consulta, el estado del ticket (ya sea abra o resuelto), eventualmente un resumen de la solución, y la incrustación vectorial que representa la solución.
También vamos a crear un índice de búsqueda vectorial que permitirá a la aplicación buscar en las incrustaciones alojadas en los documentos del ticket similitudes con el ticket en el que un agente está trabajando en ese momento.
Crear una cuenta Capella
El primer paso es crear una cuenta gratuita en Capella. Para ello, vaya a nube.couchbase.com y regístrate con tu cuenta de Google o GitHub o crea una cuenta utilizando una combinación de correo electrónico y contraseña.
¡Eso es todo lo que se necesita para crear una cuenta! Ahora que ya tienes tu cuenta, puedes crear tu clúster. Un clúster, en caso de que no estés familiarizado con la terminología, es similar a un servidor de base de datos. ¡Manos a la obra!
Crear un clúster
Capella trabaja en un entorno multicloud, lo que significa que tiene la libertad de elegir desplegar su clúster en AWS, GCP o Azure. Todo lo que tiene que hacer es seleccionar la que prefiera y Capella, entre bastidores, se encargará del resto por usted.
En la página de inicio de su cuenta, después de conectarse, haga clic en el botón + Crear base de datos en la esquina superior derecha y rellene los datos, es decir, el nombre que ha elegido para él. Si aún no ha elegido un nombre, tal vez cluster_soporte_sapp.
Cuando esté listo, haga clic en el botón final Crear base de datos y deja que Capella haga el resto del trabajo por ti.
Ahora tiene un clúster, es decir, una base de datos. El siguiente paso es añadir un bucket para almacenar los datos. Un bucket es similar a una tabla de base de datos, con diferencias significativas. Puesto que estamos trabajando con datos JSON no estructurados y semiestructurados, un único bucket puede contener diversos tipos de datos.
Crear un cubo
Ahora que se encuentra en la vista del cuadro de mandos de Capella para su clúster, verá otro + Crear en la esquina superior izquierda. Una vez que haga clic en el botón, tendrá la posibilidad de crear su primer cubo de Capella.
Pongamos nombre al cubo whatsapp_support_bucket y asegúrese de hacer clic en el botón utilizar _default generado por el sistema para el ámbito y la colección casilla de verificación.
Ahora, añade el nombre del cubo a tu .env que ha creado anteriormente:
|
1 |
CUBO_CAMA=nombre_de_tu_cubo |
Con su cubo creado, lo último que haremos en este punto es crear sus credenciales de acceso y obtener su cadena de conexión Capella.
Crear credenciales de acceso
Para interactuar con sus datos en Capella desde su aplicación, necesita conocer la cadena de conexión y crear las credenciales de acceso. La cadena de conexión se puede encontrar haciendo clic en el botón Conectar en la barra de navegación superior del panel de control. Siga adelante y añadir que a la .env que creó anteriormente en su código base de esta manera:
|
1 |
COUCHBASE_CONNECTION_STRING=su_cadena_de_conexión |
Para añadir credenciales de acceso, navegue hasta esta página en la configuración de Capella como se muestra a continuación y haga clic en el botón + Crear acceso a base de datos botón . Introduzca un nombre y una contraseña y haga clic en Guardar. Asegúrese de añadir inmediatamente las credenciales a su .env ya que después de esto no podrás volver a acceder a la contraseña:
|
1 2 |
COUCHBASE_USERNAME=tu_nombre_de_usuario COUCHBASE_PASSWORD=tu_contraseña |
Después de crear sus credenciales, la configuración de Capella está casi completa. El último paso consiste en crear el índice de búsqueda de vectores, para lo cual puede seguir los pasos que se indican a continuación en este post para hacerlo.
Llegados a este punto, ya puedes pasar a configurar el proveedor de servicios de la API de WhatsApp que impulsará las conversaciones en la aplicación. Para nuestro proveedor de servicios, utilizaremos la API de mensajes de Vonage.
Uso de la API de mensajes de Vonage
Vonage ofrece un conjunto de API de comunicaciones que cubren casi todos los aspectos de las interacciones modernas, desde SMS hasta llamadas telefónicas y chatbots. La API que utilizaremos para esta aplicación es la API de mensajes y ofrece comunicaciones multicanal en una única API para Facebook Messenger, WhatsApp, Viber, SMS y MMS.
Lo utilizaremos por sus funciones de WhatsApp, en las que se pueden enviar y recibir mensajes de WhatsApp mediante programación.
La configuración de la funcionalidad de WhatsApp para su uso en producción requiere varios pasos por parte de Meta, concretamente la creación de una cuenta de WhatsApp para empresas. Los detalles sobre qué es esto y los pasos para hacerlo se explican en el Documentación de Vonagey le animamos a leer más al respecto.
Sin embargo, el hecho de que aún no tengas una cuenta empresarial de Meta WhatsApp no significa que no puedas crear y probar la funcionalidad. Entra en escena el sandbox de la API de mensajes de Vonage. Con el sandbox, puedes autenticar tu número de móvil personal para enviar y recibir mensajes de WhatsApp mediante programación. Esto te permite desarrollar tu aplicación de forma sólida mientras esperas la aprobación de tu cuenta comercial de Meta WhatsApp.
Ahora que entendemos un poco el contexto, sigamos adelante y creemos una cuenta de API de Vonage.
Crear una cuenta de Vonage
Para crear una cuenta de Vonage, ve a salpicadero.vonage.com y haga clic en inscríbase en. Crear una cuenta y empezar a construir con las distintas API es gratis.
Ahora que ya tienes tu cuenta, estás listo para configurar el sandbox de la API de mensajes.
Configurar el entorno de pruebas de la API de mensajes de Vonage
Como se explicó anteriormente, el sandbox es excelente para probar y crear prototipos de tu aplicación. Te permite enviar y recibir mensajes desde un número de teléfono preconfigurado de Vonage y un número de teléfono personal aprobado.
Para configurar el sandbox de la API de mensajes de Vonage, deberás enviar un mensaje al número de teléfono preconfigurado de Vonage provisto. El panel te guiará a través del proceso al proporcionarte un código QR, un enlace y un número de teléfono directo al que enviar un mensaje. También compartirá el mensaje exacto para enviar al número. Puedes elegir usar cualquiera de los métodos para enviar el mensaje.
Una vez que envíes el mensaje, habrás configurado correctamente tu número de teléfono personal para recibir y responder mensajes desde el sandbox de la API de mensajes de Vonage.
Observarás que en la configuración del sandbox hay espacio para proporcionar URLs tanto para los mensajes entrantes como para los mensajes de webhook de estado. La forma de recibir nuevos mensajes de WhatsApp desde la API es a través de un webhook, por lo que es necesario disponer de una URL accesible desde el exterior para que el webhook pueda acceder a ella. Hay herramientas populares disponibles que pueden exponer su localhost a Internet y le proporcionan una URL externa, entre ellos se encuentra ngrok.
Utilizar ngrok es tan sencillo como instalarlo en tu máquina y ejecutar ngrok http 3000 en una ventana de terminal independiente. En este ejemplo, el comando recibe dos argumentos:
-
- El servicio a exponer - http
- El puerto en el que se ejecuta el servidor localhost - 3000
Siga las Guía de inicio rápido de ngrok con instrucciones sobre cómo instalar ngrok en su máquina dependiendo de si utiliza Mac, Linux o Windows.
Definir las variables de entorno de Vonage
Como has ido añadiendo tus datos de Capella a tu .env ahora agregarás tus detalles de Vonage al mismo archivo. Es decir, debes agregar tu clave y secreto de API y el número de teléfono preconfigurado de Vonage que se te proporcionó en el sandbox.
Abra el .env y añada lo siguiente:
|
1 2 3 |
VONAGE_API_KEY=tu_clave_api_vonage VONAGE_API_SECRET=tu_vonage_api_secret VONAGE_DE_NÚMERO=tu_vonage_desde_el_número |
Ahora que ya has configurado tanto Capella como Vonage, el último paso de la configuración inicial es crear una cuenta de API de OpenAI y añadir tu clave de API de OpenAI a tus .env archivo.
Introducción a la API de incrustación de OpenAI
Antes de crear una cuenta OpenAI, vamos a tomarnos un momento para entender por qué estamos utilizando OpenAI y lo que es una incrustación. Esto no pretende ser una visión exhaustiva de las incrustaciones vectoriales y lo que hacen. Más bien, considere esto sólo un breve resumen para equiparlo para construir la aplicación.
Una incrustación vectorial es una matriz de números que representa matemáticamente un dato. Esos datos pueden ser texto, una imagen, audio o vídeo. Hay diferentes algoritmos que generan estas incrustaciones, cada uno diseñado para capturar diversos aspectos de los datos de forma que resulten útiles para los modelos de aprendizaje automático.
Por ejemplo, en el contexto del texto, una incrustación capta el significado semántico de las palabras o frases, lo que permite a la IA comprender las relaciones entre conceptos más allá de la simple coincidencia de palabras clave. Estas incrustaciones se convierten en los componentes básicos de tareas como los sistemas de búsqueda, clasificación y recomendación, ya que permiten a las máquinas procesar y comparar datos complejos de forma eficaz. Utilizando los potentes modelos de OpenAI, podemos generar incrustaciones de alta calidad que permitirán a nuestra aplicación realizar funciones avanzadas como la comparación de similitudes de contenido, que es exactamente lo que se pretende que haga cuando busca respuestas resueltas previamente para ayudar a los agentes en sus tickets actuales.
Ahora, vamos a proceder con la configuración de su cuenta OpenAI para que podamos empezar a construir.
Crear una cuenta OpenAI
Para crear una cuenta, visite plataforma.openai.com y regístrate con tus credenciales de Google, Microsoft o Apple, o crea una cuenta utilizando una combinación de correo electrónico y contraseña.
Ahora que ya tienes tu cuenta, todo lo que tienes que hacer es crear y copiar tu clave API.
Crear clave API OpenAI
Una vez que tenga una cuenta, puede navegar a plataforma.openai.com/api-keys y cree una nueva clave API haciendo clic en el icono + Crear nueva clave secreta en la parte superior derecha de la página.
Al igual que con sus otras credenciales, debe guardar inmediatamente la clave, ya que no podrá volver a verla en el panel de control después de este momento. Para ello, añádala a la carpeta .env así:
|
1 |
OPENAI_API_KEY=tu_clave_api |
Ya está. En este punto, tienes todos tus servicios externos definidos y configurados. Ahora estás listo para construir tu aplicación. Pongámonos en marcha.
Continuará...
En el segunda parte de esta serie en dos partesConstruiremos la lógica de negocio de la aplicación y ejecutaremos nuestra aplicación por primera vez. Asegúrese de revisar segunda parte para continuar su viaje.