MoonshotAI: Kimi K3 (batch)
Kimi K3 – Moonshot AI savasis multimodalinis samprotavimo modelis ilgoms programavimo užduotims ir žinių darbui. Jis skaito tekstą, vaizdus bei vaizdo įrašus, generuoja tekstą ir palaiko įrankiais valdomus procesus su 1 048 576 žetonų kontekstu bei tarp žingsnių išsaugoma mąstymo istorija.
Apie modelį
Šis aprašas apima modelio galimybes. Pasirinktam metodui Ailoot prieinamos įvestys, išvestys ir parinktys nurodytos toliau.
Kimi K3 – Moonshot AI atvirų svorių multimodalinis agentinis modelis ilgalaikiam programavimui, žinių darbui ir samprotavimui. Jis sujungia tekstą su savuoju vaizdų bei vaizdo įrašų supratimu ir pateikia tekstinį atsakymą ar įrankio užklausą. Gamintojas pabrėžia ilgas inžinerines sesijas, dideles repozitorijas ir užduotis, kurios kartu su kodu naudoja ekrano kopijas ar vaizdinį grįžtamąjį ryšį. Naudingas aprašas apibrėžia pageidaujamą artefaktą, naudotinus įrodymus ir darbo užbaigimą žyminčią sąlygą.
Architektūra ir ilgas kontekstas
Modelio kortelė aprašo retintą ekspertų mišinį su iš viso 2,8 trilijono parametrų ir 104 mlrd. aktyvinamų parametrų. Jo Stable LatentMoE konstrukcija kiekvienam žetonui parenka 16 iš 896 ekspertų, naudodama Kimi Delta Attention ir Attention Residuals kartu su vartais valdomu dėmesiu. Tikslus konteksto ilgis – 1 048 576 žetonai. Tai erdvė dideliam užduoties kontekstui, o ne priežastis atsisakyti šaltinių ribų ar rezultatui reikalingos vietos.
Paskelbtas savasis artefaktas naudoja į kvantizavimą atsižvelgiantį mokymą su MXFP4 svoriais ir MXFP8 aktyvacijomis. Tai gamintojo laidos formatas, atskiras nuo atskirai pateiktos kvantizuotos versijos ar teiginio, kaip konkretus maršrutas pateikia modelį. Atviri svoriai ir didelis parametrų skaičius nepaverčia aktyvių parametrų skaičiaus bendru saugyklos ar aparatinės įrangos reikalavimu.
Paruoškite didelę programavimo užduotį
Pateikite aktualią repozitorijos medžiagą, esamą veikimą, prašomą pakeitimą ir suderinamumo apribojimus. Įvardykite failus ar sąsają, kuriuos turi paveikti rezultatas, sėkmę lemiančius patikrinimus ir pateiktą klaidą ar įvestį, atskleidžiančią problemą. Naudingas rezultatas gali būti tikslinis kodo pakeitimas su paaiškinimu ir faktiškai atliktų patikrinimų įrodymais, o ne niekada neatliktų veiksmų aprašymas.
Vaizdinei kūrimo užduočiai pridėkite ekrano kopiją ar aiškų numatyto rezultato vaizdą kartu su aktualiu kodu ir konkrečiu neatitikimu. Gamintojas aprašo naudotojo sąsajų, žaidimų ir CAD procesus, naudojančius vaizdinį grįžtamąjį ryšį. Prašykite pakeitimo, susiejančio kodą su stebimu rezultatu, ir išsaugokite pavyzdį, kad pristatytą artefaktą būtų galima pagal jį patikrinti.
Vaizdų, vaizdo įrašų ir žinių darbo paruošimas
Gamintojo greitos pradžios vadovas vaizdiniams pranešimams naudoja tipizuotus turinio objektus; content yra masyvas, o ne serializuotas to masyvo vaizdavimas. Jo vaizdų procesas naudoja užkoduotus vaizdo duomenis ar palaikomą failo nuorodą, o ne viešą vaizdo adresą. Vaizdo įrašo pavyzdys įkelia vaizdo failą ir pateikia gautą nuorodą su klausimu apie jo turinį. Pateikite įskaitomą šaltinį ir nurodykite svarbų stebėjimą, intervalą ar ryšį. Gamintojo regos procesas priima JPEG, PNG, GIF, WebP, BMP, HEIC ir HEIF vaizdus bei MP4, MPEG, MOV, AVI, FLV, MPG, WebM, WMV ir 3GPP vaizdo įrašus. Animacinį GIF ar WebP galima dekoduoti kaip vaizdo įrašą. SVG pirminį kodą pateikite tekstu. Gamintojas rekomenduoja vaizdus iki 4096 × 2160 ir vaizdo įrašus iki 1920 × 1080; tai raiškos rekomendacijos, o ne atmetimo slenksčiai. Užklausos turinį laikykite dokumentuotos 100M dydžio ribos viduje, o didelę ar pakartotinai naudojamą mediją įkelkite kaip failus.
Dokumentais gausiems tyrimams pažymėkite šaltinius ir nurodykite klausimus, į kuriuos turi atsakyti galutinė ataskaita. Vaizdo įrašo paaiškinimui įvardykite analizuotinus įvykius ar seką, o ne prašykite neribotų komentarų. K3 naudoja vaizdinį turinį kaip samprotavimo įrodymus ir grąžina tekstą ar įrankių užklausas. Programa gali perduoti šias užklausas medijos įrankiams atskiriems vaizdų ar vaizdo įrašų artefaktams kurti.
Mąstymas visada įjungtas
Gamintojo K3 sąsajoje mąstymas visada įjungtas. Aukščiausio lygio reasoning_effort nustatymas priima low, high ir max, o max yra numatytasis. Šie pasirinkimai būdingi konkrečiam modeliui; negalima numanyti režimo be mąstymo ar pastangų reikšmės iš kitos šeimos. Gamintojo perkėlimo gairės skiria K3 nuo K2.x, naudodamos reasoning_effort, o ne perkeldamos senesnę thinking konfigūraciją.
Gamintojas srautiniuose rezultatuose dokumentuoja atskirus reasoning_content ir galutinio atsakymo content. Kelių ėjimų pokalbiui ar įrankių procesui jis reikalauja grąžinti visą gautą asistento pranešimą nepakeistą, įskaitant reasoning_content ir tool_calls. Išsaugojus tik matomą galutinį atsakymą, prarandama informacija, kurios modelio išsaugoto mąstymo procesas tikisi kitame žingsnyje.
Struktūruoti galutiniai atsakymai ir dalinis tęsimas
Greitos pradžios vadovas galutinio pranešimo turiniui dokumentuoja griežtą JSON schemos išvestį. Apibrėžkite laukus bei jų prasmes pagal programai reikalingą artefaktą ir analizuokite tą galutinį turinį, o ne junkite jį su samprotavimo lauku. Struktūruotas rezultatas gali vaizduoti iš pateiktos medžiagos išgautą informaciją ar apibrėžtą ataskaitos formatą; schema apriboja jo formą, o šaltinio įrodymai lemia, ar reikšmės teisingos.
Partial režimas gali tęsti pateiktą teksto prefiksą. Gamintojo pavyzdys istorijos pabaigoje pateikia dalinį asistento pranešimą ir rodymui sujungia tą prefiksą su grąžintu tęsiniu. Naudokite tai, kai reikiamas artefaktas turi prasmingą fiksuotą pradžią, išlaikydami prefiksą atskirai nuo sugeneruotos likusios dalies.
Įrankiai ir jų rezultatų tęstinumas
K3 palaiko pasirinktinius funkcijų įrankius. Gamintojo pavyzdys reikalauja įrankio pirmame ėjime, išsaugo visą asistento pranešimą, vykdo kiekvieną grąžintą kvietimą ir prideda atitinkamą įrankio rezultatą prieš prašydamas galutinio atsakymo. Siūlomas kvietimas nėra įrodymas, kad operacija pavyko; faktiškai grąžintas rezultatas tampa kito žingsnio įrodymu.
Jo dinaminio įkėlimo procesas konkrečioje pranešimų istorijos vietoje įveda visą įrankio apibrėžimą. Apibrėžimui reikia pavadinimo, paskirties ir parametrų, ir jis turi likti vėlesnėje istorijoje, nes serveris atskirai neišsaugo šios deklaracijos. Įrankių galimybes, pateiktus argumentus ir tikrus stebėjimus laikykite susietus, kad ilga užduotis galėtų tęstis nuo jau užbaigto darbo.
Išvesties valdikliai ir kartojamas kontekstas
Gamintojas dokumentuoja numatytąjį 131 072 žetonų užbaigimo limitą, konfigūruojamą iki 1 048 576 bendrų modelio konteksto apribojimų ribose. Dabartinė jo K3 API fiksuoja temperature ties 1.0, top_p ties 0.95, vieną rezultatą bei nulines presence ir frequency baudas, nurodydama kviečiantiems šiuos generavimo valdiklius praleisti. Tai konkretaus gamintojo varianto nustatymai, o ne perkeliamas reguliuojamų valdiklių sąrašas.
Konteksto podėlis automatiškai taikomas tinkamiems kartojamiems prefiksams, su dokumentuotais 5 minučių ir 1 valandos TTL pasirinkimais bei numatytosiomis 5 minutėmis. Daliniai podėlio blokai lieka nepataikymai. Pakartotinai naudojamą kontekstą išlaikykite stabilų ir tikrinkite faktinį naudojimą, užuot teigę podėlio pataikymą vien iš pasikartojančio teksto. Galutiniam artefaktui išsaugokite pateiktus šaltinius, faktinius įrankių įrodymus ir reikiamą išvesties struktūrą bei patikrinkite, ar ilgas atsakymas ar inžinerinis rezultatas atitinka nurodytus užbaigimo kriterijus.
Ailoot Ultra · Paketinis apdorojimas POST /v1/batches moonshotai/kimi-k3:batch
moonshotai/kimi-k3:batchPradžia
Kimi K3 – Moonshot AI savasis multimodalinis samprotavimo modelis ilgoms programavimo užduotims ir žinių darbui. Jis skaito tekstą, vaizdus bei vaizdo įrašus, generuoja tekstą ir palaiko įrankiais valdomus procesus su 1 048 576 žetonų kontekstu bei tarp žingsnių išsaugoma mąstymo istorija.
- Leidžiamos įvestys
- Tekstas
- Rezultatai
- Tekstas
Prieinama Ailoot · įvestys ir metodai
Ailoot Ultra · Paketinis apdorojimas POST /v1/batches
- Įvestis
text- Išvestis
text- Išvesties formatas
- tiesiogiai įterptas results[].response.body JSON
| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
|---|---|---|---|---|
Laukasendpoint | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos /v1/chat/completions | Numatyta— |
Laukasmodel | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos moonshotai/kimi-k3:batch | Numatyta— |
Laukasrequests | Tipasbatch_item[] | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias elementų skaičius: 1 | Numatyta— |
Laukasrequests[].custom_id | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
Laukasrequests[].body.messages | Tipasmessage[] | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
Laukascompletion_window | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos 24h | Numatyta— |
Laukasprovider | Tipasobject|null | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
Laukasrequests[].body.model | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos moonshotai/kimi-k3:batch, moonshotai/kimi-k3 | Numatyta— |
Laukasprovider.only | Tipasstring[] | ReikalavimasNeprivaloma | Reikšmės ir ribos deepinfra/bf16 | Numatyta— |
Laukasprovider.allow_fallbacks | Tipasboolean|null | ReikalavimasNeprivaloma | Reikšmės ir ribos false, null | Numatyta— |
Metodo parametrai ir gyvavimo ciklas
| Parametras | Specifikacija |
|---|---|
Parametrascontent_type | Specifikacijaapplication/json |
Parametrasrequired | Specifikacijaendpoint, model, requests |
Parametrasmaterial_types | Specifikacijatext |
Parametrasrepresentation | Specifikacijatiesiogiai įterptas requests[] masyvas; kiekvienas elementas turi custom_id ir body laukus |
Parametrasrequest_endpoint_profile | Specifikacija/v1/chat/completions |
Parametrasfile_material | SpecifikacijaKlientas gali vietoje perskaityti faktinį UTF-8 JSONL turinį į requests[] masyvą. Įkėlimo purpose, input_file_id ar failo nuoroda nenaudojami. Jei kliento medžiagos nėra arba ji tuščia, parengimas sustabdomas prieš POST. |
Parametrasserialization_order | Specifikacijaendpoint, model, provider (jei pateiktas), completion_window (jei pateiktas), requests pateikite paskiausiai |
Parametrasoptional_controls | Specifikacijaprovider.only, provider.allow_fallbacks, completion_window |
Parametrasschema_scope | SpecifikacijaTekstinių Chat Completions užklausų turiniai dokumentuotoje Batch paketo struktūroje, pateikiamoje pačioje užklausoje. |
Gyvavimo ciklas: asynchronous
GET /v1/batches/{operation_id} · faktinė pradinės kūrimo užklausos atsakymo response.id reikšmė; tas pats naudotojas, raktas ir grupė
Planai
Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.
- Spartusis režimas
- Nenurodyta Pasirinkus spartųjį režimą
- Flex režimas
- Nenurodyta Pasirinkus flex režimą
- Didžiausios samprotavimo pastangos
- Nenurodyta Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)
- Išreikštinio podėlio kainodara
- Neįjungta Kai prašoma išreikštinio podėlio
Ailoot įkainiai
Kainos pagal konfigūraciją
Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.
| Konfigūracija | Įkainių lentelė | Konteksto tokenų daugiau nei | Konteksto tokenų iki imtinai | Mokestis |
|---|---|---|---|---|
| KonfigūracijaBaziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai $0.00456 / 1K tokenų Išvestis · Išvesties tokenai $0.0228 / 1K tokenų Įvestis · Talpyklos skaitymas $0.000456 / 1K tokenų Įvestis · Rašymas į talpyklą — / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų |
| KonfigūracijaUžklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai $0.00456 / 1K tokenų Išvestis · Išvesties tokenai $0.0228 / 1K tokenų Įvestis · Talpyklos skaitymas $0.000456 / 1K tokenų Įvestis · Rašymas į talpyklą — / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų |
Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →
Užklausų pavyzdžiai
Ailoot Ultra · Paketinis apdorojimas
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.
Gauti ir išsaugoti rezultatus
Ailoot Ultra · Paketinis apdorojimas
tiesiogiai įterptas results[].response.body JSON
GET /v1/batches/{operation_id}
Tikrinti užduoties būseną
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
Išsaugoti visus baigtus rezultatus
Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.
Išsaugokite visą pradinės būsenos JSON, kiekvieną rezultatą ir custom_id bei visą atsakymo arba klaidos turinį. Užbaigtus results[] išsaugokite JSONL formatu nieko nefiltruodami.
Jei reikia patikrinti pradinį atsakymą
Išsaugokite pradinį operacijos ID. Atsakyme 503 result_pending_check pateikiama X-Should-Retry:false; niekada pakartotinai neteikite pradinio paketo, kurio baigtis nežinoma.
Atsakymo laukai
| Laukas | Tipas |
|---|---|
Laukasresults[].custom_id | Tipasstring |
Laukasresults[].response.body.choices[].message.content | Tipasstring|null |
Laukasresults[].error | Tipasobject|null |
Laukasusage | Tipasobject|null |
Laukasid | Tipasstring |
Laukasmodel | Tipasstring |
Laukasendpoint | Tipasstring |
Laukasstatus | Tipasstring |
Laukasrequest_counts | Tipasobject |
Laukasresults[].id | Tipasstring |
Laukasresults[].response.status_code | Tipasinteger |
Laukasresults[].response.request_id | Tipasstring |
Klaidos ir tolesni veiksmai
| Atsakymas | Sąlyga | Kitas žingsnis |
|---|---|---|
Atsakymas400 · invalid_request_error | SąlygaNeteisinga dokumentuota tiesiogiai įterpto paketo struktūra, pasikartojantys raktai, netinkama elemento tapatybė arba konfliktas su sukonfigūruotomis modelio galimybėmis. | Kitas žingsnisPrieš bet kokį naują pateikimą pataisykite nurodytus laukus. |
Atsakymas401 · authentication_error | SąlygaNegaliojantis API raktas. | Kitas žingsnisNaudokite leistiną Ailoot raktą. |
Atsakymas403 · permission_error | SąlygaPaketinio apdorojimo grupė neprieinama. | Kitas žingsnisPatikrinkite rakto ir grupės prieigos teises. |
Atsakymas422 · invalid_request_error | SąlygaPaketinis apdorojimas apmokamas iš balanso; kūrimo užklausos su prenumeratos apmokėjimu atmetamos. | Kitas žingsnisNaudokite leistiną grupę, kurios užklausos apmokamos iš balanso. |
Atsakymas422 · price_unavailable | SąlygaNepavyksta apskaičiuoti paketinio apdorojimo įvesties kainos. | Kitas žingsnisIšsaugokite atsakymą; naudokite dokumentuotą šios API šeimos įvestį. |
Atsakymas402 · billing_error | SąlygaPaketiniam apdorojimui reikalingas rezervas neprieinamas. | Kitas žingsnisPrieš teikdami naują užklausą išspręskite užklausos priėmimo problemą. |
Atsakymas503 · price_unavailable | SąlygaPaketinio apdorojimo metodo kaina arba savieji sistemos įkainiai neprieinami. | Kitas žingsnisIšsaugokite atsakymą; nekeiskite kainų kitomis. |
Atsakymas503 · api_error | SąlygaKonkretus tiekėjo maršrutas neprieinamas. | Kitas žingsnisIšsaugokite atsakymą maršrutui pataisyti. |
Atsakymas503 · result_pending_check | SąlygaPradinį rezultatą reikia patikrinti; X-Should-Retry:false. | Kitas žingsnisIšsaugokite pradinę operation_id/id reikšmę ir tikrinkite operacijos būseną; niekada nekartokite pradinės POST užklausos. |
Atsakymas404 · not_found | SąlygaPaketinio apdorojimo būsenos operacijos nėra arba ji susieta su kita tapatybe. | Kitas žingsnisNaudokite tikslią pradinę id reikšmę ir tą patį naudotoją, raktą bei grupę. |
Pseudonimai
Modelių pseudonimai
Ailoot Ultra moonshotai/kimi-k3:batch
Metodų kelių pseudonimai
Naudokite aukščiau nurodytus metodų kelius.
Susiję ID iškvietimui
FAQ · MoonshotAI: Kimi K3 (batch)
- Kokios įvestys ir rezultatai prieinami?
POST /v1/batches·moonshotai/kimi-k3:batch:text→text- Kokius laukus naudoja užklausa?
POST /v1/batches·moonshotai/kimi-k3:batch:endpoint,model,requests,completion_window,provider- Kokie apribojimai taikomi?
POST /v1/batches·moonshotai/kimi-k3:batch:requests.min_items:1