Anthropic: Claude Sonnet 4.6
Claude Sonnet 4.6는 개발, 긴 문서의 이해, 계획 수립, 시각 데이터 작업에 도움을 줍니다. 적응형 추론과 여러 단계의 도구 사용을 지원합니다.
모델 소개
이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.
코드, 문서, 작업 계획
Claude Sonnet 4.6는 프로그래밍, 큰 컨텍스트의 이해, 에이전트 계획 수립, 전문적인 정보 처리, 디자인을 결합합니다. Anthropic은 변경 전에 코드를 조사하는 능력과 여러 단계의 지시를 순차적으로 수행하는 능력을 강조합니다. 큰 프로젝트에서 문제를 찾고, 긴 문서를 분석하며, 보고서 내용을 준비하는 데 유용합니다.
모델은 하나의 요청에서 계약서, 연구 논문, 기타 자료의 정보를 분석할 수 있습니다. 과제에는 사실 추출, 이를 바탕으로 한 추론, 여러 부분을 결합한 결과 작성이 포함될 수 있습니다. 설명된 활용 분야에는 재무 분석과 구도 및 디자인에 주의를 기울이는 인터페이스 코드 작성도 있습니다.
시각 환경에서의 작업
Sonnet 4.6는 텍스트와 이미지를 이해하며, 자체 결과는 텍스트입니다. Anthropic은 모델이 스크린샷을 바탕으로 판단하고, 마우스와 키보드 작업을 선택하며, 복잡한 표나 웹 양식의 여러 단계를 분석하는 컴퓨터 사용 사례를 설명합니다. 실제 실행에는 화면을 전달하고 작업을 수행하는 애플리케이션의 도구가 필요합니다.
개발사의 일반 시각 입력 형식은 JPEG/PNG/GIF/WebP이며, 애니메이션은 첫 프레임을 사용합니다. 네이티브 분석 시 긴 변은 1568픽셀, 시각 토큰은 1568개입니다. 큰 이미지는 분석 전에 축소됩니다. 파일과 설정의 지원 여부는 애플리케이션의 호출 방식에 따라 달라집니다.
마찬가지로 문서, 스프레드시트, 프레젠테이션은 분석하거나 내용을 준비할 대상이 될 수 있지만, 완성된 파일을 출력하려면 적절한 환경이 필요합니다. 이미지는 차트, 도해, 자료의 시각적 구조를 이해하는 데 도움이 됩니다. 그렇다고 모델이 이미지 생성기로 바뀌는 것은 아닙니다.
분석을 조절하는 방식
이 버전은 적응형 추론과 수동 extended thinking을 지원합니다. 수동 모드는 사용이 권장되지 않는 기능으로 표시되어 있습니다. 적응형 모드에서는 도구 호출 사이를 포함해 언제 추가 분석이 유용한지 모델이 선택할 수 있습니다. effort 수준은 low, medium, high, max이며 기본은 high입니다. Anthropic에 따르면 노력 수준을 선택하면 작업의 상세 수준과 지연 시간을 과제의 성격에 맞출 수 있습니다.
현재 사양은 컨텍스트 100만 토큰과 일반 모드에서 응답 최대 12만 8000토큰을 명시합니다. 장기 작업을 위해 개발사는 오래된 컨텍스트를 요약으로 압축하는 실험적인 기능도 설명합니다. 이 기능에는 애플리케이션의 지원이 필요하며 모델 윈도의 제한을 없애지는 않습니다.
작업 시 고려할 점
내장 지식의 신뢰할 수 있는 기준 시점은 2025년 8월입니다. 이후 정보에는 지시 자료나 사용 가능한 검색이 필요합니다. 연결된 도구는 정보 검색, 코드 실행, 검색한 내용 처리에 도움을 줄 수 있습니다. 기능의 제공 여부와 허용되는 작업은 애플리케이션이 정합니다.
Sonnet 4.6는 외부 자료에 숨겨진 악성 지시에 저항하도록 학습되었지만, 복잡한 시각 환경과 모호한 지시는 여전히 오류를 일으킬 수 있습니다. 명확한 과제 요구 사항, 추출한 사실 확인, 작업 결과 평가는 모델을 신뢰성 있게 사용하는 과정의 일부입니다.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions claude-sonnet-4-6-thinking
claude-sonnet-4-6-thinking시작하기
Claude Sonnet 4.6는 개발, 긴 문서의 이해, 계획 수립, 시각 데이터 작업에 도움을 줍니다. 적응형 추론과 여러 단계의 도구 사용을 지원합니다.
- 허용 입력
- 텍스트
- 결과
- 텍스트
Ailoot에서 사용 가능 · 입력 및 메서드
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- 입력
text- 출력
text- 출력 형식
- json 또는 SSE
| 필드 | 유형 | 요건 | 값과 한도 | 기본값 |
|---|---|---|---|---|
필드model | 유형string | 요건필수 | 값과 한도 claude-sonnet-4-6-thinking | 기본값— |
필드messages | 유형message[] | 요건필수 | 값과 한도 최소 항목 수: 1 | 기본값— |
필드messages[].role | 유형string | 요건필수 | 값과 한도 모델에 따라 다름 | 기본값— |
필드messages[].content | 유형string | 요건선택 사항 | 값과 한도 적용 조건: 텍스트 대화 | 기본값— |
필드stream | 유형boolean | 요건선택 사항 | 값과 한도 | 기본값false |
입력 자료 조합
텍스트 · UTF8 텍스트
messages[].content
메서드 매개변수와 수명 주기
| 매개변수 | 명세 |
|---|---|
매개변수content_type | 명세application/json |
매개변수required | 명세model, messages |
매개변수material_types | 명세text |
매개변수messages | 명세role/content 형식의 메시지 배열 |
매개변수file_material | 명세실제 UTF-8 문서를 텍스트로 그대로 삽입합니다. 파일 ID는 추정하지 않습니다 |
매개변수optional_controls | 명세stream |
매개변수control_scope | 명세텍스트 대화. stream은 불리언이며 기본값은 false입니다. |
매개변수output_modalities | 명세text |
매개변수hosted_operations | 명세false |
매개변수multimodal_input_binding | 명세null |
메서드 별칭: /chat/completions
수명 주기: synchronous_or_streamed
정확한 모델 ID를 messages와 함께 보내세요.
컨텍스트 길이는 출력 상한이 아닙니다.
텍스트 파일은 텍스트를 그대로 제공할 수 있습니다. 이미지/오디오/파일 객체 입력에는 정확한 바인딩이 필요합니다.
요금
요금 정보는 요청 옵션을 추가하지 않습니다. 지원되는 매개변수는 선택한 메서드에 표시됩니다.
- 빠른 모드
- 미지정 빠른 모드를 선택한 경우
- Flex 모드
- 미지정 flex 모드를 선택한 경우
- 최대 추론 수준
- 미지정 최대 추론 수준에 default 조정값을 적용하는 경우
Ailoot 요금
설정별 가격
| 설정 | 요금표 | 요금 |
|---|---|---|
| 설정토큰의 기본 단가 | 요금표기본 요금 | 요금 입력 · 입력 토큰 $0.006 / 1K 토큰 출력 · 출력 토큰 $0.03 / 1K 토큰 입력 · 캐시 읽기 $0.0006 / 1K 토큰 입력 · 캐시 쓰기 $0.0075 / 1K 토큰 입력 · 캐시 쓰기, 1시간 — / 1K 토큰 |
Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. 금액 확보와 정산 방식 →
요청 예제
Ailoot Ultra · OpenAI Chat
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"claude-sonnet-4-6-thinking","messages":[{"role":"user","content":"hello"}],"stream":false}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os
if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="claude-sonnet-4-6-thinking", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path
def save_result(data, stem="result"):
# Keep every field, including usage, IDs, reasoning and tool requests.
Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(data, ensure_ascii=False, indent=2))
def save_blob(encoded, suffix, label):
raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
file = Path(stem + "-" + label + "." + ext)
file.write_bytes(raw)
print("Saved", file)
for index, block in enumerate(data.get("content") or []):
print("Content", index, json.dumps(block, ensure_ascii=False))
for choice in data.get("choices") or []:
print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
for index, item in enumerate(data.get("output") or []):
print("Output", index, json.dumps(item, ensure_ascii=False))
if item.get("type") == "image_generation_call" and item.get("result"):
save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
for ci, candidate in enumerate(data.get("candidates") or []):
for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
blob = part.get("inlineData") or part.get("inline_data")
if blob and blob.get("data"):
mime = blob.get("mimeType") or blob.get("mime_type")
suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))
save_result(result.to_dict(mode="json"))
결과 수신 및 저장
Ailoot Ultra · OpenAI Chat
json 또는 SSE
완료된 결과 모두 보관
반환된 완전한 응답, 파일, 콘텐츠 부분을 모두 보관하세요.
각 선택지와 그 콘텐츠·도구 호출·추론을 모두 보존하세요. SSE에서는 선택지/도구 인덱스별로 증분을 조합하고 최종 종료 사유와 사용량을 유지하세요.
원래 응답을 확인해야 할 경우
요청/응답 ID와 헤더를 보존하세요. 텍스트 작업을 조회하는 범용 URL은 제공되지 않습니다.
응답 필드
| 필드 | 유형 |
|---|---|
필드choices[].index | 유형integer |
필드choices[].message.content | 유형string|null |
필드choices[].message.tool_calls | 유형tool_call[] |
필드choices[].message.reasoning_content | 유형string |
필드choices[].message.reasoning_details | 유형object|array |
필드choices[].finish_reason | 유형string|null |
필드usage | 유형object |
오류와 다음 단계
| 응답 | 조건 | 다음 단계 |
|---|---|---|
응답400 · invalid_request_error | 조건필수 필드, 자료 표현 방식 또는 파라미터 값이 올바르지 않음 | 다음 단계새 생성 요청 전에 표시된 필드를 수정하세요. |
별칭
모델 별칭
Ailoot Ultra claude-sonnet-4-6-thinking
메서드 경로 별칭
/chat/completions
관련 호출용 ID
FAQ · Anthropic: Claude Sonnet 4.6
- 어떤 입력과 결과를 사용할 수 있나요?
POST /v1/chat/completions·claude-sonnet-4-6-thinking:text→text- 요청은 어떤 필드를 사용하나요?
POST /v1/chat/completions·claude-sonnet-4-6-thinking:model,messages,stream- 어떤 제한이 적용되나요?
POST /v1/chat/completions·claude-sonnet-4-6-thinking:messages.min_items:1