DeepSeek: DeepSeek V3.1
DeepSeek V3.1 är en hybridtextmodell med tanke- och direktsvarslägen i samma utgåva. Dess kontext på 128K och förbättrade verktygsprofil stöder kodning, dokumentanalys och sökning som applikationen tillhandahåller, med text eller föreslagna verktygsanrop som resultat.
Om modellen
Den här beskrivningen omfattar modellens förmågor. Tillgängliga indata, utdata och alternativ i Ailoot anges nedan för den valda metoden.
DeepSeek V3.1 är DeepSeeks hybridtextmodell: samma namngivna utgåva stöder svar med och utan tänkande genom olika inställningar i chattmallen. Producenten framhåller förbättrad verktygsanvändning, agentuppgifter och resonemangseffektivitet jämfört med sin tidigare modell. Den tar emot skriftliga instruktioner och textkontext och genererar svar, kod eller innehåll för verktygsanrop. Den ursprungliga V3.1-identiteten är skild från Terminus, V3.2 och V4-familjen.
Modellkortet anger totalt 671 miljarder parametrar, 37 miljarder aktiva parametrar och en kontext på 128K för både grundutgåvan och den eftertränade utgåvan. V3.1 bygger på den ursprungliga V3-grundmodellen med utökad träning på långa dokument före efterträningen. Dess mixture-of-experts-struktur och latenta attention följer V3-arkitekturen. Dessa konstruktionsfakta förklarar textprofilen med lång kontext utan att göra kontexttalet till en separat specifikation för maximala utdata.
Läget utan tänkande förbereder ett direkt svar, medan tankeläget startar en resonemangsfas före svaret. Producentens mall använder en avslutande tankemarkör för direkta svar och en inledande tankemarkör för den aktuella resonemangsturen. I en flerturskonversation tas tidigare resonemangsinnehåll bort medan slutsvaren och den avslutande markören ligger kvar i kontexten. Detta är den ursprungliga V3.1-regeln för historik, skild från den senare V3.2-regeln som bevarar resonemang mellan verktygsrelaterade meddelanden.
Vanliga verktygsanrop dokumenteras i läget utan tänkande. Applikationen tillhandahåller funktionsnamn, beskrivningar och parameterscheman; modellen returnerar ett valt verktygsnamn och JSON-argument i producentens representation för verktygsanrop. Applikationen utför operationen och returnerar resultatet. Ge verktygen specifika syften och håll den returnerade observationen kopplad till anropet, så att modellens nästa steg har belägg i stället för ett antagande om att en åtgärd har skett.
Sökning i tankeläget använder ett separat specialiserat sökagentformat. DeepSeek dokumenterar ett sökverktyg som användaren tillhandahåller för frågor som kräver extern eller aktuell information, med upprepade anrop och observationer över flera turer. Sökningen ingår alltså i det omgivande arbetsflödet och är inget påstående om att ett textsvar självständigt har sökt på webben. Definiera frågan, källkriterierna och det slutliga svar som behövs innan sökuppgiften börjar.
För kodning lämnar du relevanta fragment eller filer, observerat beteende, förväntat beteende och begränsningar som ska bevaras. Ett illustrativt uppdrag är: ”Identifiera orsaken till detta fel för angivna indata, föreslå en fokuserad rättelse och förklara vilket villkor ändringen hanterar.” För en dokumentuppgift märker du källavsnitten och ber om en jämförelse mot uttryckliga krav. Kräv att slutsvaret skiljer en källstödd slutsats från en föreslagen nästa åtgärd.
Producenten tränar V3.1 med skalformatet UE8M0 FP8 för vikter och aktiveringar. De lokala rekommendationerna identifierar också precisionskänsliga parametrar som måste hanteras korrekt. Detta är egenskaper hos producentens publicerade referens, inte ett påstående om vilken precision eller implementation varje applikation använder. Ett derivat, en kvantiserad variant och den senare Terminus-kontrollpunkten är fortfarande separata val från den namngivna ursprungliga V3.1-utgåvan.
Förbered längre arbete med en tydlig fråga, källbeteckningar och en definierad slutleverans. Budgetera konversation, källtext, resonemang och utdata inom den dokumenterade kontexten och behåll bara relevant evidens när uppgiften växer. För en agent anger du tillåtna åtgärder och kriteriet för när resultatet är färdigt. Den användbara leveransen är ett granskningsbart textsvar, ett kodförslag eller en källstödd analys kopplad till indata och de observationer som applikationen faktiskt returnerade.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions deepseek-v3.1-thinking
deepseek-v3.1-thinkingStart
DeepSeek V3.1 är en hybridtextmodell med tanke- och direktsvarslägen i samma utgåva. Dess kontext på 128K och förbättrade verktygsprofil stöder kodning, dokumentanalys och sökning som applikationen tillhandahåller, med text eller föreslagna verktygsanrop som resultat.
- Godkända indata
- Text
- Resultat
- Text
Tillgängligt i Ailoot · indata & metoder
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Indatatyper
text- Utdatatyper
text- Utdataformat
- json eller SSE
| Fält | Typ | Krav | Värden & gränser | Standard |
|---|---|---|---|---|
Fältmodel | Typstring | KravObligatoriskt | Värden & gränser deepseek-v3.1-thinking | Standard— |
Fältmessages | Typmessage[] | KravObligatoriskt | Värden & gränser Minsta antal objekt: 1 | Standard— |
Fältmessages[].role | Typstring | KravObligatoriskt | Värden & gränser Beror på modellen | Standard— |
Fältmessages[].content | Typstring | KravValfritt | Värden & gränser Gäller när: Textsamtal | Standard— |
Fältstream | Typboolean | KravValfritt | Värden & gränser | Standardfalse |
Kombinationer av indatamaterial
Text · UTF8-text
messages[].content
Metodparametrar och livscykel
| Parameter | Avtal |
|---|---|
Parametercontent_type | Avtalapplication/json |
Parameterrequired | Avtalmodel, messages |
Parametermaterial_types | Avtaltext |
Parametermessages | Avtalmeddelandearray med strukturen role/content |
Parameterfile_material | Avtaldet faktiska UTF-8-dokumentet infogat som bokstavlig text; inget fil-ID härleds |
Parameteroptional_controls | Avtalstream |
Parametercontrol_scope | AvtalTextsamtal; stream är ett booleskt värde och har false som standard. |
Parameteroutput_modalities | Avtaltext |
Parameterhosted_operations | Avtalfalse |
Parametermultimodal_input_binding | Avtalnull |
Metodalias: /chat/completions
Livscykel: synchronous_or_streamed
Skicka det exakta modell-ID:t tillsammans med messages.
Kontextlängden är inte en utdatagräns.
En textfil kan tillhandahålla bokstavlig text; bild-/ljud-/filobjektsindata kräver exakt bindning.
Priser
Tariffuppgifter lägger inte till begäransalternativ. Parametrar som stöds anges för den valda metoden.
- Snabbt läge
- Ej angivet När snabbt läge är valt
- Flex-läge
- Ej angivet När läget flex är valt
- Högsta resonemangsnivå
- Ej angivet När den högsta resonemangsnivån använder standardjusteringen (default)
Ailoot-priser
Priser efter konfiguration
| Konfiguration | Prislista | Avgift |
|---|---|---|
| KonfigurationGrundpriser för token | PrislistaGrundpris | Avgift Indata · Indatatoken $0.000572 / 1K token Utdata · Utdatatoken $0.0023 / 1K token Indata · Cacheläsning $0 / 1K token Indata · Skrivning till cache $0 / 1K token Indata · Skrivning till cache, 1 tim — / 1K token |
Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. Så fungerar reservation och slutreglering →
Exempelbegäranden
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.1-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.1-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"))
Ta emot och spara resultat
Ailoot Ultra · OpenAI Chat
json eller SSE
Behåll alla färdiga resultat
Behåll varje fullständigt returnerat svar, fil och innehållsdel.
Behåll varje svarsalternativ och dess innehåll/verktygsanrop/resonemang. Sätt i SSE samman deltauppdateringar efter svarsalternativets/verktygets index och behåll den slutliga avslutsorsaken och användningsuppgifterna.
Om det ursprungliga svaret behöver kontrolleras
Behåll begärans/svarets ID:n och huvuden. Ingen generell URL för hämtning av textjobb tillhandahålls.
Svarsfält
| Fält | Typ |
|---|---|
Fältchoices[].index | Typinteger |
Fältchoices[].message.content | Typstring|null |
Fältchoices[].message.tool_calls | Typtool_call[] |
Fältchoices[].message.reasoning_content | Typstring |
Fältchoices[].message.reasoning_details | Typobject|array |
Fältchoices[].finish_reason | Typstring|null |
Fältusage | Typobject |
Fel och nästa steg
| Svar | Villkor | Nästa steg |
|---|---|---|
Svar400 · invalid_request_error | VillkorOgiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde | Nästa stegKorrigera de angivna fälten före en ny begäran om att skapa. |
Alias
Modellalias
Ailoot Ultra deepseek-v3.1-thinking
Alias för metodsökvägar
/chat/completions
Relaterade anropar-ID:n
FAQ · DeepSeek: DeepSeek V3.1
- Vilka indata och resultat finns?
POST /v1/chat/completions·deepseek-v3.1-thinking:text→text- Vilka fält använder begäran?
POST /v1/chat/completions·deepseek-v3.1-thinking:model,messages,stream- Vilka gränser gäller?
POST /v1/chat/completions·deepseek-v3.1-thinking:messages.min_items:1