機能の概要
標準APIエンドポイントが提供するAnthropic Messages互換インターフェースを通じて、ストリーミング応答と非ストリーミング応答をサポートします。専用のAnthropicエンドポイントとは異なり、このインターフェースは統一されたベースパス /api/v1/messages を使用し、Anthropic Messages APIとの互換性が必要でありながら標準エンドポイントの使用を希望するシナリオに適しています。
説明
prompt cacheを使用する場合、cache_control を具体的なcontent block(例:text chunk)に明示的に設定することで安定して有効にする必要があります。messageのトップレベルに設定された自動cacheのみでは、信頼性を持って透過的に伝わらない可能性があり、cacheミスを引き起こす可能性があります。
説明
このインターフェースは、100.create-anthropic-message.mdとエンドポイントパスが異なる点が異なります。そのファイルでは専用エンドポイント /api/anthropic/v1/messages を使用していますが、このドキュメントでは標準エンドポイント /api/v1/messages を使用しています。
呼び出しの説明
インターフェース制約
- 呼び出し元はAPI Keyを保有している必要があります。詳細については、AI API Keyの管理をご参照ください。
リクエストパス
POST {BASE_URL}/api/v1/messages
リクエストヘッダー
名前 |
必須 |
サンプル値 |
説明 |
|---|---|---|---|
| Authorization | はい | Bearer {token} | 認証情報 |
| Content-Type | いいえ | application/json | リクエストボディの形式 |
リクエストパラメータ
Pathパラメータ
なし
Queryパラメータ
なし
Bodyパラメータ
名前 |
型 |
必須 |
サンプル値 |
説明 |
|---|---|---|---|---|
| model | string | はい | claude-3-opus-20240229 | モデル名 |
| max_tokens | integer | はい | 1024 | Anthropic公式で必須となっており、常に明示的に指定することを推奨します。 |
| messages | array[object] | はい | [{"role": "user", "content": "Hello"}] | メッセージリスト |
| stream | boolean | いいえ | false | ストリーミング応答を有効にするかどうか |
実行結果
パラメータ
名前 |
型 |
説明 |
|---|---|---|
| success | boolean | リクエストが成功したかどうかを示します。 |
| code | string | 戻り値コード |
| message | string | 戻り値メッセージ |
| data | object | 業務データ |
dataフィールドの説明
返されるデータ構造は、リクエストのstreamパラメータによって異なります。
stream: falseの場合、dataフィールドは完全なレスポンスオブジェクトです。stream: trueの場合、レスポンス形式はtext/event-streamであり、dataフィールドは適用されません。
リクエスト例
curl --request POST '{BASE_URL}/api/v1/messages' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data '{
"model": "claude-3-opus-20240229",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello"
}
],
"stream": false
}'
実行結果例
非ストリーミング応答例 (application/json):
{
"success": true,
"code": "200",
"message": "successful",
"data": {
"id": "msg_123456",
"model": "claude-3-opus-20240229",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I assist you today?"
}
}
]
}
}
ストリーミング応答例 (text/event-stream):
data: {"id":"msg_123","object":"chat.completion.chunk","choices":[{"delta":{"content":"Hello"}}]}
data: {"id":"msg_123","object":"chat.completion.chunk","choices":[{"delta":{"content":"!"}}]}
data: [DONE]