一、設定openAI帳號
這個內容其實網絡上已經有很多教學了,所以我就快速教學。
要創立openAI的API金鑰,要先到openAI的API Document,登入後點選右上角的個人帳號選單(下圖),選擇View API keys。
進入View API keys頁面後點選"Create new secret Key",這個Key必須要保存並且保密好,因為任何人只要有你的Key都可以使用你的額度。
當你做完這步,你就設定好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倍!!!