model

MoonshotAI: Kimi K2 Thinking

Markdown · JSON

MoonshotAI: Kimi K2 Thinking

Kimi K2 Thinking adalah agen penalaran teks dari Moonshot AI yang menyelingi analisis dengan pemanggilan fungsi. Konteks 256K dan checkpoint INT4 bawaan pembuatnya mendukung riset, pemrograman, dan penulisan beberapa langkah, dengan jawaban akhir berlandaskan pengamatan yang dikembalikan alat yang disediakan.

Tentang model

Deskripsi ini mencakup kemampuan model. Masukan, keluaran, dan opsi yang tersedia di Ailoot tercantum di bawah untuk metode yang dipilih.

Kimi K2 Thinking adalah edisi agen penalaran Moonshot AI yang dikembangkan dari Kimi K2. Model ini mengerjakan tugas sambil memilih fungsi yang disediakan aplikasi yang menaunginya, menggabungkan analisis sementara dengan pengamatan alat sebelum menghasilkan jawaban akhir. Profil mixture-of-experts yang dipublikasikan memiliki total satu triliun parameter, 32 miliar parameter aktif, dan konteks 256K. Masukan tugas dan jawaban yang didokumentasikan berupa teks.

Penalaran mendalam dan tugas panjang

Pengembang mengembangkan K2 Thinking untuk alur kerja riset, pemrograman, dan penulisan yang membutuhkan banyak langkah. Ciri utamanya adalah penalaran yang diselingi panggilan fungsi, alih-alih memperlakukan pemikiran dan tindakan sebagai dua tahap yang tidak berkaitan. Deskripsi tugas yang berguna menyatakan pertanyaan, sumber atau alat yang tersedia, tindakan yang diizinkan, dan hasil yang menandai penyelesaian.

Untuk riset, berikan kriteria sumber yang relevan dan minta kesimpulan mengutip bukti yang diperoleh. Untuk pemrograman, sertakan implementasi yang relevan, perilaku gagal, dan batasan, lalu minta patch akhir serta pengamatan yang mendukungnya. Contoh prompt: “Gunakan kode dan hasil alat yang diberikan untuk mengidentifikasi penyebab, mengusulkan perubahan terfokus, dan membedakan validasi yang telah selesai dari pemeriksaan yang masih perlu dijalankan.”

Checkpoint pengembang dan kuantisasi

K2 Thinking menggunakan pelatihan yang memperhitungkan kuantisasi selama pascapelatihan, dengan menerapkan kuantisasi native INT4 khusus bobot pada komponen mixture-of-experts. Ini merupakan perbedaan checkpoint pengembang, bukan alasan untuk memberikan presisi atau modalitas edisi K2 lain kepada model ini. Format model native tetap terpisah dari cara aplikasi tertentu menjalankannya.

Alur kerja panggilan alat

Kartu edisi ini menggunakan pengaturan panggilan alat K2 Instruct. Berikan nama fungsi yang tersedia, deskripsi, dan skema parameter dalam setiap permintaan. Model memutuskan kapan dan bagaimana memanggilnya. Aplikasi menguraikan argumen yang diusulkan, menjalankan fungsi yang dipilih, dan mengembalikan hasil dalam pesan alat dengan pengenal serta nama yang bersesuaian. Langkah model berikutnya dapat menggunakan pengamatan itu atau memilih operasi lain.

Simpan pengamatan asli dalam percakapan dan jelaskan apa yang dianggap sebagai hasil selesai. Panggilan pencarian yang dipilih belum menjadi sumber yang diperoleh hingga aplikasi mengembalikannya, dan kode yang dibuat belum merupakan eksekusi yang berhasil. Untuk hasil terstruktur, periksa bidangnya sekaligus kesesuaiannya dengan bukti yang diberikan.

Prompt dan anggaran respons

Pengembang merekomendasikan temperature 1.0 dan menyediakan instruksi sistem asisten sederhana sebagai bawaan ketika tidak diperlukan instruksi khusus. Tentukan bahasa dan bentuk jawaban akhir secara terpisah: kesimpulan ringkas, analisis dengan rujukan sumber, atau hasil kode. Konten pemikiran dan respons akhir memiliki tujuan berbeda dan harus tetap dapat dibedakan.

Konteks 256K harus menampung instruksi, materi sumber, percakapan, penalaran, dan hasil alat. Tugas panjang yang dipandu alat dapat mengumpulkan konteks lebih banyak daripada yang tersirat dari pertanyaan awal. Pertahankan bukti yang relevan dan jaga hasil yang diperlukan melalui permintaan lanjutan. Berbagai anggaran pemikiran untuk evaluasi dan contoh ukuran penyelesaian pada kartu bukan batas keras keluaran universal.

Jawaban akhir yang berguna menghubungkan kesimpulannya dengan sumber atau pengamatan aktual dan menunjukkan informasi yang masih belum terselesaikan. K2 Thinking adalah edisi penalaran teks tersendiri; masukan gambar/video serta kontrol instant-mode atau preserve-thinking yang dijelaskan untuk rilis K2.5 dan K2.6 yang lebih baru tidak boleh diasumsikan dari nama keluarga yang sama.

Tugas praktis

Tugas praktis

Contoh teknis dalam bahasa Inggris

Continue debugging from a real observation

Use this supplied development observation: a test expected rows ordered by created_at, but equal timestamps appeared in different orders across runs. Query text is 'ORDER BY created_at'. Propose a deterministic tie-breaker using the unique id field, explain its effect and specify the next test. Distinguish the reported test result from checks still proposed.

Hasil yang diharapkan

A focused query change, causal explanation and a test for rows sharing the same timestamp.

Periksa hasil

The revised ordering includes a unique tie-breaker, and the answer does not claim the new test has run.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions moonshotai/kimi-k2-thinking

moonshotai/kimi-k2-thinking

MoonshotAI /moonshotai/kimi-k2-thinking

Mulai

Kimi K2 Thinking adalah agen penalaran teks dari Moonshot AI yang menyelingi analisis dengan pemanggilan fungsi. Konteks 256K dan checkpoint INT4 bawaan pembuatnya mendukung riset, pemrograman, dan penulisan beberapa langkah, dengan jawaban akhir berlandaskan pengamatan yang dikembalikan alat yang disediakan.

Masukan yang diterima
Teks
Hasil
Teks

Tersedia di Ailoot · masukan & metode

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Masukan
text
Keluaran
text
Format keluaran
json atau SSE
KolomJenisPersyaratanNilai & batasanBawaan
KolommodelJenisstringPersyaratanWajibNilai & batasan
moonshotai/kimi-k2-thinking
Bawaan—
KolommessagesJenismessage[]PersyaratanWajibNilai & batasan
Item minimum: 1
Bawaan—
Kolommessages[].roleJenisstringPersyaratanWajibNilai & batasan
Contoh: system, user, assistant, tool, function
Kondisi: Peran ini direpresentasikan secara eksplisit oleh tipe kompatibilitas dalam kode sumber; kumpulan peran model yang tepat tetap khusus untuk tiap model.
Bergantung pada model
Bawaan—
Kolommessages[].contentJenisstring|content_part[]|nullPersyaratanOpsionalNilai & batasanBawaan—
Kolommessages[].tool_callsJenistool_call[]PersyaratanOpsionalNilai & batasanBawaan—
Kolommessages[].tool_call_idJenisstringPersyaratanOpsionalNilai & batasan
Berlaku jika: role=tool; gunakan ID yang benar-benar dikembalikan
Bawaan—
Kolommessages[].nameJenisstringPersyaratanOpsionalNilai & batasanBawaan—
Kolommessages[].reasoning_contentJenisstringPersyaratanOpsionalNilai & batasan
Berlaku jika: Kirim kembali penalaran yang benar-benar dikembalikan jika model ini menggunakannya
Bawaan—
Kolommessages[].reasoning_detailsJenisobject|arrayPersyaratanOpsionalNilai & batasan
Bergantung pada model
Bawaan—
Kolommax_tokensJenisintegerPersyaratanOpsionalNilai & batasan
Minimum: 1
Bergantung pada model
Bawaan—
Kolommax_completion_tokensJenisintegerPersyaratanOpsionalNilai & batasan
Minimum: 1
Bergantung pada model
Bawaan—
KolomstreamJenisbooleanPersyaratanOpsionalNilai & batasanBawaanfalse
Kolomstream_options.include_usageJenisbooleanPersyaratanOpsionalNilai & batasan
Bergantung pada model
Bawaan—
KolomtemperatureJenisnumberPersyaratanOpsionalNilai & batasan
Bergantung pada model
Bawaan—
Kolomtop_pJenisnumberPersyaratanOpsionalNilai & batasan
Bergantung pada model
Bawaan—
KolomstopJenisstring|string[]PersyaratanOpsionalNilai & batasan
Bergantung pada model
Bawaan—
KolomtoolsJenisfunction_tool[]PersyaratanOpsionalNilai & batasan
Bergantung pada model
Bawaan—
Kolomtools[].typeJenisstringPersyaratanOpsionalNilai & batasan
function
Bergantung pada model
Bawaan—
Kolomtools[].function.nameJenisstringPersyaratanWajibNilai & batasan
Berlaku jika: alat fungsi disediakan
Bawaan—
Kolomtools[].function.descriptionJenisstringPersyaratanOpsionalNilai & batasanBawaan—
Kolomtools[].function.parametersJenisJSON_schemaPersyaratanOpsionalNilai & batasanBawaan—
Kolomtool_choiceJenisstring|objectPersyaratanOpsionalNilai & batasan
Bergantung pada model
Bawaan—
Kolomparallel_tool_callsJenisbooleanPersyaratanOpsionalNilai & batasan
Bergantung pada model
Bawaan—
Kolomresponse_formatJenisobjectPersyaratanOpsionalNilai & batasan
Bergantung pada model
Bawaan—
Kolomreasoning_effortJenisstringPersyaratanOpsionalNilai & batasan
Bergantung pada model
Bawaan—
KolomreasoningJenisobjectPersyaratanOpsionalNilai & batasan
Bergantung pada model
Bawaan—
Kolomservice_tierJenisstringPersyaratanOpsionalNilai & batasan
Bergantung pada model
Bawaan—
KolominstructionsJenisstringPersyaratanOpsionalNilai & batasan
Kolom kompatibilitas
Bawaan—
KolomfunctionsJenisfunction[]PersyaratanOpsionalNilai & batasan
Bergantung pada model
Bawaan—
Kolomfunction_callJenisstring|objectPersyaratanOpsionalNilai & batasan
Bergantung pada model
Bawaan—
Kolomprompt_cache_optionsJenisobjectPersyaratanOpsionalNilai & batasan
Bergantung pada model
Bawaan—
KolommodalitiesJenisstring[]PersyaratanOpsionalNilai & batasan
text
Bawaan—
KolomproviderJenisobjectPersyaratanOpsionalNilai & batasan
Kondisi: provider.options ditolak pada rute teks Ultra ini
Bawaan—
Kolomcache_control.ttlJenisstringPersyaratanOpsionalNilai & batasan
Kondisi: 1h ditolak pada lokasi cache prompt yang digunakan
Bawaan—
Kombinasi bahan masukan

Teks · Teks UTF8

messages[].content

Parameter metode dan siklus hidup
ParameterKontrak
Parametercontent_typeKontrakapplication/json
ParameterrequiredKontrakmodel, messages
Parametermaterial_typesKontraktext
ParametermessagesKontrakarray pesan dengan struktur role/content
Parameterfile_materialKontrakdokumen UTF-8 yang sebenarnya dimasukkan sebagai teks apa adanya; ID file tidak disimpulkan
Parameteroptional_controlsKontrakstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parametercontrol_scopeKontrakkhusus model; alat fungsi pengguna berbeda dari alat yang dihosting
Parameteroutput_modalitiesKontraktext
Parameterhosted_operationsKontrakfalse
Parametermultimodal_input_bindingKontraknull

Siklus hidup: synchronous_or_streamed

Kirim ID model yang tepat bersama messages.

Panjang konteks bukan batas keluaran.

File teks dapat menyediakan teks apa adanya; masukan gambar/audio/objek file memerlukan pengikatan yang tepat.

Paket

Referensi tarif tidak menambah opsi permintaan. Parameter yang didukung tercantum pada metode yang dipilih.

Mode Fast
Tarif standar Saat mode fast dipilih
Mode Flex
Tarif standar Saat mode flex dipilih
Upaya penalaran maksimum
Tarif standar Saat upaya penalaran maksimum menggunakan penyesuaian default

Tarif Ailoot

Harga menurut konfigurasi

Cocokkan setiap biaya dengan kondisi yang ditampilkan. Gunakan satu tarif untuk setiap kelompok konfigurasi alternatif.

KonfigurasiJadwal tarifToken konteks, lebih dariToken konteks, hingga dan termasukBiaya
KonfigurasiTarif dasar tokenJadwal tarifTarif dasarToken konteks, lebih dari—Token konteks, hingga dan termasukTanpa batas atasBiaya
Masukan · Token masukan $0.0012 / 1K token
Keluaran · Token keluaran $0.005 / 1K token
Masukan · Pembacaan cache $0.0003 / 1K token
Masukan · Penulisan cache $0 / 1K token
Masukan · Penulisan cache, 1 jam — / 1K token
KonfigurasiPanjang permintaan · tingkat 1Jadwal tarif—Token konteks, lebih dari0Token konteks, hingga dan termasukTanpa batas atasBiaya
Masukan · Token masukan $0.0012 / 1K token
Keluaran · Token keluaran $0.005 / 1K token
Masukan · Pembacaan cache $0.0003 / 1K token
Masukan · Penulisan cache $0 / 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 · OpenAI Chat

curlPython SDKAliran Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "moonshotai/kimi-k2-thinking", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='moonshotai/kimi-k2-thinking',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='moonshotai/kimi-k2-thinking',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")

Terima dan simpan hasil

Ailoot Ultra · OpenAI Chat

json atau SSE

Simpan semua hasil yang selesai

Simpan setiap respons lengkap, berkas, dan bagian konten yang dikembalikan.

Simpan setiap alternatif jawaban beserta konten, panggilan alat, dan penalarannya. Dalam SSE, gabungkan delta menurut indeks alternatif jawaban/alat, lalu pertahankan alasan penghentian akhir dan data penggunaan.

Jika respons asli perlu diperiksa

Simpan ID permintaan/respons dan header. URL umum untuk pengambilan tugas teks tidak disediakan.

Kolom respons
KolomJenis
Kolomchoices[].indexJenisinteger
Kolomchoices[].message.contentJenisstring|null
Kolomchoices[].message.tool_callsJenistool_call[]
Kolomchoices[].message.reasoning_contentJenisstring
Kolomchoices[].message.reasoning_detailsJenisobject|array
Kolomchoices[].finish_reasonJenisstring|null
KolomusageJenisobject
Kesalahan dan langkah berikutnya
ResponsKondisiLangkah berikutnya
Respons400 · invalid_request_errorKondisiBidang wajib, representasi materi, atau nilai parameter tidak validLangkah berikutnyaPerbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru.

Alias

Alias model

Ailoot Ultra moonshotai/kimi-k2-thinking

Alias jalur metode

Gunakan jalur metode yang ditampilkan di atas.

ID pemanggil terkait

moonshotai/kimi-k2-thinking

Ailoot Ultra · Anthropic Messages POST /v1/messages moonshotai/kimi-k2-thinking

moonshotai/kimi-k2-thinking

MoonshotAI /moonshotai/kimi-k2-thinking

Mulai

Kimi K2 Thinking adalah agen penalaran teks dari Moonshot AI yang menyelingi analisis dengan pemanggilan fungsi. Konteks 256K dan checkpoint INT4 bawaan pembuatnya mendukung riset, pemrograman, dan penulisan beberapa langkah, dengan jawaban akhir berlandaskan pengamatan yang dikembalikan alat yang disediakan.

Masukan yang diterima
Teks
Hasil
json · sse

Tersedia di Ailoot · masukan & metode

Ailoot Ultra · Anthropic Messages POST /v1/messages
Masukan
text
Keluaran
json, sse
Format keluaran
JSON atau SSE
KolomJenisPersyaratanNilai & batasanBawaan
KolommodelJenisstringPersyaratanWajibNilai & batasan
moonshotai/kimi-k2-thinking
Bawaan—
KolommessagesJenismessage[]PersyaratanWajibNilai & batasanBawaan—
Kolommessages[].roleJenisstringPersyaratanWajibNilai & batasan
user, assistant
Bawaan—
Kolommessages[].contentJenisstringPersyaratanWajibNilai & batasanBawaan—
Kolommax_tokensJenisintegerPersyaratanWajibNilai & batasanBawaan—
KolomstreamJenisbooleanPersyaratanOpsionalNilai & batasanBawaanfalse
Kombinasi bahan masukan

Teks · Teks UTF-8

string messages[].content

Parameter metode dan siklus hidup
ParameterKontrak
Parametercontent_typeKontrakapplication/json
ParameterrequiredKontrakmodel, messages, max_tokens
Parameteroptional_controlsKontrakstream
Parametermaterial_typesKontraktext
Parametertext_file_materialKontrakBaca dokumen UTF-8 yang sebenarnya dan masukkan teksnya ke string masukan atau konten pesan yang ditunjukkan.

Siklus hidup: synchronous_or_streamed

Paket

Referensi tarif tidak menambah opsi permintaan. Parameter yang didukung tercantum pada metode yang dipilih.

Mode Fast
Tarif standar Saat mode fast dipilih
Mode Flex
Tarif standar Saat mode flex dipilih
Upaya penalaran maksimum
Tarif standar Saat upaya penalaran maksimum menggunakan penyesuaian default

Tarif Ailoot

Harga menurut konfigurasi

Cocokkan setiap biaya dengan kondisi yang ditampilkan. Gunakan satu tarif untuk setiap kelompok konfigurasi alternatif.

KonfigurasiJadwal tarifToken konteks, lebih dariToken konteks, hingga dan termasukBiaya
KonfigurasiTarif dasar tokenJadwal tarifTarif dasarToken konteks, lebih dari—Token konteks, hingga dan termasukTanpa batas atasBiaya
Masukan · Token masukan $0.0012 / 1K token
Keluaran · Token keluaran $0.005 / 1K token
Masukan · Pembacaan cache $0.0003 / 1K token
Masukan · Penulisan cache $0 / 1K token
Masukan · Penulisan cache, 1 jam — / 1K token
KonfigurasiPanjang permintaan · tingkat 1Jadwal tarif—Token konteks, lebih dari0Token konteks, hingga dan termasukTanpa batas atasBiaya
Masukan · Token masukan $0.0012 / 1K token
Keluaran · Token keluaran $0.005 / 1K token
Masukan · Pembacaan cache $0.0003 / 1K token
Masukan · Penulisan cache $0 / 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 · Anthropic Messages

Isi permintaan JSON minimal yang lengkapcurl · gunakan dokumen UTF-8 AndaPython · simpan hasil secara lengkap
{
  "model": "moonshotai/kimi-k2-thinking",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'moonshotai/kimi-k2-thinking', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'moonshotai/kimi-k2-thinking', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Terima dan simpan hasil

Ailoot Ultra · Anthropic Messages

JSON atau SSE

Simpan semua hasil yang selesai

Simpan setiap respons lengkap, berkas, dan bagian konten yang dikembalikan.

Simpan semua blok konten, tanda tangan penalaran, dan ID penggunaan alat yang sebenarnya. Gabungkan semua delta blok SSE; blok teks pertama bukan keseluruhan keluaran.

Jika respons asli perlu diperiksa

Simpan ID permintaan/respons dan header. URL umum untuk pengambilan tugas teks tidak disediakan.

Kolom respons
KolomJenis
KolomidJenisstring
KolommodelJenisstring
Kolomcontent[]Jenistext|thinking|tool_use|other content block
Kolomstop_reasonJenisstring|null
KolomusageJenisobject
Kesalahan dan langkah berikutnya
ResponsKondisiLangkah berikutnya
Respons400 · invalid_request_errorKondisiBidang wajib, representasi materi, atau nilai parameter tidak validLangkah berikutnyaPerbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru.

Alias

Alias model

Ailoot Ultra moonshotai/kimi-k2-thinking

Alias jalur metode

Gunakan jalur metode yang ditampilkan di atas.

ID pemanggil terkait

moonshotai/kimi-k2-thinking

FAQ · MoonshotAI: Kimi K2 Thinking
Input dan hasil apa yang tersedia?

POST /v1/chat/completions · moonshotai/kimi-k2-thinking: text → text

POST /v1/messages · moonshotai/kimi-k2-thinking: text → json, sse

Kolom apa yang digunakan permintaan?

POST /v1/chat/completions · moonshotai/kimi-k2-thinking: model, messages, stream, modalities, provider

POST /v1/messages · moonshotai/kimi-k2-thinking: model, messages, max_tokens, stream

Batasan apa yang berlaku?

POST /v1/chat/completions · moonshotai/kimi-k2-thinking: messages.min_items: 1

Rincian selengkapnya

Hubungkan Ailoot ke Claude Code, OpenCode, Hermes, atau aplikasi Anda.

Perusahaan dan portofolio proyeknya

Perusahaan dan portofolio proyeknya: jutaan pelanggan; penjualan miliaran setiap bulan.

Beli token dengan diskon.

Diskon langganan untuk pekerjaan rutin. Kode promo — hingga 50% untuk pembelian token.

Langganan
Pilih paket dengan diskon untuk permintaan rutin Anda.
Kode promo hingga 50%
Masukkan kode saat membeli. Harga dihitung ulang sesuai promosi aktif.
Biaya dalam riwayat
Model, token, dan jumlah tagihan disimpan untuk setiap permintaan.

Pilih langganan · Lihat harga model

Hubungkan API ke produk yang Anda jual.

SaaS, aplikasi, dan bot — sesuai penawaran dan perjanjian lisensi Ailoot. Untuk penjualan kembali, mintalah lisensi reseller.

Aplikasi komersial
Integrasikan pembuatan teks, gambar, video, dan suara dalam fitur berbayar layanan Anda.
Lisensi reseller
Kirim deskripsi proyek dan skema akses. Mintalah ketentuan penggunaan dan penjualan kembali secara tertulis.
Dokumen di situs
Penawaran, perjanjian lisensi, dan kebijakan pemrosesan data tersedia sebelum koneksi.

Minta lisensi reseller · Penawaran dan perjanjian lisensi