쿠키를 사용합니다. 쿠키와 브라우저 저장소는 로그인 상태를 유지하고 환경설정을 기억합니다. 동의하시면 사이트 이용 방식도 측정합니다. 언제든지 할 수 있습니다. 자세한 내용은 쿠키 정책을 참고하세요.

Reasoning

엔드포인트

Reasoning

reasoning 파라미터로 추론 모델의 사고 예산과 노력 수준, 추론 출력 포함 여부를 제어하는 방법을 요청 예제로 설명하고 응답 구조와 추론 토큰이 과금되는 방식, 오류를 다룹니다. 알아 둘 참고 사항과 오류 사례도 정리했습니다.

플레이그라운드에서 사용해 보기

추론 모델은 답하기 전에 생각합니다. OpenAI GPT-5와 o 시리즈, 확장 사고를 쓰는 Claude, Gemini 2.5, DeepSeek R1, Qwen 등이 여기에 해당합니다. api14는 reasoning 파라미터 하나를 받아 각 제공자의 고유 설정으로 바꿉니다. 추론 토큰은 출력 토큰으로 과금됩니다.

요청 파라미터

파라미터타입설명
reasoning.effortstring"minimal", "low", "medium", "high" 중 하나. OpenAI와 Grok 모델에서 쓰이며, 다른 모델에서는 토큰 예산으로 바뀝니다.
reasoning.max_tokensinteger생각에 쓸 정확한 토큰 예산. Anthropic, Gemini, Qwen에서 쓰입니다. 둘 중 하나만 사용하고 둘 다 쓰지 마세요.
reasoning.excludeboolean모델은 여전히 추론하지만, 추론 텍스트는 응답에 포함되지 않습니다.
reasoning.enabledboolean기본 설정으로 추론을 켭니다.
include_reasoningboolean이전 방식의 스위치입니다. reasoning: {} 또는 reasoning.exclude: false와 같습니다.
{
  "model": "anthropic/claude-sonnet-4.5",
  "messages": [{ "role": "user", "content": "How many r's are in 'strawberry'? Think carefully." }],
  "reasoning": { "max_tokens": 2000 },
  "max_tokens": 4000
}

max_tokens는 생각과 답변을 모두 포함하므로 추론 예산보다 커야 합니다.

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api14.com/api/v1",
  apiKey: process.env.API14_API_KEY,
});

const result = await client.chat.completions.create({
  "model": "openai/gpt-5-mini",
  "messages": [
    {
      "role": "user",
      "content": "Explain vector databases in two sentences."
    }
  ],
  "reasoning": {
    "effort": "high"
  }
});
console.log(result.choices[0].message.content);

응답

추론 텍스트는 답변과 분리되어 message.reasoning에 반환됩니다. 일부 모델은 구조화된 reasoning_details도 반환합니다.

{
  "id": "gen-1760000000-think",
  "model": "anthropic/claude-sonnet-4.5",
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": {
        "role": "assistant",
        "content": "There are 3 r's in \"strawberry\".",
        "reasoning": "s-t-r-a-w-b-e-r-r-y: r at position 3, 8 and 9..."
      }
    }
  ],
  "usage": {
    "prompt_tokens": 22,
    "completion_tokens": 312,
    "total_tokens": 334,
    "completion_tokens_details": { "reasoning_tokens": 290 },
    "cost": 0.004746
  }
}

스트리밍에서는 추론이 delta.content 청크보다 앞서 delta.reasoning 청크로 옵니다.

참고 사항

  • OpenAI의 o 시리즈와 GPT-5는 추론 텍스트를 반환하지 않지만, reasoning_tokens에 대한 요금은 그대로 청구됩니다.
  • Claude로 여러 턴에 걸쳐 도구를 쓸 때는 reasoning_details를 어시스턴트 메시지에 수정 없이 다시 보내야 모델이 추론을 이어갈 수 있습니다.
  • 일부 모델(예: deepseek/deepseek-r1)은 항상 추론합니다. 이런 모델에서는 effort가 적용되지 않습니다.
  • 노력 수준이 높을수록 비용이 늘고 시간도 더 걸립니다. completion_tokens_details.reasoning_tokens를 확인하세요.

오류

Chat completions와 같습니다. 모델에 비해 너무 작거나 큰 예산은 업스트림에서 400을 반환할 수 있습니다. 오류를 참고하세요.