MoonshotAI: Kimi K3 (batch)
Kimi K3 ialah model penaakulan multimodal asli Moonshot AI untuk tugas pengekodan panjang dan kerja pengetahuan. Ia membaca teks, imej dan video, menghasilkan teks, serta menyokong aliran kerja berasaskan alat dengan konteks 1,048,576 token dan sejarah pemikiran yang dikekalkan merentas langkah.
Tentang model
Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.
Kimi K3 ialah model ejen multimodal berpemberat terbuka Moonshot AI untuk pengekodan jangka panjang, kerja pengetahuan dan penaakulan. Ia menggabungkan teks dengan pemahaman visual asli terhadap imej dan video serta menghasilkan jawapan teks atau permintaan alat. Pengeluar menekankan sesi kejuruteraan panjang, repositori besar dan tugas yang menggunakan tangkapan skrin atau maklum balas visual bersama kod. Taklimat yang berguna mentakrifkan artifak yang diingini, bukti untuk digunakan dan syarat yang menandakan kerja selesai.
Seni bina dan konteks panjang
Kad model menerangkan Mixture of Experts jarang dengan jumlah 2.8 trilion parameter dan 104 bilion parameter diaktifkan. Reka bentuk Stable LatentMoEnya memilih 16 daripada 896 pakar bagi setiap token, menggunakan Kimi Delta Attention dan Attention Residuals bersama perhatian berpagar. Panjang konteks yang tepat ialah 1,048,576 token. Ini ruang untuk konteks tugas yang besar, bukannya sebab untuk membuang batas sumber atau ruang yang diperlukan bagi hasil.
Artifak asli yang diterbitkan menggunakan latihan peka pengkuantuman dengan pemberat MXFP4 dan pengaktifan MXFP8. Itu format keluaran pengeluar, berbeza daripada edisi terkuantum yang dibekalkan secara berasingan atau dakwaan tentang cara laluan tertentu menyajikan model. Pemberat terbuka dan bilangan parameter besar tidak menjadikan angka parameter aktif sebagai keperluan jumlah storan atau perkakasan.
Sediakan tugas pengekodan yang besar
Berikan bahan repositori berkaitan, tingkah laku sedia ada, perubahan yang diminta dan kekangan keserasian. Kenal pasti fail atau antara muka yang mesti dipengaruhi oleh hasil, pemeriksaan yang menentukan kejayaan dan sebarang ralat atau input yang diberikan yang mendedahkan masalah. Hasil yang berguna boleh berupa perubahan kod berfokus dengan penjelasan dan bukti daripada pemeriksaan yang benar-benar dijalankan, dan bukannya perihalan tindakan yang tidak pernah dilakukan.
Untuk tugas pembangunan visual, sertakan tangkapan skrin atau paparan jelas hasil yang dimaksudkan bersama kod berkaitan dan percanggahan khusus. Pembuat menerangkan aliran kerja merangkumi kerja bahagian hadapan, permainan dan CAD yang menggunakan maklum balas visual. Minta perubahan yang menghubungkan kod kepada hasil yang diperhatikan, dan kekalkan rujukan supaya artifak yang diserahkan boleh diperiksa terhadapnya.
Penyediaan imej, video dan kerja pengetahuan
Panduan mula pantas pengeluar menggunakan objek kandungan berjenis untuk mesej visual; content ialah tatasusunan, bukannya perwakilan tersiri tatasusunan itu. Aliran kerja imejnya menggunakan data imej yang dikodkan atau rujukan fail yang disokong dan bukannya alamat imej awam. Contoh video memuat naik fail video dan membekalkan rujukan yang terhasil bersama soalan tentang kandungannya. Berikan sumber yang jelas dan nyatakan pemerhatian, selang atau hubungan yang penting. Aliran kerja penglihatan pengeluar menerima imej JPEG, PNG, GIF, WebP, BMP, HEIC dan HEIF, serta video MP4, MPEG, MOV, AVI, FLV, MPG, WebM, WMV dan 3GPP. GIF atau WebP beranimasi boleh dinyahkod sebagai video. Berikan sumber SVG sebagai teks. Pembuat mengesyorkan imej sehingga 4096 × 2160 dan video sehingga 1920 × 1080; ini syor resolusi, bukannya ambang penolakan. Kekalkan badan permintaan dalam batas saiz 100M yang didokumentasikan dan muat naik media besar atau yang digunakan berulang kali sebagai fail.
Untuk penyelidikan yang sarat dokumen, labelkan sumber dan nyatakan soalan yang perlu dijawab oleh laporan akhir. Untuk penjelasan video, kenal pasti peristiwa atau jujukan yang hendak dianalisis dan bukannya meminta ulasan tanpa batas. K3 menggunakan kandungan visual sebagai bukti untuk penaakulan dan mengembalikan teks atau permintaan alat. Aplikasi boleh menghantar permintaan itu kepada alat media untuk mencipta artifak imej atau video yang berasingan.
Pemikiran sentiasa diaktifkan
Antara muka pengeluar K3 sentiasa mengaktifkan pemikiran. Tetapan reasoning_effort peringkat teratas menerima low, high dan max, dengan max sebagai lalai. Pilihan ini khusus model; tetapan tanpa pemikiran atau nilai usaha daripada keluarga lain tidak patut diandaikan. Panduan migrasi pembuat membezakan K3 daripada K2.x dengan menggunakan reasoning_effort dan bukannya membawa konfigurasi thinking yang lebih lama.
Pengeluar mendokumentasikan reasoning_content dan kandungan jawapan akhir yang berasingan dalam hasil berstrim. Untuk perbualan berbilang giliran atau aliran kerja alat, ia memerlukan mesej pembantu lengkap yang dikembalikan dihantar semula tanpa perubahan, termasuk reasoning_content dan tool_calls. Mengekalkan jawapan akhir yang kelihatan sahaja menghilangkan maklumat yang dijangka oleh aliran kerja pemikiran dikekalkan model pada langkah seterusnya.
Jawapan akhir berstruktur dan penyambungan separa
Panduan mula pantas mendokumentasikan output skema JSON yang ketat untuk kandungan mesej akhir. Takrifkan medan dan maknanya berdasarkan artifak yang diperlukan aplikasi, dan huraikan kandungan akhir itu dan bukannya menggabungkannya dengan medan penaakulan. Hasil berstruktur boleh mewakili maklumat yang diekstrak daripada bahan yang diberikan atau format laporan yang ditentukan; skema mengehadkan bentuknya, manakala bukti sumber menentukan sama ada nilainya betul.
Mod separa boleh menyambung awalan teks yang diberikan. Contoh pengeluar meletakkan mesej pembantu separa pada akhir sejarah dan menggabungkan awalan itu dengan sambungan yang dikembalikan untuk paparan. Gunakan ini apabila artifak yang diperlukan mempunyai permulaan tetap yang bermakna, sambil mengekalkan awalan berbeza daripada baki yang dijana.
Alat dan kesinambungan hasilnya
K3 menyokong alat fungsi tersuai. Contoh pengeluar mewajibkan alat pada giliran pertama, mengekalkan mesej pembantu lengkap, melaksanakan setiap panggilan yang dikembalikan dan menambah hasil alat yang sepadan sebelum meminta jawapan akhir. Panggilan yang dicadangkan bukan bukti bahawa operasi berjaya; hasil sebenar yang dikembalikan menjadi bukti untuk langkah seterusnya.
Aliran kerja pemuatan dinamiknya memperkenalkan takrif alat lengkap pada titik tertentu dalam sejarah mesej. Takrif itu memerlukan nama, tujuan dan parameternya, dan mesti kekal dalam sejarah berikutnya kerana pelayan tidak mengekalkan pengisytiharan itu secara bebas. Kekalkan keupayaan alat, argumen yang diberikan dan pemerhatian sebenar berkaitan supaya tugas panjang boleh diteruskan daripada kerja yang telah selesai.
Kawalan output dan konteks berulang
Pengeluar mendokumentasikan peruntukan pelengkapan lalai 131,072 token, yang boleh dikonfigurasi sehingga 1,048,576 dalam kekangan konteks keseluruhan model. API K3 semasanya menetapkan temperature pada 1.0, top_p pada 0.95, satu hasil, serta penalti kehadiran dan kekerapan sifar, dan mengarahkan pemanggil supaya tidak menyertakan kawalan pensampelan itu. Ini ialah tetapan varian pengeluar yang tepat, bukannya senarai kawalan boleh laras yang boleh dipindahkan.
Penyimpanan cache konteks adalah automatik untuk awalan berulang yang layak, dengan pilihan TTL 5 minit dan 1 jam yang didokumentasikan serta 5 minit sebagai lalai. Blok cache separa masih dikira sebagai kegagalan menemukan padanan cache. Pastikan konteks yang boleh digunakan semula stabil dan periksa penggunaan sebenar dan bukannya mendakwa terdapat padanan cache berdasarkan teks berulang semata-mata. Untuk artifak akhir, kekalkan sumber yang diberikan, bukti alat sebenar dan struktur output wajib, serta periksa bahawa jawapan panjang atau hasil kejuruteraan memenuhi kriteria penyiapan yang dinyatakan.
Ailoot Ultra · Kelompok POST /v1/batches moonshotai/kimi-k3:batch
moonshotai/kimi-k3:batchPengenalan
Kimi K3 ialah model penaakulan multimodal asli Moonshot AI untuk tugas pengekodan panjang dan kerja pengetahuan. Ia membaca teks, imej dan video, menghasilkan teks, serta menyokong aliran kerja berasaskan alat dengan konteks 1,048,576 token dan sejarah pemikiran yang dikekalkan merentas langkah.
- Input yang diterima
- Teks
- Hasil
- Teks
Tersedia di Ailoot · input & kaedah
Ailoot Ultra · Kelompok POST /v1/batches
- Input
text- Output
text- Format output
- JSON results[].response.body sebaris
| Medan | Jenis | Keperluan | Nilai & had | Lalai |
|---|---|---|---|---|
Medanendpoint | Jenisstring | KeperluanDiperlukan | Nilai & had /v1/chat/completions | Lalai— |
Medanmodel | Jenisstring | KeperluanDiperlukan | Nilai & had moonshotai/kimi-k3:batch | Lalai— |
Medanrequests | Jenisbatch_item[] | KeperluanDiperlukan | Nilai & had Item minimum: 1 | Lalai— |
Medanrequests[].custom_id | Jenisstring | KeperluanDiperlukan | Nilai & had | Lalai— |
Medanrequests[].body.messages | Jenismessage[] | KeperluanDiperlukan | Nilai & had | Lalai— |
Medancompletion_window | Jenisstring | KeperluanPilihan | Nilai & had 24h | Lalai— |
Medanprovider | Jenisobject|null | KeperluanPilihan | Nilai & had | Lalai— |
Medanrequests[].body.model | Jenisstring | KeperluanPilihan | Nilai & had moonshotai/kimi-k3:batch, moonshotai/kimi-k3 | Lalai— |
Medanprovider.only | Jenisstring[] | KeperluanPilihan | Nilai & had deepinfra/bf16 | Lalai— |
Medanprovider.allow_fallbacks | Jenisboolean|null | KeperluanPilihan | Nilai & had false, null | Lalai— |
Parameter kaedah dan kitar hayat
| Parameter | Kontrak |
|---|---|
Parametercontent_type | Kontrakapplication/json |
Parameterrequired | Kontrakendpoint, model, requests |
Parametermaterial_types | Kontraktext |
Parameterrepresentation | Kontrakrequests[] sebaris; setiap item mempunyai custom_id dan body |
Parameterrequest_endpoint_profile | Kontrak/v1/chat/completions |
Parameterfile_material | KontrakPemanggil boleh membaca JSONL UTF-8 sebenar secara setempat ke dalam requests[]. Tiada tujuan muat naik, input_file_id atau rujukan fail digunakan. Bahan pelanggan yang tiada atau kosong menghentikan persediaan sebelum POST. |
Parameterserialization_order | Kontrakendpoint, model, provider (jika dibekalkan), completion_window (jika dibekalkan), requests di akhir |
Parameteroptional_controls | Kontrakprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | KontrakBadan permintaan Chat Completions teks dalam pembungkus Batch sebaris yang didokumenkan. |
Kitar hayat: asynchronous
GET /v1/batches/{operation_id} · response.id sebenar daripada respons penciptaan asal; pengguna/kunci/kumpulan yang sama
Pelan harga
Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.
- Mod pantas
- Tidak dinyatakan Apabila mod pantas dipilih
- Mod flex
- Tidak dinyatakan Apabila mod flex dipilih
- Usaha penaakulan maksimum
- Tidak dinyatakan Apabila usaha penaakulan maksimum menggunakan pelarasan default
- Harga cache eksplisit
- Tidak diaktifkan Apabila cache eksplisit diminta
Kadar Ailoot
Harga mengikut konfigurasi
Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.
| Konfigurasi | Jadual kadar | Token konteks, melebihi | Token konteks, sehingga dan termasuk | Caj |
|---|---|---|---|---|
| KonfigurasiKadar asas token | Jadual kadarKadar asas | Token konteks, melebihi— | Token konteks, sehingga dan termasukTiada had atas | Caj Input · Token input $0.00456 / 1K token Output · Token output $0.0228 / 1K token Input · Bacaan cache $0.000456 / 1K token Input · Penulisan cache — / 1K token Input · Penulisan cache, 1 jam — / 1K token |
| KonfigurasiTahap panjang permintaan 1 | Jadual kadar— | Token konteks, melebihi0 | Token konteks, sehingga dan termasukTiada had atas | Caj Input · Token input $0.00456 / 1K token Output · Token output $0.0228 / 1K token Input · Bacaan cache $0.000456 / 1K token Input · Penulisan cache — / 1K token Input · Penulisan cache, 1 jam — / 1K token |
Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. Cara rizab dan penyelesaian caj berfungsi →
Contoh permintaan
Ailoot Ultra · Kelompok
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.
Terima dan simpan hasil
Ailoot Ultra · Kelompok
JSON results[].response.body sebaris
GET /v1/batches/{operation_id}
Semak status tugas
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
Simpan semua hasil yang selesai
Simpan setiap respons lengkap, fail dan bahagian kandungan yang dikembalikan.
Simpan keseluruhan JSON status asal, setiap hasil/custom_id serta badan respons atau ralat yang lengkap. Simpan results[] yang telah selesai sebagai JSONL tanpa penapisan.
Jika respons asal perlu disemak
Simpan ID operasi asal. 503 result_pending_check mempunyai X-Should-Retry:false; jangan sekali-kali hantar semula kelompok asal yang hasilnya tidak diketahui.
Medan respons
| Medan | Jenis |
|---|---|
Medanresults[].custom_id | Jenisstring |
Medanresults[].response.body.choices[].message.content | Jenisstring|null |
Medanresults[].error | Jenisobject|null |
Medanusage | Jenisobject|null |
Medanid | Jenisstring |
Medanmodel | Jenisstring |
Medanendpoint | Jenisstring |
Medanstatus | Jenisstring |
Medanrequest_counts | Jenisobject |
Medanresults[].id | Jenisstring |
Medanresults[].response.status_code | Jenisinteger |
Medanresults[].response.request_id | Jenisstring |
Ralat dan langkah seterusnya
| Respons | Syarat | Langkah seterusnya |
|---|---|---|
Respons400 · invalid_request_error | SyaratPembungkus sebaris yang didokumenkan tidak sah, kunci berulang, identiti item atau keupayaan model yang dikonfigurasikan bercanggah. | Langkah seterusnyaBetulkan medan yang dinyatakan sebelum sebarang penghantaran baharu. |
Respons401 · authentication_error | SyaratKunci API tidak sah. | Langkah seterusnyaGunakan kunci Ailoot yang dibenarkan. |
Respons403 · permission_error | SyaratKumpulan kelompok tidak tersedia. | Langkah seterusnyaSemak hak akses kunci/kumpulan. |
Respons422 · invalid_request_error | SyaratKelompok menggunakan pengebilan baki; penciptaan melalui langganan ditolak. | Langkah seterusnyaGunakan kumpulan yang dibenarkan untuk pengebilan melalui baki. |
Respons422 · price_unavailable | SyaratSebut harga tidak dapat diberikan untuk input kelompok. | Langkah seterusnyaSimpan respons; gunakan input keluarga API yang didokumenkan. |
Respons402 · billing_error | SyaratRizab kelompok tidak tersedia. | Langkah seterusnyaSelesaikan isu penerimaan permintaan sebelum menghantar permintaan baharu. |
Respons503 · price_unavailable | SyaratHarga kaedah kelompok/kadar natif tidak tersedia. | Langkah seterusnyaSimpan respons; jangan gantikan harga. |
Respons503 · api_error | SyaratLaluan pembekal yang tepat tidak tersedia. | Langkah seterusnyaSimpan respons untuk pembaikan laluan. |
Respons503 · result_pending_check | SyaratHasil asal memerlukan semakan; X-Should-Retry:false. | Langkah seterusnyaSimpan operation_id/id asal dan baca statusnya; jangan sekali-kali ulang POST asal. |
Respons404 · not_found | SyaratOperasi status kelompok tiada atau dimiliki oleh identiti lain. | Langkah seterusnyaGunakan id asal yang tepat serta pengguna/kunci/kumpulan yang sama. |
Alias
Alias model
Ailoot Ultra moonshotai/kimi-k3:batch
Alias laluan kaedah
Gunakan laluan kaedah yang dipaparkan di atas.
ID pemanggil berkaitan
FAQ · MoonshotAI: Kimi K3 (batch)
- Apakah input dan hasil yang tersedia?
POST /v1/batches·moonshotai/kimi-k3:batch:text→text- Apakah medan yang digunakan oleh permintaan?
POST /v1/batches·moonshotai/kimi-k3:batch:endpoint,model,requests,completion_window,provider- Apakah had yang terpakai?
POST /v1/batches·moonshotai/kimi-k3:batch:requests.min_items:1