curl --request POST \
--url https://api.apiyi.com/v1/responses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "dola-seed-2-1-turbo-260628",
"input": "Introduce yourself in one sentence"
}
'import requests
url = "https://api.apiyi.com/v1/responses"
payload = {
"model": "dola-seed-2-1-turbo-260628",
"input": "Introduce yourself in one sentence"
}
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: 'dola-seed-2-1-turbo-260628',
input: 'Introduce yourself in one sentence'
})
};
fetch('https://api.apiyi.com/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://api.apiyi.com/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' => 'dola-seed-2-1-turbo-260628',
'input' => 'Introduce yourself in one sentence'
]),
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://api.apiyi.com/v1/responses"
payload := strings.NewReader("{\n \"model\": \"dola-seed-2-1-turbo-260628\",\n \"input\": \"Introduce yourself in one sentence\"\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://api.apiyi.com/v1/responses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"dola-seed-2-1-turbo-260628\",\n \"input\": \"Introduce yourself in one sentence\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.apiyi.com/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\": \"dola-seed-2-1-turbo-260628\",\n \"input\": \"Introduce yourself in one sentence\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"status": "<string>",
"output": [
{}
],
"usage": {},
"caching": {}
}Seed 2.1 Turbo Responses API 레퍼런스
Seed 2.1 Turbo (dola-seed-2-1-turbo-260628) Responses API 레퍼런스 및 대화형 플레이그라운드: 네이티브 멀티턴 previous_response_id와 연결된 명시적 캐싱입니다.
curl --request POST \
--url https://api.apiyi.com/v1/responses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "dola-seed-2-1-turbo-260628",
"input": "Introduce yourself in one sentence"
}
'import requests
url = "https://api.apiyi.com/v1/responses"
payload = {
"model": "dola-seed-2-1-turbo-260628",
"input": "Introduce yourself in one sentence"
}
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: 'dola-seed-2-1-turbo-260628',
input: 'Introduce yourself in one sentence'
})
};
fetch('https://api.apiyi.com/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://api.apiyi.com/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' => 'dola-seed-2-1-turbo-260628',
'input' => 'Introduce yourself in one sentence'
]),
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://api.apiyi.com/v1/responses"
payload := strings.NewReader("{\n \"model\": \"dola-seed-2-1-turbo-260628\",\n \"input\": \"Introduce yourself in one sentence\"\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://api.apiyi.com/v1/responses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"dola-seed-2-1-turbo-260628\",\n \"input\": \"Introduce yourself in one sentence\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.apiyi.com/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\": \"dola-seed-2-1-turbo-260628\",\n \"input\": \"Introduce yourself in one sentence\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"status": "<string>",
"output": [
{}
],
"usage": {},
"caching": {}
}Bearer sk-your-api-key을 넣고, input를 입력한 다음 전송하십시오. 응답의 output 배열에서, type: "reasoning" 항목은 추론 요약이며 — type: "message"는 실제 답변입니다.id(resp_ 접두사)를 다음 호출의 previous_response_id로 전달하면 되며 — 히스토리를 다시 보낼 필요가 없습니다. 명시적 캐싱과 추론 제어는 Seed 2.1 Turbo 개요에서 다룹니다.- 작은
max_output_tokens는 추론에 잠식되어 빈 텍스트의status: "incomplete"를 반환합니다 — 1500부터 시작하십시오 - 명시적 캐싱
caching: {"type": "enabled"}은previous_response_id를 통해 연결된 경우에만 캐시 적중합니다; 동일한 접두사를 단순히 반복하는 것만으로는 절대 적중하지 않으며(암시적 접두사 캐시도 비활성화됩니다)
매개변수 빠른 참조
| 매개변수 | 유형 | 필수 | 기본값 | 비고 |
|---|---|---|---|---|
model | string | ✓ | — | 고정: dola-seed-2-1-turbo-260628 |
input | string / array | ✓ | — | 문자열 또는 메시지 배열(function_call_output 항목 포함) |
max_output_tokens | int | — | thinking을 포함한 출력 예산; 1500 이상 권장 | |
reasoning.effort | string | — | low / medium / high; 약 ~371(낮음) 대비 ~1317(높음) 추론 token 측정값 | |
previous_response_id | string | — | 기본 멀티턴을 위한 이전 응답 ID입니다. 전체 컨텍스트의 명시적 캐시 적중을 활성화합니다 | |
caching.type | string | disabled | enabled가 명시적 캐싱을 켭니다(체이닝 필요) | |
store | bool | true | 나중에 참조할 수 있도록 이 응답을 저장합니다 | |
stream | bool | false | SSE 이벤트 스트림(response.created → response.completed) | |
text.format | object | — | 구조화된 출력, json_schema + strict 지원 | |
tools | array | — | 함수 호출 도구 목록(평면 형식) |
응답 하이라이트
status가incomplete일 때는incomplete_details.reason을 확인합니다(보통length입니다: 추론이 예산을 소진했습니다)- 추론 사용량:
usage.output_tokens_details.reasoning_tokens - 캐시 적중:
usage.input_tokens_details.cached_tokens(연속된 2번째 턴은 테스트에서 이전 컨텍스트 전체를 적중했고, 지연 시간이 대략 절반으로 줄었습니다) - 응답의
caching필드는 실제로 적용된 캐시 모드를 반영합니다
인증
API Key from the APIYI console
본문
Model ID, fixed to dola-seed-2-1-turbo-260628
dola-seed-2-1-turbo-260628 Input content. Either a string or a message array ([{role, content}, ...], including function_call_output items)
"Introduce yourself in one sentence"
Max output tokens (thinking included). Too small yields incomplete with empty text - use 1500+
Thinking depth control. Measured: effort low ~371, high ~1317 reasoning tokens
Show child attributes
Show child attributes
Previous response id (resp_ prefix) for native multi-turn; combine with caching.enabled for explicit cache hits
Explicit cache switch. enabled only hits when chained via previous_response_id
Show child attributes
Show child attributes
Whether to store this response for later previous_response_id reference
Stream via SSE (response.created → response.output_text.delta → response.completed)
Structured output. Supports {"format": {"type": "json_schema", name, strict, schema}}
Function-calling tool list (flat Responses format: {type, name, description, parameters})
응답
Generation succeeded. The output array contains reasoning and message items
Response ID (resp_ prefix), usable as the next turn's previous_response_id
completed / incomplete (incomplete when thinking eats the token budget)
Output items: reasoning (thinking summary), message (text), function_call, etc.
Usage. output_tokens_details.reasoning_tokens = thinking spend; input_tokens_details.cached_tokens = cache hits
The cache mode actually in effect for this request
이 페이지가 도움이 되었나요?