Kembali ke blog

AI untuk pemulaPanduan

System prompt dan temperature: apa fungsinya dan cara mengaturnya

Apa fungsi pesan sistem dan temperature dalam permintaan yang kompatibel dengan OpenAI, dengan contoh Python dan curl yang dapat Anda kirim ke model CheapTokens.

Oleh CheapTokens TeamDiterbitkan Diperbarui 5 menit baca

Diagram permintaan chat: pesan sistem dengan aturan, pesan pengguna dengan tugas, dan pengatur temperature
Di halaman ini
  1. Apa itu system prompt?
  2. Cara menulis system prompt yang berguna
  3. Apa fungsi temperature?
  4. Kirim permintaan dengan keduanya
  5. Lihat temperature bekerja
  6. Model mana yang harus dicoba
  7. Jika tidak berhasil
  8. Langkah berikutnya

System prompt adalah pesan dengan peran system yang memberi tahu model bagaimana berperilaku di setiap jawaban: siapa dirinya, format apa yang digunakan, apa yang harus dihindari. Temperature adalah angka, biasanya antara 0 dan 2 (rentangnya tergantung model), yang menentukan seberapa besar variasi kata yang diperbolehkan: nilai rendah menghasilkan jawaban yang fokus dan dapat diulang, nilai tinggi menghasilkan jawaban yang lebih bervariasi. Keduanya masuk ke dalam permintaan Chat Completions yang sama, yang Anda kirim ke https://api.cheaptokens.dev/v1.

Di bawah ini: apa itu masing-masing, nilai apa yang harus dimulai, dan permintaan yang dapat Anda jalankan di Python atau curl. Jika Anda belum mengirim permintaan, mulailah dengan permintaan API pertama Anda dengan CheapTokens.

Apa itu system prompt?#

Permintaan chat adalah daftar pesan, dan setiap pesan memiliki peran. Referensi Chat Completions mencantumkan empat: system, user, assistant dan tool (Referensi API DeepSeek, diperiksa 22 Oktober 2026). Untuk permintaan pertama Anda memerlukan tiga:

  • system — instruksi tetap dari Anda, pengembang. Model memperlakukannya sebagai aturan percakapan.
  • user — apa yang ditanyakan atau diberikan orang pada giliran ini.
  • assistant — jawaban model sebelumnya. Anda menambahkannya sendiri saat melanjutkan percakapan.

Pesan sistem memerlukan role diatur ke system dan content sebagai string. Bidang name bersifat opsional.

json
"messages": [
  {"role": "system", "content": "You are an editor. Rewrite the user's text to be shorter and friendlier. Return only the rewritten text."},
  {"role": "user", "content": "Send me the report by tonight or I will be upset."}
]

Pesan sistem diletakkan paling awal. Pesan pengguna adalah tugas sebenarnya.

Cara menulis system prompt yang berguna#

  • Nyatakan apa yang dilakukan model dalam satu kalimat: "Anda adalah editor", "Anda mengklasifikasikan tiket dukungan".
  • Nyatakan format keluaran: "Kembalikan hanya teks yang ditulis ulang", "Jawab dalam dua kalimat", "Balas dengan JSON yang valid".
  • Berikan aturan sebagai kalimat pendek dan langsung. Beberapa baris yang jelas lebih baik daripada satu paragraf panjang.
  • Jaga agar tetap singkat. System prompt dikirim dengan setiap permintaan dan dihitung sebagai token masukan, jadi yang panjang dibayar setiap kali. Cara input dan output ditagih ada di token input vs output.

Apa fungsi temperature?#

Model memilih setiap token berikutnya dari sekumpulan kandidat yang mungkin. Temperature mengontrol seberapa ketat model berpegang pada kandidat yang paling mungkin. Menurut referensi API DeepSeek (diperiksa 22 Oktober 2026), temperature menerima nilai dari 0 hingga 2 dengan default 1: nilai lebih tinggi menghasilkan output lebih acak, nilai lebih rendah menghasilkan output lebih fokus dan deterministik. Rentangnya berbeda antar model: DeepSeek mendokumentasikan 0 hingga 2, Z.ai mendokumentasikan 0 hingga 1 untuk GLM-5.3 (keduanya diperiksa 22 Oktober 2026), jadi nilai dari 0 hingga 1 aman di keduanya. Periksa rentang untuk model Anda di dokumentasi.

Titik awal yang berfungsi untuk sebagian besar tugas. Ini adalah aturan praktis, bukan jaminan:

Tugas Mulai dengan
Ekstraksi, klasifikasi, kode, format ketat 0 hingga 0.3
Tanya jawab, ringkasan, penulisan ulang 0.3 hingga 0.7
Brainstorming, nama, teks kreatif 0.8 hingga 1

Tiga hal yang perlu diketahui:

  1. Temperature rendah lebih dapat diulang, bukan identik. Jangan mengandalkan jawaban yang sama persis byte demi byte.
  2. Ubah temperature atau top_p, jangan keduanya. Ini rekomendasi DeepSeek; top_p adalah parameter sampling kedua dengan default 1. Biarkan saja saat Anda belajar.
  3. Beberapa mode mengabaikan temperature. Referensi DeepSeek menyatakan temperature tidak berpengaruh dalam mode thinking, dan bahwa top_p tetap 1.0 dalam mode non-thinking. Jika Anda mengubah nilai dan tidak melihat perbedaan, periksa mode model terlebih dahulu.

Kirim permintaan dengan keduanya#

Atur kunci sebagai variabel lingkungan, agar tidak pernah masuk ke kode (lihat apa itu kunci API dan cara menyimpannya dengan aman). Ambil id model yang tepat dari dokumentasi CheapTokens: penyedia berbeda menamai model yang sama secara berbeda. Contoh ini menggunakan MiniMax-M2.7.

python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.cheaptokens.dev/v1",
    api_key=os.environ["CHEAPTOKENS_API_KEY"],
)

response = client.chat.completions.create(
    model="MiniMaxAI/MiniMax-M2.7",
    messages=[
        {"role": "system", "content": "You are an editor. Rewrite the user's text to be shorter and friendlier. Return only the rewritten text."},
        {"role": "user", "content": "Send me the report by tonight or I will be upset."},
    ],
    temperature=0.3,
    max_tokens=1000,
)

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

Permintaan yang sama dengan curl:

bash
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MiniMaxAI/MiniMax-M2.7",
    "messages": [
      {"role": "system", "content": "You are an editor. Rewrite the user'\''s text to be shorter and friendlier. Return only the rewritten text."},
      {"role": "user", "content": "Send me the report by tonight or I will be upset."}
    ],
    "temperature": 0.3,
    "max_tokens": 1000
  }'

Yang seharusnya Anda lihat: versi kalimat yang lebih pendek dan lebih ramah serta stop sebagai finish_reason. Jika finish_reason adalah length, jawaban mencapai batas max_tokens; lihat mengapa jawaban AI berhenti di tengah kalimat.

Lihat temperature bekerja#

Cara terbaik untuk memahami temperature adalah mengajukan pertanyaan yang sama beberapa kali. Loop ini mengirim satu permintaan pendek tiga kali pada 0 dan tiga kali pada 1, menggunakan client dari contoh di atas:

python
for temp in (0, 1):
    print("temperature", temp)
    for _ in range(3):
        r = client.chat.completions.create(
            model="MiniMaxAI/MiniMax-M2.7",
            messages=[
                {"role": "system", "content": "Answer with one word."},
                {"role": "user", "content": "Name a fruit."},
            ],
            temperature=temp,
            max_tokens=500,
        )
        print(" ", r.choices[0].message.content)

Pada 0 ketiga baris biasanya kata yang sama; pada 1 Anda biasanya akan melihat lebih banyak kata berbeda. Model yang bernalar sebelum menjawab mungkin menghabiskan sebagian max_tokens untuk penalaran itu, jadi biarkan batasnya longgar bahkan untuk jawaban satu kata. Lalu ubah hanya system prompt (misalnya, "Jawab dengan satu kata, dalam bahasa Prancis") dan jalankan lagi: aturan dalam pesan sistem berlaku pada setiap temperature.

Eksperimen semacam itu kecil. Untuk gambaran kasar, berikut biaya 100 permintaan dengan sekitar 120 token input dan 80 token output masing-masing (contoh beban kerja; jumlah token tergantung pada prompt Anda):

Model Per permintaan 100 permintaan OpenRouter, 100 permintaan
GLM-5.3-Flash $0.0000056 $0.00056 $0.0011
DeepSeek-V4-Flash $0.0000098 $0.00098 $0.0018
MiniMax-M2.7 $0.000018 $0.0018 $0.0132

120 token input dan 80 token output per permintaan. Harga per 1 juta token adalah harga saat ini dan berubah seiring tarif kami; kolom OpenRouter menunjukkan harga referensi untuk beban kerja yang sama.

Model mana yang harus dicoba#

  • MiniMax-M2.7 adalah pilihan pertama yang baik untuk banyak permintaan uji pendek, dan Anda dapat menggunakan kembali system prompt yang sama untuk membandingkan jawaban: konteks 180K, hingga 8.192 token output, lebih murah daripada harga referensi OpenRouter di kedua sisi. Harga saat ini: input $0.05, output $0.15 per 1M token.

Satu saldo mencakup semuanya, jadi mengganti model adalah perubahan satu baris pada model. Semua harga saat ini ada di halaman harga.

Jika tidak berhasil#

  • 401 atau kesalahan autentikasi: kunci hilang, salah ketik, atau variabel lingkungan tidak diatur di terminal ini. Periksa echo $CHEAPTOKENS_API_KEY.
  • Model tidak ditemukan: salin id model dari dokumentasi dengan tepat, termasuk prefiksnya.
  • Kesalahan tentang parameter tidak valid: jaga temperature dalam rentang yang didukung model Anda (0 hingga 1 aman) dan berikan angka, bukan string.
  • Model mengabaikan aturan Anda: buat menjadi satu kalimat pendek dan langsung, pindahkan ke bagian atas pesan sistem, dan ulangi format persis yang Anda inginkan.
  • Mengubah temperature tidak mengubah apa pun: Anda mungkin menggunakan mode yang mengabaikannya (lihat di atas), atau jawabannya sangat terbatas ("satu kata", "JSON valid") sehingga hanya ada sedikit variasi.
  • Jawaban terpotong: naikkan max_tokens; panduan max_tokens menjelaskan caranya.

Langkah berikutnya#

Letakkan satu aturan yang jelas di pesan sistem, pilih temperature dari tabel, dan jalankan loop di atas pada tugas Anda sendiri. Ketika hasilnya sesuai keinginan, pertahankan system prompt tetap singkat dan gunakan kembali. Dapatkan kunci dan periksa harga saat ini di dokumentasi.