Integración de watsonx Assistant con los modelos de la fundación watsonx.ai
La extensibilidad del nuevo watsonx Assistant proporciona una forma sencilla de realizar una integración entre un flujo de diálogo y los servicios de inferencia de IA generativa en watsonx.ai. Esta integración aporta funciones de IA generativa directamente a watsonx Assistant. Este ejercicio práctico mostrará cómo crear la integración y utilizarla en un caso de uso sencillo. Está fuera del alcance de esta guía proporcionar una introducción a todas las características de watsonx Assistant. Para ello, consulta la Documentación o los Laboratorios de VEST watsonx Assistant.
Requisitos previos
- Instancia de watsonx Assistant en IBM Cloud - puede ser cualquier plan de servicio, incluido
lite
- Acceso a un proyecto watsonx.ai
Primeros pasos
Obtener la definición OpenAPI del endpoint de generación watsonx.ai
Antes de poder añadir la integración para watsonx.ai a un asistente virtual watsonx Assistant, es necesario descargar la definición OpenAPI para el servicio de inferencia de modelos de la fundación watsonx.ai. Hay un archivo de definición de ejemplo disponible en el repositorio GitHub del kit de herramientas de Assistant. Para este laboratorio, utilizarás una versión modificada con la adición de soporte para el parámetro decode_method
de la api. Descargue esta versión del archivo watsonx-openapi.json en su estación de trabajo.
Añadir un asistente virtual vacío a la instancia de watsonx Assistant
Para la experimentación inicial con la integración, utilice un nuevo asistente virtual. Si tienes una instancia de servicio watsonx Assistant recién creada, no tendrá ningún asistente definido. Crea uno utilizando el asistente Crear Asistente utilizando un nombre de Watsonx integration
y seleccionando web
como ubicación de despliegue. Los valores que proporciones en las otras partes del asistente no importarán mucho. Para ver un ejemplo paso a paso de cómo crear un asistente web, consulte el laboratorio VEST watsonx Assistant 101 hasta el punto en el que ve la página de inicio del asistente. Si ya tienes otros asistentes definidos en tu instancia, añade uno siguiendo la documentación
Creación de una clave API de watsonx.ai
Dependiendo del entorno que esté utilizando o si está trabajando en un taller, es posible que ya se le haya proporcionado una clave API para que la utilice; pregunte a su instructor o revise la información de su entorno para determinar si se le ha proporcionado una clave API.
De lo contrario, siga las instrucciones que se indican a continuación para crear una clave de API en su propia cuenta de IBM Cloud.
Si has creado previamente una clave API para llamar a watsonx.ai desde un bloc de notas o simplemente desde el punto final REST con curl
, puedes saltarte estos pasos y reutilizar esa clave API. De lo contrario, continúa.
-
Inicia sesión en watsonx. ai y asegúrate de que está seleccionada la misma cuenta que la instancia de aprendizaje automático de watson para tu proyecto watsonx.ai.
-
Para generar una clave de API desde su cuenta de usuario de IBM Cloud, vaya a Gestionar acceso y usuarios - Claves de API y haga clic en Crear. En la ventana emergente, proporcione un nombre como
watsonx-apikey
y una breve descripción y, a continuación, haga clic en Crear -
Haga inmediatamente una copia de la clave API y guárdela en una caja fuerte segura (como 1Password, etc.), ya que no habrá forma de recuperarla de nuevo.
Obtención del identificador del proyecto watsonx.ai
-
En la página watsonx.ai, seleccione el menú desplegable de 4 barras de la izquierda, expanda Proyectos y haga clic en Ver todos los proyectos.
-
En la lista, seleccione el proyecto que utiliza para la integración.
-
Haga clic en la pestaña Gestionar y compruebe que General está seleccionado. Copie el ID del proyecto en un lugar al que pueda acceder más tarde. Esto no es sensible como la clave API por lo que puede ser en el bloc de notas o algo equivalente.
Añadir la extensión personalizada para watsonx.ai al catálogo de integraciones
-
Vuelva a la pestaña de su navegador con el asistente que ha creado. En el panel de navegación izquierdo del asistente, vaya a la sección inferior y haga clic en Integraciones
-
Desplácese hasta la sección Extensiones y haga clic en el botón Crear extensión personalizada:
-
Revise la guía de inicio y haga clic en Siguiente
-
En la pestaña de información básica, nombre la extensión
watsonx
y proporcione una descripción opcional. Haz clic en Siguiente. -
Arrastre y suelte o utilice el explorador de archivos para seleccionar el archivo
watsonx-openapi.json
y, a continuación, haga clic en Siguiente. -
Revise la información mostrada y haga clic en Finalizar, ahora el catálogo de integración muestra la integración
-
Haga clic en Añadir en la esquina inferior derecha del nuevo mosaico de integración, confirme Añadir cuando se le solicite.
-
Revise la información para empezar y haga clic en Siguiente
-
En el panel Autenticación, seleccione
Oauth 2.0
, introduzca la clave API que creó anteriormente, mantenga el resto de valores predeterminados y haga clic en Siguiente. -
En la última página revise los parámetros de la petición
POST
y los valores de la respuesta. El asistente puede establecer parámetros en la solicitud antes de llamar a la extensión y analizará la respuesta para mostrar al usuario la salida. Haga clic en Finalizar y, a continuación, en Cerrar si no se le devuelve a la sección Extensiones del panel Integraciones.
Enhorabuena, ya tienes una forma de hacer una integración funcional desde un Action in assistant con watsonx generative AI endpoint.
Cree su acción
Ahora es el momento de crear tu acción y hacer que utilice la integración con watsonx. Para empezar, crearás una acción que utilice ai generativa para redactar un mensaje de marketing a partir de tu prompt.
-
En la pestaña del navegador con watsonx Assistant y haga clic en Acciones en la parte superior izquierda.
-
En el panel principal, haga clic en Crear acción
-
Seleccione Empezar de cero
-
Para lo que dice el cliente introduzca
Marketing Message
y pulse Guardar -
Haga clic en el icono del lápiz para establecer un título para el paso. Utilice
Prompt for a prompt
como título. -
Para lo que dice el asistente, puedes hacer que sea un mensaje corto o ser más prescriptivo. Nota: los seres humanos, al igual que los modelos generativos de IA, a menudo pueden hacerlo mejor cuando las peticiones son específicas. Por ejemplo:
Please provide a prompt for the model to use to create the marketing message. Type as much as you like and include lists of details for me to use with the model.
textExpanda
Define cutsomer response
y especifique que el asistente esperará una respuesta del usuario como entrada de Texto libre. Cuando haga clic en Texto Libre, la Interfaz de Usuario mostraráUser enters free text
libre debajo del panel AsistenteAssistant says
. Cuando esto se muestre, haga clic en Nuevo Paso para configurar la siguiente parte de la Acción. -
Nombre el siguiente paso
Call watsonx.ai endpoint
haciendo clic en el icono del lápiz (editar). En la sección Y entonces, seleccione Usar una extensión -
Para la extensión a utilizar, seleccione
watsonx
. A continuación, seleccione la operaciónGeneration
para mostrar los parámetros que se pueden enviar a watsonx.ai en cada invocación. Para la versión, elijaEnter text
y luego proporcione2023-05-29
, Para la entrada, elijaAction Step Variables
y luego elija1. Prompt for a prompt
, continuando de la misma manera, establece el model_id agoogle/flan-t5-xxl
y el project_id a tu id de proyecto watsonx.ai guardado antes. No aplicar todavía -
Amplíe los parámetros opcionales. Para este escenario de generación de texto, utilice la temperatura
0.7
, establezca max_net tokens a200
, establezca min_new_tokens a50
y establezca repetition penalty a2
, establezca decoding_method asample
. A continuación, haga clic en Aplicar -
Haga clic en Nuevo paso
-
En este paso, seleccione con condiciones . En la condición, haga clic en el primer elemento y seleccione watsonx (paso 2)

- Seleccionar Se ha ejecutado correctamente
- Haga clic en Establecer valores de variables, luego haga clic en Establecer nuevo valor, luego haga clic en Nueva variable de sesión

- Llame el
result
variable y seleccionefree text
libre y luego haga clic en Aplicar

- Para la asignación de la variable A, seleccione Expresión y escriba
$
después de pegar esto aparecerá un desplegable. Seleccionewatsonx (step 2)

Seleccione body.results
, el cuadro se rellenará con la asignación para la variable de result
. Ahora añade el texto [0].generated_text
al final de la expresión:

haga clic en Aplicar
- La expresión completa para la variable debe mostrarse como:

- En el Asistente dice panel, seleccione función y, a continuación, escriba
${result}
, o puede seleccionar Variables de sesión y, a continuación,result

El asistente debería estar listo, es hora de probarlo.
Probar la acción
-
Haga clic en el botón Vista previa.
-
Después del saludo, tipo
I need to create a marketing message
, y enviar al chatbot. -
El chatbot responderá con la indicación correspondiente.
-
Introduzca el siguiente texto en el chatbot
Generate a 5 sentence marketing message for a company with the given characteristics. Details Characteristics: Company - Golden Bank Offer includes - no fees, 2% interest rate, no minimum balance Tone - informative Response requested - click the link End date - July 15 Email
text -
Envía al chatbot - si todo ha funcionado, recibirás una respuesta del modelo con el mensaje.
Lo más probable es que vea algo diferente porque estamos utilizando un enfoque de descodificación
sample
(frente agreedy
). Si no le gusta la respuesta, vuelva a ejecutar el asistente para obtener otro mensaje. Nota: con estos parámetros, el asistente puede crear información como años para la fecha (porque sólo se especifica el 15 de julio) o números de teléfono. En un caso de uso real, un humano utilizaría este mensaje generado como punto de partida, realizando las modificaciones necesarias y aprobando la versión final.
Próximos pasos
Tenga en cuenta que el watsonx-openapi.json
proporcionado no incluye definiciones para todos los parámetros y pretende ser un punto de partida para futuras ampliaciones. Una buena tarea es editar el archivo para añadir un parámetro opcional adicional para random_seed
(consulte la documentación de la API para obtener más detalles) y, a continuación, pruebe el asistente con la semilla 111
para obtener un resultado que coincida con el ejemplo de mensaje de marketing de Prompt Lab.
Experimente en el laboratorio de prompts para otros escenarios utilizando diferentes prompts y parámetros - luego cree nuevas acciones y ajuste los parámetros para el nuevo caso de uso. Dado que todo el prompt es requerido para la entrada en el diseño actual, cero o un disparo (como el de este laboratorio) funcionará mejor. Sin embargo, con un poco más de esfuerzo, debería ser posible definir una variable asistente con más ejemplos y luego utilizar una expresión para construir el prompt para la integración. ¡Pruébalo!