
Compartir:
Michael Crump trabaja en Vonage en el equipo de experiencias para desarrolladores y es programador, YouTuber y conferenciante habitual sobre diversos temas de desarrollo de .NET, la nube y las comunicaciones. Le apasiona ayudar a los desarrolladores a comprender las ventajas de cada uno de ellos de una forma sencilla.
Crea un servicio de respuesta de preguntas frecuentes con OpenAI y Vonage AI Studio
Tiempo de lectura: 6 minutos
Nota: OpenAI ha cambiado su política sobre el uso gratuito de su API. Ahora hay que pagar para acceder a ella
ChatGPT es un modelo de lenguaje conversacional de última generación desarrollado por OpenAI. Se basa en transformador y ha sido entrenado en una amplia gama de textos de Internet, lo que le permite generar respuestas similares a las humanas a diversas preguntas y peticiones. También puede escribir programas informáticos, componer música, escribir poesía y mucho más. A continuación se muestra un poema de muestra que escribió para las API de comunicación de Vonage.
vonagepoem.png
Como puedes ver, ChatGPT es muy potente. Hoy usaremos la API de GPT para crear un servicio de respuestas de preguntas frecuentes (FAQ) con Vonage AI Studiouna plataforma de IA conversacional Low-Code / No-Code que ayuda a las empresas a manejar interacciones complejas con los clientes a través de voz y texto.
¿Qué beneficios aporta el uso de GPT 3.5 Turbo como modelo base en un servicio de respuesta de preguntas frecuentes con Vonage AI Studio? Dado que OpenAI utiliza grandes modelos lingüísticos (LLM) reduce el tiempo de entrenamiento de un agente. En lugar de crear manualmente intentos y conjuntos de actividades, los desarrolladores pueden introducir una gran cantidad de texto y establecer fallbacks con respuestas personalizadas. Además, permite ajustar el Agente para que responda a consultas más allá de los datos de entrenamiento proporcionados.
Por ejemplo, hoy podemos entrenar nuestro modelo introduciendo las preguntas de los clientes potenciales, creando intenciones para cada pregunta, dirigiéndonos a los enunciados, comprobando la falta de coincidencia de las entradas y optimizando en función de los resultados. En cambio, mañana entrenaremos nuestros datos introduciendo una gran cantidad de texto en lugar de intenciones y creando respuestas de emergencia personalizadas.
Requisitos previos
Antes de empezar, asegúrate de haber completado lo siguiente:
A Cuenta de desarrollador de Vonage - Si no tienes una, puedes crear una y te daremos crédito gratis para que juegues con nuestras API.
Un Cuenta OpenAI y una Clave API son gratuitas y necesarias para obtener una respuesta de la entrada del usuario. Utilizaremos GTP 3.5 Turbo como modelo base para este ejemplo. Puedes aprender más sobre este modelo y otros visitando su documentación. * Pulsa "Crear nueva clave secreta" y guarda la información en algún lugar seguro, ya que la utilizaremos más adelante. Véase el ejemplo siguiente.
ngrok - Se requiere una Account gratuita. Esta herramienta permite a los desarrolladores exponer a Internet un servidor de desarrollo local.
Python está instalado - Actualmente estoy usando la versión 3.11.1 para este artículo.
Pip está instalado - Compruebe que puede ejecutar
pipdesde su terminal o símbolo del sistema.
apikeys.png
Creación del servidor
Tendremos que crear una aplicación de servidor a la que AI Studio llamará una vez que el usuario escriba una pregunta desde su teléfono.
Para ello, vamos a utilizar un breve script en Python para iniciar un servidor en el puerto 9000 utilizando nuestras credenciales OpenAI. Ten en cuenta que estoy usando Python, pero puedes crear lo mismo usando el lenguaje que prefieras.
from datetime import datetime, timedelta
import os
from pickle import TRUE
from urllib import response
import openai
from PIL import Image
from flask import Flask, request, jsonify, render_template, Response, redirect
from flask_login import LoginManager, UserMixin, login_required, login_user
application = Flask(__name__)
app = application
openai_key = 'YOUR-OWN-OPENAI-API-KEY'
openai.api_key = openai_key
@app.route("/webhook", methods=["POST"])
def webhook():
input = request.headers.get('input')
completions = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user",
"content": input},
]
)
response = completions.choices[0].message.content
return {'res': response.strip()}
if __name__ == '__main__':
app.run(port=9000, host='0.0.0.0', debug=True) # run app in debug mode on port 5000Para utilizar este código:
Copie todo el código Python proporcionado en un archivo llamado
application.py.Sustituir TU-PROPIA-CLAVE-OPENAI-API con la clave de la API de OpenAI que creamos anteriormente.
Instalar cualquier paquete del que dependa el script
sudo pip install openai- Para las bibliotecas OpenAIsudo pip install flask_login- Para nuestro sitio websudo pip install pillow- Para bibliotecas de imágenes
Una vez que la aplicación se inicie correctamente, obtendrás una URL de despliegue. Por ejemplo, la mía es http://10.0.0.190:9000/y para llamar a esa URL a través de AI Studio, tendremos que utilizar algo como ngrok.
Ejecutar ngrok
ngrok es una aplicación multiplataforma que permite a los desarrolladores exponer un servidor de desarrollo local a Internet con un esfuerzo mínimo. Lo utilizaremos para exponer nuestro servicio a Internet. Si es la primera vez que utiliza ngrok, puede consultar una entrada de blog lo explica con más detalle. Una vez que tengas ngrok configurado y hayas iniciado sesión (de nuevo, la cuenta gratuita es aceptable), ejecuta el siguiente comando:
ngrok http 9000Después de ngrok se ejecuta, se le dará una URL de reenvío que vamos a utilizar como base para nuestros Webhooks más adelante en el artículo. La mía tiene el siguiente aspecto:
ngrokrunning.png
Ahora, si quisiera acceder a mi servidor python local a través de AI Studio, utilizaría la dirección de reenvío que se muestra en la captura de pantalla.
AI Studio
Navegue hasta Vonage AI Studio y presiona el botón Crear agente. Verás una opción sobre qué tipo de agente deseas crear.
agent-creation.png
Para empezar, seleccione el Agente de Telefonía y pulse Siguiente, ya que queremos crear un escenario de llamada de voz que pueda utilizar en su teléfono móvil.
Tendremos que completar algunos detalles aquí:
Región: ¿Dónde se utilizará normalmente su agente? ¿En EE.UU. o en Europa?
Nombre del agente: Dé a su Agente un nombre único que sea significativo para usted.
Idioma: Seleccione el idioma de su Agente.
Voces: Selecciona cualquier voz (yo estoy usando Matthew).
Zona horaria: Elija la zona horaria en la que operará su Agente.
A continuación, puede elegir una plantilla y ver algunas de las plantillas disponibles. plantillas disponibles para diferentes tipos de Agente. En este caso, seleccionaremos Empezar de cero y pulsaremos Siguiente.
Por último, tenemos la opción de Seleccionar Evento. Los eventos activan su Agente, ya sean iniciados por un usuario o por el propio Agente. Nosotros utilizaremos una Llamada entrante y pulsaremos Crear para este ejemplo.
A continuación, verás la interfaz de usuario principal de AI Studio. Si quieres saber de qué es capaz, visita aquí.
Para simplificar las cosas, utilizaremos el siguiente flujo de conversación:
simpledesignlayout.png
Añadimos:
2 Parámetros para almacenar el valor que el usuario introduce y la respuesta con la que OpenAI responde.
Parámetros personalizados
Nombre: AGENT_RES y Entidad es @sys.any
Nombre: INPUT y Entidad es @sys.any
Nodo de Recogida de Entrada - Que da la bienvenida al usuario y recoge su entrada.
Parámetro: Utilice el parámetro INPUT que hemos creado en el paso anterior.
Texto de aviso: ¡Bienvenido a las preguntas frecuentes de Vonage! Ingresa tu pregunta y haremos todo lo posible por responderte.
Cuando ejecutemos el Agente, utilizaremos un lenguaje que cualquiera podría decir en una conversación normal, como "¿Dónde está la sede central de Vonage?" o "¿Qué API de comunicación admite Vonage?"..
Nodo Webhook -
Solicitar URL
Tipo de solicitud: POST
URL - Debería parecerse a lo siguiente pero sustituya mi URL ngrok por la suya propia https://db20-2601-600-9580-d650-cfa-951f-cdef-d1d5.ngrok.io/webhook
Cabeceras:
Encabezado HTTP - INPUT y el valor es $INPUT
Asignación de respuestas:
Ruta del objeto - res
El valor es $AGENT_RES
Nodo Speak - Para dar salida a los resultados de OpenAI.
Texto - Su respuesta es: $AGENT_RES
Nodo de Fin de Llamada - Para terminar la conversación una vez que el flujo de conversación ha finalizado.
Vamos a ejecutar la aplicación pulsando el botón Comprobador en la esquina superior derecha de la pantalla y veamos qué tipo de resultados obtenemos. Para empezar, vemos el mensaje de bienvenida junto con la primera pregunta. El usuario podría ingresar, "¿Dónde está la oficina central de Vonage?"El Agente Virtual responde con un mensaje de OpenAI que dice lo siguiente:
chatgpt-example1.png
O tal vez desees hacerle una pregunta más abierta, como "¿Qué API de comunicación ofrece Vonage? Y obtendrás la siguiente respuesta:
chatgpt-example2.png
La API de GPT también admite el manejo multiintento, que se produce cuando tienes una entrada con más de una intención, y el sistema maneja ambas. Un buen ejemplo de esto sería preguntar: "¿Dónde está la sede de Vonage y cuándo se fundó la empresa?". El resultado te sorprenderá.
chatgpt-example3.png
Resumen
Vimos cómo podías implementar la API GPT de OpenAI en AI Studio de Vonage en menos tiempo del que tardas en almorzar. Al automatizar una pregunta frecuente (en este ejemplo), podrías ahorrar horas que un empleado típico podría dedicar a recopilar los datos y crear una respuesta. ¡También podrías intentar publicar el agente y probarlo con tu teléfono móvil!
Además, tenga en cuenta que la integración actual a través de webhooks es una solución a corto plazo, y tenemos previsto desarrollar nodos dedicados para soportar LLM a finales del segundo trimestre de 2023.
¿A qué esperas? Dale a la API de GPT y a Vonage AI Studio ¡hoy mismo! Además, si tienes preguntas o comentarios, únete a nosotros en el Vonage Developer Slack o envíame un Tweet a Twittery te responderé. Gracias de nuevo por leer, ¡y te espero en el próximo!
Compartir:
Michael Crump trabaja en Vonage en el equipo de experiencias para desarrolladores y es programador, YouTuber y conferenciante habitual sobre diversos temas de desarrollo de .NET, la nube y las comunicaciones. Le apasiona ayudar a los desarrolladores a comprender las ventajas de cada uno de ellos de una forma sencilla.