curl --request POST \
--url https://direct.evolink.ai/v1/responses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-6-astra",
"input": "Search for AI news from the past week and summarize it in three sentences.",
"instructions": "You are a concise assistant. Answer in no more than three sentences.",
"stream": false,
"max_output_tokens": 2048,
"reasoning": {
"effort": "medium",
"summary": "auto",
"mode": "standard",
"context": "current_turn"
},
"text": {
"format": {},
"verbosity": "medium"
},
"tools": [
{
"type": "web_search"
}
],
"max_tool_calls": 5,
"parallel_tool_calls": true,
"previous_response_id": "resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5",
"store": true,
"include": [
"reasoning.encrypted_content"
],
"temperature": 1,
"top_p": 1,
"top_logprobs": 2,
"frequency_penalty": 0,
"presence_penalty": 0,
"truncation": "auto",
"context_management": [
{}
],
"prompt_cache_key": "app-agent-v1",
"prompt_cache_retention": "in_memory",
"prompt": {
"id": "<string>",
"version": "<string>",
"variables": {}
},
"metadata": {
"trace_id": "abc-123"
},
"safety_identifier": "user-1024",
"user": "user-1024"
}
'import requests
url = "https://direct.evolink.ai/v1/responses"
payload = {
"model": "gpt-6-astra",
"input": "Search for AI news from the past week and summarize it in three sentences.",
"instructions": "You are a concise assistant. Answer in no more than three sentences.",
"stream": False,
"max_output_tokens": 2048,
"reasoning": {
"effort": "medium",
"summary": "auto",
"mode": "standard",
"context": "current_turn"
},
"text": {
"format": {},
"verbosity": "medium"
},
"tools": [{ "type": "web_search" }],
"max_tool_calls": 5,
"parallel_tool_calls": True,
"previous_response_id": "resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5",
"store": True,
"include": ["reasoning.encrypted_content"],
"temperature": 1,
"top_p": 1,
"top_logprobs": 2,
"frequency_penalty": 0,
"presence_penalty": 0,
"truncation": "auto",
"context_management": [{}],
"prompt_cache_key": "app-agent-v1",
"prompt_cache_retention": "in_memory",
"prompt": {
"id": "<string>",
"version": "<string>",
"variables": {}
},
"metadata": { "trace_id": "abc-123" },
"safety_identifier": "user-1024",
"user": "user-1024"
}
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-astra',
input: 'Search for AI news from the past week and summarize it in three sentences.',
instructions: 'You are a concise assistant. Answer in no more than three sentences.',
stream: false,
max_output_tokens: 2048,
reasoning: {effort: 'medium', summary: 'auto', mode: 'standard', context: 'current_turn'},
text: {format: {}, verbosity: 'medium'},
tools: [{type: 'web_search'}],
max_tool_calls: 5,
parallel_tool_calls: true,
previous_response_id: 'resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5',
store: true,
include: ['reasoning.encrypted_content'],
temperature: 1,
top_p: 1,
top_logprobs: 2,
frequency_penalty: 0,
presence_penalty: 0,
truncation: 'auto',
context_management: [{}],
prompt_cache_key: 'app-agent-v1',
prompt_cache_retention: 'in_memory',
prompt: {id: '<string>', version: '<string>', variables: {}},
metadata: {trace_id: 'abc-123'},
safety_identifier: 'user-1024',
user: 'user-1024'
})
};
fetch('https://direct.evolink.ai/v1/responses', 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/responses",
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-astra',
'input' => 'Search for AI news from the past week and summarize it in three sentences.',
'instructions' => 'You are a concise assistant. Answer in no more than three sentences.',
'stream' => false,
'max_output_tokens' => 2048,
'reasoning' => [
'effort' => 'medium',
'summary' => 'auto',
'mode' => 'standard',
'context' => 'current_turn'
],
'text' => [
'format' => [
],
'verbosity' => 'medium'
],
'tools' => [
[
'type' => 'web_search'
]
],
'max_tool_calls' => 5,
'parallel_tool_calls' => true,
'previous_response_id' => 'resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5',
'store' => true,
'include' => [
'reasoning.encrypted_content'
],
'temperature' => 1,
'top_p' => 1,
'top_logprobs' => 2,
'frequency_penalty' => 0,
'presence_penalty' => 0,
'truncation' => 'auto',
'context_management' => [
[
]
],
'prompt_cache_key' => 'app-agent-v1',
'prompt_cache_retention' => 'in_memory',
'prompt' => [
'id' => '<string>',
'version' => '<string>',
'variables' => [
]
],
'metadata' => [
'trace_id' => 'abc-123'
],
'safety_identifier' => 'user-1024',
'user' => 'user-1024'
]),
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/responses"
payload := strings.NewReader("{\n \"model\": \"gpt-6-astra\",\n \"input\": \"Search for AI news from the past week and summarize it in three sentences.\",\n \"instructions\": \"You are a concise assistant. Answer in no more than three sentences.\",\n \"stream\": false,\n \"max_output_tokens\": 2048,\n \"reasoning\": {\n \"effort\": \"medium\",\n \"summary\": \"auto\",\n \"mode\": \"standard\",\n \"context\": \"current_turn\"\n },\n \"text\": {\n \"format\": {},\n \"verbosity\": \"medium\"\n },\n \"tools\": [\n {\n \"type\": \"web_search\"\n }\n ],\n \"max_tool_calls\": 5,\n \"parallel_tool_calls\": true,\n \"previous_response_id\": \"resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5\",\n \"store\": true,\n \"include\": [\n \"reasoning.encrypted_content\"\n ],\n \"temperature\": 1,\n \"top_p\": 1,\n \"top_logprobs\": 2,\n \"frequency_penalty\": 0,\n \"presence_penalty\": 0,\n \"truncation\": \"auto\",\n \"context_management\": [\n {}\n ],\n \"prompt_cache_key\": \"app-agent-v1\",\n \"prompt_cache_retention\": \"in_memory\",\n \"prompt\": {\n \"id\": \"<string>\",\n \"version\": \"<string>\",\n \"variables\": {}\n },\n \"metadata\": {\n \"trace_id\": \"abc-123\"\n },\n \"safety_identifier\": \"user-1024\",\n \"user\": \"user-1024\"\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/responses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"gpt-6-astra\",\n \"input\": \"Search for AI news from the past week and summarize it in three sentences.\",\n \"instructions\": \"You are a concise assistant. Answer in no more than three sentences.\",\n \"stream\": false,\n \"max_output_tokens\": 2048,\n \"reasoning\": {\n \"effort\": \"medium\",\n \"summary\": \"auto\",\n \"mode\": \"standard\",\n \"context\": \"current_turn\"\n },\n \"text\": {\n \"format\": {},\n \"verbosity\": \"medium\"\n },\n \"tools\": [\n {\n \"type\": \"web_search\"\n }\n ],\n \"max_tool_calls\": 5,\n \"parallel_tool_calls\": true,\n \"previous_response_id\": \"resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5\",\n \"store\": true,\n \"include\": [\n \"reasoning.encrypted_content\"\n ],\n \"temperature\": 1,\n \"top_p\": 1,\n \"top_logprobs\": 2,\n \"frequency_penalty\": 0,\n \"presence_penalty\": 0,\n \"truncation\": \"auto\",\n \"context_management\": [\n {}\n ],\n \"prompt_cache_key\": \"app-agent-v1\",\n \"prompt_cache_retention\": \"in_memory\",\n \"prompt\": {\n \"id\": \"<string>\",\n \"version\": \"<string>\",\n \"variables\": {}\n },\n \"metadata\": {\n \"trace_id\": \"abc-123\"\n },\n \"safety_identifier\": \"user-1024\",\n \"user\": \"user-1024\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://direct.evolink.ai/v1/responses")
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-astra\",\n \"input\": \"Search for AI news from the past week and summarize it in three sentences.\",\n \"instructions\": \"You are a concise assistant. Answer in no more than three sentences.\",\n \"stream\": false,\n \"max_output_tokens\": 2048,\n \"reasoning\": {\n \"effort\": \"medium\",\n \"summary\": \"auto\",\n \"mode\": \"standard\",\n \"context\": \"current_turn\"\n },\n \"text\": {\n \"format\": {},\n \"verbosity\": \"medium\"\n },\n \"tools\": [\n {\n \"type\": \"web_search\"\n }\n ],\n \"max_tool_calls\": 5,\n \"parallel_tool_calls\": true,\n \"previous_response_id\": \"resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5\",\n \"store\": true,\n \"include\": [\n \"reasoning.encrypted_content\"\n ],\n \"temperature\": 1,\n \"top_p\": 1,\n \"top_logprobs\": 2,\n \"frequency_penalty\": 0,\n \"presence_penalty\": 0,\n \"truncation\": \"auto\",\n \"context_management\": [\n {}\n ],\n \"prompt_cache_key\": \"app-agent-v1\",\n \"prompt_cache_retention\": \"in_memory\",\n \"prompt\": {\n \"id\": \"<string>\",\n \"version\": \"<string>\",\n \"variables\": {}\n },\n \"metadata\": {\n \"trace_id\": \"abc-123\"\n },\n \"safety_identifier\": \"user-1024\",\n \"user\": \"user-1024\"\n}"
response = http.request(request)
puts response.read_body{
"id": "resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5",
"object": "response",
"status": "completed",
"model": "gpt-6-astra",
"created_at": 1786705221,
"output": [
{
"id": "<string>",
"type": "web_search_call",
"status": "completed",
"content": [
{}
],
"encrypted_content": "<string>"
}
],
"incomplete_details": {},
"usage": {
"input_tokens": 18,
"output_tokens": 42,
"total_tokens": 60,
"input_tokens_details": {
"cached_tokens": 0,
"cache_write_tokens": 0
},
"output_tokens_details": {
"reasoning_tokens": 16
}
},
"metadata": {}
}{
"error": {
"code": 400,
"message": "Invalid value: '__bogus__'. Supported values are: 'auto' and 'disabled'.",
"type": "invalid_request_error",
"param": "truncation"
}
}{
"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/billing"
}
}{
"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"
}
}API tous modèles GPT - Référence complète Responses
- API Responses compatible OpenAI pour les modèles de texte de la série GPT ; le modèle précis est choisi via
model(toutes les valeurs possibles figurent dans le tableau comparatif du paramètremodel) - Toute la série est composée de modèles de raisonnement ; la profondeur se contrôle via
reasoning.effortet les tokens de raisonnement sont facturés comme des tokens de sortie - Le cache de prompts s’applique automatiquement : les tokens d’entrée servis depuis le cache sont facturés au tarif de cache, plus bas
- Prend en charge les modes synchrone et streaming (SSE)
- Outils côté serveur :
web_search(recherche web),code_interpreter(exécution de code),file_search(recherche documentaire) - Les outils
functionordinaires (appels de fonctions côté client) sont également pris en charge - Les conversations à plusieurs tours peuvent être enchaînées avec
previous_response_id - Remarque Le périmètre de prise en charge de certains paramètres varie selon le modèle ; voir les notes de chaque paramètre ci-dessous
curl --request POST \
--url https://direct.evolink.ai/v1/responses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-6-astra",
"input": "Search for AI news from the past week and summarize it in three sentences.",
"instructions": "You are a concise assistant. Answer in no more than three sentences.",
"stream": false,
"max_output_tokens": 2048,
"reasoning": {
"effort": "medium",
"summary": "auto",
"mode": "standard",
"context": "current_turn"
},
"text": {
"format": {},
"verbosity": "medium"
},
"tools": [
{
"type": "web_search"
}
],
"max_tool_calls": 5,
"parallel_tool_calls": true,
"previous_response_id": "resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5",
"store": true,
"include": [
"reasoning.encrypted_content"
],
"temperature": 1,
"top_p": 1,
"top_logprobs": 2,
"frequency_penalty": 0,
"presence_penalty": 0,
"truncation": "auto",
"context_management": [
{}
],
"prompt_cache_key": "app-agent-v1",
"prompt_cache_retention": "in_memory",
"prompt": {
"id": "<string>",
"version": "<string>",
"variables": {}
},
"metadata": {
"trace_id": "abc-123"
},
"safety_identifier": "user-1024",
"user": "user-1024"
}
'import requests
url = "https://direct.evolink.ai/v1/responses"
payload = {
"model": "gpt-6-astra",
"input": "Search for AI news from the past week and summarize it in three sentences.",
"instructions": "You are a concise assistant. Answer in no more than three sentences.",
"stream": False,
"max_output_tokens": 2048,
"reasoning": {
"effort": "medium",
"summary": "auto",
"mode": "standard",
"context": "current_turn"
},
"text": {
"format": {},
"verbosity": "medium"
},
"tools": [{ "type": "web_search" }],
"max_tool_calls": 5,
"parallel_tool_calls": True,
"previous_response_id": "resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5",
"store": True,
"include": ["reasoning.encrypted_content"],
"temperature": 1,
"top_p": 1,
"top_logprobs": 2,
"frequency_penalty": 0,
"presence_penalty": 0,
"truncation": "auto",
"context_management": [{}],
"prompt_cache_key": "app-agent-v1",
"prompt_cache_retention": "in_memory",
"prompt": {
"id": "<string>",
"version": "<string>",
"variables": {}
},
"metadata": { "trace_id": "abc-123" },
"safety_identifier": "user-1024",
"user": "user-1024"
}
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-astra',
input: 'Search for AI news from the past week and summarize it in three sentences.',
instructions: 'You are a concise assistant. Answer in no more than three sentences.',
stream: false,
max_output_tokens: 2048,
reasoning: {effort: 'medium', summary: 'auto', mode: 'standard', context: 'current_turn'},
text: {format: {}, verbosity: 'medium'},
tools: [{type: 'web_search'}],
max_tool_calls: 5,
parallel_tool_calls: true,
previous_response_id: 'resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5',
store: true,
include: ['reasoning.encrypted_content'],
temperature: 1,
top_p: 1,
top_logprobs: 2,
frequency_penalty: 0,
presence_penalty: 0,
truncation: 'auto',
context_management: [{}],
prompt_cache_key: 'app-agent-v1',
prompt_cache_retention: 'in_memory',
prompt: {id: '<string>', version: '<string>', variables: {}},
metadata: {trace_id: 'abc-123'},
safety_identifier: 'user-1024',
user: 'user-1024'
})
};
fetch('https://direct.evolink.ai/v1/responses', 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/responses",
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-astra',
'input' => 'Search for AI news from the past week and summarize it in three sentences.',
'instructions' => 'You are a concise assistant. Answer in no more than three sentences.',
'stream' => false,
'max_output_tokens' => 2048,
'reasoning' => [
'effort' => 'medium',
'summary' => 'auto',
'mode' => 'standard',
'context' => 'current_turn'
],
'text' => [
'format' => [
],
'verbosity' => 'medium'
],
'tools' => [
[
'type' => 'web_search'
]
],
'max_tool_calls' => 5,
'parallel_tool_calls' => true,
'previous_response_id' => 'resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5',
'store' => true,
'include' => [
'reasoning.encrypted_content'
],
'temperature' => 1,
'top_p' => 1,
'top_logprobs' => 2,
'frequency_penalty' => 0,
'presence_penalty' => 0,
'truncation' => 'auto',
'context_management' => [
[
]
],
'prompt_cache_key' => 'app-agent-v1',
'prompt_cache_retention' => 'in_memory',
'prompt' => [
'id' => '<string>',
'version' => '<string>',
'variables' => [
]
],
'metadata' => [
'trace_id' => 'abc-123'
],
'safety_identifier' => 'user-1024',
'user' => 'user-1024'
]),
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/responses"
payload := strings.NewReader("{\n \"model\": \"gpt-6-astra\",\n \"input\": \"Search for AI news from the past week and summarize it in three sentences.\",\n \"instructions\": \"You are a concise assistant. Answer in no more than three sentences.\",\n \"stream\": false,\n \"max_output_tokens\": 2048,\n \"reasoning\": {\n \"effort\": \"medium\",\n \"summary\": \"auto\",\n \"mode\": \"standard\",\n \"context\": \"current_turn\"\n },\n \"text\": {\n \"format\": {},\n \"verbosity\": \"medium\"\n },\n \"tools\": [\n {\n \"type\": \"web_search\"\n }\n ],\n \"max_tool_calls\": 5,\n \"parallel_tool_calls\": true,\n \"previous_response_id\": \"resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5\",\n \"store\": true,\n \"include\": [\n \"reasoning.encrypted_content\"\n ],\n \"temperature\": 1,\n \"top_p\": 1,\n \"top_logprobs\": 2,\n \"frequency_penalty\": 0,\n \"presence_penalty\": 0,\n \"truncation\": \"auto\",\n \"context_management\": [\n {}\n ],\n \"prompt_cache_key\": \"app-agent-v1\",\n \"prompt_cache_retention\": \"in_memory\",\n \"prompt\": {\n \"id\": \"<string>\",\n \"version\": \"<string>\",\n \"variables\": {}\n },\n \"metadata\": {\n \"trace_id\": \"abc-123\"\n },\n \"safety_identifier\": \"user-1024\",\n \"user\": \"user-1024\"\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/responses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"gpt-6-astra\",\n \"input\": \"Search for AI news from the past week and summarize it in three sentences.\",\n \"instructions\": \"You are a concise assistant. Answer in no more than three sentences.\",\n \"stream\": false,\n \"max_output_tokens\": 2048,\n \"reasoning\": {\n \"effort\": \"medium\",\n \"summary\": \"auto\",\n \"mode\": \"standard\",\n \"context\": \"current_turn\"\n },\n \"text\": {\n \"format\": {},\n \"verbosity\": \"medium\"\n },\n \"tools\": [\n {\n \"type\": \"web_search\"\n }\n ],\n \"max_tool_calls\": 5,\n \"parallel_tool_calls\": true,\n \"previous_response_id\": \"resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5\",\n \"store\": true,\n \"include\": [\n \"reasoning.encrypted_content\"\n ],\n \"temperature\": 1,\n \"top_p\": 1,\n \"top_logprobs\": 2,\n \"frequency_penalty\": 0,\n \"presence_penalty\": 0,\n \"truncation\": \"auto\",\n \"context_management\": [\n {}\n ],\n \"prompt_cache_key\": \"app-agent-v1\",\n \"prompt_cache_retention\": \"in_memory\",\n \"prompt\": {\n \"id\": \"<string>\",\n \"version\": \"<string>\",\n \"variables\": {}\n },\n \"metadata\": {\n \"trace_id\": \"abc-123\"\n },\n \"safety_identifier\": \"user-1024\",\n \"user\": \"user-1024\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://direct.evolink.ai/v1/responses")
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-astra\",\n \"input\": \"Search for AI news from the past week and summarize it in three sentences.\",\n \"instructions\": \"You are a concise assistant. Answer in no more than three sentences.\",\n \"stream\": false,\n \"max_output_tokens\": 2048,\n \"reasoning\": {\n \"effort\": \"medium\",\n \"summary\": \"auto\",\n \"mode\": \"standard\",\n \"context\": \"current_turn\"\n },\n \"text\": {\n \"format\": {},\n \"verbosity\": \"medium\"\n },\n \"tools\": [\n {\n \"type\": \"web_search\"\n }\n ],\n \"max_tool_calls\": 5,\n \"parallel_tool_calls\": true,\n \"previous_response_id\": \"resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5\",\n \"store\": true,\n \"include\": [\n \"reasoning.encrypted_content\"\n ],\n \"temperature\": 1,\n \"top_p\": 1,\n \"top_logprobs\": 2,\n \"frequency_penalty\": 0,\n \"presence_penalty\": 0,\n \"truncation\": \"auto\",\n \"context_management\": [\n {}\n ],\n \"prompt_cache_key\": \"app-agent-v1\",\n \"prompt_cache_retention\": \"in_memory\",\n \"prompt\": {\n \"id\": \"<string>\",\n \"version\": \"<string>\",\n \"variables\": {}\n },\n \"metadata\": {\n \"trace_id\": \"abc-123\"\n },\n \"safety_identifier\": \"user-1024\",\n \"user\": \"user-1024\"\n}"
response = http.request(request)
puts response.read_body{
"id": "resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5",
"object": "response",
"status": "completed",
"model": "gpt-6-astra",
"created_at": 1786705221,
"output": [
{
"id": "<string>",
"type": "web_search_call",
"status": "completed",
"content": [
{}
],
"encrypted_content": "<string>"
}
],
"incomplete_details": {},
"usage": {
"input_tokens": 18,
"output_tokens": 42,
"total_tokens": 60,
"input_tokens_details": {
"cached_tokens": 0,
"cache_write_tokens": 0
},
"output_tokens_details": {
"reasoning_tokens": 16
}
},
"metadata": {}
}{
"error": {
"code": 400,
"message": "Invalid value: '__bogus__'. Supported values are: 'auto' and 'disabled'.",
"type": "invalid_request_error",
"param": "truncation"
}
}{
"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/billing"
}
}{
"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, qui offre une meilleure prise en charge des modèles de texte et des connexions persistantes. https://api.evolink.ai est le point d’accès principal pour les services multimodaux et sert d’adresse de secours pour les modèles de texte.web_search, code_interpreter, file_search, mcp) s’exécutent sur le serveur : le client n’a pas besoin d’en retransmettre les résultats, et ils ne sont proposés que sur cette API. Le point de terminaison Chat Completions ne prend en charge que les appels d’outils function ordinaires.background: true n’est pas pris en charge, et aucun point de terminaison ne permet de consulter, d’annuler ou de supprimer une réponse par son ID. Pour les générations longues, utilisez stream: true afin de maintenir la connexion ouverte.L’outil image_generation n’est pas disponible sur cette série de modèles ; pour la génération d’images, utilisez les API des modèles de la série image.id retourné au tour précédent comme previous_response_id du tour suivant pour poursuivre le contexte. Les réponses ont une durée de conservation ; une fois expirée, cet ID n’est plus valide et la requête est traitée comme une nouvelle conversation. Pour les scénarios exigeant une grande exactitude du contexte, il est recommandé de gérer vous-même l’historique complet de input.Autorisations
##Toutes les API nécessitent une authentification Bearer Token##
Obtenir une clé API :
Visitez la Page de gestion des clés API pour obtenir votre clé API
Ajouter à l'en-tête de requête :
Authorization: Bearer YOUR_API_KEY
Corps
Modèle à appeler :
| ID du modèle | Fenêtre de contexte | Positionnement |
|---|---|---|
gpt-6-astra | 1 050 000 | Raisonnement phare pour les tâches de bout en bout exigeantes |
gpt-5.6-sol | 1 050 000 | Famille GPT-5.6, raisonnement de pointe |
gpt-5.6-terra | 1 050 000 | Famille GPT-5.6, production équilibrée |
gpt-5.6-luna | 1 050 000 | Famille GPT-5.6, débit élevé et maîtrise des coûts |
gpt-5.5 | 400 000 | Modèle de raisonnement polyvalent |
gpt-5.4 | 128 000 | Modèle de raisonnement polyvalent |
gpt-5.2 | 400 000 | Modèle de raisonnement polyvalent |
gpt-5.1 | 400 000 | Modèle de raisonnement polyvalent |
gpt-6-astra, 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-astra"
Entrée du modèle : une simple chaîne de caractères, ou un tableau d'éléments d'entrée.
Le content d'un élément d'entrée prend en charge deux types de blocs : input_text (texte) et input_image (image) :
"input": [
{
"role": "user",
"content": [
{ "type": "input_text", "text": "Que voit-on sur cette image ?" },
{
"type": "input_image",
"image_url": "https://example.com/photo.png",
"detail": "auto"
}
]
}
]
Image
- Transmettez dans
image_urll'URL publique de l'image image_urldoit être une chaîne de caractères ; l'écrire sous la forme{ "url": "..." }retourne400detailest au même niveau qu'image_url(et non imbriqué dedans) :auto(par défaut) /low/high/original- L'image doit pouvoir être téléchargée, sinon
400est retourné
Résultats d'outils
- Le tableau peut aussi contenir des éléments de résultat d'outils du tour précédent, comme
function_call_output
Remarque Les types de blocs de cette API diffèrent de ceux de l'API Chat Completions (qui utilise text / image_url). Ils ne peuvent pas être mélangés ; une erreur de type retourne 400.
"Search for AI news from the past week and summarize it in three sentences."
Instructions au niveau système, équivalentes à insérer un message système tout au début de input. Lors de la poursuite d'une conversation avec previous_response_id, ce paramètre n'est pas hérité du tour précédent et doit être transmis à chaque tour.
"You are a concise assistant. Answer in no more than three sentences."
Indique s'il faut renvoyer une réponse en streaming (événements SSE, se terminant par response.completed). Par défaut false.
false
Nombre maximal de tokens à générer (tokens de raisonnement inclus). Lorsque la limite est atteinte, status vaut incomplete.
2048
Contrôle du raisonnement.
Les valeurs possibles d'effort (profondeur de raisonnement) varient selon le modèle :
| Modèle | Valeurs possibles |
|---|---|
gpt-6-astra | none, low, medium, high, xhigh, max |
gpt-5.6-sol / gpt-5.6-terra / gpt-5.6-luna | none, low, medium, high, xhigh, max |
gpt-5.5 / gpt-5.4 / gpt-5.2 | none, low, medium, high, xhigh |
gpt-5.1 | none, low, medium, high |
summary (résumé du raisonnement) : auto / concise / detailed, disponible sur toute la série. Une fois activé, un élément reasoning apparaît dans output.
mode (mode de raisonnement) : standard / pro, pris en charge par gpt-6-astra et la famille gpt-5.6.
context (portée du contexte de raisonnement) : auto / current_turn / all_turns, pris en charge par gpt-6-astra et la famille gpt-5.6.
Les tokens de raisonnement sont facturés comme des tokens de sortie et comptabilisés dans usage.output_tokens_details.reasoning_tokens.
Show child attributes
Show child attributes
Contrôle du texte de sortie :
format:{"type": "text"}(par défaut),{"type": "json_object"}, ou{"type": "json_schema", "name": "...", "schema": {...}, "strict": true}pour des résultats structurésverbosity:low/medium/high, contrôle le niveau de détail de la réponse
Show child attributes
Show child attributes
Déclaration des outils. Les outils côté serveur s'exécutent sur le serveur : le client n'a pas besoin d'en retransmettre les résultats :
| Type d'outil | Capacité |
|---|---|
web_search | Effectue une recherche web et consulte des pages (alias web_search_preview) |
code_interpreter | Exécute du code dans un bac à sable, nécessite "container": {"type": "auto"} |
file_search | Interroge un magasin vectoriel déjà créé, nécessite vector_store_ids |
mcp | Se connecte à un service MCP distant, nécessite server_label et server_url |
Les outils function ordinaires (appels de fonctions côté client) sont également pris en charge.
Remarque image_generation n'est pas disponible sur cette série de modèles ; utilisez plutôt les API des modèles de la série image.
Show child attributes
Show child attributes
[{ "type": "web_search" }]
Contrôle la sélection de l'outil : "auto" (par défaut) / "none" / "required", ou un objet imposant un outil précis, par ex. {"type": "web_search"}.
none, auto, required Limite du nombre total d'appels d'outils autorisés dans cette réponse.
5
Indique si le modèle peut appeler plusieurs outils en parallèle au cours d'un même tour. Valeur par défaut true.
Remarque gpt-6-astra, la famille gpt-5.6 et gpt-5.5 acceptent la valeur false ; sur gpt-5.4 / gpt-5.2 / gpt-5.1, ce paramètre est sans effet et se comporte toujours comme true.
true
L'id de la réponse précédente, utilisé pour enchaîner les tours de conversation sans retransmettre l'historique.
Remarque Doit être utilisé avec store: true (valeur par défaut). Les réponses ont une durée de conservation ; une fois expirée, cet ID n'est plus valide et la requête est traitée comme une nouvelle conversation, sans héritage du contexte. Pour les scénarios exigeant une grande exactitude du contexte, il est recommandé de gérer vous-même l'historique complet de input.
"resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5"
Indique si cette réponse est conservée côté serveur ; seules les réponses conservées peuvent être référencées par previous_response_id. Valeur par défaut true.
Remarque gpt-6-astra, la famille gpt-5.6 et gpt-5.5 acceptent la valeur false ; sur gpt-5.4 / gpt-5.2 / gpt-5.1, ce paramètre est sans effet et se comporte toujours comme true. Si vous ne souhaitez pas stocker les réponses, choisissez un modèle permettant de désactiver le stockage.
true
Contenus supplémentaires à retourner dans la réponse. Valeurs possibles :
reasoning.encrypted_contentmessage.output_text.logprobsweb_search_call.resultsweb_search_call.action.sourcesfile_search_call.resultscode_interpreter_call.outputsmessage.input_image.image_urlcomputer_call_output.output.image_url
Remarque message.output_text.logprobs n'est pas pris en charge par gpt-6-astra.
["reasoning.encrypted_content"]
Température d'échantillonnage, valeurs de 0 à 2. Plus la valeur est basse, plus la sortie est déterministe.
Remarque Sur gpt-5.4 / gpt-5.2 / gpt-5.1, la valeur 0 est sans effet (elle est traitée comme non transmise et remplacée par la valeur par défaut 1) ; pour une sortie plus déterministe, utilisez une valeur supérieure à 0, comme 0.01. GPT-6 Astra n'accepte que la valeur par défaut 1 ; toute autre valeur retourne 400.
0 <= x <= 21
Paramètre d'échantillonnage nucléus, valeurs de 0 à 1. Il est déconseillé de l'ajuster en même temps que temperature.
GPT-6 Astra n'accepte que la valeur par défaut 1 ; toute autre valeur retourne 400.
0 <= x <= 11
Nombre de tokens candidats retournés à chaque position, valeurs de 0 à 20 ; doit être utilisé avec include: ["message.output_text.logprobs"].
Remarque Pris en charge uniquement par la famille gpt-5.6 et gpt-5.5 ; les autres modèles ne prennent pas en charge ce paramètre.
0 <= x <= 202
Pénalité de fréquence, valeurs de -2 à 2, réduit la probabilité de contenus répétitifs.
Remarque Réglable sur la famille gpt-5.6 ; les autres modèles existants ne prennent pas en charge ce paramètre. GPT-6 Astra ne permet aucun réglage et n'accepte que la valeur par défaut 0 ; toute autre valeur retourne 400.
-2 <= x <= 20
Pénalité de présence, valeurs de -2 à 2, encourage le modèle à aborder de nouveaux sujets.
Remarque Réglable sur la famille gpt-5.6 ; les autres modèles existants ne prennent pas en charge ce paramètre. GPT-6 Astra ne permet aucun réglage et n'accepte que la valeur par défaut 0 ; toute autre valeur retourne 400.
-2 <= x <= 20
Traitement du contexte qui dépasse la fenêtre : disabled (par défaut, retourne directement une erreur) ou auto (tronque automatiquement la partie centrale).
auto, disabled "auto"
Configuration de compactage automatique des longues conversations, par exemple [{"type": "compaction", "compact_threshold": 100000}] : lorsque le contexte dépasse le seuil, l'historique est compacté automatiquement.
Remarque Pris en charge uniquement par gpt-6-astra et la famille gpt-5.6 ; les autres modèles ne prennent pas en charge ce paramètre.
Clé de regroupement du cache. Transmettre la même valeur pour des requêtes partageant le même préfixe améliore le taux de succès du cache de prompts.
"app-agent-v1"
Politique de conservation du cache de prompts : in_memory (par défaut) ou 24h (prolonge la durée de conservation du cache).
in_memory, 24h "in_memory"
Référence un modèle de prompt déjà créé, sous la forme {"id": "pmpt_xxx", "version": "1", "variables": {...}}.
Show child attributes
Show child attributes
Paires clé-valeur personnalisées retournées telles quelles avec la réponse, pratiques pour le marquage côté métier. Les clés et les valeurs sont des chaînes de caractères.
{ "trace_id": "abc-123" }
Identifiant stable de l'utilisateur final, utilisé pour le suivi des abus.
Remarque Pris en charge uniquement par gpt-6-astra et la famille gpt-5.6 ; les autres modèles ne prennent pas en charge ce paramètre.
"user-1024"
Identifiant de l'utilisateur final, utilisé pour distinguer l'origine des appels.
"user-1024"
Réponse
Réponse générée avec succès (objet JSON, ou flux d'événements SSE se terminant par response.completed lorsque stream=true)
Identifiant unique de cette réponse, utilisable comme previous_response_id au tour suivant
"resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5"
Type de réponse
response "response"
Statut de la réponse : completed pour une fin normale, incomplete lorsque la génération s'est arrêtée avant terme, par exemple en atteignant max_output_tokens, failed en cas d'échec de la génération
completed, incomplete, failed "completed"
Nom du modèle réellement utilisé
"gpt-6-astra"
Horodatage de création
1786705221
Éléments de sortie classés dans l'ordre de génération : l'élément reasoning (résumé du raisonnement / contenu de raisonnement chiffré), les éléments d'appel d'outils (comme web_search_call ou code_interpreter_call), puis enfin l'élément message contenant le contenu output_text.
Show child attributes
Show child attributes
Explique la raison lorsque status vaut incomplete
Statistiques d'utilisation des tokens. Le cache de prompts s'applique automatiquement ; les tokens d'entrée servis depuis le cache sont facturés au tarif de cache, plus bas.
Show child attributes
Show child attributes
Paires clé-valeur personnalisées transmises dans la requête, retournées telles quelles