Semua artikel
bagaimana-tos8 menit baca

Kimi K3 API Panduan: Python, Visi, Alat dan 1M Konteks

Pelajari cara memanggil Kimi K3 API dengan Python dan cURL, mengkonfigurasi penalaran, mengirim input visual, alat panggilan, aliran tanggapan dan menggunakan output terstruktur.

Kimi K3 API Panduan: Python, Visi, Alat dan 1M Konteks
bagaimana-tos

Kimi K3 API panduan pengembang

Kimi K3 tersedia melalui Moonshot AI OpenAI-Kompatibel Chat Completions API dengan ID model kimi-k3. API mendukung selalu-on penalaran, streaming, gambar, video diunggah, ketat JSON Skema, alat khusus, loading alat dinamis, dan 1- Jendela konteks jutaan token.

Kompatibilitas tidak berarti perilaku yang sama. K3 memiliki nilai pengambilan sampel yang tetap, membutuhkan status asisten lengkap dalam putaran alat dan percakapan berikutnya, dan menangani penalaran terpisah dari konten akhir. Panduan ini berfokus pada rincian-rincian tersebut.

Ketersediaan dan harga diperbarui Juli 22, 2026. Kimi K3 tersedia di Poyo.ai sebagai kimi-k3 melalui OpenAI-Kompatibel Chat Completions API. Harga adalah $2.28 per 1M token input dan $11.40 per 1M output token — 24% harga yang lebih rendah dari harga resmi.

Persyaratan

Kau perlu:

  • Python 3.9 atau lebih baru;
  • openai Python versi paket 1.0 atau lebih baru;
  • Sebuah bulanshot kunci API yang disimpan di luar kontrol sumber;
  • dasar URL https://api.moonshot.ai/v1;
  • ID model kimi-k3.

Instalkan SDK:

python -m pip install --upgrade "openai>=1.0"

Tempatkan kunci di cangkang Anda:

export MOONSHOT_API_KEY="your-key"

Pada PowerShell:

$env:MOONSHOT_API_KEY="your-key"

Jangan pernah menempatkan kunci produksi dalam contoh kode, paket sisi klien, log, atau repositori.

Buat yang pertama Kimi K3 permintaan

Python

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["MOONSHOT_API_KEY"],
    base_url="https://api.moonshot.ai/v1",
)

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[
        {"role": "user", "content": "Review this migration plan and list its three highest risks."}
    ],
)

print(response.choices[0].message.content)

cURL

curl https://api.moonshot.ai/v1/chat/completions \
  -H "Authorization: Bearer $MOONSHOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kimi-k3",
    "messages": [
      {"role": "user", "content": "Explain Kimi Delta Attention in plain language."}
    ]
  }'

Mengkonfigurasi upaya penalaran

K3 selalu menggunakan mode berpikir. Mengkonfigurasi upaya melalui tingkat atas reasoning_effort lapangan:

response = client.chat.completions.create(
    model="kimi-k3",
    reasoning_effort="high",
    messages=[
        {"role": "user", "content": "Find the flaw in this distributed lock design."}
    ],
)

Nilai yang didukung adalah:

Nilai Gunakan untuk
low Tugas yang lebih mudah di mana latensi dan output penting
high Kodean, analisis, dan perencanaan alat yang sulit
max Tugas tersulit dan evaluasi gaya benchmark

Standar yang didokumentasikan adalah max. Jangan menganggap ini adalah pengaturan produksi termurah. Evaluasi tingkat keberhasilan, latensi, dan token yang dihasilkan pada setiap upaya.

Rasoning aliran dan isi akhir

Tanggapan streaming mengekspos penalaran dan teks akhir melalui berbagai medan delta.

stream = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Review this architecture for race conditions."}],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta
    reasoning = getattr(delta, "reasoning_content", None)
    if reasoning:
        # Store or process according to your product and provider policies.
        pass
    if delta.content:
        print(delta.content, end="", flush=True)

Menjaga konten akhir yang berorientasi pada pengguna terpisah dari pemrosesan internal. Jangan menganalisis output terstruktur dari reasoning_content.

Kirim gambar ke Kimi K3

K3 pesan visi menggunakan array objek konten. URL gambar publik tidak didukung dalam aliran ini; mengkodekan gambar lokal sebagai base64.

import base64
from pathlib import Path

image_data = base64.b64encode(Path("interface.png").read_bytes()).decode()

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {"url": f"data:image/png;base64,{image_data}"},
                },
                {
                    "type": "text",
                    "text": "Identify the three largest accessibility problems in this interface.",
                },
            ],
        }
    ],
)

Validasi jenis file dan ukuran sebelum mengkodekan unggah pengguna. Hindari logging beban berguna basis 64.

Kirim video ke Kimi K3

unggah video melalui File API, referensi ID yang dikembalikan dengan ms:// sistem, dan menghapus file ketika tidak lagi diperlukan.

from pathlib import Path

video = client.files.create(file=Path("demo.mp4"), purpose="video")

try:
    response = client.chat.completions.create(
        model="kimi-k3",
        messages=[
            {
                "role": "user",
                "content": [
                    {
                        "type": "video_url",
                        "video_url": {"url": f"ms://{video.id}"},
                    },
                    {"type": "text", "text": "Summarize the workflow and identify failed steps."},
                ],
            }
        ],
    )
finally:
    client.files.delete(video.id)

Kembali ketat JSON Output skema

Penggunaan strict: true ketika kode downstream membutuhkan bentuk yang dapat diprediksi.

import json

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[
        {"role": "user", "content": "Extract the risk, severity, and owner from this incident note."}
    ],
    response_format={
        "type": "json_schema",
        "json_schema": {
            "name": "incident_risk",
            "strict": True,
            "schema": {
                "type": "object",
                "properties": {
                    "risk": {"type": "string"},
                    "severity": {"type": "string", "enum": ["low", "medium", "high"]},
                    "owner": {"type": ["string", "null"]},
                },
                "required": ["risk", "severity", "owner"],
                "additionalProperties": False,
            },
        },
    },
)

result = json.loads(response.choices[0].message.content or "{}")

Parse hanya final message.content, kemudian memvalidasi lagi dalam kode aplikasi.

Panggilan alat khusus

Tanggapan pertama dapat meminta satu atau lebih alat. Mengeksekusi setiap panggilan yang diizinkan, tambahkan pesan asisten lengkap, kemudian tambahkan satu hasil alat yang cocok untuk setiap tool_call_id.

import json

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_build_status",
            "description": "Return the current build status for an allowed project.",
            "parameters": {
                "type": "object",
                "properties": {"project": {"type": "string"}},
                "required": ["project"],
                "additionalProperties": False,
            },
        },
    }
]

messages = [{"role": "user", "content": "Check the web build and summarize any failure."}]

first = client.chat.completions.create(
    model="kimi-k3",
    messages=messages,
    tools=tools,
    tool_choice="required",
)

assistant_message = first.choices[0].message
messages.append(assistant_message)

for call in assistant_message.tool_calls or []:
    arguments = json.loads(call.function.arguments)
    # Authorize and validate before executing a real tool.
    tool_result = {"project": arguments["project"], "status": "passed"}
    messages.append(
        {
            "role": "tool",
            "tool_call_id": call.id,
            "content": json.dumps(tool_result),
        }
    )

final = client.chat.completions.create(
    model="kimi-k3",
    messages=messages,
    tools=tools,
)

Jangan pernah menjalankan perintah shell yang dihasilkan oleh model tanpa batas izin, validasi input, lingkungan yang terdefinisi, dan jejak audit.

Alat-alat beban secara dinamis

K3 mendukung menempatkan definisi alat lengkap di system pesan di titik di mana ia menjadi tersedia. Simpan pesan itu di sejarah nanti karena server tidak menyimpannya untuk Anda.

Loading dinamis membantu sistem agen besar menghindari mengirim setiap skema alat di setiap gilirannya. Hal ini juga menciptakan persyaratan baru untuk manajemen negara: model harus menunjukkan deklarasi yang tepat ketika menafsirkan hasil alat berikutnya.

Gunakan 1M-toko context window

Konteks besar sangat berharga ketika bukti jauh harus dipertimbangkan bersama. Gunakan mereka dengan sengaja:

  1. Simpan repositori atau dokumen yang stabil pada awal.
  2. Tambahkan pertanyaan dan hasil daripada menulis ulang prefiks.
  3. Track input cached dan uncached secara terpisah.
  4. Dapatkan subset yang lebih kecil ketika corpus penuh tidak perlu.
  5. Menentukan identifikasi sumber sehingga jawaban akhir dapat diverifikasi.
  6. Hanya kompak jika klien Anda mempertahankan semua kondisi yang dibutuhkan oleh K3.

Caching otomatis tidak memiliki ID cache atau parameter TTL biasa. Prefiks yang stabil memberikan layanan kesempatan terbaik untuk mencapai cache.

Mengelola keadaan multi-turn lengkap

Ini adalah aturan integrasi khusus K3 yang paling penting.

Saat melanjutkan percakapan atau mengembalikan hasil alat, tambahkan pesan asisten lengkap yang dikembalikan oleh API. Jangan hanya content. Moonshot memperingatkan bahwa K3 dilatih dengan sejarah berpikir yang terpelihara dan bisa menjadi tidak stabil jika kerahnya membutuhkan sejarah atau beralih ke K3 di tengah sesi.

Simpan status percakapan dengan aman, menerapkan batas retensi, dan hindari mengekspos status tersembunyi kepada pengguna yang tidak seharusnya melihatnya.

Penting Kimi K3 API batas

  • K3 selalu memiliki pemikiran diaktifkan.
  • reasoning_effort dukungan low, high, dan max.
  • max_completion_tokens default untuk 131,072 dan dapat diatur untuk 1,048,576.
  • temperature=1.0, top_p=0.95, n=1, presence_penalty=0, dan frequency_penalty=0 tetap; Tinggalkan mereka.
  • URL gambar publik tidak didukung untuk pesan visi.
  • Permintaan multi-turn dan alat harus menyimpan pesan asisten lengkap.
  • Moonshot mengatakan alat pencarian webnya sedang diperbarui dan saat ini tidak direkomendasikan untuk produksi.

Daftar pemeriksaan produksi

  • Tetaplah kunci API sisi server.
  • Tambahkan waktu permintaan dan upaya ulang terbatas.
  • Memvalidasi argumen alat dan mengizinkan setiap tindakan.
  • Batasi putaran alat dan panjang penyelesaian.
  • Menghemat status asisten K3.
  • Validasi ketat JSON Setelah generasi.
  • Rekaman input, input cache, output, latensi, dan kesalahan.
  • Hindari mengganti model di tengah sesi K3.
  • Tambahkan batasan perilaku yang jelas untuk mengurangi proaktifitas yang berlebihan.
  • Uji dengan alat yang rusak, respons parsial, dan sejarah panjang.

Bacalah Kimi K3 API Harga sebelum memilih konteks dan output limit. Ikuti Kimi Halaman model K3 untuk Poyo.ai availability.

Pertanyaan yang sering diajukan

Apakah Kimi K3 API OpenAI kompatibel?

Ya. Moonshot mengungkapkan OpenAI-Pengaturan Chat Completed. Aturan khusus K3, penalaran, pengambilan sampel, dan media masih berlaku.

Apa itu Kimi K3 ID model?

Moonshot resmi API ID model adalah kimi-k3.

Apakah Kimi K3 mendukung fungsi panggilan?

Ya. Ini mendukung alat kustom, pilihan alat yang diperlukan, hasil alat yang cocok, dan loading alat dinamis.

Bisa Kimi Video proses K3?

Ya. unggah video melalui File API dan merujuk ms:// ID file dalam objek konten video.

Bagaimana saya menggunakan 1M jendela konteks?

Kirim pesan dan konten yang diperlukan melalui permintaan model standar, tetap stabil prefixes tidak berubah untuk caching otomatis, dan menetapkan batas penyelesaian terbatas.

Sumber

Blog · PoYo.aiSemua artikel
HUBUNGI KAMI

Punya proyek?

Ceritakan apa yang Anda bangun. Tim kami akan membantu memilih API AI yang tepat.

Data Anda hanya digunakan untuk menanggapi pertanyaan ini.

PoYo AI

Siap menjelajahi model?

Jelajahi model gambar, video, audio, dan bahasa di PoYo.

Lihat model AI