Следуйте инструкциям в каждом разделе ниже, чтобы интегрировать Google Assistant в свой проект.
привязки gRPC
Служба Google Assistant построена на основе gRPC — высокопроизводительной платформы RPC с открытым исходным кодом. Эта платформа хорошо подходит для двунаправленной потоковой передачи звука.
Питон
Если вы используете Python, начните использовать это руководство .
С++
Взгляните на наш образец C++ на GitHub.
Node.js
Взгляните на наш образец Node.js на GitHub.
Android-вещи
Интересуетесь встраиваемыми устройствами? Ознакомьтесь с примером Assistant SDK для Android Things .
Другие языки
- Клонируйте репозиторий googleapis , чтобы получить определения интерфейса буфера протокола для API службы Google Assistant .
- Следуйте документации gRPC , чтобы создать привязки gRPC для выбранного вами языка.
- Выполните действия, описанные в разделах ниже.
Авторизуйте и подтвердите свою учетную запись Google для работы с Ассистентом.
Следующим шагом будет авторизация вашего устройства для общения с Google Assistant, используя вашу учетную запись Google.
Получите токены OAuth с помощью Assistant SDK.
Assistant SDK использует токены доступа OAuth 2.0 для авторизации вашего устройства для подключения к Assistant.
 При создании прототипа вы можете использовать инструмент авторизации, чтобы легко генерировать учетные данные OAuth2.0 из файла client_secret_<client-id>.json , созданного при регистрации модели вашего устройства .
Чтобы сгенерировать учетные данные, выполните следующие действия:
- Используйте виртуальную среду Python , чтобы изолировать инструмент авторизации и его зависимости от системных пакетов Python. - 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
- Установите инструмент авторизации: - python -m pip install --upgrade google-auth-oauthlib[tool] 
- Запустите инструмент. Удалите флаг - --headless, если вы запускаете его с терминала на устройстве (не из сеанса SSH):- google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless 
Когда вы будете готовы интегрировать авторизацию как часть механизма обеспечения вашего устройства, прочтите наши руководства по использованию OAuth 2.0 для доступа к API Google, чтобы понять, как получать, сохранять и использовать токены доступа OAuth, чтобы ваше устройство могло взаимодействовать с Помощником. API.
При работе с этими руководствами используйте следующее:
- Область действия OAuth: https://www.googleapis.com/auth/assistant-sdk-prototype.
- Поддерживаемые потоки OAuth: - (Рекомендуется) Установленные приложения
- Приложения веб-сервера
 
Ознакомьтесь с лучшими практиками обеспечения конфиденциальности и безопасности , чтобы получить рекомендации по защите вашего устройства.
Аутентификация вашего соединения gRPC с помощью токенов OAuth.
Наконец, соберите все воедино, прочитав, как использовать аутентификацию на основе токенов в Google для аутентификации соединения gRPC с API-интерфейсом Assistant.
Зарегистрируйте свое устройство
Зарегистрируйте модель и экземпляр вашего устройства вручную или с помощью инструмента регистрации (доступного на Python).
Реализуйте базовый диалог беседы с помощью Ассистента.
- Внедрите двунаправленный потоковый клиент gRPC для API службы Google Assistant.
- Подождите, пока пользователь инициирует новый запрос (например, дождитесь прерывания GPIO от нажатия кнопки).
- Отправьте сообщение - AssistRequestс установленным полем- config(см.- AssistConfig). Убедитесь, что поле- configсодержит следующее:-  Поле audio_in_config, которое определяет, как обрабатывать данныеaudio_in, которые будут предоставлены в последующих запросах (см.AudioInConfig).
-  Поле audio_out_config, которое определяет желаемый формат, который сервер будет использовать при возврате сообщенийaudio_out(см.AudioOutConfig).
-  Поле device_config, которое идентифицирует зарегистрированное устройство для Ассистента (см.DeviceConfig).
-  Поле dialog_state_in, которое содержитlanguage_codeсвязанный с запросом (см.DialogStateIn).
 
-  Поле 
- Начать запись. 
- Отправьте несколько исходящих сообщений - AssistRequestсо звуковыми данными из голосового запроса в поле- audio_in.
- Обработка входящих сообщений - AssistResponse.
- Извлеките метаданные разговора из сообщения - AssistResponse. Например, из- dialog_state_outполучите- conversation_stateи- volume_percentage(см.- DialogStateOut).
- Остановить запись при получении - AssistResponseс- event_type- END_OF_UTTERANCE.
- Воспроизведите звук ответа Ассистента, используя аудиоданные, поступающие из поля - audio_out.
- Возьмите - conversation_state, который вы извлекли ранее, и скопируйте его в сообщение- DialogStateInв- AssistConfigдля следующего- AssistRequest.
При этом вы должны быть готовы сделать первые запросы к Google Assistant через свое устройство.
Расширьте диалог разговора с помощью действий устройства
Расширьте диалоговое окно основного диалога выше, чтобы активировать уникальные аппаратные возможности вашего конкретного устройства:
-  Во входящих сообщениях AssistResponseизвлеките полеdevice_action(см.DeviceAction).
-  Проанализируйте полезные данные JSON поля device_request_json. Список поддерживаемых характеристик см. на странице «Свойства устройства» . На каждой странице схемы признаков показан пример запроса EXECUTE с командами устройства и параметрами, возвращаемыми в полезных данных JSON.
Получить расшифровку запроса пользователя
 Если к устройству подключен дисплей, возможно, вы захотите использовать его для отображения запроса пользователя. Чтобы получить эту расшифровку, проанализируйте поле speech_results в сообщениях AssistResponse . Когда распознавание речи завершится, этот список будет содержать один элемент со stability , установленной на 1,0.
Получите текстовую и/или визуальную визуализацию ответа Ассистента.
 Если к устройству подключен дисплей, возможно, вы захотите использовать его для отображения обычного текстового ответа Ассистента на запрос пользователя. Этот текст находится в поле DialogStateOut.supplemental_display_text .
 Ассистент поддерживает визуальные ответы через HTML5 на определенные запросы ( Какая погода в Маунтин-Вью? или Сколько сейчас времени? ). Чтобы включить это, установите поле screen_out_config в AssistConfig . Сообщение ScreenOutConfig имеет поле screen_mode , для которого должно быть установлено значение PLAYING .
 В сообщениях AssistResponse будет установлено поле screen_out . Вы можете извлечь данные HTML5 (если они есть) из поля data .
Отправка запросов посредством текстового ввода
 Если у вас есть текстовый интерфейс (например, клавиатура), подключенный к устройству, установите поле text_query в поле config (см. AssistConfig ). Не устанавливайте поле audio_in_config .
Поиск неисправностей
Если у вас возникнут проблемы, посетите страницу «Устранение неполадок» .
