Actions projesi, tüm İşlemlerinizi tek bir kapsayıcıda paketler. Google Asistan'ın konuşma deneyimlerinizi nasıl keşfedip çağıracağını bilmesi için bu projeyi Actions on Google'da yayınlarsınız.
Actions projenizi oluşturmak için aşağıdaki alt düzey bileşenleri kullanırsınız:
Ayarlar ve kaynaklar, proje meta verilerini ve proje simgeleri gibi kaynakları tanımlar. Google, kullanıcıların bu işlemleri keşfedip çağırabilmesi amacıyla İşlemlerinizi Asistan dizininde yayınlamak için bu bilgileri kullanır.
Amaçlar bazı kullanıcı girişleri veya işlenmesi gereken bir sistem etkinliği gibi yürütülecek görevleri temsil eder. Kullanacağınız en yaygın amaç türü kullanıcı amaçlarıdır. Bu amaçlar, NLU (doğal dil anlama) motoru tarafından doğal olarak genişletilen ve daha fazla benzer ifade içerecek şekilde genişletilen eğitim ifadelerini bildirmenize olanak tanır. NLU, Asistan'ın kullanıcı girişini eşleştirmek için kullandığı bir dil modelini eğitmek için bu ifadelerin toplamından yararlanır. Görüşme sırasında, bazı kullanıcı girişleri amacın dil modeliyle eşleşirse Asistan çalışma zamanı, amacı işleyip kullanıcıya yanıt verebilmesi için İşleminize gönderir.
Türler, kullanıcı girişinden yapılandırılmış veriler çıkarmanızı sağlar. NLU, eğitim ifadelerine türlerle ek açıklamalar ekleyerek sizin için alakalı ve yapılandırılmış verileri çıkarabilir. Böylece açık uçlu girişleri ayrıştırmanıza gerek kalmaz.
Sahneler, amaçları işler ve İşlemleriniz için ana mantık yürütücülerdir. Slot doldurma yapabilir, koşullu mantığı değerlendirebilir, kullanıcıya istemler döndürebilir, hatta iş mantığını yürütmeleri için harici web hizmetlerine çağrı yapabilirler. Amaçlarla birlikte, sahneler belirli kullanıcı girişlerini veya sistem etkinliklerini tespit etmek ve ilgili mantığı gerçekleştirmek için güçlü bir yöntem sunar.
İstemler, kullanıcılara yanıt vermek için kullandığınız statik veya dinamik yanıtları tanımlar.
Webhook'lar, web hizmetlerine (ör. veri doğrulama veya istem oluşturma) ek işler için yetki vermenize olanak tanır. İşlemleriniz JSON tabanlı bir webhook protokolü üzerinden karşılamanızla iletişim kurar.
Etkileşimli Tuval; HTML, CSS ve JavaScript kullanan web uygulamalarıyla zengin ve sürükleyici deneyimler oluşturmanıza olanak tanır.
Proje oluşturma
Google Asistan için uygulama geliştirmeden önce Actions konsolunda bir proje oluşturmanız gerekir. Proje oluşturmak için:
- Actions Console'a gidin.
- Yeni proje'yi tıklayın.
- Projeniz için bir ad girin ve Proje Oluştur'u tıklayın.
- Ne tür bir İşlem oluşturmak istiyorsunuz? ekranında projenizi en iyi temsil eden kategoriyi seçin ve İleri'yi tıklayın.
- Nasıl oluşturmak istiyorsunuz? ekranında, bir derleme yöntemi seçin ve Derlemeye başla'yı tıklayın. Örneğin, boş bir proje veya bir örnekle başlayabilirsiniz.
Yerel Actions SDK projesi oluşturma
Actions konsolunda bir Actions projesi oluşturduktan sonra, yerel geliştirme ortamınızda bir projeyi başlatabilirsiniz.
Mevcut bir Actions projesinden Actions SDK projesi başlatmak için şu adımları uygulayın:
- Yerel dosya sisteminizde Actions projesi için boş bir dizin oluşturun.
- Bu boş dizinde bir
sdk
dizini oluşturun. - Çalışma dizininizi terminalinizdeki
sdk
dizini olarak değiştirin.
Boş bir projeyle başlayın
Konsolda yeni oluşturduğunuz boş projeden başlamak istiyorsanız gactions pull --project-id <my-project-id>
komutunu çalıştırın.
$ mkdir myAction $ cd myAction $ mkdir sdk $ cd sdk $ gactions pull --project-id my-project-id Pulling your project files from Draft for a project id: "my-project-id" ✔ Done. You should see the files written in path/to/myAction/sdk
Örnek bir projeyle başlayın
Örnek bir projeyle başlamak istiyorsanız gactions init <sample name>
komutunu çalıştırın.
$ mkdir actions-test $ cd actions-test $ mkdir sdk $ cd sdk $ gactions init question Writing sample files for question. ✔ Done. Please checkout the following documentation - https://developers.google.com/assistant/conversational/build on the next steps on how to get started.
Proje bilgilerini tanımlama
Projenizin ayarları ve kaynakları; özellik ve yüzey desteği, desteklenen yerel ayarlar, görünen ad, açıklama, logolar ve daha fazlası gibi projenizle ilgili bilgileri tanımlar. Aşağıdaki tabloda sağladığınız ana ayarlar ve kaynaklar açıklanmaktadır. Actions on Google, projenizi Asistan dizininde dağıtmak ve yayınlamak için bu bilgileri kullanır.
Ad | Açıklama |
---|---|
Dizin bilgileri | Actions on Google'ın projenizi Asistan dizininde yayınlayabilmesi için bilgi sağlar. Projenizle ilgili meta verileri ve açıklamaları, logolar ve banner resimleri için resim kaynaklarını içerir. |
Konum hedefleme | İşlemlerinizin bulunduğu yerel ayarları yapılandırır. |
Yetenekleri gösterin | İşlemlerinizin kullanılabildiği yüzeyleri yapılandırır. |
Şirket bilgileri | Şirketiniz için iletişim bilgilerini belirtir. |
Marka doğrulama | İşlemlerinizde ayrılmış çağrı adları ve web sitesi bağlama gibi ek avantajlardan yararlanmak için sahip olduğunuz bir web sitesini veya Android uygulamasını bağlayın. |
Lansman | Test ve üretime yönelik İşleminiz için farklı test ve üretim sürümleri yapılandırır. |
Asistan bağlantıları | Kullanıcıların web mülklerinizden İşlemlerinizi çağırmasına izin verin. |
Proje bilgilerini tanımlamak için:
sdk/settings/settings.yaml
içinde Actions projeniz için genel ayarları tanımlayın. Desteklenen değerler için Ayarlar referans belgelerine bakın.Aşağıdaki snippet'te örnek bir
sdk/settings/settings.yaml
dosyası gösterilmektedir:accountLinking: enableAccountCreation: true linkingType: GOOGLE_SIGN_IN category: GAMES_AND_TRIVIA projectId: my-project-id ...
sdk/settings/<locale>/settings.yaml
dosyasında kullanıcının yerel ayarına (örneğin, farklı dillerdeki çağrı ifadeleri) göre değişebilecek ayarları tanımlayarak yerel ayarı hedef yerel ayarınızla değiştirin.Desteklenen değerler için LocalizedSettings referans belgelerine bakın.
Aşağıdaki snippet,
sdk/settings/en/settings.yaml
dosyasında tanımlanan İngilizce ayarlara ilişkin bir örnektir:localizedSettings: developerEmail: developer@developers.com developerName: Developer Name displayName: My Display Name fullDescription: full description of the action largeBannerImage: https://path/to/large/banner privacyPolicyUrl: http://path/to/privacy/policy sampleInvocations: - Talk to My Display Name shortDescription: short description of the action smallLogoImage: https://path/to/small/logo voice: female_1 ...
Kaynak ekleyin
Resim dosyaları, ses dosyaları ve dizeler gibi kaynakları Actions projenizde depolayabilir ve sistem tanımlı $resources
değişkenini kullanarak yapılandırma dosyalarından (ör. istem tanımları veya koşullar) bunlara referans verebilirsiniz.
Proje kaynakları resources/
altında depolanır ve her kaynak türüne dizinde bir klasör atanır.
Kaynak türü klasöründe yerel ayara özel klasörler oluşturarak kaynakları yerelleştirebilirsiniz. Örneğin, dizelerinizin İspanyolca sürümlerini resources/strings/es/<filename>.yaml
hizmetinde depolayabilirsiniz.
Resimler
Resim dosyaları resources/images/
içinde depolanır ve bunlara $resources.images.<name of the image file without file extension>
ile başvurabilirsiniz.
İzin verilen dosya uzantıları şunlardır:
gif
png
jpg
jpeg
Örneğin, küçük logonun İngilizce sürümü resources/images/en/square.png
bölümüne ve büyük banner'ın İngilizce sürümü sırasıyla resources/images/en/landscape.jpg
için kaydedilirse önceki örnekte verilen sdk/settings/en/settings.yaml
şöyle olur:
localizedSettings: developerEmail: developer@developers.com developerName: Developer Name displayName: My Display Name fullDescription: full description of the action largeBannerImage: $resources.images.landscape privacyPolicyUrl: http://path/to/privacy/policy sampleInvocations: - Talk to My Display Name shortDescription: short description of the action smallLogoImage: $resources.images.square voice: female_1 ...
Ses dosyaları
Ses dosyaları resources/audio/
içinde depolanır ve bunlara $resources.audio.<name of the audio file without file extension>
ile başvurabilirsiniz.
İzin verilen dosya uzantıları şunlardır:
mp3
mpeg
Örneğin, istemlerdeki ses kayıtlarına başvurabilirsiniz:
candidates: - first_simple: variants: - speech: your speech response content: media: mediaType: audio mediaObjects: - name: media name description: media description url: $resources.audio.intro
Dize
Dizeler resources/strings/
içinde .yaml
dosyaları olarak depolanır. Her dosya, dize anahtarlarının ve ilişkili değerlerin haritasını içerir. Bunlar, tek dizeler veya dize listeleri olabilir. Değerlere, tek dize değerleri için veya bir listeden rastgele değer almak amacıyla $resources.strings.<name of the image file without file extension>.<key>
ve bir listedeki belirli bir dize değeri için $resources.strings.<name of the image file without file extension>.<key>.<numerical index>
öğesini kullanabilirsiniz.
Örneğin, dize yerelleştirmesi için kaynak dizeleri kullanıldığında önceki örnekte verilen sdk/settings/en/settings.yaml
şu şekilde olabilir:
localizedSettings: developerEmail: developer@developers.com developerName: $resources.strings.appinfo.developerName displayName: $resources.strings.appinfo.displayName fullDescription: $resources.strings.appinfo.fullDescription largeBannerImage: $resources.images.landscape privacyPolicyUrl: $resources.strings.appinfo.privacyPolicyUrl sampleInvocations: - $resources.strings.invocations.sample shortDescription: $resources.strings.appinfo.shortDescription smallLogoImage: $resources.images.square voice: female_1 ...
Simülatörde projeleri test etme
Actions konsolu, Actions'ı önizlemeniz için bir simülatör sağlar. Simülatör sayesinde hata ayıklama bilgilerini görebilir, cihaz özelliklerini ayarlayabilir, yerel ayarı simüle edebilir ve daha pek çok işlem yapabilirsiniz.
Bir projeyi test etmek için:
- İşleminizi "önizleme" yapmak ve simülatörde test etmeyi etkinleştirmek için
gactions deploy preview
çalıştırın. - Simülatöre erişmek için komut çıkışındaki URL'yi açın.
$ gactions deploy preview Deploying your project files to your Actions console preview for a project id: "my-project". This may take a few minutes. Sending configuration files Waiting for server to respond. ✔ Done. You can now navigate to the Actions Console simulator to test your changes: http://console.actions.google.com/project/my-project/simulator?disableAutoPreview