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
- Clona el repositorio de googleapis para obtener las definiciones de la interfaz del búfer de protocolo para la API de Google Assistant Service.
- Sigue la documentación de gRPC a fin de generar vinculaciones de gRPC para el lenguaje que elijas.
- Sigue los pasos que se indican en las siguientes secciones.
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:
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
Instala la herramienta de autorización:
python -m pip install --upgrade google-auth-oauthlib[tool]
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:
- Alcance de OAuth: https://www.googleapis.com/auth/assistant-sdk-prototype
Flujos de OAuth admitidos:
- (Recomendado) Apps instaladas
- Aplicaciones de servidor web
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
- Implementa un cliente de gRPC de transmisión bidireccional para la API de servicio del Asistente de Google.
- Espera a que el usuario active una solicitud nueva (p.ej., espera una interrupción de GPIO cuando presiona un botón).
Envía un mensaje
AssistRequest
con el campoconfig
configurado (consultaAssistConfig
). Asegúrate de que el campoconfig
contenga lo siguiente:- El campo
audio_in_config
, que especifica cómo procesar los datos deaudio_in
que se proporcionarán en solicitudes posteriores (consultaAudioInConfig
). - El campo
audio_out_config
, que especifica el formato que debe usar el servidor cuando muestre mensajesaudio_out
(consultaAudioOutConfig
). - El campo
device_config
, que identifica el dispositivo registrado para Asistente (consultaDeviceConfig
) - El campo
dialog_state_in
, que contiene ellanguage_code
asociado con la solicitud (consultaDialogStateIn
).
- El campo
Inicia la grabación.
Envía varios mensajes
AssistRequest
salientes con datos de audio de la consulta por voz en el campoaudio_in
.Controla los mensajes
AssistResponse
entrantes.Extrae los metadatos de la conversación del mensaje
AssistResponse
. Por ejemplo, desdedialog_state_out
, obténconversation_state
yvolume_percentage
(consultaDialogStateOut
).Detén la grabación cuando recibas una
AssistResponse
con unevent_type
deEND_OF_UTTERANCE
.Reproducir el audio de la respuesta de Asistente con datos de audio provenientes del campo
audio_out
Toma la
conversation_state
que extrajiste antes y cópiala en el mensajeDialogStateIn
en elAssistConfig
para el siguienteAssistRequest
.
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:
- En los mensajes
AssistResponse
entrantes, extrae el campodevice_action
(consultaDeviceAction
). - 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.