前言

我作夢也沒想到會有part2,但就在最近,chatGPT 的 api 更新了。
你沒聽錯,他就是這麼佛,最新版的 model 竟便宜了 10 倍!
那是不遲疑,就開始今天的重點吧,Let’s Go!

正題

他的寫法跟之前不太一樣,我們會用openai.ChatCompletion.create()取代openai.Completion.create()
而他的參數有

  • model: 取代之前的engine
  • messages: 取代之前的prompt

其餘都跟之前差不多,不過這次來講一下他們分別在幹嘛吧

  • max_token: 生成文章的長短,至於他是怎麼算 tokens 可以參考官方
  • temperature: 0~2 的數字,表示 AI 生成的隨機性,愈高愈有自己的想法

當然還有更多,想知道詳細 or 其餘殘樹可參考官方文檔
讓我們回到 messages 的內容,不同於之前的一大串文字,
這次會用到的是 dictionary,長得像下方這樣

1
{"role": "user", "content": "哈囉"}

role 有三種

  • system: 設定機器人的行為。但他目前沒有效果
  • assistant: 機器人說的話。
  • user: 你說的話

content 就是講話的內容
我們要把這些 dict 丟進一個 list 中,再傳給 messages
下面是範例

1
2
3
4
5
6
7
8
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "請問 starfish 是誰"},
{"role": "assistant", "content": "他只是一個海星"}
]
)

那這邊就像是之前依樣,可以引導對話,創造性格。
而提取回復的 code 為

1
response[‘choices’][0][‘message’][‘content’]

以上也可至官方文檔察看

結尾

整體上感覺很棒,但有一個小小缺點是句子斷掉無法使用「繼續」等語句讓它說完。
但它真的超級便宜,讓我無話可說。
那這次的介紹就差不多到這啦,想知道如何用在discord的指令上請參考上一篇,祝大家可以成功~