Anthropic Claude
Anthropic は信頼性が高く、解釈可能で、制御可能な AI システムを構築する AI セーフティ企業です。主力モデルファミリーは Claude であり、思慮深い対話、コンテンツ作成、複雑な推論、コーディングなどに優れています。
sgcWebSocketsライブラリは、Anthropic Claude API とやり取りするためのDelphiコンポーネントTsgcHTTP_API_Anthropicを提供します。
Anthropic API
Anthropic API は AI 搭載アプリケーションを構築するための Claude モデルへのアクセスを提供します。API はテキスト生成、ビジョン(画像理解)、ツールの使用(関数呼び出し)、拡張思考、ドキュメント/PDF 処理、プロンプトキャッシング、引用、Web 検索、ストリーミング、トークンカウント、メッセージバッチをサポートしています。
機能
設定
Anthropic API は認証に API キーを使用します。リクエストで使用する API キーを取得するには、Anthropic Console のAPI キーページを参照してください。
APIキーは秘密です!他者と共有したり、クライアント側のコードで公開したりしないでください。
この API キーはコンポーネントの AnthropicOptions.ApiKey プロパティに設定する必要があります。AnthropicOptions.AnthropicVersion プロパティは API バージョンを指定します(デフォルト: 2023-06-01)。
Anthropic := TsgcHTTP_API_Anthropic.Create(nil);
Anthropic.AnthropicOptions.ApiKey := 'YOUR_API_KEY';
プロパティ
AnthropicOptions
- ApiKey: Anthropic API で認証するための API キー。
- AnthropicVersion: APIバージョン文字列(デフォルト: 2023-06-01)。
- BetaHeaders: プレリリース API 機能(例:files-api-2025-04-14、mcp-client-2025-11-20)を有効にするオプションのベータ機能ヘッダー。
- HttpOptions: HTTP 接続設定。
- ReadTimeout: HTTP レスポンスを読み取るためのタイムアウト(ミリ秒)。デフォルトは 0(タイムアウトなし)。
- LogOptions: ログ設定。
- Enabled: True の場合、HTTP リクエストとレスポンスがファイルに記録されます。
- FileName: ログ出力が書き込まれるファイルパス。
- RetryOptions: 失敗したAPIリクエストの自動リトライ設定。
- Enabled: True の場合、失敗したリクエストは自動的にリトライされます。
- Retries: リトライの最大試行回数。
- Wait: リトライ試行間の待機時間(ミリ秒単位)。
メッセージ
テキストおよび/または画像コンテンツを含む入力メッセージの構造化リストを送信し、モデルは会話内の次のメッセージを生成します。
- CreateMessage: 指定されたモデルとパラメータでメッセージを作成します。
- Model: 使用するモデル(例: claude-sonnet-4-20250514)。
- Message: ユーザーメッセージの内容。
- MaxTokens: 生成するトークンの最大数(必須、デフォルト 4096)。
- CreateMessageWithSystem: システムプロンプト付きのメッセージを作成します。
- System: アシスタントの動作を設定するシステムプロンプト。
- CreateMessageStream: ストリーミング(SSE)を有効にしてメッセージを作成します。イベントは OnHTTPAPISSE イベントハンドラーを通じて配信されます。
- CreateMessageJSON: 指定された JSON スキーマに準拠した構造化 JSON を返すメッセージを作成します。
- Schema: 出力フォーマットを定義する JSON スキーマ文字列。
- CreateMessageWithThinking: 拡張思考を有効にしてメッセージを作成します。
- BudgetTokens: 思考のための最大トークンバジェット(最小1024)。
- CreateDocumentMessage: base64エンコードされたドキュメント(PDFまたはテキスト)でメッセージを作成します。
- DocumentBase64: base64エンコードされたドキュメントデータ。
- MediaType: MIMEタイプ(例: application/pdf)。
ビジョン
Claudeはメッセージ内のbase64エンコードされたコンテンツブロックとして渡された画像を理解できます。
- CreateVisionMessage: テキストプロンプト付きの画像を送信します。
- ImageBase64: base64 エンコードされた画像データ。
- MediaType: MIME タイプ(image/jpeg、image/png、image/gif、image/webp)。
- Prompt: 画像に添付するテキストプロンプト。
ツール使用
Claude は外部システムと連携するためにツール(関数呼び出し)を使用できます。名前、説明、入力スキーマでツールを定義し、Claude はツールを呼び出したいときに tool_use コンテンツブロックを生成します。
モデル
利用可能な Claude モデルの一覧と説明を表示します。
- GetModels: 利用可能なすべてのモデルを一覧表示します。
- GetModel: 特定のモデルに関する情報を取得します。
拡張思考
拡張思考により、Claudeは応答する前に段階的に推論できるようになり、数学、コーディング、分析などの複雑なタスクの品質が向上します。
- ThinkingType: 思考を有効にするには「enabled」に設定し、無効にするには「disabled」に設定します。
- ThinkingBudgetTokens: 思考用のトークン予算(最小 1024、MaxTokens 未満でなければなりません)。
- CreateMessageWithAdaptiveThinking: 適応型思考でメッセージを作成し、Claude が思考の深さを自動的に決定します。
ドキュメント
ClaudeはPDFドキュメントとテキストファイルをコンテンツブロックとして処理できます。base64、テキスト、URLのソースタイプをサポートします。
- CreateDocumentMessage: テキストプロンプト付きのドキュメントを送信します。
- DocumentBase64: base64 エンコードされたドキュメントデータ。
- MediaType: MIME タイプ(application/pdf、text/plain)。
Prompt Caching
頻繁に使用されるコンテキスト(システムプロンプト、コンテンツブロック、ツール定義)をAPI呼び出し間でキャッシュして、キャッシュ読み取り時のコストを最大90%削減します。
- SystemCacheControl: システムプロンプトをキャッシュするために、要求でTrueに設定します。
- CacheControl: コンテンツブロックまたはツール定義で「ephemeral」に設定します。
- BetaHeaders: AnthropicOptions のオプションのベータ機能ヘッダー。
引用
引用が有効な状態でドキュメントが送信されると、Claude はレスポンスにソース参照を含めます。引用タイプには、char_location(テキスト)、page_location(PDF)、content_block_location(カスタムコンテンツ)、web_search_result_location(Web検索)があります。
Web 検索
Claude は組み込みの web_search ツールを使用してリアルタイム情報を Web 検索できます。他の組み込みツールには code_execution と computer use があります。
- CreateMessageWithWebSearch: Webサーチを有効にしてメッセージを作成します。
- Model: 使用するモデル。
- Message: ユーザーのクエリ。
トークンカウント
送信する前にメッセージのトークン数をカウントします。
- CountTokens: メッセージの入力トークン数をカウントします。
- Model: トークンカウントに使用するモデル。
- Message: トークンをカウントするメッセージの内容。
メッセージバッチ
Message Batches API を使用すると、大量のメッセージを非同期で処理できます。
- ListBatches: すべてのメッセージバッチを一覧表示します。
- GetBatch: ID で特定のバッチを取得します。
- CancelBatch: まだ処理中のバッチをキャンセルします。
- GetBatchResults: 完了したバッチの結果を取得します。
構造化出力
提供された JSON スキーマに準拠した有効な JSON を返すよう Claude に強制します。Effort パラメータと組み合わせて出力品質とコストのバランスを制御してください。
- CreateMessageJSON: JSON スキーマ出力でメッセージを作成します。
- Schema: 出力形式を定義する JSON スキーマ文字列。
- OutputFormatSchema:(リクエストプロパティ)構造化出力の JSON スキーマ。
- Effort: (Requestプロパティ)品質とコストを制御します: 'low'、'medium'、'high'、'max'。
- Strict:(ツールプロパティ)True の場合、ツールの入力が input_schema に一致することが保証されます。
Files API
ファイルをアップロード、一覧表示、取得、ダウンロード、削除します。アップロードされたファイルは、ファイルソースタイプのドキュメントコンテンツブロックを使用してメッセージ内で参照できます。ベータヘッダー files-api-2025-04-14 が必要です。
- UploadFile: ローカルファイルをアップロードします。ファイルメタデータを返します。
- ListFiles: ページネーション付きでアップロードされたファイルを一覧表示します。
- GetFile: 特定のファイルのメタデータを取得します。
- DownloadFile: ファイルコンテンツをダウンロードします。
- DeleteFile: ファイルを完全に削除します。
リクエストパラメーター
Messages APIで利用可能な追加のリクエストパラメータ。
- ServiceTier: 優先ティアの使用を制御します: 'auto'(デフォルト)または 'standard_only'。
- InferenceGeo: 推論の地域を制御します。'global'(デフォルト)または 'us'。
- Container: リクエスト間でコード実行環境を再利用するためのコンテナ ID。
- IsError:(コンテンツブロックプロパティ)ツールの実行失敗を示すために tool_result ブロックで True に設定します。
- CacheTTL: 拡張キャッシュ存続時間: '5m'(デフォルト)または '1h'。
- ThinkingType: Claude が思考の深さを自動的に決定するには「adaptive」に設定します。
MCP コネクター
Claude をサードパーティツールにアクセスするための外部 MCP(Model Context Protocol)サーバーに接続します。ベータヘッダー mcp-client-2025-11-20 が必要です。
- CreateMessageWithMCP: MCP サーバー接続でメッセージを作成します。
- MCPServerUrl: MCP サーバーの HTTPS URL。
- MCPServerName: サーバーの一意の名前。
- MCPServers:(リクエストプロパティ)ServerType、Url、Name、AuthorizationToken を持つ MCP サーバー定義の配列。
- MCPServerName:(Tool プロパティ)ToolType が 'mcp_toolset' の場合に MCP サーバーを参照します。