Chat Completions API
POST /v1/chat/completions — Cursor、LangChain、LiteLLM、OpenAI SDK向けのOpenAI形式のエンドポイント。
OpenAI互換インターフェース。モデルと料金は同じで、データの外側の構造が異なります。
エンドポイント
POST https://aiprimetech.io/v1/chat/completionsSDK用のベースURL
https://aiprimetech.io/v1 — /v1に注意認証
Authorization: Bearer sk-...リクエストボディ
| 項目 | 種類 | 必須 | 説明 |
|---|---|---|---|
model | 文字列 | はい | 次の取得元に含まれる任意のID: /v1/models(ClaudeのIDも含む) |
messages | 配列 | はい | system、user、assistantロールに対応 |
max_tokens | 整数 | いいえ | Messages APIとは異なり、ここでは省略可能 |
temperature | 数値 | いいえ | OpenAIの規約では0~2 |
stream | ブール値 | いいえ | SSEチャンクを使用する場合はtrue |
tools | 配列 | いいえ | OpenAIの関数呼び出し形式 |
Messagesとは異なり、
system は ここではロールです。次の配列の先頭要素として配置してください: messages。このエンドポイントには、トップレベルの system フィールドを送信しないでください。例
curl https://aiprimetech.io/v1/chat/completions \
-H "Authorization: Bearer $CLAUDEAPIKEY" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [{"role": "user", "content": "Hello"}]
}'
レスポンス
{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "claude-sonnet-4-6",
"choices": [{
"index": 0,
"message": {"role": "assistant", "content": "..."},
"finish_reason": "stop"
}],
"usage": {"prompt_tokens": 9, "completion_tokens": 12, "total_tokens": 21}
}
OpenAI SDKの使用
from openai import OpenAI
client = OpenAI(
api_key=class="s">"sk-your-key",
base_url=class="s">"https://aiprimetech.io/v1", class=class="s">"c"># the /v1 matters
)
resp = client.chat.completions.create(
model=class="s">"claude-sonnet-4-6",
messages=[{class="s">"role": class="s">"user", class="s">"content": class="s">"Hello"}],
)
print(resp.choices[0].message.content)
両形式間のフィールド対応
| 概念 | Messages | Chat Completions |
|---|---|---|
| システムプロンプト | トップレベル system | messages[0] systemロールを指定 |
| 応答テキスト | content[0].text | choices[0].message.content |
| 停止理由 | stop_reason | finish_reason |
| 入力トークン | usage.input_tokens | usage.prompt_tokens |
| 出力トークン数 | usage.output_tokens | usage.completion_tokens |
| ストリームの差分 | content_block_delta | choices[0].delta.content |