Integracja Asystenta z projektem (inne języki)

Postępuj zgodnie z instrukcjami w poniższych sekcjach, aby zintegrować Asystenta Google. do swojego projektu.

Powiązania gRPC

Usługa Asystenta Google jest oparta na gRPC, czyli platformy RPC open source. Ten schemat świetnie nadaje się dla dwukierunkowe strumieniowanie dźwięku.

Python

Jeśli używasz Pythona, zacznij od zapoznania się z tym przewodnikiem.

C++

Spójrz na naszą próbkę w C++. w GitHubie.

Node.js

Przyjrzyj się przykładowi Node.js. w GitHubie.

Android Things

Interesują Cię urządzenia osadzone? Sprawdź pakiet SDK Asystenta sample dla Informacje o Androidzie.

Inne języki

Aby korzystać z Asystenta na koncie Google, musisz je autoryzować i uwierzytelnić

Następnym krokiem jest autoryzację urządzenia do rozmów z Asystentem Google za pomocą konta Google.

Uzyskiwanie tokenów OAuth za pomocą zakresu pakietu SDK Asystenta

Pakiet SDK Asystenta używa tokenów dostępu OAuth 2.0 do autoryzowania urządzenia połączyć się z Asystentem.

Podczas tworzenia prototypu możesz korzystać z narzędzia do autoryzacji, aby łatwo wygenerować protokół OAuth2.0. dane logowania z pliku client_secret_<client-id>.json wygenerowanego podczas rejestrując model urządzenia.

Aby wygenerować dane logowania, wykonaj te czynności:

  1. Użyj środowiska wirtualnego w języku Python. w celu odizolowania narzędzia do autoryzacji i jego zależności od systemowych pakietów Pythona.

    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. Zainstaluj narzędzie do autoryzacji:

    python -m pip install --upgrade google-auth-oauthlib[tool]
  3. Uruchom narzędzie. Usuń flagę --headless, jeśli uruchamiasz ją w terminalu na urządzeniu (a nie w sesji SSH):

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

Gdy wszystko będzie gotowe do zintegrowania autoryzacji w ramach obsługi administracyjnej swojego urządzenia, przeczytaj przewodniki Korzystanie z OAuth 2.0 w celu uzyskiwania dostępu do interfejsów API Google na temat uzyskiwania, zachowywania i używania tokenów dostępu OAuth do zezwalania na którym chcesz rozmawiać z interfejsem API Asystenta.

W tych przewodnikach pomogą Ci te wskazówki:

Zapoznaj się ze sprawdzonymi metodami dotyczącymi prywatności i bezpieczeństwa .

Uwierzytelnianie połączenia gRPC za pomocą tokenów OAuth

Na koniec poczytaj o tym, jak używać tokenów uwierzytelnienie przy użyciu Google, uwierzytelniać połączenie gRPC w interfejsie Asystenta API.

Zarejestruj swoje urządzenie

Zarejestruj model urządzenia i instancję ręcznie. lub za pomocą narzędzia do rejestracji (dostępnego w Pythonie).

Wdróż podstawowe okno rozmowy z Asystentem

  1. Zaimplementuj klienta gRPC dwukierunkowego strumieniowego przesyłania danych. dla interfejsu Google Assistant Service API.
  2. Poczekaj, aż użytkownik wywoła nowe żądanie (np. poczekaj na przerwanie działania GPIO po naciśnięciu przycisku).
  3. Wyślij AssistRequest wiadomość z ustawionym polem config (patrz AssistConfig). Upewnij się, że pole config zawiera te dane:

    • Pole audio_in_config, które określa sposób przetwarzania Dane z kategorii audio_in, które zostaną przekazane w kolejnych prośbach (zobacz AudioInConfig).
    • Pole audio_out_config, które określa wymagany format dla używany do zwrócenia komunikatów audio_out (patrz AudioOutConfig).
    • Pole device_config, które określa zarejestrowane urządzenie w Asystencie (patrz DeviceConfig).
    • Pole dialog_state_in, które zawiera language_code powiązane z żądaniem (patrz: DialogStateIn).
  4. Rozpocznij nagrywanie.

  5. Wysyłaj wiele wiadomości wychodzących AssistRequest wiadomości z danymi dźwiękowymi z zapytania głosowego w polu audio_in.

  6. Obsługa wiadomości przychodzących AssistResponse wiadomości.

  7. Wyodrębnianie metadanych rozmów z: AssistResponse . Na przykład z witryny dialog_state_out pobierz conversation_state i volume_percentage (patrz DialogStateOut).

  8. Zatrzymaj nagrywanie po otrzymaniu AssistResponse z event_type z END_OF_UTTERANCE.

  9. Odtwarzaj dźwięk odpowiedzi Asystenta z danymi z urządzenia audio_out .

  10. Skopiuj wyodrębniony wcześniej plik conversation_state w DialogStateIn wiadomość w AssistConfig dla następnej wiadomości AssistRequest.

Teraz możesz już wysyłać pierwsze prośby do Google Asystenta na urządzeniu.

Rozszerz okno rozmowy o działania na urządzeniu

Rozszerz podstawowe okno rozmowy, aby aktywować unikalny sprzęt możliwości Twojego urządzenia:

  1. W wiadomościach przychodzących AssistResponse wiadomości, wyodrębnij pole device_action (patrz DeviceAction).
  2. Przeanalizuj ładunek JSON pola device_request_json. Zapoznaj się z na stronie Charakterystyka urządzeń dla: na liście obsługiwanych cech. Na każdej stronie schematu cech widać przykładową funkcję EXECUTE z poleceniami urządzenia i parametrami zwróconymi w Ładunek JSON.

Pobierz transkrypcję żądania użytkownika

Jeśli do urządzenia jest podłączony wyświetlacz, możesz go używać do: do wyświetlania żądania użytkownika. Aby uzyskać tę transkrypcję, przeanalizuj pole speech_results w AssistResponse wiadomości. Gdy rozpoznawanie mowy zakończy działanie, ta lista będzie zawierać jeden element. z wartością stability ustawioną na 1,0.

Uzyskaj tekst lub obraz odpowiedzi Asystenta

Jeśli do urządzenia jest podłączony ekran, możesz go używać do: w postaci tekstowej odpowiedzi Asystenta na zapytanie użytkownika. Ten tekst znajduje się w DialogStateOut.supplemental_display_text .

Na niektóre zapytania Asystent obsługuje odpowiedzi wizualne w HTML5 (Co jaka jest pogoda w Warszawie? lub Która jest godzina?). Aby włączyć tę funkcję, ustaw w polu screen_out_config w AssistConfig. ScreenOutConfig wiadomość ma pole screen_mode, które powinno być ustawione na PLAYING.

AssistResponse wiadomości będą miały ustawione pole screen_out. Dane HTML5 (jeśli są dostępne) możesz wyodrębnić z data.

Przesyłanie zapytań za pomocą wprowadzania tekstu

Jeśli do urządzenia jest podłączony interfejs tekstowy (np. klawiatura), ustaw pole text_query w polu config (patrz AssistConfig). Nie ustawiaj pola audio_in_config.

Rozwiązywanie problemów

Zobacz Rozwiązywanie problemów w razie problemów.