MoonshotAI: Kimi K3 (batch)
Kimi K3 adalah model penalaran yang secara bawaan multimodal dari Moonshot AI untuk tugas pemrograman panjang dan pekerjaan pengetahuan. Model ini membaca teks, gambar, dan video, menghasilkan teks, serta mendukung alur berbasis alat dengan konteks 1.048.576 token dan riwayat thinking yang dipertahankan antarlangkah.
Tentang model
Deskripsi ini mencakup kemampuan model. Masukan, keluaran, dan opsi yang tersedia di Ailoot tercantum di bawah untuk metode yang dipilih.
Kimi K3 adalah model agen multimodal berbobot terbuka dari Moonshot AI untuk pemrograman jangka panjang, pekerjaan pengetahuan, dan penalaran. Model ini menggabungkan teks dengan pemahaman visual bawaan atas gambar serta video dan menghasilkan jawaban teks atau permintaan alat. Pembuatnya menonjolkan sesi rekayasa panjang, repositori besar, dan tugas yang menggunakan tangkapan layar atau umpan balik visual bersama kode. Arahan yang berguna menetapkan artefak yang diinginkan, bukti yang harus digunakan, dan kondisi yang menandai pekerjaan selesai.
Arsitektur dan konteks panjang
Kartu model menjelaskan sparse Mixture of Experts dengan total 2,8 triliun parameter dan 104 miliar parameter yang diaktifkan. Rancangan Stable LatentMoE-nya memilih 16 dari 896 pakar per token, menggunakan Kimi Delta Attention dan Attention Residuals bersama gated attention. Panjang konteks yang tepat adalah 1.048.576 token. Ini menyediakan ruang untuk konteks tugas yang besar, bukan alasan untuk mengabaikan batas sumber atau ruang yang dibutuhkan hasil.
Artefak bawaan yang dipublikasikan menggunakan pelatihan yang memperhitungkan kuantisasi dengan bobot MXFP4 dan aktivasi MXFP8. Itu merupakan format rilis pembuatnya, berbeda dari edisi terkuantisasi yang disediakan terpisah atau klaim tentang cara rute tertentu menyajikan model. Bobot terbuka dan jumlah parameter besar tidak menjadikan angka parameter aktif sebagai kebutuhan penyimpanan total atau perangkat keras.
Siapkan tugas pemrograman besar
Berikan materi repositori yang relevan, perilaku yang ada, perubahan yang diminta, dan batasan kompatibilitas. Identifikasi berkas atau antarmuka yang harus terdampak hasil, pemeriksaan yang menentukan keberhasilan, serta kesalahan atau masukan yang diberikan yang menunjukkan masalah. Hasil yang berguna dapat berupa perubahan kode terarah dengan penjelasan dan bukti dari pemeriksaan yang benar-benar dijalankan, bukan deskripsi tindakan yang tidak pernah dilakukan.
Untuk tugas pengembangan visual, sertakan tangkapan layar atau tampilan jelas dari hasil yang dimaksud beserta kode yang relevan dan perbedaan spesifik. Pembuatnya menjelaskan alur yang mencakup pekerjaan frontend, gim, dan CAD yang menggunakan umpan balik visual. Minta perubahan yang menghubungkan kode dengan hasil yang diamati, serta pertahankan referensinya agar artefak yang diserahkan dapat diperiksa terhadapnya.
Persiapan gambar, video, dan pekerjaan pengetahuan
Panduan mulai cepat pembuatnya menggunakan objek konten bertipe untuk pesan visual; content adalah array, bukan representasi terserialisasi dari array tersebut. Alur gambarnya menggunakan data gambar terenkode atau referensi berkas yang didukung, bukan alamat gambar publik. Contoh video mengunggah berkas video dan memberikan referensi hasilnya bersama pertanyaan tentang kontennya. Berikan sumber yang terbaca dan tentukan pengamatan, interval, atau hubungan yang penting. Alur visual pembuatnya menerima gambar JPEG, PNG, GIF, WebP, BMP, HEIC, dan HEIF, serta video MP4, MPEG, MOV, AVI, FLV, MPG, WebM, WMV, dan 3GPP. GIF atau WebP animasi dapat didekode sebagai video. Berikan sumber SVG sebagai teks. Pembuatnya merekomendasikan gambar hingga 4096 × 2160 dan video hingga 1920 × 1080; ini adalah rekomendasi resolusi, bukan ambang penolakan. Jaga badan permintaan dalam batas ukuran 100M yang terdokumentasi dan unggah media besar atau yang digunakan berulang sebagai berkas.
Untuk riset yang banyak menggunakan dokumen, beri label pada sumber dan nyatakan pertanyaan yang harus dijawab laporan akhir. Untuk penjelasan video, identifikasi peristiwa atau urutan yang harus dianalisis alih-alih meminta komentar tanpa batas. K3 menggunakan konten visual sebagai bukti penalaran dan mengembalikan teks atau permintaan alat. Aplikasi dapat meneruskan permintaan tersebut ke alat media untuk membuat artefak gambar atau video terpisah.
Thinking selalu aktif
Antarmuka K3 dari pembuatnya selalu mengaktifkan thinking. Pengaturan reasoning_effort tingkat atas menerima low, high, dan max, dengan max sebagai bawaan. Pilihan ini khusus untuk model tersebut; pengaturan tanpa thinking atau nilai upaya dari keluarga lain tidak boleh diasumsikan berlaku. Panduan migrasi pembuatnya membedakan K3 dari K2.x dengan menggunakan reasoning_effort alih-alih meneruskan konfigurasi thinking lama.
Pembuatnya mendokumentasikan reasoning_content yang terpisah dari content jawaban akhir dalam hasil streaming. Untuk percakapan beberapa giliran atau alur alat, pembuatnya mewajibkan seluruh pesan asisten yang dikembalikan diteruskan kembali tanpa perubahan, termasuk reasoning_content dan tool_calls. Mempertahankan hanya jawaban akhir yang terlihat menghilangkan informasi yang diharapkan alur thinking yang dipertahankan milik model pada langkah berikutnya.
Jawaban akhir terstruktur dan kelanjutan parsial
Panduan mulai cepat mendokumentasikan keluaran JSON-schema yang ketat untuk konten pesan akhir. Tetapkan bidang dan maknanya berdasarkan artefak yang dibutuhkan aplikasi, serta uraikan konten akhir tersebut alih-alih menggabungkannya dengan bidang penalaran. Hasil terstruktur dapat merepresentasikan informasi yang diekstrak dari materi yang diberikan atau format laporan yang terdefinisi; skema membatasi bentuknya, sementara bukti sumber menentukan apakah nilainya benar.
Mode parsial dapat melanjutkan prefiks teks yang diberikan. Contoh pembuatnya menempatkan pesan asisten parsial di akhir riwayat dan menggabungkan prefiks tersebut dengan kelanjutan yang dikembalikan untuk ditampilkan. Gunakan ini ketika artefak yang diwajibkan memiliki awal tetap yang bermakna, dengan memisahkan prefiks dari bagian sisanya yang dihasilkan.
Alat dan kesinambungan hasilnya
K3 mendukung alat fungsi khusus. Contoh pembuatnya mewajibkan alat pada giliran pertama, mempertahankan pesan asisten lengkap, menjalankan setiap pemanggilan yang dikembalikan, dan menambahkan hasil alat yang cocok sebelum meminta jawaban akhir. Usulan pemanggilan bukan bukti bahwa operasi berhasil; hasil aktual yang dikembalikan menjadi bukti untuk langkah berikutnya.
Alur pemuatan dinamisnya memperkenalkan definisi alat lengkap pada titik tertentu dalam riwayat pesan. Definisi memerlukan nama, tujuan, dan parameter, serta harus tetap ada dalam riwayat berikutnya karena server tidak menyimpan deklarasi tersebut secara mandiri. Jaga kemampuan alat, argumen yang diberikan, dan pengamatan nyata tetap terkait agar tugas panjang dapat dilanjutkan dari pekerjaan yang sudah selesai.
Kontrol keluaran dan konteks berulang
Pembuatnya mendokumentasikan alokasi pelengkapan bawaan sebesar 131.072 token, yang dapat dikonfigurasi hingga 1.048.576 dalam batas konteks keseluruhan model. API K3 saat ini menetapkan temperature pada 1.0, top_p pada 0.95, satu hasil, serta penalti presence dan frequency nol, dan mengarahkan pemanggil untuk tidak menyertakan kontrol sampling tersebut. Ini adalah pengaturan varian pembuat yang tepat, bukan daftar kontrol yang dapat disesuaikan dan dipindahkan ke model lain.
Caching konteks bersifat otomatis untuk prefiks berulang yang memenuhi syarat, dengan pilihan TTL 5 menit dan 1 jam yang terdokumentasi serta 5 menit sebagai bawaan. Blok cache parsial tetap dianggap sebagai miss. Jaga konteks yang dapat digunakan kembali tetap stabil dan periksa penggunaan aktual alih-alih menyatakan cache hit hanya karena teks berulang. Untuk artefak akhir, pertahankan sumber yang diberikan, bukti alat aktual, dan struktur keluaran yang diwajibkan, serta periksa bahwa jawaban panjang atau hasil rekayasa memenuhi kriteria penyelesaian yang dinyatakan.
Ailoot Ultra · Batch POST /v1/batches moonshotai/kimi-k3:batch
moonshotai/kimi-k3:batchMulai
Kimi K3 adalah model penalaran yang secara bawaan multimodal dari Moonshot AI untuk tugas pemrograman panjang dan pekerjaan pengetahuan. Model ini membaca teks, gambar, dan video, menghasilkan teks, serta mendukung alur berbasis alat dengan konteks 1.048.576 token dan riwayat thinking yang dipertahankan antarlangkah.
- Masukan yang diterima
- Teks
- Hasil
- Teks
Tersedia di Ailoot · masukan & metode
Ailoot Ultra · Batch POST /v1/batches
- Masukan
text- Keluaran
text- Format keluaran
- JSON inline pada results[].response.body
| Kolom | Jenis | Persyaratan | Nilai & batasan | Bawaan |
|---|---|---|---|---|
Kolomendpoint | Jenisstring | PersyaratanWajib | Nilai & batasan /v1/chat/completions | Bawaan— |
Kolommodel | Jenisstring | PersyaratanWajib | Nilai & batasan moonshotai/kimi-k3:batch | Bawaan— |
Kolomrequests | Jenisbatch_item[] | PersyaratanWajib | Nilai & batasan Item minimum: 1 | Bawaan— |
Kolomrequests[].custom_id | Jenisstring | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolomrequests[].body.messages | Jenismessage[] | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolomcompletion_window | Jenisstring | PersyaratanOpsional | Nilai & batasan 24h | Bawaan— |
Kolomprovider | Jenisobject|null | PersyaratanOpsional | Nilai & batasan | Bawaan— |
Kolomrequests[].body.model | Jenisstring | PersyaratanOpsional | Nilai & batasan moonshotai/kimi-k3:batch, moonshotai/kimi-k3 | Bawaan— |
Kolomprovider.only | Jenisstring[] | PersyaratanOpsional | Nilai & batasan deepinfra/bf16 | Bawaan— |
Kolomprovider.allow_fallbacks | Jenisboolean|null | PersyaratanOpsional | Nilai & batasan false, null | Bawaan— |
Parameter metode dan siklus hidup
| Parameter | Kontrak |
|---|---|
Parametercontent_type | Kontrakapplication/json |
Parameterrequired | Kontrakendpoint, model, requests |
Parametermaterial_types | Kontraktext |
Parameterrepresentation | Kontrakrequests[] inline; setiap item memiliki custom_id dan body |
Parameterrequest_endpoint_profile | Kontrak/v1/chat/completions |
Parameterfile_material | KontrakPemanggil dapat membaca JSONL UTF-8 aktual secara lokal ke dalam requests[]. Tidak menggunakan purpose unggahan, input_file_id, atau referensi file. Materi pelanggan yang tidak ada atau kosong menghentikan persiapan sebelum POST. |
Parameterserialization_order | Kontrakendpoint, model, provider (jika disertakan), completion_window (jika disertakan), requests paling akhir |
Parameteroptional_controls | Kontrakprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | Kontrakbody teks Chat Completions dalam envelope Batch inline yang didokumentasikan. |
Siklus hidup: asynchronous
GET /v1/batches/{operation_id} · response.id aktual dari operasi create awal; user/key/group yang sama
Paket
Referensi tarif tidak menambah opsi permintaan. Parameter yang didukung tercantum pada metode yang dipilih.
- Mode Fast
- Tidak ditentukan Saat mode fast dipilih
- Mode Flex
- Tidak ditentukan Saat mode flex dipilih
- Upaya penalaran maksimum
- Tidak ditentukan Saat upaya penalaran maksimum menggunakan penyesuaian default
- Harga cache eksplisit
- Tidak diaktifkan Saat cache eksplisit diminta
Tarif Ailoot
Harga menurut konfigurasi
Cocokkan setiap biaya dengan kondisi yang ditampilkan. Gunakan satu tarif untuk setiap kelompok konfigurasi alternatif.
| Konfigurasi | Jadwal tarif | Token konteks, lebih dari | Token konteks, hingga dan termasuk | Biaya |
|---|---|---|---|---|
| KonfigurasiTarif dasar token | Jadwal tarifTarif dasar | Token konteks, lebih dari— | Token konteks, hingga dan termasukTanpa batas atas | Biaya Masukan · Token masukan $0.00456 / 1K token Keluaran · Token keluaran $0.0228 / 1K token Masukan · Pembacaan cache $0.000456 / 1K token Masukan · Penulisan cache — / 1K token Masukan · Penulisan cache, 1 jam — / 1K token |
| KonfigurasiPanjang permintaan · tingkat 1 | Jadwal tarif— | Token konteks, lebih dari0 | Token konteks, hingga dan termasukTanpa batas atas | Biaya Masukan · Token masukan $0.00456 / 1K token Keluaran · Token keluaran $0.0228 / 1K token Masukan · Pembacaan cache $0.000456 / 1K token Masukan · Penulisan cache — / 1K token Masukan · Penulisan cache, 1 jam — / 1K token |
Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. Cara kerja cadangan dan penyelesaian tagihan →
Contoh permintaan
Ailoot Ultra · Batch
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 · Batch
JSON inline pada results[].response.body
GET /v1/batches/{operation_id}
Periksa 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, berkas, dan bagian konten yang dikembalikan.
Pertahankan JSON status asli secara lengkap, setiap result/custom_id, serta body response atau error yang lengkap. Simpan results[] yang telah selesai sebagai JSONL tanpa penyaringan.
Jika respons asli perlu diperiksa
Pertahankan ID operasi asli. 503 result_pending_check memiliki X-Should-Retry:false; jangan pernah kirim ulang batch asli yang statusnya tidak diketahui.
Kolom respons
| Kolom | Jenis |
|---|---|
Kolomresults[].custom_id | Jenisstring |
Kolomresults[].response.body.choices[].message.content | Jenisstring|null |
Kolomresults[].error | Jenisobject|null |
Kolomusage | Jenisobject|null |
Kolomid | Jenisstring |
Kolommodel | Jenisstring |
Kolomendpoint | Jenisstring |
Kolomstatus | Jenisstring |
Kolomrequest_counts | Jenisobject |
Kolomresults[].id | Jenisstring |
Kolomresults[].response.status_code | Jenisinteger |
Kolomresults[].response.request_id | Jenisstring |
Kesalahan dan langkah berikutnya
| Respons | Kondisi | Langkah berikutnya |
|---|---|---|
Respons400 · invalid_request_error | KondisiEnvelope inline yang didokumentasikan tidak valid, ada kunci duplikat, atau terdapat konflik pada identitas item atau kemampuan model yang dikonfigurasi. | Langkah berikutnyaPerbaiki kolom yang ditunjukkan sebelum pengiriman baru apa pun. |
Respons401 · authentication_error | KondisiKunci API tidak valid. | Langkah berikutnyaGunakan kunci Ailoot yang berizin. |
Respons403 · permission_error | KondisiGrup Batch tidak tersedia. | Langkah berikutnyaPeriksa hak akses key/group. |
Respons422 · invalid_request_error | KondisiBatch menggunakan penagihan dari saldo; pembuatan dengan langganan ditolak. | Langkah berikutnyaGunakan grup berizin yang ditagih dari saldo. |
Respons422 · price_unavailable | KondisiPenawaran harga untuk input Batch tidak dapat dibuat. | Langkah berikutnyaSimpan respons; gunakan input keluarga API yang didokumentasikan. |
Respons402 · billing_error | KondisiCadangan Batch tidak tersedia. | Langkah berikutnyaSelesaikan kendala penerimaan sebelum mengirim permintaan baru. |
Respons503 · price_unavailable | KondisiHarga metode Batch/tarif native tidak tersedia. | Langkah berikutnyaSimpan respons; jangan mengganti harga. |
Respons503 · api_error | KondisiRute pemasok yang tepat tidak tersedia. | Langkah berikutnyaSimpan respons untuk perbaikan rute. |
Respons503 · result_pending_check | KondisiHasil asli perlu diperiksa; X-Should-Retry:false. | Langkah berikutnyaSimpan operation_id/id asli dan baca statusnya; jangan pernah mengulangi POST asli. |
Respons404 · not_found | KondisiOperasi status Batch tidak ada atau dimiliki oleh identitas lain. | Langkah berikutnyaGunakan id asli yang persis sama dan user/key/group yang sama. |
Alias
Alias model
Ailoot Ultra moonshotai/kimi-k3:batch
Alias jalur metode
Gunakan jalur metode yang ditampilkan di atas.
ID pemanggil terkait
FAQ · MoonshotAI: Kimi K3 (batch)
- Input dan hasil apa yang tersedia?
POST /v1/batches·moonshotai/kimi-k3:batch:text→text- Kolom apa yang digunakan permintaan?
POST /v1/batches·moonshotai/kimi-k3:batch:endpoint,model,requests,completion_window,provider- Batasan apa yang berlaku?
POST /v1/batches·moonshotai/kimi-k3:batch:requests.min_items:1