Yerleşik amaçlar (Dialogflow)

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"
ziyaret edin.

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:

  1. Dialogflow konsolunu açın, aracınızı seçin, ardından Niyetler ekranı.
  2. 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.

    Şekil 1. Dialogflow konsoluna Dialogflow etkinliği ekleme.
    'nı inceleyin.
  3. Etkinlikler alanına, aracısı (örneğin, actions_intent_PLAY_GAME).

    Şekil 2. Dialogflow konsolunda aracınıza yerleşik bir intent ekleme.
    'nı inceleyin.
  4. 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:

  1. İşlem tanımınızdaki ad alanında yerleşik niyeti belirtin.
  2. İş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 parametresi schema.org/Place parametresini içerir değerini belirtin.
  • temporalCoverage parametresi schema.org/Duration parametresini içerir değerinin çağrının zamanına göre yarının tarihi için değeri.
  • attributes ve timeIndicator 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:

  1. Test İşleminiz etkin durumdayken Actions simülatörünü açın veya cihazınızdaki Asistan'ı seçin.
  2. Bu yerleşik amaçla ilişkili bir sorgu söyleyin veya yazın. Örneğin, "Oyun oynamak istiyorum."
  3. Görüntülenen uygulama seçimi iletişim kutusunda İşleminizi bulun.
  4. Uygulamanıza intent göndermek için uygulamanızı seçin.
Şekil 3.
Yerleşik bir amaç ifadesinden kaynaklanan işlem seçimi iletişim kutusu.
Şekil 4. Yerleşik amaca bağlı bir işlemi çağırma.

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.