MoonshotAI: Kimi K3 (batch)
Kimi K3 er Moonshot AIs resonneringsmodell med innebygd multimodalitet for lange programmeringsoppgaver og kunnskapsarbeid. Den leser tekst, bilder og video, produserer tekst og støtter verktøydrevne arbeidsflyter med en kontekst på 1 048 576 tokener og bevart tenkningshistorikk på tvers av steg.
Om modellen
Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.
Kimi K3 er Moonshot AIs multimodale agentmodell med åpne vekter for langvarige programmeringsoppgaver, kunnskapsarbeid og resonnering. Den kombinerer tekst med innebygd visuell forståelse av bilder og video og produserer et tekstlig svar eller en verktøyforespørsel. Produsenten fremhever utvidede utviklingsøkter, store kodearkiver og oppgaver som bruker skjermbilder eller visuell tilbakemelding sammen med kode. En nyttig oppgavebeskrivelse definerer det ønskede artefaktet, bevisene som skal brukes, og betingelsen som markerer at arbeidet er fullført.
Arkitektur og lang kontekst
Modellkortet beskriver en sparsom Mixture of Experts med totalt 2,8 billioner parametere og 104 milliarder aktiverte parametere. Stable LatentMoE-designet velger 16 av 896 eksperter per token og bruker Kimi Delta Attention og Attention Residuals sammen med portstyrt oppmerksomhet. Den konkrete kontekstlengden er 1 048 576 tokener. Dette gir plass til en omfattende oppgavekontekst, ikke en grunn til å forkaste kildegrenser eller plassen som trengs til resultatet.
Det publiserte opprinnelige artefaktet bruker kvantiseringsbevisst trening med MXFP4-vekter og MXFP8-aktiveringer. Dette er produsentens utgivelsesformat, forskjellig fra en separat levert kvantisert utgave eller en påstand om hvordan en bestemt rute tilbyr modellen. Åpne vekter og et stort parameterantall gjør ikke tallet for aktive parametere til det samlede lagrings- eller maskinvarebehovet.
Forbered en omfattende programmeringsoppgave
Gi det relevante materialet fra kodearkivet, den eksisterende atferden, den ønskede endringen og kompatibilitetsbegrensningene. Identifiser filene eller grensesnittet resultatet må påvirke, kontrollene som bestemmer suksess, og eventuelle oppgitte feil eller inndata som avdekker problemet. Et nyttig resultat kan være en målrettet kodeendring med forklaring og bevis fra kontrollene som faktisk ble kjørt, fremfor en beskrivelse av handlinger som aldri ble utført.
For en visuell utviklingsoppgave inkluderer du et skjermbilde eller en tydelig visning av det tiltenkte resultatet sammen med relevant kode og et spesifikt avvik. Produsenten beskriver arbeidsflyter som spenner over frontendarbeid, spill og CAD og bruker visuell tilbakemelding. Be om endringen som knytter koden til det observerte resultatet, og bevar referansen slik at det leverte artefaktet kan kontrolleres mot den.
Bilder, video og forberedelse til kunnskapsarbeid
Produsentens hurtigstart bruker typede innholdsobjekter for visuelle meldinger; content er en array, ikke en serialisert representasjon av arrayen. Bildeflyten bruker kodede bildedata eller en støttet filreferanse fremfor en offentlig bildeadresse. Videoeksemplet laster opp en videofil og oppgir den resulterende referansen med et spørsmål om innholdet. Gi en lesbar kilde og angi observasjonen, intervallet eller sammenhengen som er viktig. Produsentens synsarbeidsflyt tar imot bilder i JPEG, PNG, GIF, WebP, BMP, HEIC og HEIF og video i MP4, MPEG, MOV, AVI, FLV, MPG, WebM, WMV og 3GPP. Animerte GIF- eller WebP-filer kan dekodes som video. Gi SVG-kildekode som tekst. Produsenten anbefaler bilder på opptil 4 096 × 2 160 og video på opptil 1 920 × 1 080; dette er oppløsningsanbefalinger, ikke avvisningsgrenser. Hold forespørselskroppen innenfor den dokumenterte størrelsesgrensen på 100M og last opp store eller gjentatte ganger brukte medier som filer.
For dokumenttung forskning merker du kildene og angir spørsmålene den endelige rapporten skal besvare. For en videoforklaring identifiserer du hendelsene eller sekvensen som skal analyseres, fremfor å be om ubegrensede kommentarer. K3 bruker visuelt innhold som bevis for resonnering og returnerer tekst eller verktøyforespørsler. En applikasjon kan sende disse forespørslene videre til medieverktøy for å opprette separate bilde- eller videoartefakter.
Tenkning er alltid aktivert
Produsentgrensesnittet til K3 har alltid tenkning aktivert. reasoning_effort-innstillingen på toppnivå godtar low, high og max, med max som standard. Disse valgene er modellspesifikke; en innstilling uten tenkning eller en innsatsverdi fra en annen familie skal ikke antas. Produsentens migreringsveiledning skiller K3 fra K2.x ved å bruke reasoning_effort fremfor å videreføre den eldre thinking-konfigurasjonen.
Produsenten dokumenterer separat reasoning_content og innhold til det endelige svaret i strømmede resultater. For en samtale over flere runder eller en verktøyflyt krever den at hele den returnerte assistentmeldingen sendes tilbake uendret, inkludert reasoning_content og tool_calls. Hvis bare det synlige endelige svaret beholdes, går informasjon som modellens arbeidsflyt med bevart tenkning forventer på neste steg, tapt.
Strukturerte endelige svar og delvis videreføring
Hurtigstarten dokumenterer strenge JSON-skjema-utdata for innholdet i den endelige meldingen. Definer feltene og betydningene rundt artefaktet applikasjonen trenger, og tolk dette endelige innholdet fremfor å kombinere det med resonneringsfeltet. Et strukturert resultat kan representere uttrukket informasjon fra oppgitt materiale eller et definert rapportformat; skjemaet begrenser formen, mens kildebevisene avgjør om verdiene er riktige.
Partial-modus kan videreføre et oppgitt tekstprefiks. Produsentens eksempel plasserer en delvis assistentmelding på slutten av historikken og kombinerer prefikset med den returnerte videreføringen for visning. Bruk dette når det påkrevde artefaktet har en meningsfull fast start, og hold prefikset atskilt fra den genererte resten.
Verktøy og kontinuitet i resultatene
K3 støtter tilpassede funksjonsverktøy. Produsentens eksempel krever et verktøy i første runde, bevarer hele assistentmeldingen, utfører hvert returnert kall og legger til et samsvarende verktøyresultat før det endelige svaret forespørres. Et foreslått kall er ikke bevis på at operasjonen lyktes; det faktiske returnerte resultatet blir bevisgrunnlaget for neste steg.
Arbeidsflyten for dynamisk lasting introduserer en fullstendig verktøydefinisjon på et bestemt punkt i meldingshistorikken. Definisjonen trenger navn, formål og parametere, og den må forbli i påfølgende historikk fordi serveren ikke beholder deklarasjonen uavhengig. Hold verktøyfunksjoner, oppgitte argumenter og reelle observasjoner knyttet sammen slik at en lang oppgave kan fortsette fra arbeidet som allerede er fullført.
Utdatakontroller og gjentatt kontekst
Produsenten dokumenterer en standard fullføringsramme på 131 072 tokener, konfigurerbar opptil 1 048 576 innenfor modellens samlede kontekstbegrensninger. Det aktuelle K3-API-et fastsetter temperature til 1.0, top_p til 0.95, ett resultat og null presence- og frequency-straffer, og ber dem som kaller API-et, utelate disse samplingskontrollene. Dette er innstillingene til den konkrete produsentvarianten, ikke en overførbar liste over justerbare kontroller.
Kontekstmellomlagring er automatisk for kvalifiserte gjentatte prefikser, med dokumenterte TTL-valg på 5 minutter og 1 time og 5 minutter som standard. Delvise mellomlagringsblokker regnes fortsatt som bom. Hold gjenbrukbar kontekst stabil og kontroller faktisk bruk fremfor å hevde et mellomlagringstreff ut fra gjentatt tekst alene. For det endelige artefaktet bevarer du de oppgitte kildene, faktiske verktøybevisene og den påkrevde utdatastrukturen, og kontrollerer at et langt svar eller utviklingsresultat oppfyller de angitte fullføringskriteriene.
Ailoot Ultra · Batchbehandling POST /v1/batches moonshotai/kimi-k3:batch
moonshotai/kimi-k3:batchStart
Kimi K3 er Moonshot AIs resonneringsmodell med innebygd multimodalitet for lange programmeringsoppgaver og kunnskapsarbeid. Den leser tekst, bilder og video, produserer tekst og støtter verktøydrevne arbeidsflyter med en kontekst på 1 048 576 tokener og bevart tenkningshistorikk på tvers av steg.
- Godkjente inndata
- Tekst
- Resultater
- Tekst
Tilgjengelig i Ailoot · inndata & metoder
Ailoot Ultra · Batchbehandling POST /v1/batches
- Inndatatyper
text- Utdatatyper
text- Utdataformat
- JSON fra results[].response.body direkte i svaret
| Felt | Type | Krav | Verdier & grenser | Standard |
|---|---|---|---|---|
Feltendpoint | Typestring | KravPåkrevd | Verdier & grenser /v1/chat/completions | Standard— |
Feltmodel | Typestring | KravPåkrevd | Verdier & grenser moonshotai/kimi-k3:batch | Standard— |
Feltrequests | Typebatch_item[] | KravPåkrevd | Verdier & grenser Minste antall elementer: 1 | Standard— |
Feltrequests[].custom_id | Typestring | KravPåkrevd | Verdier & grenser | Standard— |
Feltrequests[].body.messages | Typemessage[] | KravPåkrevd | Verdier & grenser | Standard— |
Feltcompletion_window | Typestring | KravValgfritt | Verdier & grenser 24h | Standard— |
Feltprovider | Typeobject|null | KravValgfritt | Verdier & grenser | Standard— |
Feltrequests[].body.model | Typestring | KravValgfritt | Verdier & grenser moonshotai/kimi-k3:batch, moonshotai/kimi-k3 | Standard— |
Feltprovider.only | Typestring[] | KravValgfritt | Verdier & grenser deepinfra/bf16 | Standard— |
Feltprovider.allow_fallbacks | Typeboolean|null | KravValgfritt | Verdier & grenser false, null | Standard— |
Metodeparametere og livssyklus
| Parameter | Avtale |
|---|---|
Parametercontent_type | Avtaleapplication/json |
Parameterrequired | Avtaleendpoint, model, requests |
Parametermaterial_types | Avtaletext |
Parameterrepresentation | Avtalerequests[] direkte i forespørselen; hvert element har custom_id og body |
Parameterrequest_endpoint_profile | Avtale/v1/chat/completions |
Parameterfile_material | AvtaleKlienten kan lese det faktiske UTF-8-kodede JSONL-innholdet lokalt inn i requests[]. Feltet purpose for opplasting, input_file_id og filreferanser brukes ikke. Manglende eller tomt kundemateriale stopper klargjøringen før POST. |
Parameterserialization_order | Avtaleendpoint, model, provider (hvis angitt), completion_window (hvis angitt), requests til slutt |
Parameteroptional_controls | Avtaleprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | AvtaleForespørselsinnhold for tekstbasert Chat Completions lagt direkte inn i det dokumenterte Batch-formatet. |
Livssyklus: asynchronous
GET /v1/batches/{operation_id} · faktisk response.id fra den opprinnelige opprettelsen; samme bruker/nøkkel/gruppe
Priser
Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.
- Hurtigmodus
- Ikke angitt Når hurtigmodus er valgt
- Flex-modus
- Ikke angitt Når flex-modus er valgt
- Maksimal resonneringsinnsats
- Ikke angitt Når justeringen «default» brukes for maksimal resonneringsinnsats
- Priser for eksplisitt mellomlagring
- Ikke aktivert Når eksplisitt mellomlagring forespørres
Ailoot-satser
Priser etter konfigurasjon
Knytt hver kostnad til de viste vilkårene. Bruk én sats for hvert sett med alternative konfigurasjoner.
| Konfigurasjon | Prisplan | Konteksttokener, mer enn | Konteksttokener, opptil og med | Kostnad |
|---|---|---|---|---|
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Konteksttokener, mer enn— | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener $0.00456 / 1K tokener Utdata · Utgående tokener $0.0228 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.000456 / 1K tokener Inndata · Skriving til hurtigbuffer — / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time — / 1K tokener |
| KonfigurasjonNivå 1 for forespørselslengde | Prisplan— | Konteksttokener, mer enn0 | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener $0.00456 / 1K tokener Utdata · Utgående tokener $0.0228 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.000456 / 1K tokener Inndata · Skriving til hurtigbuffer — / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time — / 1K tokener |
Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. Slik fungerer reservasjon og oppgjør →
Eksempelforespørsler
Ailoot Ultra · Batchbehandling
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json
from pathlib import Path
body=json.loads('{"endpoint":"/v1/chat/completions","model":"moonshotai/kimi-k3:batch","requests":[{"custom_id":"req-0001","body":{"messages":[{"role":"user","content":"Hello!"}],"max_tokens":16}}]}')
Path("batch-request.json").write_text(json.dumps(body,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json
import json, os
from pathlib import Path
from urllib.request import Request, urlopen
def prepare_requests(customer_path):
path = Path(customer_path)
if not path.is_file(): raise ValueError("Customer JSONL file is missing")
items = [json.loads(line) for line in path.read_text(encoding="utf-8").splitlines() if line.strip()]
if not items: raise ValueError("Customer JSONL contains no requests")
ids = set()
for item in items:
if set(item) != {"custom_id", "body"}: raise ValueError("Each item needs custom_id and body")
cid = item["custom_id"]
if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError("custom_id must be nonempty and unique")
ids.add(cid)
if not isinstance(item["body"], dict) or not item["body"].get("messages"): raise ValueError("Supply actual text messages")
supplied_model = item["body"].get("model")
if supplied_model is not None and supplied_model not in ['moonshotai/kimi-k3:batch', 'moonshotai/kimi-k3']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"moonshotai/kimi-k3:batch", "requests":items}
if __name__ == "__main__":
material = os.environ.get("AILOOT_BATCH_REQUESTS_JSONL", "")
if not material: raise SystemExit("Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file")
body = prepare_requests(material)
key = os.environ.get("AILOOT_API_KEY", "")
if not key: raise SystemExit("Set AILOOT_API_KEY")
request = Request("https://api.ailoot.ai/v1/batches", data=json.dumps(body, ensure_ascii=False).encode("utf-8"), headers={"Authorization":"Bearer " + key, "Content-Type":"application/json"}, method="POST")
with urlopen(request) as response:
raw = response.read()
Path("batch-create-response.json").write_bytes(raw)
print(raw.decode("utf-8"))
import json
from pathlib import Path
raw = Path("batch-status-response.json").read_bytes()
response = json.loads(raw)
if response.get("status") != "completed":
raise SystemExit("Keep the original operation; read its status without resubmitting")
results = response.get("results")
if not isinstance(results, list) or not results:
raise SystemExit("Preserve the original response; completed results are missing")
Path("batch-results.jsonl").write_text("".join(json.dumps(item, ensure_ascii=False) + "\n" for item in results), encoding="utf-8")
# Preserve batch-status-response.json with aggregate usage and every result/error.
Motta og lagre resultater
Ailoot Ultra · Batchbehandling
JSON fra results[].response.body direkte i svaret
GET /v1/batches/{operation_id}
Kontroller jobbstatus
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
BATCH_OPERATION_ID="$(python3 - <<'PY_ID'
import json
from pathlib import Path
from urllib.parse import quote
response = json.loads(Path("batch-create-response.json").read_text(encoding="utf-8"))
operation = response.get("id")
if not isinstance(operation, str) or not operation: raise SystemExit("No actual original operation ID; preserve the response and do not resubmit")
print(quote(operation, safe=""))
PY_ID
)"
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o batch-status-response.json
Behold alle ferdige resultater
Behold alle fullstendige returnerte svar, filer og innholdsdeler.
Bevar hele den opprinnelige statusresponsen i JSON, alle resultater og custom_id-verdier samt hele svar- eller feilinnholdet. Lagre fullførte results[] som JSONL uten filtrering.
Hvis det opprinnelige svaret må kontrolleres
Bevar den opprinnelige operasjons-ID-en. 503 result_pending_check har X-Should-Retry:false; send aldri den opprinnelige batchen på nytt når utfallet er ukjent.
Svarfelter
| Felt | Type |
|---|---|
Feltresults[].custom_id | Typestring |
Feltresults[].response.body.choices[].message.content | Typestring|null |
Feltresults[].error | Typeobject|null |
Feltusage | Typeobject|null |
Feltid | Typestring |
Feltmodel | Typestring |
Feltendpoint | Typestring |
Feltstatus | Typestring |
Feltrequest_counts | Typeobject |
Feltresults[].id | Typestring |
Feltresults[].response.status_code | Typeinteger |
Feltresults[].response.request_id | Typestring |
Feil og neste trinn
| Svar | Vilkår | Neste trinn |
|---|---|---|
Svar400 · invalid_request_error | VilkårUgyldig struktur i det dokumenterte formatet med innebygde forespørsler, dupliserte nøkler, ugyldig elementidentitet eller konflikt med modellens konfigurerte funksjoner. | Neste trinnRett de angitte feltene før du sender en ny forespørsel. |
Svar401 · authentication_error | VilkårUgyldig API-nøkkel. | Neste trinnBruk den autoriserte Ailoot-nøkkelen. |
Svar403 · permission_error | VilkårGruppen for batchbehandling er ikke tilgjengelig. | Neste trinnKontroller tilgangsrettighetene til nøkkelen/gruppen. |
Svar422 · invalid_request_error | VilkårBatch belastes saldoen; opprettelse via abonnement avvises. | Neste trinnBruk den autoriserte gruppen som belastes saldoen. |
Svar422 · price_unavailable | VilkårDet kan ikke beregnes en pris for batchens inndata. | Neste trinnBevar svaret; bruk de dokumenterte inndataene for API-familien. |
Svar402 · billing_error | VilkårBeløpsreservasjon for batchbehandling er ikke tilgjengelig. | Neste trinnLøs problemet som hindrer forespørselen i å bli godkjent før du sender en ny forespørsel. |
Svar503 · price_unavailable | VilkårPris for Batch-metoden eller systemets innebygde satser er ikke tilgjengelige. | Neste trinnBevar svaret; ikke erstatt prisene. |
Svar503 · api_error | VilkårDen nøyaktige leverandørruten er ikke tilgjengelig. | Neste trinnBevar svaret slik at ruten kan repareres. |
Svar503 · result_pending_check | VilkårDet opprinnelige resultatet må kontrolleres; X-Should-Retry:false. | Neste trinnBevar opprinnelig operation_id/id og les statusen; gjenta aldri den opprinnelige POST-forespørselen. |
Svar404 · not_found | VilkårStatusoperasjonen for batchen finnes ikke eller tilhører en annen identitet. | Neste trinnBruk nøyaktig den opprinnelige id-verdien og samme bruker/nøkkel/gruppe. |
Aliaser
Modellaliaser
Ailoot Ultra moonshotai/kimi-k3:batch
Aliaser for metodestier
Bruk metodestiene som vises ovenfor.
Tilknyttede anroper-ID-er
FAQ · MoonshotAI: Kimi K3 (batch)
- Hvilke inndata og resultater er tilgjengelige?
POST /v1/batches·moonshotai/kimi-k3:batch:text→text- Hvilke felt bruker forespørselen?
POST /v1/batches·moonshotai/kimi-k3:batch:endpoint,model,requests,completion_window,provider- Hvilke grenser gjelder?
POST /v1/batches·moonshotai/kimi-k3:batch:requests.min_items:1