Google Asistan'ı entegre etmek için aşağıdaki bölümlerde yer alan talimatları uygulayın projenize ekleyin.
gRPC bağlamaları
Google Asistan Hizmeti, yüksek bir boyut olan gRPC üzerine en iyi uygulamaları paylaşacağız. Bu çerçeve, dönüşüm hunisinin iki yönlü ses akışı.
Python
Python kullanıyorsanız bu kılavuzu kullanmaya başlayın.
C++
C++ örneğimize göz atın bulabilirsiniz.
Node.js
Node.js örneğimize göz atın bulabilirsiniz.
Android Things
Yerleştirilmiş cihazlarla mı ilgileniyorsunuz? Asistan SDK'sına göz atın şunun için sample: Android Things.
Diğer diller
- googleapis deposunu klonlama Google Assistant Service API için protokol arabellek arayüzü tanımlarını almak üzere
- gRPC oluşturmak için gRPC belgelerini uygulayın seçtiğiniz dil için bağlamalar
- Aşağıdaki bölümlerde yer alan adımları uygulayın.
Asistan'la çalışması için Google Hesabınızı yetkilendirme ve kimlik doğrulaması yapma
Bir sonraki adım, cihazınızı Google Asistan ile konuşmak üzere yetkilendirmektir Google Hesabınızı kullanarak.
Asistan SDK'sı kapsamıyla OAuth jetonları alma
Asistan SDK'sı, cihazınızı şu işlemler için yetkilendirmek için OAuth 2.0 erişim jetonlarını kullanır: Asistan'a bağlanmalısınız.
Prototip oluştururken OAuth2.0'ı kolayca oluşturmak için yetkilendirme aracını kullanabilirsiniz.
sırasında oluşturulan client_secret_<client-id>.json
dosyasındaki kimlik bilgileri
cihaz modelinizi kaydetme.
Kimlik bilgilerini oluşturmak için aşağıdakileri yapın:
Python sanal ortamı kullanın yetkilendirme aracını ve bağımlılıklarını sistemin Python paketlerinden izole edin.
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
Yetkilendirme aracını yükleyin:
python -m pip install --upgrade google-auth-oauthlib[tool]
Aracı çalıştırın. Bunu cihazdaki bir terminalden çalıştırıyorsanız (SSH oturumundan değil)
--headless
işaretini kaldırın:google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
Temel hazırlık işleminin bir parçası olarak yetkilendirmeyi entegre etmeye hazır olduğunuzda mekanizmasına ilişkin bilgi edinmek için Google API'lerine Erişmek için OAuth 2.0'ı Kullanma OAuth erişim jetonlarının nasıl alınacağını, sürdürüleceğini ve kullanılacağını anlamak için cihazındaki Asistan API'si ile iletişim kurun.
Bu kılavuzlar üzerinde çalışırken aşağıdakilerden yararlanın:
- OAuth kapsamı: https://www.googleapis.com/auth/assistant-sdk-prototype
Desteklenen OAuth akışları:
- (Önerilen) Yüklü uygulamalar
- Web sunucusu uygulamaları
Gizlilik ve güvenlikle ilgili en iyi uygulamalara göz atın bölümünü ziyaret edin.
gRPC bağlantınızın kimliğini OAuth jetonlarıyla doğrulama
Son olarak, jeton temelli jetonların nasıl kullanılacağını" okuyarak Google ile kimlik doğrulama Assistant API'ye olan gRPC bağlantısının kimliğini doğrulama.
Cihazınızı kaydettirin
Cihaz modelini ve örneğinizi manuel olarak kaydedin veya kayıt aracı (kullanılabilir) Python'da kullanılabilir).
Asistan'la temel bir konuşma iletişim kutusu uygulama
- İki yönlü akış gRPC istemcisi uygulama öğrenin.
- Kullanıcının yeni bir isteği tetiklemesini bekleyin (ör. bir GPIO kesmesi bekleyin) ) sağlar.
AssistRequest
gönderinconfig
alanı ayarlanmış bir iletiyi görürsünüz (AssistConfig
bölümüne bakın).config
alanında şunların bulunduğundan emin olun:- Etiketin nasıl işleneceğini belirten
audio_in_config
alanı Sonraki isteklerde sağlanacakaudio_in
verileri (bkz.AudioInConfig
). - Etiket için istenen biçimi belirten
audio_out_config
alanı hangi sunucuaudio_out
iletileri döndürdüğünde kullanacağına işaret etmez (bkz.AudioOutConfig
). - Tanımlayan
device_config
alanı cihazını Asistan'a kaydettirebilir (bkz.DeviceConfig
). language_code
değerini içerendialog_state_in
alanı istekle ilişkilidir (bkz.DialogStateIn
).
- Etiketin nasıl işleneceğini belirten
Kaydı başlat.
Birden fazla giden
AssistRequest
gönderaudio_in
alanında sözlü sorgudan ses verilerini içeren mesajlar.Gelen
AssistResponse
iletileri işleyin mesaj.Görüşme meta verilerini
AssistResponse
'ten ayıkla mesajını alırsınız. Örneğin,dialog_state_out
uygulamasındanconversation_state
alın. vevolume_percentage
(bkz.DialogStateOut
).AssistResponse
alırken kaydı durdurevent_type
ile /END_OF_UTTERANCE
.Asistan yanıtının sesini
audio_out
kaynağından gelen ses verilerini çalma girin.Daha önce çıkardığınız
conversation_state
öğesini alıp kopyalayınDialogStateIn
AssistConfig
içindeki mesaj, önümüzdekiAssistRequest
için.
Böylece, Google'dan ilk taleplerinizi göndermeye hazır olmalısınız. Cihazınız üzerinden Asistan.
Cihaz İşlemleri ile görüşme iletişim kutusunu genişletin
Benzersiz donanımı tetiklemek için yukarıdaki temel görüşme iletişim kutusunu genişletin özellikleri:
- Gelen
AssistResponse
içindedevice_action
alanını çıkarın (bkz.DeviceAction
). device_request_json
alanının JSON yükünü ayrıştırın. Daha fazla bilgi için Cihaz Özellikleri sayfası desteklenen özelliklerin listesidir. Her özellik şeması sayfasında örnek bir EXECUTE gösterilir API komut dosyasında döndürülen cihaz komutları ve parametreleriyle JSON yükü.
Kullanıcı isteğinin transkriptini al
Cihaza bağlı bir ekran varsa şunları yapmak için kullanmak isteyebilirsiniz:
kullanıcı isteğini gösterir. Bu transkripti elde etmek için speech_results
alanını ayrıştırın
AssistResponse
mesaj. Konuşma tanıma işlemi tamamlandığında bu liste bir öğe içerir
1,0 olarak ayarlanmış bir stability
ile.
Asistan'ın yanıtının metnini ve/veya görselini oluşturun
Cihaza bağlı bir ekran varsa şunları yapmak için kullanmak isteyebilirsiniz:
Asistan'ın, kullanıcının isteğine verdiği düz metin yanıtını gösterir. Bu metnin bulunduğu yer
DialogStateOut.supplemental_display_text
girin.
Asistan, belirli sorgularda HTML5 üzerinden görsel yanıtları destekler (
Mountain View'da hava durumu mu? veya Saat kaç?). Bunu etkinleştirmek için,
AssistConfig
içindeki screen_out_config
alanı.
ScreenOutConfig
mesajın, PLAYING
olarak ayarlanması gereken screen_mode
alanı var.
AssistResponse
mesajlarda screen_out
alanı ayarlanır. HTML5 verilerini (varsa)
data
alanına giriş yapın.
Metin girişi aracılığıyla sorgu gönderme
Cihaza bağlı bir metin arayüzünüz (örneğin, klavye) varsa
config
alanına text_query
alanını ayarlayın (bkz. AssistConfig
).
audio_in_config
alanını ayarlamayın.
Sorun giderme
Sorun giderme bölümünü inceleyin. sayfasını ziyaret edin.