an project to intergrade OpenAI ChatGPT API to Dialogflow ES
- 前往 OpenAI的API keys頁面並登入帳號
- 點擊
Create new secret key
請記住這組金鑰,會在稍後的流程中使用到
- 解壓縮本專案的
function-OpenAI-GPT.zip
- 打開
.env
,你會看到以下的內容
OPENAI_API_KEY=
- 把方才申請到的參數填入,如下所示
OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- 儲存更改後的檔案,並以ZIP形式包裝。重新命名為
function.zip
- 建立 Google Cloud Platform專案
- 建立專案 e.g.
OpenAi-GPT-Linebot
- 於該專案內,前往Cloud Function頁面
- 建立新的Cloud Function
- 點擊『創建函式』
- 基本 > 環境 > 選擇『
第1代
』 - 觸發條件 > 驗證 > 選擇「
允許未經驗證的叫用
」 - 選擇『下一步』
進入點
更改為chatGPT
原始碼
更改為上傳ZIP檔
,並上傳剛剛建立的function.zip
- 等待部署完成後,點擊畫面中的「觸發條件」。複製在畫面中的「
觸發網址
」 e.g.https://us-central1-<PROJECT-ID>.cloudfunctions.net/chatGPT
-
登入或建立帳號
-
點選上方橫幅的「Products」
-
選擇頁面中的「Messaging API」,按新頁面中的『Start Now』。
依照網頁提示填入以下資訊:- Provider Name (如已建立可跳過該步驟直接選取)
- Channel name
- Channel description
- Category
- Subcategory
- Email address
閱讀 LINE Official Account Terms of Use 以及 LINE Official Account API Terms of Use,並同意LINE官方帳號條款後。 點擊「
Create
」建立你的官方帳號 -
至此,建立
LINE官方賬號
作業已完成!
- 前往 DialogFlow ES頁面,點擊畫面中的「
CREATE AGENT
」建立新的聊天機器人專案, - 選擇先前在Google Cloud Platform建立的專案 e.g.
OpenAi-GPT-Linebot
DEFAULT LANGUAGE
選擇Chinese (Traditional) — zh-tw
- 專案建立完成後,依序點擊: 左方選單「齒輪」 > 「Export and Import」 > 「IMPORT FROM ZIP」
- 選擇要上傳的檔案
dialogflow-ES-agent-OpenAi-GPT.zip
,並點擊「IMPORT」即可 - 串接 Fulfillment
- 點選畫面左側的「Fulfillment」
Webhook
右側的開關打開- 在
URL*
貼上在 Cloud Function頁面所得到的網址 e.g.https://us-central1-<PROJECT-ID>.cloudfunctions.net/chatGPT
- 按下下方的
DONE
即可
- 一樣在 DialogFlow ES頁面進行操作
- 點選畫面左側的「Integrations」
- 滾輪往下尋找「LINE」,並點擊展開浮動面板(以下稱
LINE串接頁面面板
) - 在LINE開發者網頁方才建立的官方帳號頁面中,尋找以下參數。並複製到DialogFlow ES之中的
LINE串接頁面面板
進行串接:Channel ID
: 位於 Basic settings > Basic information > Channel IDChannel Secret
: 位於 Basic settings > Basic information > Channel secretChannel Access Token
: 位於 Messaging API > Channel access token > Channel access token (long-lived) (需點擊右方黑色按鈕『Issue』生成一組)
- 點擊面板下方的「START」使 DialogFlow 開始接收來自 LINE 的訊息並給予回應
- 複製
LINE串接頁面面板
之中提供的Webhook URL
,接著切換頁面到LINE開發者網頁方才建立的官方帳號頁面中的指定位置。
- Messaging API > Webhook settings > Webhook URL,黏貼剛才得到的
Webhook URL
- Messaging API > Webhook settings > Webhook URL,開啟按鈕使它呈現綠色
- 前往LINE官方帳號設定,調整官方帳號的回應方式
- 傳送門位置:Basic settings > Basic information > 下方的
You can change your app name and icon in LINE Official Account Manager.
的 LINE Official Account Manager按鈕 - 進入頁面後,點擊左方面板的「回應設定」
- Webhook:使按鈕開啟(呈現綠色)
- 自動回應訊息:使按鈕關閉(呈現灰色)
- 傳送門位置:Basic settings > Basic information > 下方的
使用手機掃描 Messaging API > QR code 的QR圖碼,現在即可進行對話啦!
Q: 為何GPT CHAT給我的回應都很短?
A: 由於 Dialogflow ES 在Fulfillment回應的時間有5秒的上限,導致我們必須針對此情形作妥協。讓OPENAI GPT在遇到句號「。
」時就會強制中斷生成回應並直接回傳。避免回應等待時間超過5秒而掛掉的問題。
Q: 有辦法改善這個問題嗎?
A: 可以用 DialogFlow CX (須額外付費) 客製化 Fulfillment的回應時間上限到30秒,來解決這個問題。
Q: 說好的圖文並茂版在哪裡?
A: 這部分正在製作中,還請見諒 ><