Dialogflow ile otomasyon ekleme

Dialogflow kullanıcı girişlerini işleyen, bilinen niyetlerle eşleyen ve uygun yanıtlar veren bir doğal dil anlama (NLU) aracıdır. Dialogflow'un iki sürümü vardır. Business Messages aracınızı Dialogflow ES ile entegre ederek, temsilcinizin gelişimini hızlandırmak için kolayca basit bir otomasyon oluşturabilirsiniz. Dialogflow CX ile entegre ederek daha karmaşık görüşmeler için gelişmiş otomasyon oluşturabilirsiniz.

Business Messages aracıları,

Bir Business Messages aracısını Dialogflow ES veya Dialogflow CX'in diğer özellikleriyle entegre etmek için her ürünün dokümanlarına bakın.

Bir kullanıcı, Dialogflow entegrasyonuna sahip bir temsilciye mesaj gönderdiğinde Business Messages, kullanıcı mesajını Dialogflow'a iletir ve Dialogflow'un mesajı, mesajdialogflowResponse nesnesine temsilciye gönderir. Temsilcileri, herhangi bir işlem yapmadan kullanıcıya Dialogflow'un yanıtını otomatik olarak gönderecek şekilde yapılandırabilirsiniz. Ayrıntılar için Otomatik yanıtlar bölümüne bakın.

Dialogflow entegrasyonu

Business Messages aracılığıyla Dialogflow tabanlı otomasyondan faydalanmadan önce Dialogflow entegrasyonunu etkinleştirmeniz gerekir.

Ön koşullar

Başlamak için

  • Business Messages aracısı
  • Kök dili İngilizce olan Global bölgesindeki bir Dialogflow aracısı (en)

Dialogflow aracınız yoksa bir temsilci oluşturun.

Dialogflow ES

Dialogflow ES entegrasyonunu etkinleştirebilmek için Dialogflow aracınızın proje kimliğine ihtiyacınız vardır. Proje kimliğini bulmak için

  1. Dialogflow Console'a gidin.
  2. Business Messages'a bağlamak istediğiniz Dialogflow temsilcisini seçin, ardından aracı adının yanındaki dişli simgesini tıklayın.
  3. Google Project bölümünde Proje Kimliği değerini not edin.

Dialogflow CX

Dialogflow CX entegrasyonunu etkinleştirebilmek için Dialogflow aracınızın proje kimliğine ve aracı kimliğine ihtiyacınız vardır. Bu kimlikleri bulmak için

  1. Dialogflow CX Console'a gidin.
  2. Dialogflow projenizi seçin.
  3. Temsilci seçicide, Dialogflow aracınızın yanındaki taşma menüsünü tıklayın.
  4. Adı kopyala'yı tıklayın. Temsilcinizin tam adı şu biçimde kopyalanır: projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID.
  5. Proje kimliği ve aracı kimliği değerlerini not edin.

Entegrasyonu etkinleştir

  1. Business Communications Developer Console'da Entegrasyonlar'a gidin.
  2. Dialogflow için Entegrasyonu etkinleştir'i tıklayın.
  3. Mevcut modeli bağla'yı tıklayın.
  4. Dialogflow sürümü için etkinleştirilecek sürümü seçin.
  5. Dialogflow aracınızın proje kimliğini girin.
  6. Dialogflow CX'i etkinleştirmek için Dialogflow temsilcinizin aracı kimliğini de girin.
  7. Business Messages'ın Dialogflow yanıtları ile kullanıcılara otomatik olarak yanıt vermesini istiyorsanız Otomatik yanıtı etkinleştir'i seçin.
  8. İleri'yi tıklayın.
  9. Hizmet hesabı e-postasını kopyalayın. Bu hesap, Business Messages ve Dialogflow aracılarınızı birbirine bağlar.
  10. Google Cloud Console'da Dialogflow projenizi seçin.
  11. IAM izinlerine gidin.
  12. Ekle'yi tıklayın ve Yeni ana hesaplar için hizmet hesabı e-posta adresini girin.
  13. Rol seç bölümünde, Dialogflow Console Aracı Düzenleyici'yi seçin.
  14. Başka bir rol ekle'yi tıklayıp Dialogflow API İstemcisi'ni seçin.
  15. Kaydet'i tıklayın.
  16. İş İletişimi Geliştirici Konsolu'nda İleri'yi tıklayın.
  17. Entegrasyonu başlat'ı tıklayın.

Business Messages ile Dialogflow'u bağlamak yaklaşık iki dakika sürer.

Entegrasyonu güncelleme

  1. Business Communications Developer Console'da Entegrasyonlar'a gidin.
  2. Dialogflow'un yanındaki dişli simgesini tıklayın.
  3. Business Messages'ın Dialogflow yanıtları ile kullanıcılara otomatik olarak yanıt vermesini isteyip istemediğinize bağlı olarak Otomatik yanıtı etkinleştir ayarını açın.

Dialogflow sürümleri arasında geçiş yapma

Business Messages aracısı aynı anda yalnızca bir Dialogflow entegrasyonunu destekleyebilir. Bir Dialogflow sürümünden diğerine geçmek için yeni entegrasyonu etkinleştirmeden önce mevcut entegrasyonu devre dışı bırakmanız gerekir.

Entegrasyonu devre dışı bırak

  1. Business Communications Developer Console'da Entegrasyonlar'a gidin.
  2. Dialogflow'un yanındaki dişli simgesini tıklayın.
  3. Entegrasyonu devre dışı bırak'ı tıklayın.
  4. Devre dışı bırak'ı tıklayın.

Mevcut bir Dialogflow entegrasyonunun devre dışı bırakılması yaklaşık bir dakika sürer.

Bu adımları uygulayarak yeni bir Dialogflow entegrasyonunu etkinleştirin.

Intent eşleşme

Bir Business Messages aracısı için Dialogflow entegrasyonunu etkinleştirdikten sonra, temsilciniz kod yazmak zorunda kalmadan kullanıcı sorularını anlamak ve yanıtlamak için Dialogflow projenizin yapılandırılmış amaçlarını kullanabilir. Hedefler hakkında daha fazla bilgi edinmek için Dialogflow ES ve Dialogflow CX dokümanlarına bakın.

Otomasyon aracılığıyla desteklemek istediğiniz her görüşme seçeneği için Dialogflow niyetlerinizi yapılandırın. Business Messages aracıları, kullanıcı mesajlarını anlamak için Dialogflow'a güvenir.

Business Messages, Dialogflow API'lerini çağırırken kullanıcı mesajı yükünü amaçlarınıza ve sipariş karşılama webhook'unuza iletir. Kullanıcı mesajı bir niyetle eşleştiğinde QueryParametersbu yüke QueryParameters içindeki business_messages_payload alanında Struct biçiminde erişebilirsiniz.

Yük, DialogflowResponse dışındaki kullanıcı mesajındaki tüm alanları içerir.

Dialogflow CX için Business Messages, amaçlarınıza channel değerine sahip channel adlı bir oturum parametresi de iletir. Bu parametreyi aracınızda şu biçimle referans verebilirsiniz: $session.params.channel.

Bu parametre, aynı Dialogflow aracısında birden fazla kanalı desteklemek amacıyla Dialogflow karşılamalarınıza koşullar eklemek için kullanılabilir.

Sorgu parametreleri hakkında daha fazla bilgi için Dialogflow ES ve Dialogflow CX referanslarına bakın.

Ön koşullar

Dialogflow'da NLU modelleri oluştururken bir amaç için farklı yanıt türleri yapılandırabilirsiniz. Business Messages, aşağıdakileri içerebilecek Varsayılan yanıtı destekler:

  • Metin
  • Özel yük
  • Canlı temsilci aktarımı (yalnızca Dialogflow CX)

Özel yük, geçerli bir Business Messages JSON mesajı yanıt nesnesiyle eşleşmelidir. Bir mesaj için özel yük yanıtları yapılandırırken Business Messages aşağıdaki alanları yoksayar:

  • name
  • messageId
  • representative

Aşağıdaki örnek yanıtlara bakın.

Öneri içeren metin

{
  "text": "Hello World!",
  "fallback": "Hello World!\n\nReply with \"Hello\" or \"Hi!\"",
  "suggestions": [
    {
      "reply": {
        "text": "Hello",
        "postbackData": "hello-formal"
      }
    },
    {
      "reply": {
        "text": "Hi!",
        "postbackData": "hello-informal"
      }
    }
  ]
}

Zengin kart

{
  "fallback": "Hello, world!\nSent with Business Messages\n\nReply with \"Suggestion #1\" or \"Suggestion #2\"",
  "richCard": {
    "standaloneCard": {
      "cardContent": {
        "title": "Hello, world!",
        "description": "Sent with Business Messages.",
        "media": {
          "height": "TALL",
          "contentInfo":{
            "altText": "Google logo",
            "fileUrl": "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png",
            "forceRefresh": "false"
          }
        },
        "suggestions": [
          {
            "reply": {
              "text": "Suggestion #1",
              "postbackData": "suggestion_1"
            }
          },
          {
            "reply": {
              "text": "Suggestion #2",
              "postbackData": "suggestion_2"
            }
          }
        ]
      }
    }
  }
}
{
  "fallback": "Card #1\nThe description for card #1\n\nCard #2\nThe description for card #2\n\nReply with \"Card #1\" or \"Card #2\"",
  "richCard": {
    "carouselCard": {
      "cardWidth": "MEDIUM",
      "cardContents": [
        {
          "title": "Card #1",
          "description": "The description for card #1",
          "suggestions": [
            {
              "reply": {
                "text": "Card #1",
                "postbackData": "card_1"
              }
            }
          ],
          "media": {
            "height": "MEDIUM",
            "contentInfo": {
              "fileUrl": "https://my.files/cute-dog.jpg",
              "forceRefresh": false
            }
          }
        },
        {
          "title": "Card #2",
          "description": "The description for card #2",
          "suggestions": [
            {
              "reply": {
                "text": "Card #2",
                "postbackData": "card_2"
              }
            }
          ],
          "media": {
            "height": "MEDIUM",
            "contentInfo": {
              "fileUrl": "https://my.files/elephant.jpg",
              "forceRefresh": false
            }
          }
        }
      ]
    }
  }
}

Canlı müşteri temsilcisinin deviri

{
  "metadata": {}
}

SSS bot'ları

Bir Business Messages aracısı için Dialogflow ES entegrasyonunu etkinleştirdikten sonra SSS bot'u oluşturabilirsiniz. Desteklenen bir bilgi dokümanı olarak soruları ve yanıtlarını sağladığınızda Business Messages ve Dialogflow, kod yazmak zorunda kalmadan kullanıcı sorularını anlamak ve yanıtlamak için gerekli bir altyapı oluşturur.

SSS bot'unu çalışırken görmek için Business Messages SSS Bot ile sohbet edin.

Ön koşullar

SSS bot'u oluşturmadan önce soru ve yanıtlarınızın bir bilgi dokümanı (maks. 50 MB) olarak mevcut olması gerekir: Herkese açık bir HTML dosyası veya bir CSV dosyasıdır.

Genellikle bilgi belgeleri

  • Yanıtlarda, Zengin metin'de belirtildiği gibi sınırlı Markdown içerebilir.
  • Maksimum boyut 50 MB'tır.
  • 2.000 soru/yanıt çiftini aşmamalıdır.
  • Farklı cevaplar içeren yinelenen soruları desteklemeyin.

HTML dosyaları için,

  • Herkese açık URL'lerdeki dosyaların arama dizininde bulunması için, Google arama dizini tarafından taranmış olması gerekir. Bunu Google Search Console ile kontrol edebilirsiniz. Dizine ekleme aracının içeriğinizi güncel tutmadığını unutmayın. Kaynak içeriği değiştiğinde dokümanınızı açık bir şekilde güncellemeniz gerekir.
  • Dialogflow, yanıt oluştururken içerikten HTML etiketlerini kaldırır. Bu nedenle, HTML etiketlerinden kaçınmak ve mümkün olduğunda düz metin kullanmak en iyisidir.
  • Tek bir soru/yanıt çifti olan dosyalar desteklenmez.

CSV dosyalarında,

  • Dosyaların ilk sütunda soruları, ikinci sütunda ise cevapsız, başlıksız olmalıdır.
  • Dosyalarda ayırıcı olarak virgül kullanılmalıdır.

SSS bot'u oluşturma

  1. Business Communications Developer Console'da Entegrasyonlar'a gidin.
  2. Bilgi tabanı (SSS) bölümünde Bilgi tabanı oluştur'u tıklayın.
  3. Bilgi tabanı için bir ad girin ve İleri'yi tıklayın.
  4. Bir MIME türü seçin.
  5. Bilgi belgesi ekleyin.
    • MIME türü için HTML'yi seçtiyseniz SSS sayfanızın herkes tarafından erişilebilen URL'sini URL alanına girin.
    • MIME türü için CSV'yi seçerseniz Yükle'yi tıklayın ve CSV dosyanızı seçin.
  6. Ekle ve bitir'i tıklayın.

SSS bot'una ek doküman eklemek için Doküman ekle düğmesini tıklayın.

Bu adımları uyguladığınızda Business Messages, aracınıza gönderdiği kullanıcı mesajlarına dialogflowResponse nesnesini ekler. Otomatik yanıt özelliğini etkinleştirirseniz Business Messages kullanıcıya, kullanıcının mesajıyla karşılaştırıldığında en yüksek matchConfidence puanına sahip soru/yanıt çiftiyle yanıt verir.

Otomatik yanıtlar

Dialogflow entegrasyonu sırasında otomatik yanıt özelliğini etkinleştirirseniz Business Messages, Dialogflow aracılığıyla kullanıcıya otomatik olarak yanıt verir. İşletme Mesaj aracınız en yüksek güven düzeyinde eşleşme ile yanıt verir. Dialogflow ES entegrasyonuyla, hem SSS yanıtı hem de özel amaç için eşleşme varsa Business Messages en yüksek güven düzeyine sahip eşleşmeyle yanıt verir.

Business Messages, otomatik olarak yanıtlanan tüm mesajları BOT temsilcilerinden geliyor olarak işaretler. Temsilciniz canlı aracıları destekliyorsa Business Messages, REPRESENTATIVE_JOINEDetkinliklerden sonra otomatik yanıtları askıya alır ve REPRESENTATIVE_LEFT etkinlikten sonra otomatik yanıtları devam ettirir. Bot'tan canlı temsilciye aktarma bölümüne göz atın.

SSS yanıtıyla otomatik yanıt verme

Dialogflow ES entegrasyonunda, SSS yanıtları en yüksek güvenilirlik düzeyine sahip olduğunda Business Messages, cevabı kısa mesajla eşler. İlgili ancak farklı bir yanıt varsa mesajda "Başka bir yanıt görüntüle" önerisi görüntülenir. Aksi takdirde, mesaj bir soru içerir ve önerilen mesaj, kullanıcının kullanıcı isteğini karşılayıp karşılamadığını sorar.

Amaç yanıtıyla otomatik yanıt ver

Amaç yanıtları, aşağıdaki yanıtlardan bir veya daha fazlasını içerebilir.

Amaç yanıtı en yüksek güven düzeyinde eşleşmeye sahipse aşağıdakiler uygulanır.

  • Yanıtın en az bir Metin değeri varsa Business Messages bu değeri kısa mesajla eşleştirir.
  • Yanıtın geçerli bir Business Messages JSON nesne yapısına sahip en az bir Özel yükü varsa Business Messages, sağlanan JSON nesnesini kullanarak bir mesaj oluşturur.
  • Yanıtta en az bir Canlı müşteri temsilcisi aktarımı yanıtı varsa Canlı temsilci isteğiyle otomatik olarak yanıt verme bölümünü inceleyin.

Dialogflow tek bir intent eşleştirmesinde birden fazla yanıt içerebileceği için Business Messages her Metni, Özel yükü veya Canlı temsilciyi aktarma yanıtını ayrı bir mesaj olarak gönderir. Amaç eşleşmesinde birden fazla mesaj varsa ancak bazıları hatalıysa Business Messages geçerli mesajları yalnızca otomatik yanıt olarak gönderir.

Canlı olarak temsilci isteğiyle otomatik yanıt verme

Dialogflow CX Canlı temsilci devir yanıtını destekler. Bu, görüşmenin bir gerçek kişi tarafından temsil edilmesi gerektiği anlamına gelir ve aktarım prosedürünüz için özel meta veriler iletmenize olanak tanır. Amaç yanıtı en yüksek güven düzeyinde eşleşmeye sahipse ve Canlı aracı devri içeriyorsa Business Messages, webhook'unuza canlı temsilci tarafından istenen bir etkinlik gönderir. Bu etkinliği yönetmek için Bot'tan Canlı Müşteri Temsilcisine Aktarma bölümüne göz atın.

Yedek mesajla otomatik yanıt ver

Dialogflow yüksek güven düzeyine sahip bir eşleşme elde etmezse Business Messages yedek bir yanıt gönderir. Yedekler Dialogflow ES ve Dialogflow CX'te farklı şekilde işlenir.

Dialogflow ES

SSS bot'ları için, bir SSS yanıtıyla eşleşmezse Business Messages, cevap bulamadığına dair yedek mesaj gönderir.

Yapılandırılmış niyetler için intent yanıtıyla eşleşmezse Business Messages, yedek intent yanıtı gönderir. Dialogflow tarafından sağlanan yedek metni kullanabilir veya yedeği ek metin ve özel yüklerle yapılandırabilirsiniz.

Webhook'unuzun alabileceği yedek niyet yanıtı örneğini burada bulabilirsiniz:

{
  "intentResponses": [
    {
      "intentName": "projects/df-integration/agent/intents/12345",
      "intentDisplayName": "Default Fallback Intent",
      "intentDetectionConfidence": "1.0",
      "fulfillmentMessages": [
        {
          "text": "One more time?"
        }
      ]
    }
  ]
}

Dialogflow, intent_name ve intent_display_name alanlarını önceden doldurur.

Dialogflow CX

Dialogflow CX, yedek intent yanıtlarını yerleşik etkinlikler olarak işler. Amaç yanıtıyla eşleşmezse Business Messages, Dialogflow'daki "Eşleşmeyen varsayılan" etkinliğinden yedek mesaj gönderir. Dialogflow tarafından sağlanan yedek metni kullanabilir veya yedeki ek metin, özel yük ve canlı aracı aktarma seçenekleriyle yapılandırabilirsiniz.

Webhook'unuzun alabileceği bir yedek intent yanıtı örneğini burada görebilirsiniz:

{
  "intentResponses": [
    {
      "intentName": "sys.no-match-default",
      "intentDisplayName": "Default Fallback Intent",
      "intentDetectionConfidence": "0.3",
      "fulfillmentMessages": [
        {
          "text": "I missed that, say that again?"
        }
      ]
    }
  ]
}

Business Messages, intent_name ve intent_display_name kodlarını sabit kodlar.

Dialogflow'a özel alanlar

Dialogflow entegrasyonunu etkinleştirdikten sonra, temsilcinin aldığı kullanıcı mesajları dialogflowResponse nesnesini içerir. Business Messages'ın sizin adınıza mesaja otomatik yanıt verip vermediğine bakılmaksızın tüm kullanıcı mesajları için webhook'unuz yük alır. Otomatik yanıt olup olmadığını kontrol etmek için autoResponded alanının değerini inceleyin ve kullanıcıya yanıt vermeniz gerekip gerekmediğine karar verin.

Dialogflow ES

...
"dialogflowResponse": {
  "queryText": "TEXT",
  "intentResponse": {
    "intentName": "INTENT_ID",
    "intentDisplayName": "INTENT_NAME",
    "intentDetectionConfidence": "CONFIDENCE_NUMERIC",
    "fulfillmentMessages": [{
      "text": "FULFILLMENT_TEXT",
      "jsonPayload": "JSON",
      "error": "ERROR_STATUS",
    }],
  "faqResponse": {
    "userQuestion": "USER_QUESTION",
    "answers": [{
      "faqQuestion": "FAQ_QUESTION",
      "faqAnswer": "FAQ_ANSWER",
      "matchConfidenceLevel": "CONFIDENCE_LEVEL",
      "matchConfidence": "CONFIDENCE_NUMERIC",
    }],
  },
  "autoResponded": "BOOLEAN",
  "autoRespondedMessages": [{
    "message": "MESSAGE_JSON",
    "responseSource": "SOURCE",
  }],
},
...
Alan Açıklama
queryText Orijinal konuşma sorgusu metni. Dialogflow modeli için otomatik yazım düzeltme etkinleştirildiyse queryText, düzeltilen kullanıcı girişini içerir.
intentName Eşleşen niyetin benzersiz tanımlayıcısı.
intentDisplayName Eşleşen niyetin adı.
intentDetectionConfidence queryText ile intentName arasındaki eşleşmedeki sayısal güven puanı.
text Kısa yanıt.
jsonPayload Özel yük yanıtı. Bu dize, Dialogflow'da tanımlanan özel yük ile eşleşir. Yükün geçerli bir Business Messages JSON nesne yapısı yoksa error sorunu açıklar.
error Amaç karşılama mesajıyla ilgili hatanın açıklaması.
userQuestion Dialogflow tarafından ayrıştırılan şekilde, kullanıcının sorduğu soru.
faqQuestion Dialogflow'dan kullanıcının sorusuyla eşleşen bir soru.
faqAnswer Dialogflow'un, kullanıcının sorusuyla eşleşen yanıtı.
matchConfidenceLevel userQuestion ile faqQuestion arasındaki eşleşmenin güven düzeyi.
matchConfidence userQuestion ile faqQuestion arasındaki eşleşmedeki sayısal güven puanı.
autoResponded Business Messages'ın kullanıcıya Dialogflow'dan yanıt vererek otomatik bir yanıt verip vermediği.
message Otomatik yanıtın yükü.
responseSource Otomatik yanıtın kaynağı. Bkz. ResponseSource.

Dialogflow CX

...
"dialogflowResponse": {
  "queryText": "TEXT",
  "intentResponse": {
    "intentName": "INTENT_ID",
    "intentDisplayName": "INTENT_NAME",
    "intentDetectionConfidence": "CONFIDENCE_NUMERIC",
    "fulfillmentMessages": [{
      "text": "FULFILLMENT_TEXT",
      "jsonPayload": "JSON",
      "error": "ERROR_STATUS",
      "liveAgentHandoff": {
        "metadata": {}
      }
    }],
  "autoResponded": "BOOLEAN",
  "autoRespondedMessages": [{
    "message": "MESSAGE_JSON",
    "responseSource": "SOURCE",
  }],
},
...
Alan Açıklama
queryText Orijinal konuşma sorgusu metni. Dialogflow modeli için otomatik yazım düzeltme etkinleştirildiyse queryText, düzeltilen kullanıcı girişini içerir.
intentName Eşleşen niyetin benzersiz tanımlayıcısı.
intentDisplayName Eşleşen niyetin adı.
intentDetectionConfidence queryText ile intentName arasındaki eşleşmedeki sayısal güven puanı.
text Kısa yanıt.
jsonPayload Özel yük yanıtı. Bu dize, Dialogflow'da tanımlanan özel yük ile eşleşir. Yükün geçerli bir Business Messages JSON nesne yapısı yoksa error sorunu açıklar.
error Amaç karşılama mesajıyla ilgili hatanın açıklaması.
liveAgentHandoff Canlı olarak temsilciyi devretme prosedürünüz için özel meta veriler.
autoResponded Business Messages'ın kullanıcıya Dialogflow'dan yanıt vererek otomatik bir yanıt verip vermediği.
message Otomatik yanıtın yükü.
responseSource Otomatik yanıtın kaynağı. Bkz. ResponseSource.