現況說明:
在今天(2023/03/02)之前,網路上有很多宣稱教你串接ChatGPT API的文章,但其實那些都是假的,因為在今天之前,openAI並沒有開放ChatGPT API,那些串接教學實際上串到的是GPT3。
看教學內容所串接的模型名稱就能知道了,通常指定的model名稱會是"text-davinci-003",這便是GPT3提供的語言模型之一,雖然也很強大,但它版本比ChatGPT舊一點,並且也沒有對聊天優化,它的專長是文章生成(Text completion),也就是它更擅長的是文字接龍,依據你輸入的前文再自動往下接。
而早前有出現一名高手以特殊方式反組譯,解出了用特殊方法串接ChatGPT API的方式,參考下方作者網址:
但這方式的缺點之一是不穩定,可能隨時被官方封殺,缺點之二,它並不是正式的API,對於開發者來說自由度不夠,因為它接上的是網頁版的那個只能單純對話並且一堆嚴格規矩的道德魔人版ChatGPT。
日前OpenAI有發出消息說將釋出ChatGPT的API,並提供登記表格,登記後進入審核與排隊流程,我當時是有去登記的,原本還想說到底要等多久,想不到今天就直接全面開放了。
簡易教學-通用流程:
長期有關注相關事項的碼農們應該不需要我再講這段,不過我還是不厭其煩的講一下前置步驟。
要串接OpenAI API的第一步當然是要註冊一個帳號,登入
官網後直接點開在網頁上方的帳號圖標,點選View API keys。
跳轉至API頁面後,點擊Create new secret key,接著它就會跳出一組key值,務必好好留存這組key,因為它只會顯示一次。萬一遺失了就只能再申請一組。
簡易教學--Python程式實作:
如果你是第一次串接OpenAI API,那你首先要建置好python環境之外,還要裝上OpenAI套件,在dos視窗輸入下列指令即可完成套件安裝:
pip install openai
如果你原本就有在使用這套功能,那也要記得更新一下openAI套件,因為ChatGPT API是今天才發佈並更新的,更新指令碼如下:
pip install --upgrade openai
接著便是python指令碼實做,我原則上是參考官方格式再做一點小修改,當然實際要怎麼用就各憑創意了。
我主要只是把官方的單次執行版本改成可以持續輸入對話的型式,但如果要更像網頁版的聊天機器人則需要再做更多改造。
import os
import openai
openai.api_key = f'此處貼上你自己的API KEY'
while True:
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "系統訊息,目前無用"},
{"role": "assistant", "content": "此處填入機器人訊息"},
{"role": "user", "content": input("You: ")}
]
)
print(completion.choices[0].message.content)
API提供了三個自定角色,system目前作用不大,assistant代表機器人回覆,也就是說你使用API之後不只能扮演user角色,還能直接控制機器人端的回話,assistant可以類比為網頁版中自動回話的那個機器人。而user可以類比成就是網頁版中在電腦前打字的我們。
介接官方API跟直接使用網頁版的差別在於,API提供了更多的使用彈性,可以套用在各種客製化的程式中,這個大家都知道,但我認為更重要的是,API裡的ChatGPT的回話自由度非常足夠,它還是早期那個自由奔放的聊天機器人,而不是目前網頁版本的那個什麼都不能聊又敏感又嚴格的道德魔人,就算只是自己接來亂玩都很有趣。