Skip to main content
Anthropic Claude は非常に強力な AI 対話システムで、プロンプトを入力するだけで、数秒以内に流暢で自然な返信を生成できます。Claude Messages API は Anthropic の公式ネイティブ API フォーマットで、OpenAI の互換フォーマット(Chat Completion)とは異なり、Anthropic 独自のリクエストとレスポンス構造を採用しており、Claude の独自の能力(マルチモーダルコンテンツ入力、ツール呼び出し、深い思考(Extended Thinking)などの高度な機能)をより良く活用できます。 この文書では、Claude Messages API 操作の使用フローを主に紹介します。これを利用することで、Anthropic 公式と一致するネイティブインターフェースを使用して Claude の対話機能を呼び出すことができます。

申請フロー

Claude Messages API を使用するには、まず Claude Messages API ページにアクセスし、「Acquire」ボタンをクリックして、リクエストに必要な資格情報を取得します: まだログインまたは登録していない場合は、自動的にログインページにリダイレクトされ、登録とログインを促されます。ログインまたは登録後、現在のページに自動的に戻ります。 初回申請時には無料のクレジットが付与され、この API を無料で使用できます。

基本使用

Claude Messages API のリクエストパスは /v1/messages で、Anthropic 公式 API と一致しています。少なくとも3つの必須パラメータを提供する必要があります:
  • model:使用する Claude モデルを選択します。例:claude-opus-4-20250514claude-sonnet-4-20250514 など。
  • messages:入力メッセージの配列で、各メッセージには role(役割)と content(内容)が含まれ、roleuserassistant をサポートします。
  • max_tokens:最大出力トークン数で、単一の返信の長さを制限します。
一般的なオプションパラメータ:
  • system:システムプロンプトで、モデルの動作と役割を設定します。
  • temperature:生成のランダム性で、0-1 の間で値が大きいほど返信が散発的になります。
  • stream:ストリーミングレスポンスを使用するかどうか、true に設定すると逐次的に返されます。
  • stop_sequences:カスタム停止シーケンスで、モデルがこれらのテキストに遭遇したときに生成を停止します。
  • top_p:核サンプリングパラメータで、temperature と組み合わせて生成のランダム性を制御します。
  • top_k:確率が最も高い K 個のオプションからのみサンプリングします。
  • tools:ツール定義で、モデルが外部関数を呼び出すために使用します。
  • tool_choice:モデルが提供されたツールをどのように使用するかを制御します。

cURL の例

Python の例

呼び出し後、返される結果は以下の通りです:
返される結果のフィールド説明:
  • id:今回のメッセージのユニーク識別子。
  • type:常に message
  • role:常に assistant
  • content:返信内容の配列で、各要素には type(例:text)と対応する内容が含まれます。
  • model:リクエストを処理したモデル名。
  • stop_reason:停止理由で、可能な値には end_turn(正常終了)、max_tokens(最大長に達した)、stop_sequence(停止シーケンスに遭遇)、tool_use(ツール呼び出し)があります。
  • stop_sequence:カスタム停止シーケンスによって停止した場合、マッチした停止シーケンスのテキストが表示されます。
  • usage:トークン使用統計で、input_tokens(入力トークン数)と output_tokens(出力トークン数)が含まれます。

システムプロンプト

Claude Messages API は system フィールドを通じてシステムプロンプトを設定することをサポートしており、モデルの動作、役割、コンテキストを定義するために使用されます。

Python の例

system プロンプトを設定することで、Claude の役割と動作を正確に制御できます。

ストリーミングレスポンス

このインターフェースはストリーミングレスポンスもサポートしており、stream パラメータを true に設定することで、逐次的に返される効果を得ることができ、ウェブページで逐字表示を実現するのに非常に適しています。

Python の例

ストリーミングレスポンスは Server-Sent Events (SSE) フォーマットで返され、各行は event:data: で始まります。ストリーミングイベントのタイプには以下が含まれます:
  • message_start:メッセージの開始で、メッセージの基本情報とモデル名が含まれます。
  • content_block_start:コンテンツブロックの開始。
  • content_block_delta:コンテンツブロックの増分更新で、新しく生成されたテキストの断片が含まれます。
  • content_block_stop:コンテンツブロックの終了。
  • message_delta:メッセージレベルの増分更新で、stop_reason と最終的な usage 情報が含まれます。
  • message_stop:メッセージの終了。
出力効果は以下の通りです:
見ると、ストリーミングレスポンスの content_block_delta イベントには、段階的に生成されたテキストコンテンツが含まれており、すべての text_delta を結合することで完全な返信を得ることができます。

JavaScript の例

多輪対話

もし多輪対話機能を接続したい場合は、messages 配列に userassistant の役割のメッセージを交互に配置し、以前の対話履歴を一緒に渡す必要があります。

Python の例

返された結果は以下の通りです:
messages に完全な対話履歴を渡すことで、クロードは文脈を考慮して正確な回答を行うことができます。

深い思考モデル

クロードは Extended Thinking(深い思考)機能をサポートしており、モデルが返信する前に内部推論を行うことで、複雑な問題の処理精度を向上させることができます。この機能を使用する際は、thinking パラメータを渡す必要があります。

Python の例

返された結果は以下の通りです:
content 配列には2つのコンテンツブロックが含まれています:
  • type: "thinking":モデルの内部思考過程を示し、推論ステップを示しています。
  • type: "text":最終的な回答結果です。
注意事項:
  • thinking を使用する際は、max_tokensbudget_tokens より大きくする必要があります。なぜなら、budget_tokens は思考プロセスに割り当てられるトークン予算だからです。
  • budget_tokens が大きいほど、モデルがより深い推論を行うためのスペースが増え、複雑な問題の処理に適しています。

視覚モデル

クロードは多モーダル入力をサポートしており、テキストと画像を同時に処理できます。Messages API では、content を配列形式に設定し、画像コンテンツブロックを渡すことで視覚能力を使用できます。

Base64 エンコードされた画像を使用する

URL 画像を使用する

cURL の例

サポートされている画像フォーマットには、image/jpegimage/pngimage/gifimage/webp が含まれます。 返される結果の例:

ツール呼び出し(Tool Use)

Claude Messages API は、モデルが必要に応じて事前定義されたツール/関数を呼び出す機能をネイティブにサポートしています。

Python の例

モデルがツールを呼び出すことを決定した場合、返される結果の content には tool_use タイプの内容ブロックが含まれます:
stop_reasontool_use であることに注意してください。これはモデルがツールを呼び出す必要があることを示しています。この結果を受け取った後、ツール関数を実行し、その結果を tool_result の形式でモデルに返す必要があります:
モデルはツールから返された結果に基づいて、最終的な自然言語の返信を生成します。

Chat Completion API との違い

Ace Data Cloud は、同時に二つの Claude API フォーマットを提供しており、両者の主な違いは以下の通りです: もしあなたのシステムがすでに OpenAI フォーマットの API に接続されている場合、Chat Completion API を使用してシームレスに切り替えることができます。Claude の全てのネイティブ機能を使用する必要がある場合は、Messages API の使用をお勧めします。

エラーハンドリング

API を呼び出す際にエラーが発生した場合、API は対応するエラーコードと情報を返します。例えば:
  • 400 token_mismatched:不正なリクエスト、パラメータが不足または無効である可能性があります。
  • 400 api_not_implemented:不正なリクエスト、パラメータが不足または無効である可能性があります。
  • 401 invalid_token:未認証、無効または不足している認証トークン。
  • 429 too_many_requests:リクエストが多すぎます、レート制限を超えました。
  • 500 api_error:内部サーバーエラー、サーバーで何かがうまくいきませんでした。

エラー応答の例

結論

この文書を通じて、あなたはClaude Messages APIを使用してAnthropicのネイティブ形式でClaudeの対話機能を呼び出す方法を理解しました。Messages APIは基本的な対話、システムプロンプト、ストリーミングレスポンス、マルチターン対話、深い思考、視覚理解、ツール呼び出しなどの豊富な機能をサポートしています。ご不明な点がございましたら、いつでも当社の技術サポートチームにお問い合わせください。