Skip to main content
Tutorial integrasi model pihak ketiga

Kimi

Dokumen ini menjelaskan cara memanggil layanan inferensi model Kimi yang diterapkan di Alibaba Cloud Model Studio.

Moonshot-Kimi-K2-Instruct dan kimi-k2-thinking akan dihentikan pada 9 Juli 2026. Kami merekomendasikan migrasi ke qwen3.7-plus, qwen3.8-max, atau qwen3.8-flash.
Wilayah yang didukung: China (Beijing), Singapura, Jepang (Tokyo), China (Hong Kong), Jerman (Frankfurt), dan AS (Virginia). Pengalaman model: Anda dapat mencoba model Kimi di pusat uji coba model. Titik akhir layanan bersifat spesifik per wilayah. Konfigurasikan URL dasar yang sesuai untuk wilayah Anda.
  • Kompatibel dengan OpenAI
  • DashScope
  • AS (Virginia)
  • Jerman (Frankfurt)
  • Singapura
  • Jepang (Tokyo)
  • China (Beijing)
  • China (Hong Kong)
base_url untuk panggilan SDK adalah: https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/compatible-mode/v1URL permintaan HTTP: POST https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions
Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. Prasyarat: Anda harus mendapatkan Kunci API dan menetapkannya sebagai variabel lingkungan. Jika Anda menggunakan SDK, Anda harus menginstal SDK.

Mulai

Contoh berikut menggunakan input teks saja. Untuk contoh multimodal, lihat pemanggilan multimodal.
  • Kompatibel dengan OpenAI
  • DashScope
  • Kompatibel dengan Anthropic
  • Python
  • Node.js
  • HTTP
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Wilayah China (Beijing). Ganti {WorkspaceId} dengan ID ruang kerja Bailian Anda. URL berbeda-beda tergantung wilayah.
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)

completion = client.chat.completions.create(
    model="kimi-k2.6",
    messages=[{"role": "user", "content": "Who are you?"}],
    stream=True,
    extra_body={"enable_thinking": True},  # Aktifkan mode berpikir untuk mendapatkan reasoning_content
)

reasoning_content = ""  # Proses berpikir lengkap
answer_content = ""     # Respons lengkap
is_answering = False    # Melacak apakah respons utama telah dimulai.

print("\n" + "=" * 20 + "Thinking Process" + "=" * 20 + "\n")

for chunk in completion:
    if chunk.choices:
        delta = chunk.choices[0].delta
        # Simpan konten dari proses berpikir.
        if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
            if not is_answering:
                print(delta.reasoning_content, end="", flush=True)
            reasoning_content += delta.reasoning_content
        # Mulai mencetak respons utama begitu kontennya tiba.
        if hasattr(delta, "content") and delta.content:
            if not is_answering:
                print("\n" + "=" * 20 + "Complete Response" + "=" * 20 + "\n")
                is_answering = True
            print(delta.content, end="", flush=True)
            answer_content += delta.content

Respons

====================Thinking Process====================

The user asks "Who are you?", which is a direct question about my identity. I need to answer truthfully based on my actual identity.

I am Kimi, an AI assistant developed by Moonshot AI. I should introduce myself clearly and concisely, including:
1. My identity: AI assistant
2. My developer: Moonshot AI
3. My name: Kimi
4. My core capabilities: long-text processing, intelligent conversation, file processing, search, etc.

I should maintain a friendly and professional tone, avoiding overly technical terms for clarity. I should also emphasize that I am an AI without personal consciousness, emotions, or experiences to prevent misunderstandings.

Response structure:
- Directly state my identity
- Mention my developer
- Briefly introduce core capabilities
- Keep it clear and concise
====================Complete Response====================

I am Kimi, an AI assistant developed by Moonshot AI. I am based on a Mixture-of-Experts (MoE) architecture and have capabilities such as ultra-long context understanding, intelligent conversation, file processing, code generation, and complex task reasoning. How can I help you?

Pemanggilan multimodal

Model kimi-k2.7-code, kimi-k2.6, dan kimi-k2.5 dapat memproses teks, gambar, atau video secara simultan. Gunakan parameter enable_thinking untuk mengaktifkan mode berpikir. Contoh berikut menunjukkan cara menggunakan kemampuan ini.

Aktifkan atau nonaktifkan mode berpikir

kimi-k2.6 dan kimi-k2.5 adalah model berpikir hibrida. Model-model ini dapat membalas setelah berpikir atau membalas secara langsung. Anda dapat menggunakan parameter enable_thinking untuk mengontrol apakah akan mengaktifkan mode berpikir:
  • true: Aktifkan mode berpikir
  • false (default): Menonaktifkan mode berpikir
kimi-k2.7-code adalah model berpikir saja: mode berpikir selalu diaktifkan (enable_thinking default ke true dan tidak dapat dinonaktifkan), dan preserve_thinking default ke true. kimi-k2.6 mendukung meneruskan proses berpikir dalam percakapan multi-putaran dengan menggunakan parameter preserve_thinking. Untuk informasi lebih lanjut, lihat Meneruskan proses berpikir. Contoh berikut menunjukkan cara menggunakan URL gambar dan mengaktifkan mode berpikir. Contoh utama menunjukkan input gambar tunggal, sedangkan kode yang dikomentari adalah contoh input multi-gambar.
  • Kompatibel dengan OpenAI
  • DashScope
Python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Wilayah China (Beijing). Ganti {WorkspaceId} dengan ID ruang kerja Bailian Anda. URL berbeda-beda tergantung wilayah.
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)

# Contoh input gambar tunggal (mode berpikir diaktifkan)
completion = client.chat.completions.create(
    model="kimi-k2.6",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "What scene is depicted in the image?"},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"
                    }
                }
            ]
        }
    ],
    extra_body={"enable_thinking":True}  # Aktifkan mode berpikir
)

# Cetak proses berpikir
if hasattr(completion.choices[0].message, 'reasoning_content') and completion.choices[0].message.reasoning_content:
    print("\n" + "=" * 20 + "Thinking Process" + "=" * 20 + "\n")
    print(completion.choices[0].message.reasoning_content)

# Cetak respons lengkap
print("\n" + "=" * 20 + "Complete Response" + "=" * 20 + "\n")
print(completion.choices[0].message.content)

# Contoh input multi-gambar (mode berpikir diaktifkan, hapus komentar untuk digunakan)
# completion = client.chat.completions.create(
#     model="kimi-k2.6",
#     messages=[
#         {
#             "role": "user",
#             "content": [
#                 {"type": "text", "text": "What do these images depict?"},
#                 {
#                     "type": "image_url",
#                     "image_url": {"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"}
#                 },
#                 {
#                     "type": "image_url",
#                     "image_url": {"url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"}
#                 }
#             ]
#         }
#     ],
#     extra_body={"enable_thinking":True}
# )
#
# # Cetak proses berpikir dan respons lengkap
# if hasattr(completion.choices[0].message, 'reasoning_content') and completion.choices[0].message.reasoning_content:
#     print("\nThinking Process:\n" + completion.choices[0].message.reasoning_content)
# print("\nComplete Response:\n" + completion.choices[0].message.content)

Pemahaman video

  • File video
  • Daftar gambar
Model kimi-k2.7-code, kimi-k2.6, dan kimi-k2.5 menganalisis video dengan mengekstraksi rangkaian frame. Anda dapat mengontrol strategi ekstraksi frame dengan parameter berikut:
  • fps: Mengontrol frekuensi ekstraksi frame. Interval antar frame yang diekstraksi adalah f p s 1 ​ detik. Nilainya harus berada dalam rentang [0,1, 10]. Nilai default adalah 2,0.
    • Untuk adegan bergerak cepat: Atur nilai fps lebih tinggi untuk menangkap lebih banyak detail.
    • Untuk video statis atau panjang: Atur nilai fps lebih rendah untuk meningkatkan efisiensi pemrosesan.
  • max_frames: Menentukan jumlah maksimum frame yang diekstraksi dari video. Nilai default dan maksimum adalah 2000. Jika jumlah frame yang dihitung dari nilai fps melebihi batas ini, sistem secara otomatis mengekstraksi frame secara merata agar tetap dalam batas max_frames. Parameter ini hanya tersedia saat Anda menggunakan SDK DashScope.
  • Kompatibel dengan OpenAI
  • DashScope
Saat meneruskan file video ke model menggunakan SDK OpenAI atau permintaan HTTP, atur parameter "type" dalam pesan pengguna ke "video_url".
Python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Wilayah China (Beijing). Ganti {WorkspaceId} dengan ID ruang kerja Bailian Anda. URL berbeda-beda tergantung wilayah.
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)

completion = client.chat.completions.create(
    model="kimi-k2.6",
    messages=[
        {
            "role": "user",
            "content": [
                # Saat meneruskan file video langsung, atur parameter "type" ke "video_url".
                {
                    "type": "video_url",
                    "video_url": {
                        "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4"
                    },
                    "fps": 2
                },
                {
                    "type": "text",
                    "text": "What is the content of this video?"
                }
            ]
        }
    ]
)

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

Meneruskan file lokal

Contoh berikut menunjukkan cara meneruskan file lokal. API kompatibel OpenAI hanya mendukung encoding Base64, sedangkan DashScope mendukung encoding Base64 dan jalur file.
  • Kompatibel dengan OpenAI
  • DashScope
Untuk meneruskan file lokal menggunakan encoding Base64, buat Data URL. Untuk petunjuk, lihat Buat Data URL.
Python
from openai import OpenAI
import os
import base64

# Fungsi encoding: Mengonversi file lokal menjadi string terenkripsi Base64.
def encode_image(image_path):
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode("utf-8")

# Ganti "xxx/eagle.png" dengan jalur mutlak ke gambar lokal Anda.
base64_image = encode_image("xxx/eagle.png")

client = OpenAI(
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    # Wilayah China (Beijing). Ganti {WorkspaceId} dengan ID ruang kerja Bailian Anda. URL berbeda-beda tergantung wilayah.
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="kimi-k2.6",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {"url": f"data:image/png;base64,{base64_image}"},
                },
                {"type": "text", "text": "What scene is depicted in the image?"},
            ],
        }
    ],
)
print(completion.choices[0].message.content)

# Contoh berikut menunjukkan cara meneruskan file video lokal dan daftar gambar lokal.

# [File video lokal] Enkode video lokal sebagai Data URL dan teruskan ke parameter video_url:
#   def encode_video_to_data_url(video_path):
#       with open(video_path, "rb") as f:
#           return "data:video/mp4;base64," + base64.b64encode(f.read()).decode("utf-8")

#   video_data_url = encode_video_to_data_url("xxx/local.mp4")
#   content = [{"type": "video_url", "video_url": {"url": video_data_url}, "fps": 2}, {"type": "text", "text": "What is the content of this video?"}]

# [Daftar gambar lokal] Enkode beberapa gambar lokal dengan Base64 dan teruskan sebagai daftar ke parameter video:
#   image_data_urls = [f"data:image/jpeg;base64,{encode_image(p)}" for p in ["xxx/f1.jpg", "xxx/f2.jpg", "xxx/f3.jpg", "xxx/f4.jpg"]]
#   content = [{"type": "video", "video": image_data_urls, "fps": 2}, {"type": "text", "text": "Describe the sequence of events in this video."}]

Batasan file

  • Batasan gambar
  • Batasan video
  • Resolusi gambar:
    • Ukuran minimum: Lebar dan tinggi masing-masing harus melebihi 10 piksel.
    • Rasio aspek: Rasio sisi terpanjang terhadap sisi terpendek tidak boleh melebihi 200:1.
    • Resolusi maksimum: Disarankan maksimum 8K(7680x4320). Resolusi yang lebih tinggi dapat menyebabkan timeout panggilan API karena ukuran file besar atau transfer jaringan lambat.
  • Format gambar yang didukung
    • Format berikut didukung untuk resolusi di bawah 4K(3840x2160):

      Format gambar

      Ekstensi file

      Jenis MIME

      BMP

      .bmp

      image/bmp

      JPEG

      .jpe, .jpeg, .jpg

      image/jpeg

      PNG

      .png

      image/png

      TIFF

      .tif, .tiff

      image/tiff

      WEBP

      .webp

      image/webp

      HEIC

      .heic

      image/heic

    • Untuk resolusi antara 4K(3840x2160) dan 8K(7680x4320), hanya JPEG, JPG, dan PNG yang didukung.
  • Ukuran gambar:
    • Saat menyediakan gambar melalui URL publik atau jalur lokal, ukurannya tidak boleh melebihi 10 MB.
    • Saat menggunakan encoding Base64, string terenkripsi tidak boleh melebihi 10 MB.
    Untuk mengompresi file, lihat Cara mengompresi gambar atau video agar memenuhi batas ukuran.
  • Jumlah gambar yang didukung: Saat menyediakan beberapa gambar, jumlah total token untuk semua gambar dan teks tidak boleh melebihi batas input maksimum model.

Fitur lainnya

Model

Percakapan multi-putaran

Pemikiran mendalam

Pemanggilan fungsi

Output terstruktur

Pencarian web

Pelengkapan awalan

Cache konteks

kimi-k2.7-code

Didukung

Didukung

Didukung

Tidak didukung

Tidak didukung

Tidak didukung

Didukung

kimi-k2.6

Didukung

Didukung

Didukung

Tidak didukung

Tidak didukung

Tidak didukung

Didukung

kimi-k2.5

Didukung

Didukung

Didukung

Tidak didukung

Tidak didukung

Tidak didukung

Didukung

kimi-k2-thinking

Didukung

Didukung

Didukung

Didukung

Tidak didukung

Tidak didukung

Didukung

Moonshot-Kimi-K2-Instruct

Didukung

Tidak didukung

Didukung

Tidak didukung

Didukung

Tidak didukung

Didukung

Parameter default

Model

enable_thinking

suhu

top_p

presence_penalty

fps

max_frames

kimi-k2.7-code

true (hanya mode berpikir)

1.0

0.95

0.0

2

2000

kimi-k2.6

false

mode berpikir: 1.0

mode non-berpikir: 0.6

Kedua mode: 0.95

Kedua mode: 0.0

2

2000

kimi-k2.5

false

mode berpikir: 1.0

mode non-berpikir: 0.6

Kedua mode: 0.95

Kedua mode: 0.0

2

2000

kimi-k2-thinking

-

1.0

-

-

-

-

Moonshot-Kimi-K2-Instruct

-

0.6

1.0

0

-

-

Tanda hubung (-) menunjukkan bahwa parameter tersebut tidak berlaku.

Model dan penagihan

Seri Kimi adalah model bahasa besar dari Moonshot AI.
  • kimi-k2.7-code: Model Kimi paling canggih untuk pemrograman. Model ini mengikuti instruksi konteks panjang lebih andal dan mencapai tingkat keberhasilan lebih tinggi dalam tugas pemrograman. Mendukung input teks, gambar, dan video, mode berpikir, percakapan, dan tugas agen.
  • kimi-k2.6: Model terbaru dan paling canggih dalam seri Kimi. Model ini menawarkan peningkatan kinerja dalam pemrograman jangka panjang, mengikuti instruksi, dan koreksi diri. Mendukung input teks, gambar, dan video, mode berpikir dan non-berpikir, percakapan, dan tugas agen.
  • kimi-k2.5: Mencapai kinerja teknologi terkini (SOTA) pada benchmark sumber terbuka untuk tugas agen, pembuatan kode, pemahaman visual, dan tugas kecerdasan umum lainnya. Mendukung input gambar, video, dan teks, mode berpikir dan non-berpikir, percakapan, dan tugas agen.
  • kimi-k2-thinking: Hanya mendukung mode pemikiran mendalam. Model ini mengekspos proses penalaran melalui bidang reasoning_content. Model ini unggul dalam pemrograman dan pemanggilan alat, serta cocok untuk kasus penggunaan yang memerlukan analisis logis, perencanaan, atau pemahaman mendalam.
  • Moonshot-Kimi-K2-Instruct: Tidak mendukung pemikiran mendalam. Model ini menghasilkan respons dengan latensi lebih rendah, dan cocok untuk kasus penggunaan yang memerlukan jawaban langsung dan cepat.
Untuk harga kimi-k2.7-code, lihat penagihan pemanggilan model.
Untuk detail harga dan jendela konteks, lihat Konsol Model Studio. Penagihan didasarkan pada jumlah token input dan output.
Dalam mode berpikir, rantai pemikiran dihitung sebagai token output.

Kode kesalahan

Jika panggilan model gagal dan mengembalikan pesan kesalahan, lihat Kode kesalahan.
Rencana Token (Team Edition)
Model playground
  • Pembuatan audio
  • Pembuatan musik
Statistik dan Pemantauan
Asset Center
Dukungan layanan