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 updatesudo apt-get install python3-dev python3-venv # Use python3.4-venv if the package cannot be found.python3 -m venv envenv/bin/python -m pip install --upgrade pip setuptools wheelsource env/bin/activateYetkilendirme 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)
--headlessiş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.
AssistRequestgönderinconfigalanı ayarlanmış bir iletiyi görürsünüz (AssistConfigbölümüne bakın).configalanında şunların bulunduğundan emin olun:- Etiketin nasıl işleneceğini belirten
audio_in_configalanı Sonraki isteklerde sağlanacakaudio_inverileri (bkz.AudioInConfig). - Etiket için istenen biçimi belirten
audio_out_configalanı hangi sunucuaudio_outiletileri döndürdüğünde kullanacağına işaret etmez (bkz.AudioOutConfig). - Tanımlayan
device_configalanı cihazını Asistan'a kaydettirebilir (bkz.DeviceConfig). language_codedeğerini içerendialog_state_inalanı istekle ilişkilidir (bkz.DialogStateIn).
- Etiketin nasıl işleneceğini belirten
Kaydı başlat.
Birden fazla giden
AssistRequestgönderaudio_inalanında sözlü sorgudan ses verilerini içeren mesajlar.Gelen
AssistResponseiletileri işleyin mesaj.Görüşme meta verilerini
AssistResponse'ten ayıkla mesajını alırsınız. Örneğin,dialog_state_outuygulamasındanconversation_statealın. vevolume_percentage(bkz.DialogStateOut).AssistResponsealırken kaydı durdurevent_typeile /END_OF_UTTERANCE.Asistan yanıtının sesini
audio_outkaynağından gelen ses verilerini çalma girin.Daha önce çıkardığınız
conversation_stateöğesini alıp kopyalayınDialogStateInAssistConfigiçindeki mesaj, önümüzdekiAssistRequestiç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
AssistResponseiçindedevice_actionalanını çıkarın (bkz.DeviceAction). device_request_jsonalanı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.