Chat Completion API: Cara Kerja dan Cara Menggunakannya

Pelajari cara kerja Chat Completion API, cara mengintegrasikannya dengan Python, pahami parameter utama, streaming, dan pemanggilan alat, serta ketahui bagaimana penyedia yang kompatibel dengan OpenAI seperti Kimi API dapat mendukung pengembangan aplikasi AI yang fleksibel.

9 menit bacaDiperbarui: 2026-11-14
Alur permintaan dan respons Chat Completion API

Baik Anda sedang membuat chatbot AI maupun menambahkan fitur percakapan ke aplikasi, memahami cara AI menangani percakapan adalah hal penting. Chat Completion API memungkinkan hal ini dengan menghubungkan aplikasi ke model AI untuk menghasilkan respons yang relevan dan menyerupai manusia. Dengan fitur seperti integrasi Python, streaming, dan pemanggilan alat, developer dapat membuat aplikasi yang lebih interaktif. Mari pelajari cara kerjanya, cara menggunakannya, serta bagaimana penyedia seperti Kimi API mendukung pengembangan AI yang fleksibel.

Apa itu Chat Completions API

Chat Completions API adalah antarmuka yang memungkinkan aplikasi mengirim rangkaian pesan ke model AI dan menerima respons asisten, serta mendukung percakapan satu putaran maupun beberapa putaran. Misalnya, Anda dapat menggunakan Kimi K3.1 Pro untuk menjawab pertanyaan tentang dekorator Python, lalu mengajukan pertanyaan lanjutan:

  • Permintaan pertama: Kirim pesan pengguna, "Apa itu dekorator Python?" Kimi mengembalikan pesan asisten yang menjelaskan konsep tersebut.

  • Permintaan kedua: Untuk melanjutkan percakapan, kirim pesan pengguna sebelumnya, pesan asisten lengkap dari Kimi, dan pesan pengguna baru: "Bisakah Anda memberi saya contoh?"

Array messages membawa konteks yang diperlukan untuk setiap permintaan. Tiga keputusan desain utama membuat antarmuka ini banyak digunakan:

  • Riwayat yang dikelola aplikasi: Aplikasi mengelola riwayat percakapan dan menyertakan konteks yang relevan dalam setiap permintaan, sehingga developer dapat mengendalikan apa yang dilihat model.

  • Peran pesan umum: Peran yang umum mencakup system (instruksi), user (masukan), assistant (keluaran model, dikirim kembali untuk konteks multi-giliran), dan tool (hasil pemanggilan fungsi). Bersama-sama, peran ini membantu menyampaikan instruksi, dialog, dan interaksi alat.

  • Kemampuan fleksibel: Bergantung pada dukungan model, antarmuka dapat menangani streaming, pemanggilan alat, masukan visual, dan keluaran terstruktur. Kimi K3.1 Pro mendukung kemampuan tersebut.

Cara menggunakan Chat Completions API dengan Kimi

Contoh berikut menggunakan Kimi K3.1 Pro dan OpenAI Python SDK untuk menunjukkan cara mengonfigurasi klien, mengirim permintaan, menangani respons, dan menerapkan pemanggilan alat:

Mulai cepat: Panggil Kimi dengan OpenAI Python SDK

Instal OpenAI Python SDK:

pip install --upgrade openai

Tetapkan kunci Kimi API sebagai variabel lingkungan:

export MOONSHOT_API_KEY="sk-your-kimi-key"

Anda tidak memerlukan kunci OpenAI API. OpenAI Python SDK berfungsi sebagai pustaka klien, sedangkan kunci Kimi API dan URL dasar Anda mengautentikasi serta mengarahkan permintaan ke Kimi.

Inisialisasi klien dan kirim permintaan pertama Anda:

import os from openai import OpenAI client = OpenAI( api_key=os.environ["MOONSHOT_API_KEY"], base_url="https://api.moonshot.ai/v1", ) resp = client.chat.completions.create( model="kimi-k3.1-pro", messages=[ {"role": "user", "content": "Explain REST in one paragraph."} ], ) print(resp.choices[0].message.content)

Contoh ini menggunakan endpoint API internasional Kimi. Untuk penyiapan resmi dan detail model, lihat Panduan Mulai Cepat Kimi K3.1 Pro.

Parameter utama

Parameter ini mencakup opsi utama yang tersedia saat memanggil Kimi K3.1 Pro melalui Chat Completions API:

ParameterTujuan
modelMenentukan ID model, seperti kimi-k3.1-pro.
messagesMenyediakan pesan percakapan, termasuk masukan pengguna sebelumnya dan balasan asisten. Mendukung konten teks dan multimodal.
reasoning_effortMengatur kedalaman penalaran. Menerima low, high, atau max (default).
max_completion_tokensMenetapkan anggaran maksimum untuk pembuatan, termasuk token penalaran dan token jawaban akhir. Token input dihitung terpisah, tetapi gabungan token input dan token yang dihasilkan harus muat dalam jendela konteks model.
streamAtur ke true untuk menerima respons secara bertahap, alih-alih menunggu output lengkap.
toolsMenentukan fungsi yang dapat diminta model untuk dijalankan oleh aplikasi.
response_formatMengatur format output. Mendukung json_object untuk mode JSON dan json_schema untuk output terstruktur yang dibatasi skema.

Catatan: Kimi K3.1 Pro menggunakan pengaturan sampling tetap. Jangan tambahkan temperature atau top_p ke permintaan. Lihat referensi Chat Completions API untuk detail parameter dan nilai yang didukung.

Membaca respons

Setelah permintaan berhasil, Anda dapat mengakses kolom respons utama melalui objek completion yang dikembalikan:

  • choices[0].message – Berisi balasan asisten, termasuk content atau tool_calls saat model meminta fungsi.

  • choices[0].finish_reason – Menunjukkan alasan pembuatan dihentikan, seperti stop, length, atau tool_calls.

  • usage – Menyediakan informasi penggunaan token, termasuk jumlah token masukan, keluaran, dan cache jika tersedia.

Untuk respons teks dasar, baca choices[0].message.content. Jika model mengembalikan tool_calls, aplikasi Anda perlu menjalankan fungsi yang diminta dan mengirimkan hasilnya dalam permintaan lanjutan

Contoh streaming

Tetapkan stream=True untuk menerima respons Kimi dalam potongan bertahap. Contoh berikut menggunakan kembali client yang dikonfigurasi di atas dan mencetak jawaban akhir saat diterima:

stream = client.chat.completions.create( model="kimi-k3.1-pro", messages=[ {"role": "user", "content": "Write a haiku about autumn."} ], stream=True, ) for chunk in stream: if not chunk.choices: continue delta = chunk.choices[0].delta if delta.content: print(delta.content, end="", flush=True)

Kimi K3.1 Pro mengembalikan konten penalaran secara terpisah dari jawaban akhir. Contoh ini hanya mencetak delta.content, sehingga menampilkan respons akhir tanpa memproses kolom reasoning_content yang terpisah.

Ringkasan pemanggilan alat

Pemanggilan alat memungkinkan Kimi meminta fungsi eksternal saat suatu tugas memerlukan informasi atau tindakan di luar respons model itu sendiri. Misalnya, jika pengguna bertanya, "Haruskah saya membawa payung di Tokyo hari ini?", Kimi dapat meminta fungsi get_weather untuk mengambil prakiraan cuaca.

Alur kerjanya terdiri dari tiga langkah:

  1. Deklarasikan fungsi: Tentukan get_weather dan argumen yang diharapkan di bawah parameter tools.

  2. Jalankan alat: Kimi mengembalikan entri tool_calls berisi nama fungsi dan argumen. Aplikasi Anda menjalankan fungsi yang sesuai dan mengambil data cuaca.

  3. Kirimkan hasilnya kembali: Tambahkan pesan asisten lengkap dari Kimi dan hasil alat (menggunakan tool_call_id yang sesuai) ke percakapan, lalu panggil Kimi lagi untuk menghasilkan jawaban yang ditujukan kepada pengguna.

Contoh berikut menggunakan kembali client yang dikonfigurasi di atas. Sebelum menjalankannya, pastikan Anda telah menerapkan fungsi get_weather(city) yang mengembalikan data cuaca yang dapat diserialisasi ke JSON. Fungsi tersebut dijalankan oleh aplikasi Anda, bukan oleh Kimi.

import json tools = [ { "type": "function", "function": { "name": "get_weather", "description": "Get the weather forecast for a city.", "parameters": { "type": "object", "properties": { "city": {"type": "string"} }, "required": ["city"] } } } ] messages = [ {"role": "user", "content": "Should I bring an umbrella in Tokyo today?"} ] # Ask Kimi whether it needs to call a tool resp = client.chat.completions.create( model="kimi-k3.1-pro", messages=messages, tools=tools, ) assistant_message = resp.choices[0].message # Preserve the complete assistant message, including tool_calls messages.append(assistant_message) # Execute the requested function in your application for tool_call in assistant_message.tool_calls or []: if tool_call.function.name == "get_weather": args = json.loads(tool_call.function.arguments) # Call your own weather service or API weather_result = get_weather(city=args["city"]) messages.append({ "role": "tool", "tool_call_id": tool_call.id, "content": json.dumps(weather_result) }) # Let Kimi interpret the tool result and answer the user final_resp = client.chat.completions.create( model="kimi-k3.1-pro", messages=messages, tools=tools, ) print(final_resp.choices[0].message.content)

Di sini, get_weather() merepresentasikan fungsi yang diterapkan oleh aplikasi Anda, bukan fungsi yang dijalankan langsung oleh Kimi. Kimi menentukan kapan fungsi tersebut perlu diminta dan menyediakan argumennya; aplikasi Anda menjalankan operasi sebenarnya dan mengembalikan hasilnya.

Dalam produksi, terapkan loop yang memproses setiap pemanggilan alat, menambahkan hasil terkait ke percakapan, lalu mengirim kembali pesan yang diperbarui ke Kimi. Ulangi siklus ini hingga model mengembalikan jawaban akhir tanpa meminta alat tambahan.

Mengapa "OpenAI-compatible" penting saat memilih penyedia

Banyak penyedia mendukung format OpenAI Chat Completions, sehingga developer dapat menggunakan kembali SDK dan struktur permintaan yang sudah dikenal. Peralihan biasanya cukup dengan memperbarui URL dasar, kunci API, dan ID model, lalu memeriksa parameter yang didukung serta penanganan respons. Saat membandingkan penyedia, pertimbangkan faktor berikut:

  1. Ketepatan kompatibilitas: Pastikan streaming, pemanggilan alat, keluaran terstruktur, dan pelaporan usage berfungsi sesuai harapan aplikasi Anda. Kompatibilitas dengan format API yang sama tidak menjamin dukungan fitur atau perilaku respons yang identik di semua penyedia.

  2. Kualitas model untuk beban kerja Anda: Kombinasi bahasa dan jenis tugas Anda lebih penting daripada benchmark umum.

  3. Jendela konteks: Model berkonteks panjang dapat menyederhanakan beberapa alur kerja dokumen dengan memproses lebih banyak materi sumber dalam satu permintaan.

  4. Mekanisme biaya: Caching dan diskon batch sering kali lebih berpengaruh daripada harga per token yang ditampilkan.

  5. Cakupan ekosistem: Endpoint kompatibel tambahan, seperti Responses dan Anthropic Messages, dapat menyediakan lebih banyak opsi integrasi dan fleksibilitas seiring perkembangan aplikasi Anda.

Kimi API: Penyedia OpenAI-compatible yang unggul

Kimi API, yang dikembangkan oleh Moonshot AI, layak dipertimbangkan jika Anda mencari penyedia OpenAI-compatible, khususnya untuk aplikasi berbahasa Mandarin, pemrosesan dokumen panjang, dan agen coding. Kimi API menggabungkan pola integrasi API yang sudah dikenal dengan kemampuan konteks panjang dan penalaran Kimi.

Kompatibel langsung digunakan

Jika aplikasi Anda sudah menggunakan OpenAI Python SDK, Anda dapat mengintegrasikan Kimi tanpa menulis ulang seluruh alur permintaan. Cukup perbarui konfigurasi API, termasuk base_url, api_key, dan ID model, sambil tetap menggunakan antarmuka Chat Completions yang sudah familier.

Misalnya, kode berikut membaca laporan lokal dari report.txt, mengirimkan isinya ke Kimi K3.1 Pro untuk diringkas, lalu melakukan streaming respons yang dihasilkan:

from pathlib import Path report_text = Path("report.txt").read_text(encoding="utf-8") resp = client.chat.completions.create( model="kimi-k3.1-pro", messages=[ { "role": "user", "content": f"Summarize the following report:\n\n{report_text}" } ], stream=True, ) for chunk in resp: if not chunk.choices: continue content = chunk.choices[0].delta.content if content: print(content, end="", flush=True)

Di sini, client menggunakan kembali klien Kimi yang sebelumnya diinisialisasi dengan kunci API Anda yang dibaca dari variabel lingkungan. Pilih base URL sesuai wilayah Anda: https://api.moonshot.ai/v1 untuk platform internasional atau https://api.moonshot.cn/v1 untuk pengguna yang mengakses API di Tiongkok daratan.

Pendekatan ini memungkinkan Anda mempertahankan alur kerja OpenAI SDK yang sudah ada sambil menggunakan model Kimi untuk tugas seperti peringkasan dokumen dan aplikasi lain yang didukung API.

Keunggulan Kimi

  • Model andalan dengan jendela konteks 1 juta token: Kimi K3.1 Pro mendukung jendela konteks hingga 1 juta token dan pemahaman visual bawaan. Pengembang dapat menangani basis kode yang luas, dokumen sepanjang buku, dan input gambar dalam satu alur kerja, sehingga cocok untuk penalaran kompleks, pengodean, dan aplikasi multimodal.

  • Optimasi biaya yang fleksibel: Kimi API mendukung cache konteks otomatis untuk prefiks permintaan yang berulang serta inferensi Batch API untuk tugas berskala besar yang tidak memerlukan respons real-time. Biaya cache dan harga Batch bergantung pada model serta aturan harga yang berlaku. Lihat harga resmi Kimi API untuk tarif dan detail penagihan terkini.

  • Kompatibilitas di berbagai ekosistem API: Kimi menyediakan endpoint Chat Completions dan Responses API yang kompatibel dengan OpenAI, serta endpoint yang kompatibel dengan Anthropic Messages. Pengembang dapat mengintegrasikan Kimi K3.1 Pro ke alur kerja yang ada menggunakan SDK dan format API yang familier, dengan penyesuaian berdasarkan endpoint serta fitur yang didukung.

Kesimpulan

Memulai dengan Chat Completions API cukup mudah: konfigurasikan kredensial API Anda, kirim permintaan, lalu baca respons yang dihasilkan dari choices[0].message.content. Setelah panggilan API pertama Anda berhasil, Anda dapat mengembangkan integrasi sesuai kebutuhan aplikasi dengan menambahkan percakapan multi-giliran, respons streaming, atau pemanggilan alat. Siap membangun dengan Kimi? Dapatkan kunci Kimi API Anda dan mulailah membuat permintaan API.

FAQ

Tidak. Chat Completions API tidak hanya tersedia untuk model OpenAI. Penyedia AI lain, termasuk Kimi, menawarkan API yang mengikuti format Chat Completions yang kompatibel dengan OpenAI. Ini memungkinkan developer menggunakan kembali SDK dan struktur permintaan yang sudah familier dengan model yang didukung dari berbagai penyedia, meskipun dukungan fiturnya dapat berbeda.
Kedua API memungkinkan aplikasi berinteraksi dengan model AI, tetapi menggunakan struktur permintaan dan respons yang berbeda. Chat Completions menggunakan array messages dan mengembalikan respons melalui array choices. Responses API menggunakan struktur input dan output yang lebih fleksibel serta mendukung berbagai jenis konten dan interaksi alat. Pengelolaan status percakapan berbeda menurut penyedia. Dengan Responses API Kimi, aplikasi harus menyertakan riwayat percakapan yang relevan dalam setiap permintaan, alih-alih mengandalkan rangkaian ID respons.
Jika aplikasi Anda menggunakan SDK OpenAI, Anda biasanya dapat beralih ke Kimi dengan memperbarui tiga nilai konfigurasi: base_url menjadi endpoint API Kimi, api_key menjadi kunci Kimi API Anda, dan model menjadi ID model Kimi yang didukung. Setelah itu, uji integrasi Anda untuk memastikan parameter dan fitur yang digunakan aplikasi, seperti streaming dan pemanggilan alat, didukung.
Anda Mungkin Juga Menyukai
OpenAI Chat Completions API: Panduan Lengkap
OpenAI Chat Completions API: Panduan Lengkap
2026-11-14
10 API LLM Gratis dan Berbayar untuk Pengembangan AI
10 API LLM Gratis dan Berbayar untuk Pengembangan AI
2026-11-14
Panduan API LLM: Fitur, Manfaat, dan Aplikasi Umum
Panduan API LLM: Fitur, Manfaat, dan Aplikasi Umum
2026-11-14
API Model: Panduan Pengembang untuk Kimi API
API Model: Panduan Pengembang untuk Kimi API
2026-11-14
API yang Kompatibel dengan OpenAI: Panduan Praktis bagi Pengembang
API yang Kompatibel dengan OpenAI: Panduan Praktis bagi Pengembang
2026-11-14