Integra el Asistente a tu proyecto (otros lenguajes)

Sigue las instrucciones de cada una de las siguientes secciones para integrar Asistente de Google en tu proyecto.

Vinculaciones de gRPC

El servicio del Asistente de Google se basa en gRPC, un marco de trabajo RPC de código abierto y alto rendimiento. Este framework es adecuado para la transmisión de audio bidireccional.

Python

Si usas Python, comienza con esta guía.

C++

Consulta nuestra muestra de C++ en GitHub.

Node.js

Consulta nuestra muestra de Node.js en GitHub.

Android Things

¿Te interesan los dispositivos incorporados? Consulta el ejemplo del SDK de Asistente para Android Things.

Otros idiomas

Autoriza y autentica tu Cuenta de Google para trabajar con Asistente

El siguiente paso es autorizar tu dispositivo para que se comunique con Asistente de Google a través de tu Cuenta de Google.

Obtén tokens de OAuth con el alcance del SDK de Asistente

El SDK de Asistente usa tokens de acceso de OAuth 2.0 para autorizar que tu dispositivo se conecte con Asistente.

Cuando prototipas, puedes usar la herramienta de autorización para generar fácilmente credenciales OAuth2.0 a partir del archivo client_secret_<client-id>.json que se genera cuando registras el modelo de tu dispositivo.

Haz lo siguiente para generar las credenciales:

  1. Usa un entorno virtual de Python para aislar la herramienta de autorización y sus dependencias de los paquetes de Python del sistema.

    sudo apt-get update
    sudo apt-get install python3-dev python3-venv # Use python3.4-venv if the package cannot be found.
    python3 -m venv env
    env/bin/python -m pip install --upgrade pip setuptools wheel
    source env/bin/activate
    
  2. Instala la herramienta de autorización:

    python -m pip install --upgrade google-auth-oauthlib[tool]
  3. Ejecuta la herramienta. Quita la marca --headless si la ejecutas desde una terminal en el dispositivo (no desde una sesión SSH):

    google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
    

Cuando estés listo para integrar la autorización como parte del mecanismo de aprovisionamiento de tu dispositivo, lee nuestras guías sobre Cómo usar OAuth 2.0 para acceder a las APIs de Google para comprender cómo obtener, conservar y usar tokens de acceso de OAuth para permitir que tu dispositivo se comunique con la API de Asistente.

Cuando trabajes con estas guías, usa lo siguiente:

Consulta las prácticas recomendadas sobre privacidad y seguridad para obtener recomendaciones sobre cómo proteger tu dispositivo.

Autentica tu conexión de gRPC con tokens de OAuth

Por último, reúne todo en una sola lectura sobre cómo usar la autenticación basada en tokens con Google para autenticar la conexión de gRPC a la API de Asistente.

Registra tu dispositivo

Registra la instancia y el modelo de dispositivo de forma manual o con la herramienta de registro (disponible en Python).

Implementa un diálogo básico de conversación con Asistente

  1. Implementa un cliente de gRPC de transmisión bidireccional para la API de servicio del Asistente de Google.
  2. Espera a que el usuario active una solicitud nueva (p.ej., espera una interrupción de GPIO cuando presiona un botón).
  3. Envía un mensaje AssistRequest con el campo config configurado (consulta AssistConfig). Asegúrate de que el campo config contenga lo siguiente:

    • El campo audio_in_config, que especifica cómo procesar los datos de audio_in que se proporcionarán en solicitudes posteriores (consulta AudioInConfig).
    • El campo audio_out_config, que especifica el formato que debe usar el servidor cuando muestre mensajes audio_out (consulta AudioOutConfig).
    • El campo device_config, que identifica el dispositivo registrado para Asistente (consulta DeviceConfig)
    • El campo dialog_state_in, que contiene el language_code asociado con la solicitud (consulta DialogStateIn).
  4. Inicia la grabación.

  5. Envía varios mensajes AssistRequest salientes con datos de audio de la consulta por voz en el campo audio_in.

  6. Controla los mensajes AssistResponse entrantes.

  7. Extrae los metadatos de la conversación del mensaje AssistResponse. Por ejemplo, desde dialog_state_out, obtén conversation_state y volume_percentage (consulta DialogStateOut).

  8. Detén la grabación cuando recibas una AssistResponse con un event_type de END_OF_UTTERANCE.

  9. Reproducir el audio de la respuesta de Asistente con datos de audio provenientes del campo audio_out

  10. Toma la conversation_state que extrajiste antes y cópiala en el mensaje DialogStateIn en el AssistConfig para el siguiente AssistRequest.

Con esto, deberías poder hacer tus primeras solicitudes al Asistente de Google mediante tu dispositivo.

Cómo extender un diálogo de conversación con Acciones del dispositivo

Extiende el diálogo básico de conversación anterior para activar las capacidades únicas de hardware de tu dispositivo en particular:

  1. En los mensajes AssistResponse entrantes, extrae el campo device_action (consulta DeviceAction).
  2. Analiza la carga útil de JSON del campo device_request_json. Consulta la página Características del dispositivo para conocer la lista de características compatibles. En cada página de esquema de trait, se muestra un ejemplo de solicitud EXECUTE con los comandos del dispositivo y los parámetros que se muestran en la carga útil de JSON.

Cómo obtener la transcripción de la solicitud del usuario

Si tienes una pantalla conectada al dispositivo, te recomendamos usarla para mostrar la solicitud del usuario. Para obtener esta transcripción, analiza el campo speech_results en los mensajes AssistResponse. Cuando se complete el reconocimiento de voz, esta lista contendrá un elemento con un stability establecido en 1.0.

Obtén el texto o la renderización visual de la respuesta de Asistente

Si tienes una pantalla adjunta al dispositivo, te recomendamos usarla para mostrar la respuesta de texto sin formato de Asistente a la solicitud del usuario. Este texto se encuentra en el campo DialogStateOut.supplemental_display_text.

Asistente admite respuestas visuales a través de HTML5 para ciertas consultas (¿Cómo está el clima en Mountain View? o ¿Qué hora es?). Para habilitar esto, establece el campo screen_out_config en AssistConfig. El mensaje ScreenOutConfig tiene el campo screen_mode que se debe establecer como PLAYING.

Los mensajes AssistResponse tendrán el campo screen_out configurado. Puedes extraer los datos HTML5 (si los hay) del campo data.

Cómo enviar consultas a través de entradas de texto

Si tienes una interfaz de texto (por ejemplo, un teclado) conectada al dispositivo, configura el campo text_query en el campo config (consulta AssistConfig). No configures el campo audio_in_config.

Solución de problemas

Consulta la página Solución de problemas si tienes problemas.