iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
Software Development

Laravel 新手初見 API系列 第 26

Day26-介接 API(番外篇 I)NLP 自然語言處理之初見 Dialogflow ES

大家好~
今天內容都不會寫到程式喔~
市面上還有許多自然語言處理的服務,
不過今天先來簡單認識一下 Dialogflow ES 吧!

前言

假如今天我們想詢問天氣如何,
那麼這句話絕不會只有一種問法。
如果使用自然語言處理的服務,
就可以輕鬆在不同的問句內,
辨別 User 的意圖、取得我們需要的關鍵字。
下圖是 Dialogflow 辨別用戶意圖的流程:

藍字是意圖,
黃字與紅字是關鍵字。
一個 Agent 內會有多個 Intents 處理不同的意圖,
判斷流程如下圖:

架構簡介

Dialogflow 有兩種架構:

Interactions with an integration


Dialogflow 有支援多種 Integrations,
等等也會以 LINEBot 做範例練習。

Interactions with the API

可以使用 Dialogflow API 向自己建立的 Agent 傳送用戶的問句判斷意圖。
使用 Dialogflow API 時,
Dialogflow 會為這段對話建立一個 Session。

Sessions

  • 一個 Session 在 Dialogflow 只會存儲 20 分鐘。
  • 對話開始時會建立一個 Session,對話結束時,Session 也會停止。

其他關於 Sessions 的詳細內容可以看官方文件的這段。
這個架構的實作會在之後的篇章再做介紹~

Create new agent

語言有支援繁體中文,
GMT+8:00時區是以香港作為代表。

建立後會自動導向到 Intents 的畫面。

Intents

Intents

預設會有兩個 Intents,
分別是:

  • Default Fallback Intent
    • 當無法判斷語句屬於哪個 Intent 處理時,會用這 Intent 內設置好的 Text Response 進行回覆。
  • Default Welcome Intent
    • 處理用戶打招呼的 Intent。

Integrations

在左側選單列點擊 Integrations,
如果你左側選單列沒有這個選,
可能就是你選擇的地區沒支援喔~
左上角可以看到地區:

Text based 支援以下這些:

今天這篇是用 LINE 做範例演示喔~

輸入我們 LINEBot 的 Channel IDChannel SecretChannel Access Token

然後到 LINE developers 將 Webhook URL 貼上。

順便將 Auto-reply messages 關閉。

記得要將 LINEBot 的 Webhook 啟用喔~

在 LINE 上測試一下我們的 LINEBot。
不過目前沒有設置其他 Intent,
所以現在只能回應 User 的打招呼而已。

今天先這樣吧,
明天再為這個 Agent 添加 Intent 與 Entitie!
目前對 Dialogflow 還不是很熟悉,
若文章有任何問題,
還請大家不吝賜教!
大家明天見!

參考資料:


上一篇
Day25-介接 API(三)Google Calendar(III)OAuth 憑證建立與用 Google Calendar API 建立 Google Meet 會議
下一篇
Day27-介接 API(番外篇 II)Dialogflow ES 之 Intents 與 Entities
系列文
Laravel 新手初見 API30

尚未有邦友留言

立即登入留言