ChatGPT 教學 - Line Bot串接Open AI ChatGPT
⬆看起來chatGPT給了一段給身高預測體重的範例,看起來有模有樣
這個那麼厲害的AI我們都知道能夠問他千奇百怪的問題,那要怎麼為你所用呢?我們接著看下去...
⬆點擊進入後右上角 頭像點進後會有如上圖樣式,點擊View API keys即可
⬆點擊Create new Security key,這個Key是你之後呼叫API使用要確認你身份的一把Key
看文件介紹怎麼串,再照文件上說明去串
不過若是對curl或api請求稍微有經驗了,可以直接找到官方提供的curl範例,去改成你熟悉的語言請求
curl https://api.openai.com/v1/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $YOUR_API_KEY" \
-d '{"model": "text-davinci-003", "prompt": "Say this is a test", "temperature": 0, "max_tokens": 7}'
⬆ 快速介紹一下上面這段curl的含義
1. 我們要發送request的url是https://api.openai.com/v1/completions
2. 如果要拆成更細可以看成前段https://api.openai.com/ domain name
跟後段API接口 v1/completions
3. 中間-H的部分是Header
Content-Type: application/json主要用途為我們request body的格式要為json
Authorization: Bearer $YOUR_API_KEY 這個則是你要使用OpenAI提供的API你必需要輸入一個驗證API key
也就是我們前面產生的key
4. -d '{....}' 最後面-d是要傳給接口的json格式,{}框框內即要傳的json內容
5. 簡單json key解釋:
model :為chatGPT的模型,官方有提供不同種的模型供串接者使用,
每個都有最大token,或是收費,甚至可靠性不一,可以自己根據文件來測試:
GPT-3 model文件
prompt:就是你要問的問題,跟前面你直接輸入到chatGPT網頁版的聊天室一樣,
只是現在變成你自己用程式去發請求
max_tokens: 則是你想要這次請求最多可以幾個tokens限制,
因為官方應該是用tokens數字來收費,
所以可能可以透過max_tokens來限制,
每次的請求,可能是讓有長期規劃使用該api的人可以控制流量吧?
(這邊的tokens只是官方用來計算流量計費的一種方式,並非常見用token來驗證的那種token)
可以開始使用你熟悉的語言來開發API了
串接 OpenAI API 的 Kotlin 程式
⬆ 這邊我習慣把各種有可能會覆用的code拉出來寫,ChatGptAPI.kt、ChatGptCompletionRequest.kt、ChatGptCompletionResult.kt...等等
中間因為沒有要寫太大的專案,就懶得自己寫thread操作了
先用最簡單用的retrofit內建Callback
裡面已經幫忙處理UI Thread跟sub Thread的切換了
⬆ 這邊主要是用Retrofit把串接接口分離出來
⬆ 這邊就是建立一個http連線的類
現在你只需要再在你呼叫ChatGpt API成功的地方
去呼叫LineBot聊天室的API就能把返回的消息傳到你實際在使用的Line聊天室內了
點此連結去申請或直接用line帳號登入:Line Business ID
註冊完後,進入此畫面,點擊Create創建新的聊天室:
創建後,來到這個頁面,點擊Create a Messaging API Channel 來開通使用line bot的訊息API:
依照下圖,輸入資料
最後輸入完後
記得在條約打勾後創建
這邊兩組key是呼叫linebot相關接口需要的key
可以開始使用你熟悉的語言來開發API了
串接 LineBot API 的 Kotlin 程式
⬆ 這裡跟前面ChatGPT串接的過程一樣,也是使用Retrofit來寫
⬆ 拉出來的Line Messaging接口
可以用一些雲端Server或在自己本地IP架設Server把寫好的代碼放上去
即可開始你的LineBot串接ChatGpt服務
後面則是反覆測試你上線的功能是否有bug、後續維護都是可以注意的地方
剩下就自行去摸索吧,快來試試看!
最終成果
這裡就是回到前面去過的Line Deverloper
進到Messaging API這個頁面
把你開放的接口輸入進來就行了
⬆更新你的url到Line後台
⬆輸入完後,可以確認你的Server是不是通的
⬆點Verify後的結果顯示,若是錯誤則會反饋error code
⬆開一個/line_callback接口
因為這個使用門檻低,很適合新手
只需要照著官網文件
幾乎無痛就幫你把本地port轉換成一個對外的Url
相當方便
⬆登入後,看到ngrok的dashboard,這時只需要照上方步驟
1.下載zip安裝
2.在commend line (Linux/mac) / dos(windows) 中複製輸入上方指令
3.最後選一個port轉成對外port即可