ChatGPTがAPIとして使えるようになりました。個人的にwhisper(音声認識)も使えるようになっていてテンションは上がっています。
前回
【node】OpenAIのChatGPTを利用してテキスト生成を行ってみる
【python】OpenAIのChatGPTを利用してテキスト生成を行ってみる
はgpt-3を使用しており正式なChatGPTでは少しリクエストの仕方が異なるので今回のChatGPTを使用したい方はこの記事を参考にしてください。
APIキーはそのままで行けたので
【openAI】ChatGPT(GPT-3)を利用するためのAPIキーを取得を参考にして下さい。
※前のモデルを使用したい場合とChatGPTを使用する場合は少し違うので前のモデルは上記の記事を参考にしてして下さい。
ChatGPTのモデルを使用する場合の説明は公式にも載っています。
python、node共にどのように使用するかやってみます。
具体的にはmessagesにいろいろ事前情報を与えるみたいです。
# python
import openai
openai.ChatCompletion.create(
model="gpt-3.5-turbo",
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?"}
]
)
ChatGPTのモデルを指定
gpt-3.5-turbo
こちらがChatGPTのモデルみたいです、gpt-3を深層強化学習して作られているみたいで3.5となっているのでしょうか。
pythonでテキスト生成
事前にopenAIを使用していた方はopenAIのモジュールを更新する必要があります。0.27.0以上だといいみたい。
openai未インストールの場合
pip install openai
openaiインストール済み→アップグレード
pip install -U openai
使ってみる
import openai
openai.api_key = "ここには自分で取得してAPIキー"
response = openai.ChatCompletion.create(
model='gpt-3.5-turbo',
messages=[
{"role": "system", "content": "私はあなたの役に立つアシスタントです。"},
{"role": "user", "content": "2020年のワールドシリーズを制したのは?"},
{"role": "assistant", "content": "2020年のワールドシリーズでは、ロサンゼルス・ドジャースが優勝しました。"},
{"role": "user", "content": "どこで試合がされましたか?"}
],
temperature=0.4,
max_tokens=64,
top_p=1.0,
frequency_penalty=0.0,
presence_penalty=0.0
)
texts = response["choices"][0]["message"]["content"]
print(texts)
# 2020年のワールドシリーズは、新型コロナウイルスの影響で、テキサス州アーリントンのグローブライフ・フィールドで開催されました。
gpt-3以下を使用していた時との違い
- openai.Completion.createになっている
- モデルがgpt-3.5-turbo
- promptではなくmessagesで色々情報を与える
- テキストをresponse[“choices”][0][“message”][“content”]で取得
node(typescript)でテキスト生成
openai未インストールの場合
npm install openai
openaiインストール済み→アップグレード
npm update openai
使ってみる
import { Configuration, OpenAIApi } from "openai";
const configuration = new Configuration({
apiKey: "ここには自分で取得してAPIキー",
});
const openai = new OpenAIApi(configuration);
openai
.createChatCompletion({
model: "gpt-3.5-turbo",
messages: [
{ role: "system", content: "私はあなたの役に立つアシスタントです。" },
{ role: "user", content: "2020年のワールドシリーズを制したのは?" },
{
role: "assistant",
content:
"2020年のワールドシリーズでは、ロサンゼルス・ドジャースが優勝しました。",
},
{ role: "user", content: "どこで試合がされましたか?" },
],
temperature: 0.4,
max_tokens: 64,
top_p: 1.0,
frequency_penalty: 0.0,
presence_penalty: 0.0,
})
.then((completion) => {
const message = completion.data.choices[0].message?.content;
console.log(message);// 2020年のワールドシリーズは、新型コロナウイルスの影響で、テキサス州アーリントンにあるグローブライフ・フィールドで行われました。
});
gpt-3以下を使用していた時との違い
- openai.Completion.createになっている
- モデルがgpt-3.5-turbo
- promptではなくmessagesで色々情報を与える
- テキストをcompletion.data.choices[0].message?.contentで取得
おわりに
念願のChatGPTですね。
APIの料金もやすく、メッセージに役割を与えられるなどいろいろ進化しているので便利で使いやすくなっていると思います。
charGPTに対応したリポジトリーを更新した。
コメント