Claude OpenAI 互換形式
Fast-Token は OpenAI API プロトコル で Anthropic Claude シリーズのモデルを呼び出せます。OpenAI SDK や /v1/chat/completions ベースのアプリがある場合、通常は base_url と model を変更するだけで Claude に接続でき、Anthropic Messages ネイティブ API への書き換えは不要です。
本ページは利用ガイドが中心です。各エンドポイントのリクエストボディ、レスポンスフィールド、オンラインデバッグは ChatGPT ドキュメント および下記の機能対照表のリンクを参照してください。
2 つの接続方式
| 比較項目 | OpenAI 互換形式(本ページ) | Claude ネイティブ API(同ディレクトリの他ドキュメント) |
|---|---|---|
| 典型的なパス | POST /v1/chat/completions | POST /v1/messages |
| リクエストボディ | messages、model、stream など OpenAI フィールド | messages、system、thinking など Anthropic フィールド |
| 向いている用途 | 既存の OpenAI クライアント、マルチモデル統合ゲートウェイ、迅速な移行 | Claude 固有機能(拡張思考の予算、Tool Use、PDF、ウェブ検索など) |
| ドキュメント | 本ページ + チャット グループ | 本フォルダ「チャット」グループ内の API ページ |
どちらも同じ API Key とゲートウェイ URL を共有します。課金は モデル広場 の該当モデルに準じます。
接続設定
ゲートウェイと認証
- Base URL:
https://fast-token.com/v1(クイックスタート と同じ) - 認証:リクエストヘッダー
Authorization: Bearer <Fast-Token_API_KEY> - モデル名:モデル広場 から
claudeを含むモデル ID をコピーし、modelに設定
OpenAI SDK の利用(推奨)
公式 SDK の base_url を Fast-Token に向けるだけで、それ以外は OpenAI と同じです:
from openai import OpenAI
client = OpenAI(
base_url="https://fast-token.com/v1",
api_key="<Fast-Token_API_KEY>",
)
completion = client.chat.completions.create(
model="claude-sonnet-4-20250514", # モデル広場の ID を使用
messages=[
{"role": "user", "content": "用一句话介绍你自己"},
],
)
print(completion.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://fast-token.com/v1",
apiKey: "<Fast-Token_API_KEY>",
});
const completion = await client.chat.completions.create({
model: "claude-sonnet-4-20250514",
messages: [{ role: "user", content: "用一句话介绍你自己" }],
});
console.log(completion.choices[0].message.content);ストリーミング会話は stream: true を指定してください。詳細は チャット補完の作成(ストリーミング)。
chat 互換形式の機能一覧
以下の機能はすべて OpenAI 互換パス 経由です。コンソールや Apifox では 「chat 互換形式」 に分類されることが多いです。実装では多くが同じ POST /v1/chat/completions で、モデル、ストリーミング、メッセージ構造でシナリオを区別します。
| 機能 | 説明 | 参考ドキュメント |
|---|---|---|
| 思考チャットの作成 | モデルの「思考」過程を含む対話 | ストリーミング(extra_body.enable_thinking) |
| チャット補完の作成(ストリーミング) | 標準的なマルチターン会話、SSE ストリーミング | チャット補完の作成(ストリーミング) |
| チャット補完の作成(非ストリーミング) | 標準的なマルチターン会話、一括レスポンス | チャット補完の作成(非ストリーミング) |
| チャット画像認識(ストリーミング) | 画像のアップロードによる理解・説明・質問 | チャット画像認識の作成(ストリーミング) |
| チャット画像認識(非ストリーミング) | 画像認識、非ストリーミングの完全レスポンス | チャット画像認識の作成(非ストリーミング) |
モデルの選択
各シナリオの モデル ID は モデル広場 を参照してください。名前に claude を含み、対応する会話・画像認識・思考に対応と記載されたモデルを試してください。「モデルが存在しない」や非対応の場合は、同シナリオの別の Claude モデルに切り替えてください。
シナリオ別の利用ポイント
標準チャット(ストリーミング / 非ストリーミング)
- エンドポイント:
POST /v1/chat/completions messages配列でマルチターン会話を維持;roleはsystem/user/assistant(OpenAI と同じ)- 非ストリーミング:
stream: falseまたはstream省略 → チャット補完の作成(非ストリーミング) - ストリーミング:
stream: true→ チャット補完の作成(ストリーミング) - 共通パラメータ(
temperature、max_tokens、top_pなど)は OpenAI ドキュメントと同様
system ロール
OpenAI 形式では、messages 内の role: "system" にシステムプロンプトを書きます。ネイティブ Claude API ではトップレベルの system フィールドが一般的です。→ チャット補完の作成(ストリーミング)
思考モード(思考チャットの作成)
一部の Claude 思考モデルは ストリーミング リクエストで拡張フィールドにより思考出力を有効化できます:
{
"model": "claude-sonnet-4-20250514",
"messages": [{ "role": "user", "content": "逐步推导:为什么天空是蓝色的?" }],
"stream": true,
"extra_body": {
"enable_thinking": true
}
}- 互換形式での思考の表示はゲートウェイとモデルに依存します。モデル広場で「思考」対応の Claude モデルを選択してください
- 思考トークン予算(
thinking.budget_tokens)の精密制御、思考ブロックと本文ブロックの区別には、ネイティブ 拡張思考チャットの作成(POST /v1/messages)を使用してください
画像認識(ビジョン)
user メッセージの content に マルチモーダル配列:text + image_url(URL または Base64)を使用します。
{
"model": "claude-sonnet-4-20250514",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "描述这张图片中的主要内容" },
{
"type": "image_url",
"image_url": { "url": "https://example.com/photo.jpg" }
}
]
}
],
"stream": true
}- ストリーミング画像認識:
stream: true→ チャット画像認識の作成(ストリーミング) - 非ストリーミング画像認識:
stream: false→ チャット画像認識の作成(非ストリーミング) - Base64 画像:チャット画像認識の作成(ストリーミング)Base64
OpenAI 互換とネイティブ Claude API の選び方
| ニーズ | 推奨 |
|---|---|
| 迅速な接続、OpenAI SDK / 既存コードの再利用 | OpenAI 互換形式(本ページ) |
拡張思考、budget_tokens、思考ブロックの SSE 構造 | ネイティブ API — 拡張思考チャットの作成 |
| Tool Use / 関数呼び出し | ネイティブ API — 関数呼び出しの作成(ストリーミング) |
| 構造化出力(JSON Schema) | ネイティブ API — 構造化出力の作成 |
| PDF、ウェブ検索 | ネイティブ API — PDFサポート、ウェブ検索 |
| OpenAI クライアントで「チャット + 画像認識 + 思考」のみ | OpenAI 互換形式 で主要パスをカバー |
よくある質問
Q:OpenAI 公式ドキュメントと完全に一致しないのはなぜ?
A:互換レイヤーはリクエスト/レスポンスを OpenAI に合わせ、実体は Claude です。OpenAI 専用パラメータの一部は無効または無視される場合があります。実際のモデル対応を基準にしてください。
Q:model には何を入れる?
A:モデル広場に記載の 完全なモデル ID(通常 claude を含む)を使用してください。略称や古い名称は使わないでください。
Q:Anthropic 公式 Python SDK は使える?
A:公式 SDK はデフォルトで POST /v1/messages 向けです。SDK を使い続ける場合は本フォルダのネイティブ API ドキュメントを参照してください。OpenAI SDK は本ページの互換形式向けです。
Q:ストリーミングのレスポンス形式は?
A:SSE、data: {...} 行と終了の data: [DONE]。OpenAI ストリーミング Chat Completions と同じです。→ チャット完了チャンクオブジェクト
Q:完全なレスポンス JSON 構造は?
A:→ チャット完了オブジェクト。ネイティブ Messages API は → チャット完了オブジェクト(Anthropic 形式)
関連資料
- クイックスタート — 初回呼び出しと API Key
- API クイックスタートガイド — Base URL とクライアント設定
- モデル一覧 —
GET /v1/modelsで利用可能モデルを確認 - 本フォルダの他ページ — Claude ネイティブ Messages API の詳細パラメータと例