MoonshotAI: Kimi K3 (batch)
Kimi K3 je nativně multimodální model Moonshot AI pro uvažování při dlouhých programátorských úlohách a znalostní práci. Čte text, obrázky a video, vytváří text a podporuje postupy řízené nástroji s kontextem 1 048 576 tokenů a historií přemýšlení zachovanou napříč kroky.
O modelu
Tento popis zahrnuje schopnosti modelu. Vstupy, výstupy a možnosti dostupné v Ailoot jsou uvedeny níže pro vybranou metodu.
Kimi K3 je multimodální agentní model Moonshot AI s otevřenými vahami pro dlouhodobé programátorské úlohy, znalostní práci a uvažování. Spojuje text s nativním vizuálním porozuměním obrázkům a videu a vytváří textovou odpověď nebo požadavek na nástroj. Výrobce zdůrazňuje dlouhé inženýrské relace, rozsáhlé repozitáře a úlohy využívající snímky obrazovky nebo vizuální zpětnou vazbu vedle kódu. Užitečné zadání definuje požadovaný artefakt, podklady k použití a podmínku označující dokončení práce.
Architektura a dlouhý kontext
Karta modelu popisuje řídkou Mixture of Experts s celkem 2,8 bilionu parametrů a 104 miliardami aktivovaných parametrů. Jeho návrh Stable LatentMoE vybírá 16 z 896 expertů na token a používá Kimi Delta Attention a Attention Residuals spolu s hradlovanou pozorností. Přesná délka kontextu je 1 048 576 tokenů. Jde o prostor pro rozsáhlý kontext úlohy, nikoli důvod zahodit hranice zdrojů nebo prostor potřebný pro výsledek.
Zveřejněný nativní artefakt používá trénování zohledňující kvantizaci s vahami MXFP4 a aktivacemi MXFP8. Jde o formát vydání výrobce, odlišný od samostatně dodané kvantizované edice nebo tvrzení o tom, jak konkrétní cesta model poskytuje. Otevřené váhy a velký počet parametrů nemění údaj o aktivních parametrech na celkový požadavek na úložiště nebo hardware.
Připravte rozsáhlou programátorskou úlohu
Dodejte relevantní materiály repozitáře, existující chování, požadovanou změnu a omezení kompatibility. Určete soubory nebo rozhraní, které musí výsledek ovlivnit, kontroly určující úspěch a případnou dodanou chybu nebo vstup odhalující problém. Užitečným výsledkem může být cílená změna kódu s vysvětlením a doklady z kontrol, které skutečně proběhly, místo popisu akcí, jež nikdy nebyly provedeny.
U vizuální vývojové úlohy zahrňte snímek obrazovky nebo jasný pohled na zamýšlený výsledek s relevantním kódem a konkrétním rozporem. Výrobce popisuje postupy zahrnující frontendovou práci, hry a CAD využívající vizuální zpětnou vazbu. Požadujte změnu, která propojí kód s pozorovaným výsledkem, a referenci uchovejte, aby bylo možné dodaný artefakt vůči ní zkontrolovat.
Příprava obrázků, videa a znalostní práce
Rychlý úvod výrobce používá pro vizuální zprávy typované objekty obsahu; content je pole, nikoli serializovaná reprezentace tohoto pole. Jeho obrazový postup používá zakódovaná obrazová data nebo podporovaný odkaz na soubor místo veřejné adresy obrázku. Video příklad nahraje soubor videa a dodá výsledný odkaz s otázkou k jeho obsahu. Dodejte čitelný zdroj a určete důležité pozorování, interval nebo vztah. Vizuální postup výrobce přijímá obrázky JPEG, PNG, GIF, WebP, BMP, HEIC a HEIF a video MP4, MPEG, MOV, AVI, FLV, MPG, WebM, WMV a 3GPP. Animované GIF nebo WebP lze dekódovat jako video. Zdroj SVG dodejte jako text. Výrobce doporučuje obrázky do 4096 × 2160 a video do 1920 × 1080; jde o doporučení rozlišení, nikoli prahy odmítnutí. Tělo požadavku udržujte ve zdokumentovaném limitu velikosti 100M a velká nebo opakovaně používaná média nahrávejte jako soubory.
Pro výzkum s mnoha dokumenty označte zdroje a uveďte otázky, na něž má konečná zpráva odpovědět. Pro vysvětlení videa určete události nebo posloupnost k analýze místo žádosti o neomezený komentář. K3 používá vizuální obsah jako podklady pro uvažování a vrací text nebo požadavky na nástroje. Aplikace může tyto požadavky předat mediálním nástrojům k vytvoření samostatných obrazových nebo video artefaktů.
Přemýšlení je vždy zapnuté
Rozhraní výrobce K3 má přemýšlení vždy zapnuté. Nastavení reasoning_effort na nejvyšší úrovni přijímá low, high a max s výchozím max. Tyto volby jsou specifické pro model; nelze předpokládat nastavení bez přemýšlení nebo hodnotu intenzity z jiné rodiny. Migrační pokyny výrobce odlišují K3 od K2.x použitím reasoning_effort místo přenosu starší konfigurace thinking.
Výrobce dokumentuje samostatné reasoning_content a obsah konečné odpovědi ve streamovaných výsledcích. Pro konverzaci ve více kolech nebo postup s nástroji vyžaduje předat zpět celou vrácenou zprávu asistenta beze změny, včetně reasoning_content a tool_calls. Zachování pouze viditelné konečné odpovědi ztrácí informace, které postup zachovaného přemýšlení modelu očekává v dalším kroku.
Strukturované konečné odpovědi a částečné pokračování
Rychlý úvod dokumentuje striktní výstup podle schématu JSON pro obsah konečné zprávy. Pole a jejich významy definujte kolem artefaktu potřebného aplikací a parsujte tento konečný obsah místo spojení s polem uvažování. Strukturovaný výsledek může představovat informace extrahované z dodaných podkladů nebo definovaný formát zprávy; schéma omezuje jeho podobu, zatímco zdrojové podklady určují správnost hodnot.
Režim Partial může pokračovat v dodaném textovém prefixu. Příklad výrobce umisťuje částečnou zprávu asistenta na konec historie a pro zobrazení spojuje tento prefix s vráceným pokračováním. Použijte jej, když požadovaný artefakt má smysluplný pevný začátek, přičemž prefix zachovejte odlišný od generovaného zbytku.
Nástroje a návaznost jejich výsledků
K3 podporuje vlastní nástroje pro volání funkcí. Příklad výrobce vyžaduje nástroj v prvním kole, zachová úplnou zprávu asistenta, provede každé vrácené volání a připojí odpovídající výsledek nástroje před vyžádáním konečné odpovědi. Navržené volání není dokladem úspěchu operace; skutečně vrácený výsledek se stává podkladem pro další krok.
Jeho postup dynamického načítání zavádí úplnou definici nástroje v konkrétním bodě historie zpráv. Definice potřebuje název, účel a parametry a musí zůstat v následné historii, protože server toto prohlášení samostatně neuchovává. Schopnosti nástroje, dodané argumenty a reálná pozorování udržujte propojené, aby dlouhá úloha mohla navázat na již dokončenou práci.
Řízení výstupu a opakovaný kontext
Výrobce dokumentuje výchozí limit dokončení 131 072 tokenů, nastavitelný až na 1 048 576 v rámci celkových kontextových omezení modelu. Jeho aktuální API K3 pevně nastavuje temperature na 1.0, top_p na 0.95, jeden výsledek a nulové penalizace přítomnosti a frekvence a instruuje volající, aby tyto ovládací prvky vzorkování vynechali. Jde o nastavení přesné varianty výrobce, nikoli přenositelný seznam nastavitelných ovládacích prvků.
Ukládání kontextu do cache je automatické pro způsobilé opakované prefixy se zdokumentovanými volbami TTL 5 minut a 1 hodina a výchozími 5 minutami. Částečné bloky cache se stále nepovažují za zásah cache. Opakovaně použitelný kontext udržujte stabilní a kontrolujte skutečné využití místo tvrzení o zásahu cache jen z opakovaného textu. Pro konečný artefakt zachovejte dodané zdroje, skutečné podklady nástrojů a požadovanou strukturu výstupu a zkontrolujte, že dlouhá odpověď nebo inženýrský výsledek splňují uvedená kritéria dokončení.
Ailoot Ultra · Dávka POST /v1/batches moonshotai/kimi-k3:batch
moonshotai/kimi-k3:batchÚvod
Kimi K3 je nativně multimodální model Moonshot AI pro uvažování při dlouhých programátorských úlohách a znalostní práci. Čte text, obrázky a video, vytváří text a podporuje postupy řízené nástroji s kontextem 1 048 576 tokenů a historií přemýšlení zachovanou napříč kroky.
- Přijímané vstupy
- Text
- Výsledky
- Text
Dostupné v Ailoot · vstupy a metody
Ailoot Ultra · Dávka POST /v1/batches
- Vstup
text- Výstup
text- Výstupní formát
- vložený JSON v results[].response.body
| Pole | Typ | Požadavek | Hodnoty a limity | Výchozí |
|---|---|---|---|---|
Poleendpoint | Typstring | PožadavekPovinné | Hodnoty a limity /v1/chat/completions | Výchozí— |
Polemodel | Typstring | PožadavekPovinné | Hodnoty a limity moonshotai/kimi-k3:batch | Výchozí— |
Polerequests | Typbatch_item[] | PožadavekPovinné | Hodnoty a limity Minimální počet položek: 1 | Výchozí— |
Polerequests[].custom_id | Typstring | PožadavekPovinné | Hodnoty a limity | Výchozí— |
Polerequests[].body.messages | Typmessage[] | PožadavekPovinné | Hodnoty a limity | Výchozí— |
Polecompletion_window | Typstring | PožadavekVolitelné | Hodnoty a limity 24h | Výchozí— |
Poleprovider | Typobject|null | PožadavekVolitelné | Hodnoty a limity | Výchozí— |
Polerequests[].body.model | Typstring | PožadavekVolitelné | Hodnoty a limity moonshotai/kimi-k3:batch, moonshotai/kimi-k3 | Výchozí— |
Poleprovider.only | Typstring[] | PožadavekVolitelné | Hodnoty a limity deepinfra/bf16 | Výchozí— |
Poleprovider.allow_fallbacks | Typboolean|null | PožadavekVolitelné | Hodnoty a limity false, null | Výchozí— |
Parametry a životní cyklus metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktendpoint, model, requests |
Parametrmaterial_types | Kontrakttext |
Parametrrepresentation | Kontraktvložené requests[]; každá položka obsahuje custom_id a body |
Parametrrequest_endpoint_profile | Kontrakt/v1/chat/completions |
Parametrfile_material | KontraktVolající může lokálně načíst skutečný soubor JSONL v kódování UTF-8 do requests[]. Nepoužívá se účel nahrání, input_file_id ani odkaz na soubor. Chybějící nebo prázdné podklady zákazníka zastaví přípravu před POST. |
Parametrserialization_order | Kontraktendpoint, model, provider (je-li uveden), completion_window (je-li uvedeno), requests nakonec |
Parametroptional_controls | Kontraktprovider.only, provider.allow_fallbacks, completion_window |
Parametrschema_scope | KontraktTěla požadavků Text Chat Completions v dokumentované obálce pro vložené dávkové požadavky Batch. |
Životní cyklus: asynchronous
GET /v1/batches/{operation_id} · skutečné response.id z původní odpovědi na vytvoření; stejný uživatel, klíč a skupina
Tarify
Údaje o tarifech nepřidávají možnosti požadavku. Podporované parametry jsou uvedeny u vybrané metody.
- Rychlý režim
- Neuvedeno Při výběru rychlého režimu
- Režim flex
- Neuvedeno Při výběru režimu flex
- Maximální intenzita uvažování
- Neuvedeno Když se při maximální intenzitě uvažování použije výchozí úprava (default)
- Ceny explicitní mezipaměti
- Není zapnuto Při požadavku na explicitní mezipaměť
Sazby Ailoot
Ceny podle konfigurace
Přiřaďte každý poplatek k uvedeným podmínkám. Pro každou sadu alternativních konfigurací použijte jednu sazbu.
| Konfigurace | Tabulka sazeb | Tokeny kontextu, více než | Tokeny kontextu, do uvedené hodnoty včetně | Poplatek |
|---|---|---|---|---|
| KonfiguraceZákladní sazby za tokeny | Tabulka sazebZákladní sazba | Tokeny kontextu, více než— | Tokeny kontextu, do uvedené hodnoty včetněBez horní meze | Poplatek Vstup · Vstupní tokeny $0.00456 / 1K tokenů Výstup · Výstupní tokeny $0.0228 / 1K tokenů Vstup · Čtení z mezipaměti $0.000456 / 1K tokenů Vstup · Zápis do mezipaměti — / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
| KonfiguracePásmo délky požadavku 1 | Tabulka sazeb— | Tokeny kontextu, více než0 | Tokeny kontextu, do uvedené hodnoty včetněBez horní meze | Poplatek Vstup · Vstupní tokeny $0.00456 / 1K tokenů Výstup · Výstupní tokeny $0.0228 / 1K tokenů Vstup · Čtení z mezipaměti $0.000456 / 1K tokenů Vstup · Zápis do mezipaměti — / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
Ailoot před požadavkem rezervuje odhadovanou částku. Po výsledku vyúčtuje konečný poplatek podle naměřeného využití. Při streamování se účtování řídí konečným záznamem využití. Jak funguje rezervace a vyúčtování →
Příklady požadavků
Ailoot Ultra · Dávka
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.
Přijímání a ukládání výsledků
Ailoot Ultra · Dávka
vložený JSON v results[].response.body
GET /v1/batches/{operation_id}
Ověřit stav úlohy
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
Uchovejte všechny dokončené výsledky
Uchovejte každou úplnou vrácenou odpověď, soubor i část obsahu.
Uchovejte úplný původní JSON se stavem, každý výsledek a custom_id a úplné tělo odpovědi nebo chyby. Dokončené results[] uložte jako JSONL bez filtrování.
Pokud je nutné ověřit původní odpověď
Uchovejte původní ID operace. Odpověď 503 result_pending_check obsahuje X-Should-Retry:false; původní dávku s neznámým výsledkem nikdy znovu neodesílejte.
Pole odpovědi
| Pole | Typ |
|---|---|
Poleresults[].custom_id | Typstring |
Poleresults[].response.body.choices[].message.content | Typstring|null |
Poleresults[].error | Typobject|null |
Poleusage | Typobject|null |
Poleid | Typstring |
Polemodel | Typstring |
Poleendpoint | Typstring |
Polestatus | Typstring |
Polerequest_counts | Typobject |
Poleresults[].id | Typstring |
Poleresults[].response.status_code | Typinteger |
Poleresults[].response.request_id | Typstring |
Chyby a další kroky
| Odpověď | Podmínka | Další krok |
|---|---|---|
Odpověď400 · invalid_request_error | PodmínkaNeplatná dokumentovaná obálka vložených požadavků, duplicitní klíče, nesprávná identita položky nebo rozpor s nastavenými schopnostmi modelu. | Další krokPřed jakýmkoli novým odesláním opravte označená pole. |
Odpověď401 · authentication_error | PodmínkaNeplatný klíč API. | Další krokPoužijte autorizovaný klíč Ailoot. |
Odpověď403 · permission_error | PodmínkaSkupina pro dávkové požadavky není dostupná. | Další krokZkontrolujte oprávnění klíče a skupiny. |
Odpověď422 · invalid_request_error | PodmínkaDávkové požadavky se účtují ze zůstatku; vytvoření v rámci předplatného se odmítá. | Další krokPoužijte autorizovanou skupinu s účtováním ze zůstatku. |
Odpověď422 · price_unavailable | PodmínkaPro vstup dávky nelze vypočítat cenovou nabídku. | Další krokUchovejte odpověď; použijte dokumentovaný vstup pro danou rodinu API. |
Odpověď402 · billing_error | PodmínkaRezerva pro dávku není dostupná. | Další krokPřed novým požadavkem vyřešte podmínky přijetí. |
Odpověď503 · price_unavailable | PodmínkaCena dávkové metody nebo nativní sazby nejsou dostupné. | Další krokUchovejte odpověď; nenahrazujte ceny jinými. |
Odpověď503 · api_error | PodmínkaPřesná trasa dodavatele není dostupná. | Další krokUchovejte odpověď pro opravu směrování. |
Odpověď503 · result_pending_check | PodmínkaPůvodní výsledek vyžaduje kontrolu; X-Should-Retry:false. | Další krokUchovejte původní operation_id/id a načítejte jeho stav; původní POST nikdy neopakujte. |
Odpověď404 · not_found | PodmínkaOperace pro kontrolu stavu dávky neexistuje nebo patří jiné identitě. | Další krokPoužijte přesné původní id a stejného uživatele, klíč a skupinu. |
Aliasy
Aliasy modelu
Ailoot Ultra moonshotai/kimi-k3:batch
Aliasy cest metod
Použijte cesty metod uvedené výše.
Související ID modelů
FAQ · MoonshotAI: Kimi K3 (batch)
- Jaké vstupy a výsledky jsou dostupné?
POST /v1/batches·moonshotai/kimi-k3:batch:text→text- Jaká pole požadavek používá?
POST /v1/batches·moonshotai/kimi-k3:batch:endpoint,model,requests,completion_window,provider- Jaké limity platí?
POST /v1/batches·moonshotai/kimi-k3:batch:requests.min_items:1