curl --request POST \
--url https://direct.evolink.ai/v1/chat/completions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-6.1-sol",
"messages": [
{
"role": "user",
"content": "量子もつれを一文で説明してください。"
}
]
}
'import requests
url = "https://direct.evolink.ai/v1/chat/completions"
payload = {
"model": "gpt-6.1-sol",
"messages": [
{
"role": "user",
"content": "量子もつれを一文で説明してください。"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'gpt-6.1-sol',
messages: [{role: 'user', content: '量子もつれを一文で説明してください。'}]
})
};
fetch('https://direct.evolink.ai/v1/chat/completions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://direct.evolink.ai/v1/chat/completions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'gpt-6.1-sol',
'messages' => [
[
'role' => 'user',
'content' => '量子もつれを一文で説明してください。'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://direct.evolink.ai/v1/chat/completions"
payload := strings.NewReader("{\n \"model\": \"gpt-6.1-sol\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"量子もつれを一文で説明してください。\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://direct.evolink.ai/v1/chat/completions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"gpt-6.1-sol\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"量子もつれを一文で説明してください。\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://direct.evolink.ai/v1/chat/completions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"gpt-6.1-sol\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"量子もつれを一文で説明してください。\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "chatcmpl-CvJ2p8mQxK7nR4wS",
"object": "chat.completion",
"created": 1786705221,
"model": "gpt-6.1-sol",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Quantum entanglement means the states of two particles are correlated, so measuring one instantly determines the state of the other.",
"tool_calls": [
{}
]
},
"logprobs": {},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 18,
"completion_tokens": 42,
"total_tokens": 60,
"prompt_tokens_details": {
"cached_tokens": 0,
"cache_write_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 16
}
}
}{
"error": {
"code": 400,
"message": "Unsupported parameter: 'stop' is not supported with this model.",
"type": "invalid_request_error"
}
}{
"error": {
"code": 401,
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": 402,
"message": "Insufficient quota",
"type": "insufficient_quota_error",
"fallback_suggestion": "https://evolink.ai/dashboard/credits"
}
}{
"error": {
"code": 429,
"message": "Rate limit exceeded",
"type": "rate_limit_error",
"fallback_suggestion": "retry after 60 seconds"
}
}{
"error": {
"code": 500,
"message": "Internal server error",
"type": "internal_server_error",
"fallback_suggestion": "try again later"
}
}{
"error": {
"code": 503,
"message": "Service temporarily unavailable",
"type": "service_unavailable_error",
"fallback_suggestion": "retry after 30 seconds"
}
}GPT 全モデルインターフェース - Chat Completions 完全なパラメータ
- GPT シリーズのテキストモデル向け OpenAI 互換 Chat Completions API。具体的なモデルは
modelで選択します(指定可能な値はすべてmodelパラメータの対照表を参照) - 全シリーズが推論モデルで、推論の深さは
reasoning_effortで制御します。推論 token は出力 token として課金されます - Prompt キャッシュは自動的に有効:キャッシュにヒットした入力 token はより安いキャッシュ料金で課金されます
- 同期モードとストリーミング(SSE)モードに対応
- テキストと画像の混在入力、および
functionツール呼び出しに対応 - サーバーサイドツール(ウェブ検索、コード実行、ドキュメント検索、MCP)は Responses API でのみ提供されます
- 注意 サンプリング系パラメータ(
temperature、top_p、logprobsなど)は対応範囲がモデルごとに異なります。詳細は下記の各パラメータの説明をご覧ください
GPT-6:gpt-6-sol / gpt-6-luna のデフォルトは medium です。Chat Completions で関数を呼び出すには reasoning_effort: "none" を明示してください。gpt-6-astra と gpt-6.1-sol は none 非対応のため、関数呼び出しには Responses を使用してください。GPT-6 の max は Responses のみ対応しています。
curl --request POST \
--url https://direct.evolink.ai/v1/chat/completions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-6.1-sol",
"messages": [
{
"role": "user",
"content": "量子もつれを一文で説明してください。"
}
]
}
'import requests
url = "https://direct.evolink.ai/v1/chat/completions"
payload = {
"model": "gpt-6.1-sol",
"messages": [
{
"role": "user",
"content": "量子もつれを一文で説明してください。"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'gpt-6.1-sol',
messages: [{role: 'user', content: '量子もつれを一文で説明してください。'}]
})
};
fetch('https://direct.evolink.ai/v1/chat/completions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://direct.evolink.ai/v1/chat/completions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'gpt-6.1-sol',
'messages' => [
[
'role' => 'user',
'content' => '量子もつれを一文で説明してください。'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://direct.evolink.ai/v1/chat/completions"
payload := strings.NewReader("{\n \"model\": \"gpt-6.1-sol\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"量子もつれを一文で説明してください。\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://direct.evolink.ai/v1/chat/completions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"gpt-6.1-sol\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"量子もつれを一文で説明してください。\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://direct.evolink.ai/v1/chat/completions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"gpt-6.1-sol\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"量子もつれを一文で説明してください。\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "chatcmpl-CvJ2p8mQxK7nR4wS",
"object": "chat.completion",
"created": 1786705221,
"model": "gpt-6.1-sol",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Quantum entanglement means the states of two particles are correlated, so measuring one instantly determines the state of the other.",
"tool_calls": [
{}
]
},
"logprobs": {},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 18,
"completion_tokens": 42,
"total_tokens": 60,
"prompt_tokens_details": {
"cached_tokens": 0,
"cache_write_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 16
}
}
}{
"error": {
"code": 400,
"message": "Unsupported parameter: 'stop' is not supported with this model.",
"type": "invalid_request_error"
}
}{
"error": {
"code": 401,
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": 402,
"message": "Insufficient quota",
"type": "insufficient_quota_error",
"fallback_suggestion": "https://evolink.ai/dashboard/credits"
}
}{
"error": {
"code": 429,
"message": "Rate limit exceeded",
"type": "rate_limit_error",
"fallback_suggestion": "retry after 60 seconds"
}
}{
"error": {
"code": 500,
"message": "Internal server error",
"type": "internal_server_error",
"fallback_suggestion": "try again later"
}
}{
"error": {
"code": 503,
"message": "Service temporarily unavailable",
"type": "service_unavailable_error",
"fallback_suggestion": "retry after 30 seconds"
}
}https://direct.evolink.ai で、テキストモデルへの対応が優れており、長時間接続をサポートします。https://api.evolink.ai はマルチモーダルの主力エンドポイントで、テキストモデルに対しては代替アドレスとして使用されます。function ツール呼び出しのみに対応します。reasoning_effort: "none" が必要です。Astra と 6.1 Sol の関数呼び出し、および GPT-6 の max には Responses を使用してください。承認
##すべてのAPIにBearer Token認証が必要です##
APIキーの取得:
APIキー管理ページにアクセスしてAPIキーを取得してください
リクエストヘッダーに追加:
Authorization: Bearer YOUR_API_KEY
ボディ
呼び出すモデル:
| モデル ID | コンテキストウィンドウ | 位置づけ |
|---|---|---|
gpt-6.1-sol | 1,050,000 | Sol の新版:より低コストで Astra に近い性能(推奨) |
gpt-6-astra | 1,050,000 | 高難度のエンドツーエンド作業向けフラッグシップ推論 |
gpt-6-sol | 1,050,000 | 複雑なコーディングとエージェントワークフロー |
gpt-6-luna | 1,050,000 | 大量の分類・情報抽出とコスト効率 |
gpt-5.6-sol | 1,050,000 | GPT-5.6 ファミリー、最先端の推論 |
gpt-5.6-terra | 1,050,000 | GPT-5.6 ファミリー、バランス型の本番運用 |
gpt-5.6-luna | 1,050,000 | GPT-5.6 ファミリー、高スループットとコスト管理 |
gpt-5.5 | 400,000 | 汎用推論モデル |
gpt-5.4 | 128,000 | 汎用推論モデル |
gpt-5.2 | 400,000 | 汎用推論モデル |
gpt-5.1 | 400,000 | 汎用推論モデル |
gpt-6.1-sol, gpt-6-astra, gpt-6-sol, gpt-6-luna, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-5.5, gpt-5.4, gpt-5.2, gpt-5.1 "gpt-6.1-sol"
チャットメッセージのリスト。複数ターンのコンテキストとマルチモーダル入力に対応します。
role には system / developer / user / assistant / tool を指定できます。
content は文字列でも、コンテンツブロックの配列でも構いません。ブロックの種類は text(テキスト)と image_url(画像)の 2 つに対応しています:
"content": [ { "type": "text", "text": "この画像には何が写っていますか?" }, { "type": "image_url", "image_url": { "url": "https://example.com/photo.png", "detail": "auto" } } ]
画像
image_url.urlに画像の公開 URL を渡しますimage_urlは文字列として直接書くこともでき、{ "url": "..." }と同等ですdetailは画像解析の精度を制御します。auto(デフォルト)/low/high/original- 画像は正常にダウンロードできる必要があり、できない場合は
400が返されます
注意 この API のブロックの種類は Responses API とは異なります(Responses は input_text / input_image を使用)。両者は混在させられず、誤って指定すると 400 が返されます。
GPT-6 / GPT-5.6 の内容ブロックに設定する明示的なキャッシュ境界。書き込みは 1 リクエスト最大 4 箇所で、暗黙の境界も 1 箇所分を使います。 prompt_cache_breakpoint: {"mode": "explicit"}.
Show child attributes
Show child attributes
[ { "role": "system", "content": "You are a concise assistant." }, { "role": "user", "content": "Explain quantum entanglement in one sentence." } ]
ストリーミングで返すかどうか(SSE イベントストリーム。data: [DONE] で終了)。デフォルトは false。
false
推論を含む生成 token 数の上限です。max_completion_tokens を推奨します。GPT-6 は旧フィールド max_tokens を変換します。両方を指定した場合は max_completion_tokens を優先し、max_tokens を削除します。GPT-6 Astra / Sol / Luna と GPT-6.1 Sol の最大出力は 128,000 tokens です。
2048
推論の深さの制御。指定可能な値はモデルによって異なります:
| モデル | 指定可能な値 |
|---|---|
gpt-6-astra / gpt-6.1-sol | low、medium、high、xhigh |
gpt-6-sol / gpt-6-luna | none、low、medium、high、xhigh |
gpt-5.6-sol / gpt-5.6-terra / gpt-5.6-luna / gpt-5.5 | none、low、medium、high、xhigh |
gpt-5.4 / gpt-5.2 / gpt-5.1 | low、medium、high、xhigh |
推論 token は出力 token として課金され、usage.completion_tokens_details.reasoning_tokens に計上されます。
GPT-6 のデフォルトは medium です。gpt-6-astra と gpt-6.1-sol は none 非対応、gpt-6-sol / gpt-6-luna は対応しています。GPT-6 の max は Responses のみ使用できます。
none, low, medium, high, xhigh "medium"
回答の詳しさ:low / medium / high。
GPT-6 Sol / Luna と GPT-6.1 Sol:このパラメータの対応範囲は未確認です。基本的なリクエストでは省略してください。
以下は GPT-6 Sol / Luna と GPT-6.1 Sol を除く既存モデルの仕様です:
注意 gpt-6-astra、gpt-5.6-sol、gpt-5.6-terra、gpt-5.6-luna、gpt-5.5 が対応しています。その他のモデルはこのパラメータに対応していません。
low, medium, high "low"
サンプリング温度。値の範囲は 0 ~ 2。値が低いほど出力が決定的になります。
GPT-6:gpt-6-astra と gpt-6.1-sol ではこのパラメータを省略してください。gpt-6-sol / gpt-6-luna では推論レベル none の場合のみ調整できます。他のレベルでは省略してください。推論レベルを省略すると none ではなく medium になります。
既存モデル:gpt-5.5 / gpt-5.4 / gpt-5.2 / gpt-5.1 は調整可能です。gpt-5.6 ファミリーはデフォルト値 1 のみ受け付けます。
0 <= x <= 21
Nucleus サンプリングのパラメータ。値の範囲は 0 ~ 1。temperature と同時に調整しないことを推奨します。
GPT-6:gpt-6-astra と gpt-6.1-sol ではこのパラメータを省略してください。gpt-6-sol / gpt-6-luna では推論レベル none の場合のみ調整できます。他のレベルでは省略してください。推論レベルを省略すると none ではなく medium になります。
既存モデル:gpt-5.5 / gpt-5.4 / gpt-5.2 / gpt-5.1 は調整可能です。gpt-5.6 ファミリーはデフォルト値 1 のみ受け付けます。
0 <= x <= 11
Frequency ペナルティ。値の範囲は -2 ~ 2。正の値は token の出現頻度に応じてペナルティを課し、内容の繰り返しを減らします。
GPT-6 Sol / Luna と GPT-6.1 Sol:このパラメータの対応範囲は未確認です。基本的なリクエストでは省略してください。
以下は GPT-6 Sol / Luna と GPT-6.1 Sol を除く既存モデルの仕様です:
注意 gpt-5.4 / gpt-5.2 / gpt-5.1 でのみ調整できます。gpt-5.6 ファミリーと gpt-5.5 では調整できません。GPT-6 Astra はデフォルト値 0 のみを受け付け、それ以外の値を渡すと 400 が返されます。
-2 <= x <= 20
Presence ペナルティ。値の範囲は -2 ~ 2。正の値はモデルが新しい話題に触れることを促します。
GPT-6 Sol / Luna と GPT-6.1 Sol:このパラメータの対応範囲は未確認です。基本的なリクエストでは省略してください。
以下は GPT-6 Sol / Luna と GPT-6.1 Sol を除く既存モデルの仕様です:
注意 gpt-5.4 / gpt-5.2 / gpt-5.1 でのみ調整できます。gpt-5.6 ファミリーと gpt-5.5 では調整できません。GPT-6 Astra はデフォルト値 0 のみを受け付け、それ以外の値を渡すと 400 が返されます。
-2 <= x <= 20
出力 token ごとの対数確率を返すかどうか。
GPT-6:Astra と 6.1 Sol は出力 logprobs 非対応です。Sol / Luna では推論レベル none の場合のみ使用してください。他のレベルでは logprobs、top_logprobs、Responses の include 内の message.output_text.logprobs を削除してください。
以下は GPT-6 Sol / Luna と GPT-6.1 Sol を除く既存モデルの仕様です:
注意 gpt-5.4 / gpt-5.2 / gpt-5.1 のみ対応。gpt-5.6 ファミリーと gpt-5.5 はこのパラメータに対応していません。
GPT-6 Astra と GPT-6.1 Sol はこのパラメータに対応していません。
true
各位置で返される候補 token の数。値の範囲は 0 ~ 20。logprobs: true と併用する必要があります。
注意 対応範囲は logprobs と同じです。
GPT-6:Astra と 6.1 Sol は出力 logprobs 非対応です。Sol / Luna では推論レベル none の場合のみ使用してください。他のレベルでは logprobs、top_logprobs、Responses の include 内の message.output_text.logprobs を削除してください。
0 <= x <= 202
生成する候補応答の数。choices 配列に複数の結果として返されます。すべての token(各候補の出力を含む)が課金対象です。
GPT-6 Sol / Luna と GPT-6.1 Sol:このパラメータの対応範囲は未確認です。基本的なリクエストでは省略してください。
1
乱数シード。同じシードとパラメータの組み合わせであれば、モデルは可能な限り一貫した結果を返します(ベストエフォートであり、完全な再現性は保証されません)。
GPT-6 Sol / Luna と GPT-6.1 Sol:このパラメータの対応範囲は未確認です。基本的なリクエストでは省略してください。
42
出力形式の制御:
{"type": "text"}:デフォルトの自由テキスト{"type": "json_object"}:正しい JSON を返します。messagesにjsonという語が含まれている必要があり、含まれていない場合は400が返されます{"type": "json_schema", "json_schema": {...}}:指定した JSON Schema に従って構造化結果を出力します。"strict": trueと組み合わせるとスキーマへの準拠を強制できます
Show child attributes
Show child attributes
Function Calling(クライアント側の関数呼び出し。従量課金なし)に使うツールのリスト。
サーバーサイドツール(ウェブ検索、コード実行など)はこの API では提供していません。Responses API をご利用ください。
GPT-6:gpt-6-sol / gpt-6-luna のデフォルトは medium です。Chat Completions で関数を呼び出すには reasoning_effort: "none" を明示してください。gpt-6-astra と gpt-6.1-sol は none 非対応のため、関数呼び出しには Responses を使用してください。GPT-6 の max は Responses のみ対応しています。
Show child attributes
Show child attributes
ツール選択の制御:"auto"(デフォルト)/ "none" / "required"、またはオブジェクトで特定の関数を指定します。例:{"type": "function", "function": {"name": "get_weather"}}。
none, auto, required 1 ターン内でモデルが複数のツールを並列に呼び出せるかどうか。デフォルトは true。false にすると 1 つずつ順に呼び出させることができます。
GPT-6 Sol / Luna と GPT-6.1 Sol:このパラメータの対応範囲は未確認です。基本的なリクエストでは省略してください。
true
キャッシュのグループキーです。GPT-6 / GPT-5.6 はルーティングを自動処理するため、その最適化にこの値は不要です。顧客やユーザーごとの再利用と課金を分けるには別々のキーを使用できます。プレフィックスを共有するリクエストではキーを固定してください。旧モデルでは安定したキーがキャッシュのルーティングに役立ちます。
"app-chat-v1"
エンドユーザー識別子。呼び出し元を区別するために使用します。
"user-1024"
GPT-6 / GPT-5.6 のキャッシュ設定。デフォルトは暗黙のブレークポイントです。mode: "explicit" は明示したブレークポイントのみ使用し、未指定ならキャッシュされません。
Show child attributes
Show child attributes
{ "ttl": "30m", "mode": "implicit" }
レスポンス
チャット生成に成功(JSON オブジェクト。stream=true の場合は data: [DONE] で終了する SSE イベントストリーム)
今回の対話の一意の識別子
"chatcmpl-CvJ2p8mQxK7nR4wS"
レスポンスタイプ
chat.completion "chat.completion"
作成タイムスタンプ
1786705221
実際に使用されたモデル名
"gpt-6.1-sol"
生成結果のリスト(長さはリクエストの n と一致)
Show child attributes
Show child attributes