OpenAI 互換プロトコルで、フィールドは公式 API と一致します。想定用途:
- 公式 OpenAI SDK(
openai-python/openainpm) base_url設定に対応する OpenAI 互換クライアント- Cursor、Cline、Continue などの IDE プラグイン
- LangChain、LlamaIndex などのフレームワーク
エンドポイント
POST https://relay.4aicode.com/v1/chat/completions
リクエスト
POST /v1/chat/completions HTTP/1.1
Host: relay.4aicode.com
Authorization: Bearer sk-4ai-xxxxxxxxxxxxxxxx
content-type: application/json
{
"model": "gpt-5.6-terra",
"stream": true,
"messages": [
{ "role": "system", "content": "You are helpful." },
{ "role": "user", "content": "Write fizzbuzz in Go." }
]
}
サポートモデル
GPT-6:
| モデル | 向いている用途 |
|---|---|
gpt-6-astra | 新世代フラッグシップ;短コンテキスト入力 $1.50/M、出力 $7.50/M(公式価格の 15%) |
gpt-6.1-sol | 複雑なコーディングと長時間タスク向け GPT-6.1 フラッグシップ;$0.30/M 入力、$1.50/M 出力(定価の 15%) |
gpt-6.1-terra | 日常コーディングと中程度の複雑さ向け GPT-6.1 バランス型;$0.15/M 入力、$0.75/M 出力(定価の 15%) |
gpt-6-sol | 複雑なコーディングと長時間タスク向け GPT-6 フラッグシップ;$0.30/M 入力、$1.50/M 出力(定価の 15%) |
gpt-6-luna | 高速な日常タスク向け軽量 GPT-6;$0.015/M 入力、$0.075/M 出力(定価の 15%) |
GPT-5 シリーズ:
| モデル | 向いている用途 |
|---|---|
gpt-5.6-sol | フラッグシップ;複雑なコーディングと長時間タスクを優先;max 推論 effort をサポート |
gpt-5.6-terra | コスパに優れたバランス型 |
gpt-5.6-luna | 高速・低価格;日常使用に十分 |
gpt-5.5 | 前世代汎用モデル |
gpt-5.4 | 汎用 |
gpt-5.4-mini | 高速・低価格 |
gpt-5.3-codex | コード最適化 |
Google Gemini:
| モデル | 向いている用途 |
|---|---|
google/gemini-3.1-pro-preview | Google Gemini Pro プレビュー |
google/gemini-3-flash-preview | Google Gemini Flash プレビュー |
google/gemini-2.5-flash | 安定版 Google Gemini Flash |
google/gemini-2.5-pro | 安定版 Google Gemini Pro |
GPT-5.2 以前のモデルは上流で非推奨です。gpt-4o や gpt-4 など他モデルは、利用可能モデル一覧を含む 400 応答で拒否されます。
モデル可用性は上流サポートとサービス状態に依存します。上流がモデル非サポートを報告した場合、中継は明示的な
400を直接返します。
無視されるパラメータ
以下は受理されますが効果はなく、SDK 互換性のためエラーになりません。
logit_biasuserfunctions(新しいtoolsを使用)
応答
公式 OpenAI 応答形式に一致:
choices[].message.contentchoices[].finish_reasonusage(prompt_tokens/completion_tokens/total_tokens)
ストリーミング形式:
data: {"choices":[{"delta":{"content":"Hello"}}]}
data: {"choices":[{"delta":{"content":", world"}}]}
data: [DONE]
完全な例
Python
from openai import OpenAI
client = OpenAI(
base_url="https://relay.4aicode.com/v1",
api_key="sk-4ai-xxxxxxxxxxxxxxxx",
)
resp = client.chat.completions.create(
model="gpt-5.4",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Introduce yourself in one sentence"},
],
)
print(resp.choices[0].message.content)
TypeScript
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://relay.4aicode.com/v1",
apiKey: process.env.OPENAI_API_KEY,
});
const resp = await client.chat.completions.create({
model: "gpt-5.4-mini",
messages: [{ role: "user", content: "hi" }],
});
console.log(resp.choices[0].message.content);
エラー
| HTTP | 意味 |
|---|---|
| 400 | 無効なフィールド / 許可リスト外のモデル |
| 401 | 無効なトークン |
| 403 | チーム停止 |
| 429 | レート制限またはクォータ超過 |
| 502 | 上流 OpenAI サービスの不安定 |
| 503 | 上流サービスが一時的に利用不可;サービスのクールダウンとリトライ を参照 |
/v1/messages との違い
| 観点 | /v1/messages | /v1/chat/completions |
|---|---|---|
| プロトコル | Anthropic | OpenAI |
| 利用可能モデル | すべての Claude モデル | gpt-5* / google/gemini-* |
| 必須フィールド | max_tokens | — |
| 利用量フィールド | input_tokens / output_tokens | prompt_tokens / completion_tokens |