Chat Completions は、OpenAI の最新モデルで使用する標準 API です。使い始める方法については、テキスト生成開発者ガイドをご覧ください。
2025 年 3 月 11 日時点で、新しい Agents プラットフォームの構成要素をリリースしました。詳細については、Responses API、Web Search、File Search、Computer Use などの Tools、および Agents SDK と Tracing に関する API ドキュメントをご覧ください。
プロンプトからメッセージへ
モデルとより双方向でダイナミックな会話を行うには、Completions で使われていた従来のプロンプト形式ではなく、チャット形式のメッセージを使用できます。
仕組みは次のとおりです。
単一のプロンプト文字列を送信する代わりに、メッセージオブジェクトのリストを入力として送信します。
各メッセージには role があり、通常は content も含まれます。
一般的なロールには system、user、assistant、developer、tool などがあります。tool メッセージはツールや関数の実行結果に使用され、assistant によるツール呼び出しと対応している必要があります。後方互換性を確保するため、function メッセージも引き続き受け付けられ、サーバー側の処理で tool メッセージに変換される場合があります。モデルの対応状況に応じて、developer メッセージはマッピングし直される場合があります。
content には、そのロールからのメッセージ本文が含まれます。
システム指示では、会話全体に対する指示を指定できます
メッセージはリストに並んだ順に処理され、それに応じてアシスタントが応答します。
以下のように、基本的な Completions リクエストも Chat Completions で処理できます。
| 以前 | 現在 |
|---|---|
'prompt' : 'tell me a joke' | 'messages': [{'role':'user', 'content':'tell me a joke'}] |
会話のメッセージリストを増やすだけで、モデルとのやり取りがこれまで以上に簡単になりました。
'messages': [{'role':'user', 'content':'冗談を聞かせて'},
{'role':'assistant', 'content':'なぜ鶏は道を渡ったのか'},
{'role':'user', 'content':'わかりません。なぜ鶏は道を渡ったのですか'}]システム指示
システムレベルの指示を使って、会話全体にわたるモデルの動作を導くこともできます。たとえば、システム指示と次のようなメッセージを使います
'messages': [{'role':'system', 'content':'あなたはシェイクスピアのように話すアシスタントです。'},
{'role':'user', 'content':'冗談を聞かせて'}, 次のような結果になります
{...
'message': {'role':'assistant',
'content':'なぜ鶏は道を渡ったのか? 向こう側へ行くためでござった。されど、まことに向こう側は危険と災いに満ちておったゆえ、まことや、鶏は急ぎ元来た場所へ戻ったのじゃ!'}
...}メッセージの会話履歴を自分で管理する必要がない選択肢を検討したい場合は、Assistants API をご覧ください。
