Migración de entrega

Una vez que configures los intents y las escenas, debes actualizar el código de entrega para considerar los cambios en los formatos de solicitud y respuesta de Action Builder. Esta también es una oportunidad para considerar el uso de funciones adicionales de Actions Builder. En esta página, se describen 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 de conversación y las funciones de la plataforma de desarrollo. Actions Builder presenta un nuevo modelo de conversación y funcionalidad que cambia la forma en que se construye una conversación y es probable que también cambie la forma en que abordas la entrega de tu proyecto. En esta sección, se describen las funciones 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 usa un flujo conversacional basado en el contexto del intent a intent, en el que los intents individuales se hacen coincidir según las frases de entrenamiento y los contextos de entrada y salida del intent anterior.
    • El flujo de conversación de Actions Builder usa escenas como contenedor para los turnos de conversación. 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 que coincida.
  • Funciones de webhook reutilizables

    • En Dialogflow, los controladores de webhook están vinculados a intents individuales. Si se necesita lógica adicional, debes crear un intent independiente para controlar la función nueva.
    • Los controladores de webhook tienen nombres de controladores personalizados en Actions Builder. Esta función te permite llamar a una función desde varias escenas a lo largo de tu proyecto.
  • Más formas de invocar webhooks

    • El enfoque de un webhook por intent en Dialogflow requiere intents adicionales para facilitar una lógica más conversacional en la entrega de tu proyecto.
    • Action Builder te permite realizar llamadas de webhook desde varios lugares dentro de una escena: durante la entrada, según las condiciones, el relleno de espacios y mediante coincidencias de intents personalizados y del sistema.

Actualiza tu código de entrega

El código de entrega de cada Acción diferirá según la complejidad y el propósito de la Acción. Sin embargo, hay pasos generales que debes seguir cuando actualices tu código:

  1. Descarga e instala la versión más reciente de la biblioteca cliente.

    npm install @assistant/conversation
    
  2. 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');
    
  3. Refactoriza tu código para usar los nuevos métodos.

    • Controladores de intents: app.intentapp.handle
    • Respuesta o mensajes: conv.askconv.add
    • Capacidades del dispositivo o la superficie: conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT')conv.device.capabilities.includes('RICH_RESPONSE')
    • Almacenamiento de datos: conv.dataconv.session.params
    • Tipos de respuesta:

      • SimpleResponseSimple
      • BasicCardCard
      • SuggestionsSuggestion
    • 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'

  4. Se actualizó 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ódigo de entrega a continuación para obtener una lista completa de los métodos.

Usa las siguientes páginas para comparar las cargas útiles de solicitudes y respuestas:

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 revisarla, 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 los 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 se detecta una coincidencia con un intent de invocación
  • Cuando una escena está en el 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 presentación de ranuras de una escena
  • Después de que se produce 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:

  1. Selecciona la escena desde la que deseas llamar al webhook.
  2. Elige el estado para el que deseas habilitar el webhook. Puedes habilitar un webhook para uno o más de los siguientes estados:

    • Al entrar
    • Condición
    • Llenado de ranuras
    • Manejo de la intención del usuario
    • Control de intents del sistema
  3. Marca la opción Call your webhook.

  4. Ingresa el controlador de webhook que definiste en tu código de entrega.

  5. Haz clic en Guardar.

  6. Navega a Probar (Test) para probar la llamada de webhook y los cambios en la entrega.

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 los métodos.

Dialogflow Creador de acciones
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 Control 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, encontrarás información sobre herramientas adicionales: