Google Asistan'ı projenize entegre etmek için aşağıdaki bölümlerde yer alan talimatları izleyin.
gRPC bağlamaları
Google Asistan Hizmeti, yüksek performanslı ve açık kaynaklı bir RPC çerçevesi olan gRPC'yi temel alır. Bu çerçeve, çift yönlü ses akışı için uygundur.
Python
Python kullanıyorsanız bu kılavuzu inceleyerek başlayın.
C++
GitHub'daki C++ örneğimize göz atın.
Node.js
GitHub'daki Node.js örneğimize göz atın.
Android Things
Yerleşik cihazlarla ilgileniyor musunuz? Android Things için Asistan SDK'sı örneğine göz atın.
Diğer diller
- Google Assistant Service API'nin protokol arabelleği arayüz tanımlarını almak için googleapis deposunu klonlayın.
- Seçtiğiniz dile yönelik gRPC bağlantıları oluşturmak için gRPC dokümanlarındaki talimatları uygulayın
- Aşağıdaki bölümlerde yer alan adımları uygulayın.
Asistan'la çalışmak için Google Hesabınızı yetkilendirin ve doğrulayın
Bir sonraki adım, Google Hesabınızı kullanarak Google Asistan'la konuşmak için cihazınızı yetkilendirmektir.
Asistan SDK kapsamıyla OAuth jetonları edinme
Asistan SDK'sı, cihazınızı Asistan'a bağlanacak şekilde yetkilendirmek için OAuth 2.0 erişim jetonlarını kullanır.
Prototip oluştururken, cihaz modelinizi kaydederken oluşturulan client_secret_<client-id>.json
dosyasından OAuth2.0 kimlik bilgilerini kolayca oluşturmak için yetkilendirme aracını kullanabilirsiniz.
Kimlik bilgilerini oluşturmak için aşağıdakileri yapın:
Yetkilendirme aracını ve bağımlılıklarını sistemdeki Python paketlerinden izole etmek için bir Python sanal ortamı kullanın.
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
--headless
işaretini kaldırın (SSH oturumu değil):google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
Cihazınızın temel hazırlık mekanizmasının bir parçası olarak yetkilendirmeyi entegre etmeye hazır olduğunuzda, cihazınızın Assistant API ile iletişim kurmasını sağlamak amacıyla OAuth erişim jetonlarını nasıl edineceğinizi, devam ettireceğinizi ve kullanacağınızı anlamak için Google API'lerine Erişmek için OAuth 2.0'ı Kullanma kılavuzlarımızı okuyun.
Bu kılavuzlar üzerinde çalışırken aşağıdakileri kullanın:
- OAuth kapsamı: https://www.googleapis.com/auth/assistant-sdk-prototype
Desteklenen OAuth akışları:
- (Önerilen) Yüklü uygulamalar
- Web sunucusu uygulamaları
Cihazınızın güvenliğini sağlamayla ilgili öneriler için gizlilik ve güvenlikle ilgili en iyi uygulamalara göz atın.
gRPC bağlantınızı OAuth jetonlarıyla doğrulayın
Son olarak, Assistant API'ye yönelik gRPC bağlantısının kimliğini doğrulamak için Google ile jeton tabanlı kimlik doğrulamayı nasıl kullanacağınızı okuyarak tüm parçaları bir araya getirin.
Cihazınızı kaydettirin
Cihaz modelinizi ve örneğinizi manuel olarak veya kayıt aracıyla (Python'da mevcuttur) kaydedin.
Asistan'la temel bir görüşme iletişim kutusu uygulama
- Google Assistant Service API için iki yönlü bir akış gRPC istemcisi uygulayın.
- Kullanıcının yeni bir isteği tetiklemesini bekleyin (ör. bir düğmeye basıldığında GPIO kesintisinin olmasını bekleyin).
config
alanı ayarlanmış birAssistRequest
iletisi gönderin (AssistConfig
sayfasına bakın).config
alanında şunların bulunduğundan emin olun:- Sonraki isteklerde sağlanacak
audio_in
verilerinin nasıl işleneceğini belirtenaudio_in_config
alanı (bkz.AudioInConfig
). - Sunucunun
audio_out
mesajlarını döndürdüğünde kullanması istenen biçimi belirtenaudio_out_config
alanı (bkz.AudioOutConfig
). - Kayıtlı cihazı Asistan'a tanımlayan
device_config
alanı (bkz.DeviceConfig
). - İstekle ilişkili
language_code
öğesini içerendialog_state_in
alanı (bkz.DialogStateIn
).
- Sonraki isteklerde sağlanacak
Kaydı başlat.
audio_in
alanında sözlü sorgudan alınan ses verileriyle birden fazla gidenAssistRequest
mesajı gönderin.Gelen
AssistResponse
iletilerini işleyin.AssistResponse
mesajından ileti dizisi meta verilerini çıkarın. Örneğin,dialog_state_out
içinconversation_state
vevolume_percentage
verilerini alın (bkz.DialogStateOut
).END_OF_UTTERANCE
değerindeevent_type
olan birAssistResponse
aldığınızda kaydı durdurun.audio_out
alanından gelen ses verileriyle Asistan yanıtındaki sesi çalın.Daha önce ayıkladığınız
conversation_state
öğesini alın ve sonrakiAssistRequest
içinAssistConfig
içindekiDialogStateIn
mesajına kopyalayın.
Böylece, cihazınız üzerinden Google Asistan'a ilk isteklerinizi yapmaya hazır olursunuz.
Cihaz İşlemleri ile görüşme iletişim kutusunu genişletme
Belirli cihazınızın benzersiz donanım özelliklerini tetiklemek için yukarıdaki temel görüşme iletişim kutusunu genişletin:
- Gelen
AssistResponse
mesajlarındadevice_action
alanını çıkarın (DeviceAction
bölümünü inceleyin). device_request_json
alanının JSON yükünü ayrıştırın. Desteklenen özelliklerin listesi için Cihaz Özellikleri sayfasına bakın. Her özellik şeması sayfası, JSON yükünde döndürülen cihaz komutları ve parametreleriyle örnek bir EXECUTE isteğini gösterir.
Kullanıcı isteğinin transkriptini alın
Cihaza bağlı bir ekranınız varsa kullanıcı isteğini göstermek için bu ekranı kullanabilirsiniz. Bu transkripti almak için AssistResponse
mesajlarındaki speech_results
alanını ayrıştırın. Konuşma tanıma tamamlandığında bu liste, stability
değeri 1,0 olarak ayarlanmış bir öğe içerir.
Asistan'ın yanıtının metnini ve/veya görselini alma
Cihaza bağlı bir ekranınız varsa Asistan'ın kullanıcının isteğine verdiği düz metin yanıtını göstermek için bu ekranı kullanabilirsiniz. Bu metin DialogStateOut.supplemental_display_text
alanında bulunur.
Asistan, belirli sorgular için HTML5 üzerinden görsel yanıtları destekler (Mountain View'da hava nasıl? veya Saat kaç?). Bunu etkinleştirmek için AssistConfig
bölümünde screen_out_config
alanını ayarlayın.
ScreenOutConfig
mesajında PLAYING
olarak ayarlanması gereken screen_mode
alanı var.
Daha sonra AssistResponse
mesajları için screen_out
alanı ayarlanır. HTML5 verilerini (varsa) data
alanından çıkarabilirsiniz.
Metin girişi üzerinden sorgu gönderme
Cihaza bağlı metin arayüzünüz (örneğin, klavye) varsa config
alanında text_query
alanını ayarlayın (bkz. AssistConfig
). audio_in_config
alanını ayarlamayın.
Sorun giderme
Sorunla karşılaşırsanız Sorun giderme sayfasına bakın.