【技術分享】2023/03/01 ChatGPT API可以用啦!快速Setup你的ChatGPTAPI

倢愷 Oscar
7 min readMar 1, 2023

--

在過去幾個月大家應該都被ChatGPT洗版,但是openAI當初只有開放GPT-3相關的模型的API,終於就在2023/03/01這天,開放了ChatGPT的API,下面馬上幫你setup

本篇內容
1. 設定openAI API金鑰
2. GPT-3 API使用
3. ChatGPT API使用

一、設定openAI帳號

這個內容其實網絡上已經有很多教學了,所以我就快速教學。

要創立openAI的API金鑰,要先到openAI的API Document,登入後點選右上角的個人帳號選單(下圖),選擇View API keys。

openAI 個人帳號選單

進入View API keys頁面後點選"Create new secret Key",這個Key必須要保存並且保密好,因為任何人只要有你的Key都可以使用你的額度。

創立API Keys

當你做完這步,你就設定好openAI的金鑰囉!

二、使用GPT-3模型

相關內容網路上也已經很多資訊,目前使用GPT-3的模型主要就是使用openAI的text completion模組,你如果給的是問題,模型就會給出回答,如果給的是一段話,模型會自動往後生程。

不過基本上如果用python要使用,主流就是兩個方法,1. 使用request模組來串接API,2. 直接使用openAI的openAI package,下面給出第一種方式的code。

# 1. 使用request模組來串接API
api_key = [輸入你的金鑰]
prompt = [你想要給的文字]

response = requests.post(
'https://api.openai.com/v1/completions',
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
},
json = {
'model': 'text-davinci-003',
'prompt': prompt,
'temperature': 0.4,
'max_tokens': 300
})

#使用json解析
json = response.json()
print(json)

其中prompt就是你要輸入給模型的字串,而max_tokens就是模型返回的response的最大限制,temperature跟模型的隨機性有關,而model則是你想使用的模型。

其中model應該是大家使用上最需要注意的,不同模型的參數量、能力跟花費都不一樣。每個model的價格、大小都可以參考openAI的收費頁面

有些人可能會擔心自己會不會用一用信用卡被鎖卡,基本上每個新帳號都有18美金的免費額度。可以從個人帳號選單的Manage Account進行追蹤。

也可以從Billing的頁面設定上限

三、ChatGPT API使用

前面把基礎openAI的API使用方法跟花費注意事項講完後,我今天其實最想講的就是2023/03/01剛釋出的ChatGPT API(還有Whisper API)

基於上面text completion的經驗,我們其實在openAI的document中可以輕易找到chatGPT的使用方法,就是使用chat completion

基礎使用方法也是分用request模組跟直接使用openAI模組。

# 1. 使用request模組來串接API
api_key = [輸入你的金鑰]
prompt = [你想要給的文字]

response = requests.post(
'https://api.openai.com/v1/chat/completions',
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
},
json = {
'model': 'gpt-3.5-turbo', # 一定要用chat可以用的模型
'messages' : [{"role": "user", "content": prompt}]
})

#使用json解析
json = response.json()
print(json)

上面這個code稍微需要注意一下中間的messages,message其實就是你丟給chatGPT的聊天歷史,格式如下。

messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who won the world series in 2020?"},
{"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
{"role": "user", "content": "Where was it played?"}
]

role有三種:”system”、"user"、”assistant”,一般剛開始使用chatGPT的時候會先給一個system message來教chatGPT如何表現,不過gpt-3.5-turbo模型目前並沒有很明顯在理system message,如果希望chatGPT如何表現,還是後續進行prompt engineering比較好(之後會說明)

"user":是輸入作為用戶你想要講的話、問的問題

"assistant":是前幾個round的ChatGPT回復,所以如果要做multi-round的chatGPT,必須重複的紀錄回答的歷史並重複輸入(可能有更好方法)。

結語:除了上述使用方法以外,我覺得目前最值得在意的是gpt-3.5-turbo比text-davinci-003便宜10倍,但是效果差不多,也就是說所有以GPT based的method全部都成本下降10倍,非常推薦想要在自己產品中加入ChatGPT的工程師來使用。

重點整理
1. ChatGPT的API已經可以使用,基本上就是把text completion改成chat completion,使用gpt-3.5-turbo
2. ChatGPT的使用範例code
3. 便宜10倍!!!

--

--

倢愷 Oscar

我是倢愷,CTO at TeraThinker an AI Adaptive Learning System Company。AI/HCI研究者,超過100場的ML、DL演講、workshop經驗。主要學習如何將AI落地於業界。 有家教、演講合作,可以email跟我聯絡:axk51013@gmail.com