5 min read

ChatGPT 整合 LINEBOT 心得分享

這週花了點時間把 ChatGPT 和 LINE 的聊天機器人進行串接,想做一個類似動畫技能大賢者的 AI,回應自己日常生活遇到的問題,嘗試過後有很多目前遇到的瓶頸,整理下來分享給正在這條路上摸索,對 AI 有期待的人

OPEN.AI 和 ChatGPT?

Chat GPT 是由 Open.ai 組織公布的最新應用,一個全能的對話式 AI 聊天服務,目前處於研究階段可免費使用,幾天下來看到工程師串接的版本主要有兩種

  1. 串接 ChatGPT API
  2. 串接 Open.ai Conversation API

因為兩種 API 的 AI 模型不同,回應的結果落差不小,自己實際使用的經驗,ChatGPT 的模型效果較佳,也是網路上大家分享聊天對話主要的來源

如果要串接 ChatGPT API 目前只有網路上逆向工程版本的非官方 API 可以使用,我不太喜歡串接官方沒有提供 API 的服務,因為逆向工程的使用方式不太適合做成公開應用服務,也會隨著官方修改或限制被影響,如果想使用 ChatGPT 的 API 只能等官方釋出,所以選擇了第二條路,使用官方 API

Open.ai API 介紹

閱讀完官方文件,可以將這個神奇的 AI 視為 Auto-Completion 的應用服務,也就是

AI 會依據你輸入的內容,盡可能將這些文字拼湊成一個完整的段落

其中不同的 AI 模型,有各自擅長的項目,像是有的擅長做分類、有的擅長處理分析程式碼,其中較接近 ChatGPT 的模型是 GPT3 的 text-davinci-003

使用情境

既然 AI 的功能是 Auto Completion,所以使用情境非常多元,也是目前網路上可以看到各式各樣的對話情境的原因,關鍵點就是在

提供 AI 充份的範例說明

官方提供聊天的情境 (點擊展開)

須將以下內容送至官方 API

The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.

Human: Hello, who are you?

AI: I am an AI created by OpenAI. How can I help you today?

Human: (YOUR INPUT)

AI 就會順著我們提供給他的邏輯,推測接下來應該回應 AI: (針對 Human 的內容回應)

這樣的使用方式千變萬化,可以自己設計範例,像是模擬面試、協助取名、創作詩詞、摘要一段文字,可以完全跳脫聊天對話的模式,只要能夠提供足夠的範例資訊, AI 就能以"自動填寫"的角度協助完成文字段落

使用限制

除了那些法律上會提到的限制,最主要的限制就是這個自動填寫的 AI,目前最大的段落限制約為 4000 個 token (送出的字符+回應的字符),token 可以視為字符的單位,必須使用官方工具做估計

如果想要達成類似 ChatGPT 的聊天應用為例 (點擊展開)

The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.

Human: Hello, who are you?

AI: I am an AI created by OpenAI. How can I help you today?

Human: 請問軟體工程師的工作內容有哪些?

AI: 軟體工程師的工作包括開發、設計、實施和維護軟體;分析和修改現有軟體以達到客戶的要求;參與軟體開發項目中的所有階段;參與專案管理或軟體開發流程;測試和修復軟體錯誤;使用特定的編程語言在不同的機器上設計和編寫軟體;收集和處理客戶需求並根據客戶的需求設計軟體;評估新軟體,以支持軟體開發和改進。

Human: 

以上內容約 428 個 token,這個 token 數量會反映在下一點說明的費用上

使用費用

以 text-davinci-003 模型來看,每 1k token/ 0.02 USD,一開始註冊會給 18 美金的免費額度,如果想要像 ChatGPT 能夠根據對話的上下文記憶、推斷前後文給予回應,費用會滿可觀的,等於每一次送出的 token 不斷疊加

如果每次提問都不相關,只要重複送出約 90 token 的內容,剩下就看回應內容的字數

Example1:
第一次提問 92 token + 回覆 346 = 428 token
第二次提問 90 token + 回覆 400 = 490 token
花費總 token = 428+490 = 918 token = 0.018 USD

但如果要前後文疊加得送出

Example2:
第一次提問 92 token + 回覆 346 = 428 token
第二次提問 428+90 token + 回覆 400 = 918 token
第三次提問 918+80 token + 回覆 400 = 1398 token
花費總 token = 428+918+1398 = 2744 token = 0.05 USD

直接是倍數成長,所以如果要限制使用的費用,大概得斟酌一些參數調整,像是回應、前後文段落的長度限制

以上就是踩坑了約一週的心得,也歡迎一起討論分享其他使用經驗


相關連結: