OpenAI互換 APIとは?

多くの LLM プロバイダーやセルフホスト型推論サーバー(OpenAI 自体、Azure OpenAI、Groq、OpenRouter、Together AI、Mistral、DeepSeek、vLLM、llama.cpp の server、LM Studio、Ollama の OpenAI互換モードなど)は、OpenAI によって普及した同じ REST インターフェースを公開しています。これは、/v1/chat/completions のようなエンドポイントに JSON リクエストを送信し、Authorization ヘッダーの Bearer token で認証する方式です。これにより、統合コードを書き直すことなくプロバイダーを切り替えられます。

これらのエンドポイント用に正しい cURL コマンドを手作業で作成するには、URL、ヘッダー、JSON 本文を完全に正しく指定する必要があります。特に、temperature やペナルティなどのサンプリングパラメーターを調整する場合や、chat、従来の completions、embeddings リクエストを切り替える場合は注意が必要です。

ツールの説明

このツールは、あらゆる OpenAI互換 API 用のすぐに使える cURL コマンドを生成します。ベース URL、エンドポイント、モデル、パラメーターを設定すると、適切にフォーマットされた cURL コマンドを即座に取得でき、ターミナルやスクリプトにそのまま貼り付けて使用できます。

Chat completion:

curl -X POST "https://api.openai.com/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
  "model": "gpt-4o-mini",
  "messages": [
    { "role": "system", "content": "あなたは役立つコーディングアシスタントです。" },
    { "role": "user", "content": "stringを反転するPython関数を書いてください" }
  ],
  "temperature": 0.3,
  "stream": false
}'

セルフホスト型サーバー(vLLM、llama.cpp、LM Studio など):

curl -X POST "http://localhost:8000/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
  "model": "llama-3-8b-instruct",
  "messages": [
    { "role": "user", "content": "ハムレットのあらすじを2文で要約してください" }
  ],
  "stream": true
}'

Embeddings:

curl -X POST "https://api.openai.com/v1/embeddings" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
  "model": "text-embedding-3-small",
  "input": "素早い茶色のキツネがのろまな犬を飛び越える"
}'

機能

  • 最も一般的な3つの OpenAI互換エンドポイント(/chat/completions/completions/embeddings)に対応
  • 互換性のある任意のベース URL で動作するため、OpenAI、Azure、Groq、OpenRouter、Together AI、セルフホスト型サーバーなどで利用可能
  • 設定可能なサンプリングパラメーター:temperature、top-p、frequency penalty、presence penalty、最大 token 数、completion 数、stop sequence、seed
  • chat completions 用の JSON オブジェクト形式のレスポンスに対応
  • データはどこにも送信されません。cURL コマンドはすべてブラウザー内で作成され、API key が端末の外部に出ることもありません

オプションの説明

オプション 説明 デフォルト 範囲
ベース URL エンドポイントのパスを含まない API のルート。 https://api.openai.com/v1 任意の URL
エンドポイント 対象にする API エンドポイント。 /chat/completions chat、completions、embeddings
Temperature 出力のランダム性を制御します。低い値ではより焦点の絞られたテキストになり、高い値では創造性が高まります。 1 0~2
Top P Nucleus sampling のしきい値。モデルは累積確率がこの値に達する token を考慮します。 1 0~1
Frequency penalty すでに登場した回数に基づいて token にペナルティを与え、逐語的な繰り返しを減らします。 0 -2~2
Presence penalty すでに一度でも登場した token にペナルティを与え、モデルが新しいトピックを導入するよう促します。 0 -2~2
Max tokens レスポンスで生成する token の最大数。空欄にすると指定を省略し、プロバイダーのデフォルト値を使用します。 - 任意の整数
Completions (n) 入力に対して生成する chat/completion の候補数。 1 任意の整数
Seed 可能な限り出力を再現可能にする固定 seed。空欄にするとランダムな結果になります。 - 任意の整数
Stop sequences API がそれ以降の token の生成を停止する sequence のコンマ区切りリスト。 - 任意のテキスト
Response format JSON オブジェクトに設定すると、モデルが有効な JSON 出力を返すよう強制します(chat エンドポイントのみ)。 なし なし / JSON オブジェクト
Stream 有効にすると、レスポンスが server-sent events としてストリーミングされます。無効にすると、完全なレスポンスを一度に受信します。 オフ オン / オフ