Chat APIを試してみる
発表者 K.H
はじめに
OpenAIからChat APIが公開された。
今回はこのAPIの特徴や使い方などについて解説する。
Chat APIの特徴
• チャットに特化したモデルが利用可能
• 現在利用できるモデルは2種類
• テキスト補間で使用されている一番性能の良いモデルと同等の性能で
料金は1/10となる
• FineTuningを実施することはできない
• リクエストとレスポンス合わせて4096トークンまで利用可能
モデルについて
現在は以下の2種類から選択できるが、実質gpt-3.5-turboのみである。
• gpt-3.5-turbo
• 今後も更新予定あり
• gpt-3.5-turbo-0301
• 2023/03/01時点のgpt-3.5-turboのスナップショット
• 更新は行われずに2023/06/01までのサポート
復習
今回は主にテキスト補間との変更点について説明する。
テキスト補間を行う場合、リクエストは以下のようになる。
curl https://api.openai.com/v1/completions 
-H 'Content-Type: application/json' 
-H 'Authorization: Bearer {YOUR_API_KEY}' 
-d '{
"model": "{model}",
"prompt": "{prompt}"
}'
Chat APIへのリクエスト
Chat APIを使用するときのリクエストは以下のようになる。
※赤字がテキスト補間からの変更点
curl https://api.openai.com/v1/chat/completions 
-H 'Content-Type: application/json' 
-H 'Authorization: Bearer {YOUR_API_KEY}' 
-d '{
"model": "{model}",
"messages": [{"role": "{role}", "content": "{content}"}]
}'
テキスト補間からの変更点
テキスト補間からの変更点として以下の2つがある
1. エンドポイント
•"/v1/completions" から "v1/chat/completions"になった
2. リクエストボディ
• "prompt"から"messages"になった
•messagesについては後述
messagesについて
messagesではメッセージオブジェクトを配列で渡す必要がある。
メッセージオブジェクトは以下の2つで構成される。
• role
• system,user,assistantの3つから指定できる
• content
• テキスト補間におけるpromptの値
roleについて
roleは以下のように使い分ける
role 使い方
system
・最初に期待することや役割等を伝える
例: 「あなたは株式会社☓☓のチャットボットです。」
user
・必要な情報を伝える
例:「株式会社☓☓の資本金は〇〇円です。」
・アシスタントに指示を出す
例:「株式会社☓☓の社長を教えて下さい。」
assistant
・アシスタントに期待する回答の例を伝える
例:「株式会社☓☓の資本金は〇〇円です。」
messagesの例 その①
簡単にuserメッセージのみでリクエストを送る事ができる。
{
"messages": [{"role": "user", "content": "Hello!"}]
}
messagesの例 その①
レスポンスは以下のようになる。
※一部のみを記載している
{
"choices": [
{
"message": {
"role": "assistant",
"content": "nnHello, how can I assist you today?"
]
}
messagesの例 その②
以下のように複数のroleを使用することも可能である。
{
"messages": [
{"role": "system","content": "あなたは株式会社結束バンドのチャットボットです。"},
{"role": "user","content": "株式会社結束バンドの情報は以下の通りです。n・資本金:
1000円n・社長: 伊地知 虹夏n・社員数: 4人n・取引銀行: 山田銀行"},
{"role": "user","content": "取引銀行を教えてください"},
{"role": "assistant","content": "山田銀行"},
{"role": "user","content","資本金を教えてください"}
]
}
messagesの例 その②
レスポンスは以下のようになる。
※一部のみを記載している
{
"choices": [
{
"message": {
"role": "assistant",
"content": "1000円です。"
]
}
デモ
まとめ
今回はChat APIの特徴や使い方などについて説明した。
性能が良く、料金も安いため今後使用する機会が増えると感じた。

ChatAPI.pptx