Yerleşik intent, Google Asistan'a İşleminizin belirli bir kullanıcı isteği kategorisini yerine getirebileceğini bildirmek için belirtebileceğiniz benzersiz bir tanımlayıcıdır. Örneğin, Asistan'ın yerleşik amaçlarla eşleştirdiği kullanıcı sorgusu örneklerini aşağıda görebilirsiniz:
- "Oyun oyna" yerleşik amacı: "Ok Google. Hafıza oyunu oynayın"
- "Burç al'ın yerleşik amacı: "Ok Google. Yıldız falımı göster"
İşlem keşfi sırasında Asistan, kullanıcılara İşleminizi önermek için, belirttiğiniz yerleşik amaçlar da dahil olmak üzere İşleminizle ilgili meta verileri kullanabilir. Asistan, konuşmalardaki gidiş dönüşleri en aza indirmek için kullanıcı sorgularındaki parametreleri taramaya ve bunları İşleminize aktarmaya da çalışır.
Asistan'ın desteklediği yerleşik amaçların tam listesini (parametreleri ve örnek kullanıcı sorguları dahil) görmek için Yerleşik amaçlar referansına bakın.
Yerleşik amaçları entegre edin
İşleminizi nasıl oluşturduğunuza bağlı olarak, yerleşik amaçları entegre etmenin farklı yolları vardır.
Dialogflow
İşleminizi oluşturmak için Dialogflow kullanıyorsanız Dialogflow konsolundan grafik olarak yerleşik bir intent ekleyebilirsiniz.
Dialogflow ile dahili niyet eklemek için aşağıdaki adımları uygulayın:
- Dialogflow konsolunu açın, aracınızı seçin, ardından Intents (Amaçlar) ekranına gidin.
Aracınızın belirli bir yerleşik amaç aldığında tetiklediği amacı oluşturun veya seçin. Etkinlikler bölümünü açın ve Etkinlik Ekle'yi tıklayın.
Etkinlikler alanına, aracınız için bir yerleşik amaç etkinliğinin adını yazın (örneğin,
actions_intent_PLAY_GAME
).Kaydet'i tıklayın.
Actions SDK
İşleminizi oluşturmak için Actions SDK'sını kullanıyorsanız yerleşik amaçlar ile Action paketinizdeki Actions arasındaki eşlemeyi belirtmeniz gerekir.
Actions SDK'sı ile yerleşik bir amaç eklemek için şu adımları uygulayın:
- Yerleşik amacı, İşlem tanımınızdaki ad alanında belirtin.
- Actions SDK'ya genel bakış bölümünde açıklandığı gibi
gactions
aracını kullanarak işlem paketinizi Actions projenize yükleyin.
Örneğin, aşağıdaki snippet'te CHECK_AIR_QUALITY
yerleşik amacını nasıl ekleyebileceğinizi görebilirsiniz:
{
"actions":[
{
"description":"Default Welcome Intent",
"name":"MAIN",
"fulfillment":{
"conversationName":"conversation_1"
},
"intent":{
"name":"actions.intent.MAIN"
}
},
{
"description":"Check Air Quality",
"name":"CHECK_AIR_QUALITY",
"fulfillment":{
"conversationName":"conversation_1"
},
"intent":{
"name":"actions.intent.CHECK_AIR_QUALITY"
}
}
],
"conversations":{
"conversation_1":{
"name":"conversation_1",
"url":"https://example.com/fulfillment",
"fulfillmentApiVersion":2
}
}
}
Yerleşik intent parametrelerini işleyin
İşleminiz yerleşik bir amaç aracılığıyla çağrıldığında, karşılamanız ek parametreler alabilir. Amaç şeması, parametrelerin adlarını ve türlerini temel türler veya schema.org varlıkları olarak tanımlar. Conversational Action yerleşik intent'lerine yönelik şemayı görüntülemek için Yerleşik intentler referansına bakın.
Yerleşik intent parametreleri isteğe bağlıdır. Asistan, parametrelerin kullanıcının yerleşik intent çağrısından çıkarılabildiği durumlarda değerlerle doldurulur.
Örneğin, yerleşik actions.intent.CHECK_AIR_QUALITY
amacının şeması dört isteğe bağlı parametre tanımlar:
Parametre Adı | Tür |
---|---|
attributes |
Dize değeri. |
location |
schema.org/Place nesnesi. |
temporalCoverage |
schema.org/Duration nesnesi. |
timeIndicator |
EnumeratedDuration (Google'a özel uzantı). |
Aşağıdaki kod snippet'inde, bir kullanıcı "What's the air Quality in San Francisco?" (Yarın San Francisco'da hava kalitesi nasıl olacak?) diyerek İşleminizi çağırdığında gerçekleşen görüşme webhook'u (JSON) isteğine ilişkin bir örnek gösterilmektedir:
"inputs":[
{
"intent":"actions.intent.CHECK_AIR_QUALITY",
"rawInputs":[
{
"inputType":"VOICE",
"query":"what is the air quality in san francisco tomorrow"
}
],
"arguments":[
{
"name":"location",
"structuredValue":{
"geo":{
"longitude":-122.41941550000001,
"latitude":37.7749295
},
"@context":"https://schema.org",
"@type":"Place",
"name":"san francisco"
}
},
{
"name":"temporalCoverage",
"rawText":"2018-04-25",
"textValue":"2018-04-25"
}
]
}
]
Bu örnekte, parametreler aşağıdaki değerleri alır:
location
parametresi, "San Francisco" içinschema.org/Place
değerini içerir.temporalCoverage
parametresi, yarının tarihinin çağrı zamanına göreschema.org/Duration
değerini içerir.- Kullanıcının çağrı ifadesi bu tür bilgileri içermediğinden
attributes
vetimeIndicator
parametreleri için değer yoktur.
Node.js için Google İstemci Kitaplığı'nda İşlemler'i kullanırsanız parametrelerin değerini aşağıdaki snippet'te gösterildiği gibi alabilirsiniz:
app.intent('actions.intent.CHECK_AIR_QUALITY', (conv) => {
const attributes = conv.arguments.get('attributes');
const location = conv.arguments.get('location');
const temporal_coverage = conv.arguments.get('temporalCoverage');
Const time_indicator = conv.arguments.get('timeIndicator')
// Your Action logic. If you need to use any of the parameter values,
// you should check first that it is defined. Arguments.get returns
// undefined if it can't find a value for a parameter.
});
Yerleşik intent'lerle entegrasyonları test etme
Entegrasyonunuzu test etmek için aşağıdaki adımları uygulayın:
- İşlem simülatörünü test İşleminiz etkin durumdayken açın veya cihazınızda Asistan'ı açın.
- Söz konusu yerleşik intent ile ilişkili bir sorguyu söyleyin veya yazın. Örneğin, "Oyun oynamak istiyorum."
- Görüntülenen uygulama seçimi iletişim kutusunda İşleminizi bulun.
- Uygulamanıza niyet göndermek için uygulamanızı seçin.
Yerleşik amaçların kullanımıyla ilgili en iyi uygulamalar
Yerleşik amaçları kullanırken aşağıdaki en iyi uygulamaları izlemelisiniz:
- Yerleşik amaçları belirli işlemlerle eşleştirin: Belirli bir yerleşik amaç İşleminizi tetiklediğinde kullanıcıyı olabildiğince az çaba göstererek İşleminizdeki belirli amaca ve işleve yönlendirin. Örneğin, İşleminiz
PLAY_GAME
yerleşik amacını destekliyorsa ve bu amacı alırsa kullanıcıyı hemen İşleminizin oyun özelliğine göndermeniz gerekir. Kullanıcıya oyun oynamak isteyip istemediğini tekrar sormaktan kaçının. - Yerleşik amaç parametrelerini işleme: Asistan'ın istek karşılama mantığınıza gönderdiği yerleşik amaç parametresi değerlerini kullandığınızdan emin olun. Bu değerleri kullanıcıya tekrar istemekten kaçının.