Yerleşik amaç, kullanıcılara bildirmek için belirtebilirsiniz İşleminizin belirli bir kullanıcı kategorisini yerine getirebileceği Google Asistan kabul edersiniz. Örneğin, aşağıdakileri göz önünde bulundurarak kullanıcı sorgularının Asistan, yerleşik intentlerle eşleşir:
- "Oyun oyna" yerleşik amaç: "Ok Google. Hafıza oyunu oyna"
- "Yıldız falını bulun" yerleşik amaç: "Ok Google. Yıldız falımı göster"
Asistan, İşlem keşfi sırasında Belirttiğiniz yerleşik amaçlar da dahil olmak üzere İşleminizle ilgili meta veriler, İşleminizi kullanıcılara önerme. Konuşmaya dayalı gidiş dönüşleri en aza indirmek için Asistan, kullanıcı sorgularındaki parametreleri de taramaya çalışır. ve İşleminize ileteceksiniz.
Asistan'ın desteklediği yerleşik amaçların tam listesini görmek için: ve örnek kullanıcı sorguları hakkında daha fazla bilgi edinmek için Yerleşik niyet referansı.
Yerleşik amaçları entegre etme
İşleminizi nasıl oluşturduğunuza bağlı olarak, işlemleri gerçekleştirmek için yerleşik amaçları entegre edin.
Dialogflow
İşleminizi oluşturmak için Dialogflow kullanıyorsanız yerleşik bir intent ekleyebilirsiniz. Dialogflow konsolundan grafik olarak da yükleyebilirsiniz.
Dialogflow ile yerleşik bir intent eklemek için şu adımları uygulayın:
- Dialogflow konsolunu açın, aracınızı seçin, ardından Niyetler ekranı.
Aracınızın bir istek aldığında tetikleyeceği intent oluşturun veya yerleşik amaçtır. Etkinlikler bölümünü açın ve Ekle'yi tıklayın Etkinlik.
'nı inceleyin.Etkinlikler alanına, aracısı (örneğin,
'nı inceleyin.actions_intent_PLAY_GAME
).Kaydet'i tıklayın.
Actions SDK
İşleminizi derlemek için Actions SDK'sını kullanıyorsanız yerleşik amaçlar ile İşlem paketinizdeki İşlemler arasında eşleme sağlama.
Actions SDK'sı ile yerleşik bir intent eklemek için aşağıdaki adımları uygulayın:
- İşlem tanımınızdaki ad alanında yerleşik niyeti belirtin.
- İşlem paketinizi,
gactions
aracını kullanarak Actions projenize yükleyin. Actions SDK'ya genel bakış bölümünde açıklanmıştır.
Örneğin, aşağıdaki snippet'te CHECK_AIR_QUALITY
kodunu nasıl ekleyebileceğinizi görebilirsiniz.
yerleşik amaç:
{
"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şleme
İşleminiz yerleşik bir amaç üzerinden çağrıldığında ek parametreleri alır. Amaç şeması, parametrelerini ve türlerini temel türler veya schema.org olarak varlıklarından oluşur. Conversational Action yerleşik amaçlarının şemasını görüntülemek için Yerleşik niyet referansı.
Yerleşik amaçlar için parametreler isteğe bağlıdır. Asistan Parametreler, kullanıcının yerleşik amaçtır.
Örneğin, actions.intent.CHECK_AIR_QUALITY
yerleşik şeması
intent, isteğe bağlı dört 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 görüşme webhook'unun (JSON) bir örneği gösterilmektedir bir kullanıcı "Şurada hava kalitesi nedir?" diyerek İşleminizi çağırdığında yarın San Francisco'da ne yapacak?":
"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
parametresischema.org/Place
parametresini içerir değerini belirtin.temporalCoverage
parametresischema.org/Duration
parametresini içerir değerinin çağrının zamanına göre yarının tarihi için değeri.attributes
vetimeIndicator
parametreleri için değer yok çünkü kullanıcının çağrı ifadesinde bu tür bilgiler yoktu.
Actions on Node.js için Google İstemci Kitaplığı'nı kullanıyorsanız parametrelerin değerini aşağıdaki snippet'te gösterildiği şekilde 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 amaçlarla entegrasyonları test etme
Entegrasyonunuzu test etmek için şu adımları uygulayın:
- Test İşleminiz etkin durumdayken Actions simülatörünü açın veya cihazınızdaki Asistan'ı seçin.
- Bu yerleşik amaçla ilişkili bir sorgu söyleyin veya yazın. Örneğin, "Oyun oynamak istiyorum."
- Görüntülenen uygulama seçimi iletişim kutusunda İşleminizi bulun.
- Uygulamanıza intent 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ı izlemeniz gerekir:
- Yerleşik amaçları belirli işlemlerle eşleme: Belirli bir yerleşik amaç olduğunda
İşleminizi tetikler, kullanıcıyı belirli bir amaca yönlendirir ve
işlemlerinizin sorunsuz bir şekilde yapılmasını sağlayın. Örneğin,
İşleminiz
PLAY_GAME
yerleşik niyetini destekliyorsa ve Kullanıcı bu niyeti alırsa kullanıcıyı hemen oyun özelliğine yönlendirmeniz gerekir. seçmeniz gerekir. Kullanıcıya oyun oynamak isteyip istemediğini tekrar sormaktan kaçının. - Yerleşik intent parametrelerini işleme: Yerleşik intent parametrelerini kullandığınızdan emin olun parametre değerlerini kullanabilirsiniz. Kullanıcıya bu değerleri tekrar sormaktan kaçının.