Ikuti petunjuk di setiap bagian di bawah ini untuk mengintegrasikan Asisten Google ke dalam project Anda.
Binding gRPC
Layanan Asisten Google dibuat berdasarkan gRPC, framework RPC open source berperforma tinggi. Framework ini sangat cocok untuk streaming audio dua arah.
Python
Jika Anda menggunakan Python, mulailah menggunakan panduan ini.
C++
Lihat contoh C++ kami di GitHub.
Node.js
Lihat contoh Node.js kami di GitHub.
Android Things
Tertarik dengan perangkat tersemat? Lihat contoh Asisten SDK untuk Android Things.
Bahasa lainnya
- Clone repositori googleapis untuk mendapatkan definisi antarmuka buffering protokol untuk Google Assistant Service API.
- Ikuti dokumentasi gRPC untuk membuat binding gRPC untuk bahasa pilihan Anda
- Ikuti langkah-langkah pada bagian di bawah ini.
Mengizinkan dan mengautentikasi Akun Google Anda agar berfungsi dengan Asisten
Langkah berikutnya adalah mengizinkan perangkat untuk berbicara dengan Asisten Google menggunakan Akun Google Anda.
Mendapatkan token OAuth dengan cakupan SDK Asisten
SDK Asisten menggunakan token akses OAuth 2.0 untuk mengizinkan perangkat Anda terhubung dengan Asisten.
Saat membuat prototipe, Anda dapat menggunakan alat otorisasi untuk membuat kredensial OAuth2.0 dengan mudah dari file client_secret_<client-id>.json
yang dihasilkan saat mendaftarkan model perangkat.
Lakukan hal berikut untuk membuat kredensial:
Gunakan lingkungan virtual Python untuk mengisolasi alat otorisasi dan dependensinya dari paket Python sistem.
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
Instal alat otorisasi:
python -m pip install --upgrade google-auth-oauthlib[tool]
Jalankan alat. Hapus flag
--headless
jika Anda menjalankan ini dari terminal di perangkat (bukan sesi SSH):google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
Jika Anda sudah siap untuk mengintegrasikan otorisasi sebagai bagian dari mekanisme penyediaan perangkat, baca panduan kami untuk Menggunakan OAuth 2.0 untuk Mengakses Google API guna memahami cara mendapatkan, mempertahankan, dan menggunakan token akses OAuth untuk memungkinkan perangkat Anda berbicara dengan Assistant API.
Gunakan hal berikut saat mempelajari panduan ini:
- Cakupan OAuth: https://www.googleapis.com/auth/assistant-sdk-prototype
Alur OAuth yang didukung:
- (Direkomendasikan) Aplikasi terinstal
- Aplikasi server web
Lihat praktik terbaik tentang privasi dan keamanan untuk mendapatkan rekomendasi cara mengamankan perangkat.
Mengautentikasi koneksi gRPC Anda dengan token OAuth
Terakhir, gabungkan semua bagian dengan membaca cara menggunakan autentikasi berbasis token dengan Google untuk mengautentikasi koneksi gRPC ke Assistant API.
Daftarkan perangkat Anda
Daftarkan model dan instance perangkat Anda secara manual atau dengan alat pendaftaran (tersedia di Python).
Mengimplementasikan dialog percakapan dasar dengan Asisten
- Implementasikan klien gRPC streaming dua arah untuk Google Assistant Service API.
- Tunggu hingga pengguna memicu permintaan baru (misalnya, tunggu interupsi GPIO dari penekanan tombol).
Kirim pesan
AssistRequest
dengan kolomconfig
yang ditetapkan (lihatAssistConfig
). Pastikan kolomconfig
berisi hal berikut:- Kolom
audio_in_config
, yang menentukan cara memproses dataaudio_in
yang akan diberikan dalam permintaan berikutnya (lihatAudioInConfig
). - Kolom
audio_out_config
, yang menentukan format yang diinginkan untuk digunakan server saat menampilkan pesanaudio_out
(lihatAudioOutConfig
). - Kolom
device_config
, yang mengidentifikasi perangkat yang terdaftar ke Asisten (lihatDeviceConfig
). - Kolom
dialog_state_in
, yang berisilanguage_code
yang terkait dengan permintaan (lihatDialogStateIn
).
- Kolom
Mulai merekam.
Kirim beberapa pesan
AssistRequest
keluar dengan data audio dari kueri lisan di kolomaudio_in
.Menangani pesan
AssistResponse
masuk.Ekstrak metadata percakapan dari pesan
AssistResponse
. Misalnya, daridialog_state_out
, dapatkanconversation_state
danvolume_percentage
(lihatDialogStateOut
).Berhenti merekam saat menerima
AssistResponse
denganevent_type
dariEND_OF_UTTERANCE
.Putar audio dari jawaban Asisten dengan data audio yang berasal dari kolom
audio_out
.Ambil
conversation_state
yang Anda ekstrak sebelumnya, lalu salin ke pesanDialogStateIn
diAssistConfig
untukAssistRequest
berikutnya.
Dengan ini, Anda harus siap membuat permintaan pertama ke Asisten Google melalui perangkat.
Memperluas dialog percakapan dengan Tindakan Perangkat
Perluas dialog percakapan dasar di atas untuk memicu kemampuan hardware unik dari perangkat tertentu Anda:
- Pada pesan
AssistResponse
yang masuk, ekstrak kolomdevice_action
(lihatDeviceAction
). - Uraikan payload JSON kolom
device_request_json
. Lihat halaman Karakteristik Perangkat untuk daftar Trait yang didukung. Setiap halaman skema karakteristik menampilkan contoh permintaan EXECUTE dengan perintah perangkat dan parameter yang ditampilkan dalam payload JSON.
Mendapatkan transkrip permintaan pengguna
Jika memiliki layar yang terpasang ke perangkat, Anda mungkin ingin menggunakannya untuk
menampilkan permintaan pengguna. Untuk mendapatkan transkrip ini, uraikan kolom speech_results
dalam pesan AssistResponse
. Saat pengenalan ucapan selesai, daftar ini akan berisi satu item
dengan stability
yang ditetapkan ke 1.0.
Mendapatkan rendering teks dan/atau visual dari respons Asisten
Jika memiliki layar yang terpasang ke perangkat, Anda mungkin ingin menggunakannya untuk
menampilkan respons teks biasa Asisten terhadap permintaan pengguna. Teks ini terletak
di kolom
DialogStateOut.supplemental_display_text
.
Asisten mendukung respons visual melalui HTML5 untuk kueri tertentu (Bagaimana
cuaca di Jakarta? atau Pukul berapa sekarang?). Untuk mengaktifkannya, tetapkan
kolom screen_out_config
di AssistConfig
.
Pesan ScreenOutConfig
memiliki kolom screen_mode
yang harus ditetapkan ke PLAYING
.
Pesan AssistResponse
kemudian akan memiliki kolom screen_out
yang ditetapkan. Anda dapat mengekstrak data HTML5 (jika ada) dari kolom
data
.
Mengirimkan kueri melalui input teks
Jika Anda memiliki antarmuka teks (misalnya, keyboard) yang terpasang ke perangkat,
tetapkan kolom text_query
di kolom config
(lihat AssistConfig
).
Jangan tetapkan kolom audio_in_config
.
Pemecahan masalah
Lihat halaman Pemecahan masalah jika Anda mengalami masalah.