Una vez que hayas configurado tus intents y escenas, debes actualizar tu código de entrega para tener en cuenta los cambios en los formatos de solicitud y respuesta de Action Builder. Esta también es una oportunidad para que consideres la posibilidad de utilizar funciones adicionales de Actions Builder. En esta página, se abordan los pasos y las consideraciones generales para actualizar tu código de entrega.
Considera tu enfoque de entrega
El código de cumplimiento de tu proyecto depende del modelo conversacional y de las funciones de la plataforma de desarrollo. Actions Builder presenta un nuevo modelo conversacional y una funcionalidad que cambia la forma en que compilas una conversación y es probable que cambie la forma en que abordas la entrega de tu proyecto. En esta sección, se describen las características de Actions Builder que difieren de Dialogflow y cómo estas diferencias cambian la forma en que implementas tu código de entrega.
Cambios en la implementación de conversaciones
- Dialogflow utiliza un flujo conversacional basado en intención a intent, basado en el contexto, en el que los intents individuales coinciden en función de las frases de entrenamiento y los contextos de entrada y salida del intent anterior.
- El flujo conversacional de Actions Builder usa escenas como contenedor de turnos conversacionales. Dentro de una escena, se pueden detectar coincidencias con intents específicos, al igual que los contextos de Dialogflow. Las transiciones definen a qué escena hacer la transición, según el intent con el que se establece la coincidencia.
Funciones de webhook reutilizables
- En Dialogflow, los controladores de webhooks se vinculan a intents individuales. Si se necesita lógica adicional, debes crear un intent separado para manejar la nueva función.
- Los controladores de webhook tienen nombres de controladores personalizados en Actions Builder. Esta característica te ofrece la capacidad de llamar a una función desde varias escenas a lo largo del proyecto.
Más formas de invocar webhooks
- Un webhook por enfoque de intent en Dialogflow requiere intents adicionales para facilitar una lógica de conversación más dentro de la entrega de tu proyecto.
- Action Builder te permite realizar llamadas de webhook desde varios lugares dentro de una escena: cuando se ingresa, según las condiciones, en función del relleno de espacios, y mediante la coincidencia de intents personalizados y del sistema.
Cómo actualizar tu código de entrega
El código de entrega de cada Acción variará según su complejidad y propósito. Sin embargo, debes seguir algunos pasos generales cuando actualices tu código:
Descarga e instala la versión más reciente de la biblioteca cliente.
npm install @assistant/conversation
Actualiza las sentencias
require
en tu código. Por ejemplo:const { SimpleResponse, BasicCard, Image, } = require('actions-on-google');
El código anterior se actualiza de la siguiente manera:
const { conversation, Simple, Card, Image, } = require('@assistant/conversation');
Refactoriza tu código para usar los métodos nuevos.
- Controladores de intent:
app.intent
→app.handle
- Respuesta/instrucciones:
conv.ask
→conv.add
- Capacidades de la superficie o del dispositivo:
conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT')
→conv.device.capabilities.includes('RICH_RESPONSE')
- Almacenamiento de datos:
conv.data
→conv.session.params
Tipos de respuesta:
SimpleResponse
→Simple
BasicCard
→Card
Suggestions
→Suggestion
Parámetros de intent:
conv.parameters[KEY]
→conv.intent.parameters[KEY].resolved
Transiciones de contextos o escenas:
conv.contexts.set(content_name, 5);
→conv.scene.next.name = 'context_name'
Finalizar conversación:
conv.close(response)
→conv.add.response; conv.scene.next.name = 'actions.page.END_CONVERSATION'
- Controladores de intent:
Actualiza el código de respuesta para usar las nuevas primitivas de respuesta de Builder. Por ejemplo:
conv.ask(new Suggestions (['a', 'b']));
El código anterior se actualiza de la siguiente manera:
for (suggestion of ['a', 'b']) { conv.add.(new Suggestion({title: suggestion})) }
Consulta el mapa de traducción de códigos de entrega a continuación para obtener una lista completa de métodos.
Usa las siguientes páginas para comparar las cargas útiles de solicitud y respuesta:
- Formatos de solicitud
- Formatos de respuesta
Configura webhooks
Después de actualizar tu entrega, habilita las llamadas de webhook en todas las escenas de tu proyecto. Si bien la herramienta de migración migra la configuración del webhook de tu intent de Dialogflow, debes revisar esta configuración, ya que tu código de entrega refactorizado y las funciones de webhook pueden cambiar.
En Dialogflow, los webhooks están habilitados en los intents y tu código de entrega incluye controladores y funciones para ejecutar cuando el intent coincide. En Actions Builder, un webhook puede activarse dentro de intents o escenas de invocación, lo que envía una solicitud a tu extremo de entrega. Tu entrega contiene controladores de webhook que procesan la carga útil de JSON en la solicitud. Puedes activar webhooks en las siguientes situaciones:
- Después de que coincida un intent de invocación
- Durante una escena que está en entrar al escenario
- Después de que una condición se evalúa como verdadera en la etapa de condición de una escena.
- Durante la etapa de archivo de ranuras de una escena
- Después de una coincidencia de intent en la etapa de entrada de una escena
Cuando migres de Dialogflow a Actions Builder, debes tener en cuenta los cambios en el flujo de conversación, ya que esto puede cambiar cuándo y dónde realizas llamadas de webhook.
Para habilitar una llamada de webhook, sigue estos pasos:
- Selecciona la escena desde la que deseas llamar al webhook.
Elige el estado para el que deseas habilitar el webhook. Puedes habilitar un webhook para uno o más de los siguientes estados:
- Cuando ingresen
- Condición
- Llenado de ranuras
- Control de intents del usuario
- Control de intents del sistema
Marca la opción Call your webhook.
Ingresa el controlador de webhook que definiste en tu código de entrega.
Haz clic en Guardar.
Navega a Test para probar los cambios en las entregas y las llamadas de webhook.
Mapa de traducción del código de entrega
En la siguiente tabla, se muestra cómo la sintaxis del código de entrega de Dialogflow se traduce en código de Actions Builder. Consulta los documentos de referencias del SDK y el compilador de Actions para obtener una lista completa de métodos.
Dialogflow | Actions Builder |
---|---|
conv.data |
conv.session.params |
conv.ask |
conv.add |
conv.close |
conv.scene.next.name = 'actions.scene.END_CONVERSATION' |
conv.user.storage |
conv.user.params |
conv.input.raw |
conv.intent.query |
conv.parameters |
conv.intent.params[key].resolved |
conv.arguments.get('MEDIA_STATUS') mediaStatus.status==='FINISHED' |
conv.intent.params['MEDIA_STATUS'] mediaStatus.resolved==='FINISHED' |
Eventos | Manejo de intents del sistema:MEDIA_STATUS_FINISHED MEDIA_STATUS_FAILED |
conv.device.capabilities.has("actions.capability.SCREEN_OUTPUT") |
conv.device.capabilities.includes("RICH_RESPONSE") |
app.intent |
app.handler |
app.middleware |
app.middleware |
Respuesta simple |
prompt
-firstSimple
|
Respuesta enriquecida |
prompt
-content
-card: object
-image: object
-table: object
-media: object
-suggestions
-link
|
A continuación, puedes encontrar información sobre herramientas adicionales: