DeepSeek: DeepSeek V3.2
DeepSeek V3.2는 텍스트 추론을 도구 사용 및 긴 컨텍스트 분석과 결합합니다. 희소 어텐션 아키텍처와 업데이트된 대화 형식은 코딩, 검색, 여러 단계의 에이전트 작업을 지원하며, 128K 컨텍스트와 별도의 사고 및 직접 응답 워크플로를 제공합니다.
모델 소개
이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.
DeepSeek V3.2는 효율적인 긴 컨텍스트 처리를 강조하는 DeepSeek의 추론 및 에이전트 작업용 텍스트 모델입니다. 제작사는 주요 변경 사항을 DeepSeek Sparse Attention, 확장된 강화학습 프레임워크, 에이전트 작업 학습 파이프라인을 중심으로 정리합니다. 작성된 질문과 맥락을 받아 답변, 코드 또는 도구 호출 내용을 포함한 텍스트를 생성합니다. 이전 V3.2 Exp 릴리스 및 별도의 Speciale 추론 변형과 구분됩니다.
DeepSeek Sparse Attention은 잠재 어텐션 아키텍처에 인덱서와 세밀한 토큰 선택 기능을 추가합니다. 긴 시퀀스에서는 인덱서가 주 어텐션 계산에 사용할 이전 토큰 정보를 선택합니다. 보고서는 이를 V3.1 Terminus 대비 아키텍처 변경 사항으로 설명하며, V3.2 Exp와 같은 아키텍처를 사용한다고 명시합니다. 공개된 컨텍스트는 128K토큰으로, 상당한 분량의 출처 자료와 이어지는 작업을 지원합니다. 다만 생성된 추론과 도구 기록도 사용 가능한 컨텍스트를 차지합니다.
사후 학습은 수학, 프로그래밍, 논리적 추론, 일반 에이전트 작업, 에이전트 기반 코딩과 검색 전반에서 사고 및 비사고 응답을 모두 다룹니다. 분야별 전문가가 제공하는 데이터를 최종 모델에 통합한 뒤 혼합 강화학습을 진행합니다. 일반적인 질문에는 직접적인 답변이 적합할 수 있고, 어려운 문제에는 사고 워크플로가 최종 결과를 제시하기 전에 해결책을 발전시킬 수 있습니다. 필요한 답변이나 결과물을 중간 추론과 별개로 지정하세요.
이 에디션의 중요한 변경 사항은 도구를 사용하면서 사고하는 기능입니다. 업데이트된 채팅 형식은 분석과 행동을 서로 무관한 단계로 취급하는 대신 도구 호출 작업 전반에 걸쳐 추론을 이어갈 수 있도록 합니다. 모델이 선택한 작업은 애플리케이션이 실행하고, 그 결과를 다음 단계에 반환합니다. 제작사의 도구 컨텍스트 규칙은 도구 관련 메시지만 추가되는 동안 이전 추론을 유지합니다. 새 사용자 메시지가 도착하면 도구 호출과 결과는 보존하면서 해당 추론을 삭제합니다. 이 동작에는 대화 역할을 올바르게 구분하는 것이 중요합니다.
코딩 작업에는 원문 코드 조각이나 관련 파일, 관측된 문제, 기대하는 결과, 변경 후에도 유지해야 하는 조건을 제공하세요. 예를 들어 다음과 같이 지시할 수 있습니다. “제공된 코드와 도구 결과를 사용해 원인을 찾고, 가장 작은 수정안을 제안한 뒤, 이를 뒷받침하는 검증 결과와 함께 최종 패치를 반환하세요.” 검색 작업에는 질문, 필요한 근거, 답변이 완료되었다고 판단할 기준을 설명하세요. 검색 및 실행 도구는 텍스트 자체가 아니라 이를 사용하는 애플리케이션이 제공합니다.
제작사는 로컬 사용 시 temperature 1.0과 top-p 0.95를 권장합니다. V3.2는 수정된 도구 호출 표현 방식과 전용 메시지 인코더를 도입합니다. developer 역할은 제작사의 검색 에이전트 템플릿 전용이며, 공식 API는 해당 역할을 허용하지 않습니다. 참조 파서는 올바른 형식의 출력을 전제로 하며 잘못된 형식의 결과를 복구하지 않습니다. 애플리케이션이 생성된 필드나 도구 인수를 사용할 때는 이를 바탕으로 작업하기 전에 구조를 확인해야 합니다.
기술 보고서는 긴 추론 과정과 중복된 자체 검증을 실용적인 한계로 지적합니다. 원래 출처 자료가 컨텍스트 안에 들어가더라도 도구 출력과 반복된 추론이 쌓이면 에이전트 작업이 128K 경계에 도달할 수 있습니다. 관련 관측 내용을 간결하게 기록하고 최종 결과물을 명확히 지정하세요. 지식의 정확성이 중요한 작업에는 학습된 지식만으로 모든 사실을 결정하도록 기대하기보다 권위 있는 자료를 첨부하거나 적합한 검색 도구를 제공하세요.
DeepSeek V3.2 Speciale는 많은 연산을 사용하는 별도의 심층 추론 변형이며, 모델 카드에 따르면 도구 호출을 지원하지 않습니다. 이 변형의 기능을 표준 V3.2 도구 프로필의 기능으로 사용해서는 안 됩니다. 마찬가지로 이후 V4 세대와 실험적 선행 모델도 별개의 식별자와 설정 선택지를 갖습니다. 모델과 프롬프트 형식이 중요한 작업을 비교할 때는 지정된 V3.2 에디션을 유지하세요.
실제 출처 기반 분석에서는 자료에 표지를 붙이고, 가정과 누락된 정보를 구분하면서 관련 구절로 뒷받침되는 결론을 요청하세요. 에이전트에는 허용된 함수, 기대하는 최종 결과, 완료 기준을 명시하세요. 이렇게 하면 모델의 추론 및 도구 워크플로를 제공된 근거에 연결된, 검토 가능한 텍스트, 코드 또는 분석 결과물에 맞춰 준비할 수 있습니다.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions deepseek-v3.2-thinking
deepseek-v3.2-thinking시작하기
DeepSeek V3.2는 텍스트 추론을 도구 사용 및 긴 컨텍스트 분석과 결합합니다. 희소 어텐션 아키텍처와 업데이트된 대화 형식은 코딩, 검색, 여러 단계의 에이전트 작업을 지원하며, 128K 컨텍스트와 별도의 사고 및 직접 응답 워크플로를 제공합니다.
- 허용 입력
- 텍스트
- 결과
- 텍스트
Ailoot에서 사용 가능 · 입력 및 메서드
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- 입력
text- 출력
text- 출력 형식
- json 또는 SSE
| 필드 | 유형 | 요건 | 값과 한도 | 기본값 |
|---|---|---|---|---|
필드model | 유형string | 요건필수 | 값과 한도 deepseek-v3.2-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.00058 / 1K 토큰 출력 · 출력 토큰 $0.00086 / 1K 토큰 입력 · 캐시 읽기 $0 / 1K 토큰 입력 · 캐시 쓰기 $0 / 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":"deepseek-v3.2-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="deepseek-v3.2-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 deepseek-v3.2-thinking
메서드 경로 별칭
/chat/completions
관련 호출용 ID
FAQ · DeepSeek: DeepSeek V3.2
- 어떤 입력과 결과를 사용할 수 있나요?
POST /v1/chat/completions·deepseek-v3.2-thinking:text→text- 요청은 어떤 필드를 사용하나요?
POST /v1/chat/completions·deepseek-v3.2-thinking:model,messages,stream- 어떤 제한이 적용되나요?
POST /v1/chat/completions·deepseek-v3.2-thinking:messages.min_items:1