Bumalik sa blog

AI para sa mga baguhanGabay

System prompt at temperature: ano ang ginagawa nila at paano itakda

Ano ang ginagawa ng system message at temperature sa isang OpenAI-compatible na request, may mga halimbawang Python at curl na maaari mong ipadala sa isang CheapTokens model.

Ni CheapTokens TeamNai-publish noong Na-update noong 7 min na pagbabasa

Diagram ng chat request: isang system message na may mga patakaran, isang user message na may gawain, at isang temperature dial
Sa pahinang ito
  1. Ano ang system prompt?
  2. Paano magsulat ng kapaki-pakinabang na system prompt
  3. Ano ang ginagawa ng temperature?
  4. Magpadala ng request na may pareho
  5. Makita ang temperature sa aksyon
  6. Aling modelo ang susubukan
  7. Kung hindi ito gumana
  8. Susunod na hakbang

Ang system prompt ay isang mensahe na may role na system na nagsasabi sa modelo kung paano kumilos sa bawat sagot: kung sino siya, anong format ang gagamitin, ano ang dapat iwasan. Ang Temperature ay isang numero, karaniwang nasa pagitan ng 0 at 2 (depende sa modelo ang range), na nagtatakda kung gaano kalaki ang pwedeng magbago ang pananalita: ang mababang halaga ay nagbibigay ng pokus at paulit-ulit na sagot, ang mataas na halaga ay nagbibigay ng mas iba-iba. Pareho silang pumapasok sa isang Chat Completions request, na ipinapadala mo sa https://api.cheaptokens.dev/v1.

Sa ibaba: kung ano ang bawat isa, anong mga halaga ang sisimulan, at isang request na maaari mong patakbuhin sa Python o curl. Kung hindi ka pa nagpadala ng request, magsimula sa iyong unang API request gamit ang CheapTokens.

Ano ang system prompt?#

Ang chat request ay isang listahan ng mga mensahe, at bawat mensahe ay may role. Ang Chat Completions reference ay naglilista ng apat: system, user, assistant at tool (DeepSeek API reference, sinuri noong 22 Oktubre 2026). Para sa unang request kailangan mo ng tatlo:

  • system — nakatayong mga tagubilin mula sa iyo, ang developer. Itinuturing ng modelo ang mga ito bilang mga patakaran ng usapan.
  • user — ang itinatanong o ibinibigay ng tao sa turn na ito.
  • assistant — ang mga naunang sagot ng modelo. Ikaw mismo ang nagdadagdag ng mga ito kapag nagpapatuloy ka ng usapan.

Ang isang system message ay nangangailangan ng role na nakatakda sa system at content bilang isang string. Ang field na name ay opsyonal.

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."}
]

Ang system message ay nauuna. Ang user message ang aktwal na gawain.

Paano magsulat ng kapaki-pakinabang na system prompt#

  • Sabihin kung ano ang ginagawa ng modelo sa isang pangungusap: "You are an editor", "You classify support tickets".
  • Isulat ang output format: "Return only the rewritten text", "Answer in two sentences", "Reply with valid JSON".
  • Ibigay ang mga patakaran bilang maikli, direktang pangungusap. Mas mainam ang ilang malinaw na linya kaysa isang mahabang talata.
  • Panatilihin itong maikli. Ang system prompt ay ipinapadala sa bawat request at binibilang bilang input tokens, kaya ang mahaba ay binabayaran sa bawat pagkakataon. Kung paano sinisingil ang input at output ay nasa input vs output tokens.

Ano ang ginagawa ng temperature?#

Pumipili ang modelo ng bawat susunod na token mula sa isang set ng mga malamang na kandidato. Kinokontrol ng temperature kung gaano kahigpit itong kumakapit sa pinakamalamang. Ayon sa DeepSeek API reference (sinuri noong 22 Oktubre 2026), ang temperature ay tumatanggap ng mga halaga mula 0 hanggang 2 na may default na 1: ang mas mataas na halaga ay nagbibigay ng mas random na output, ang mas mababang halaga ay nagbibigay ng mas pokus at deterministic na output. Nagkakaiba ang mga range sa pagitan ng mga modelo: ang DeepSeek ay nagdodokumento ng 0 hanggang 2, ang Z.ai ay nagdodokumento ng 0 hanggang 1 para sa GLM-5.3 (parehong sinuri noong 22 Oktubre 2026), kaya ang mga halaga mula 0 hanggang 1 ay ligtas sa pareho. Tingnan ang range para sa iyong modelo sa docs.

Mga panimulang punto na gumagana para sa karamihan ng gawain. Ang mga ito ay patnubay, hindi garantiya:

Gawain Simulan sa
Extraction, classification, code, strict formats 0 hanggang 0.3
Q&A, summaries, rewriting 0.3 hanggang 0.7
Brainstorming, names, creative text 0.8 hanggang 1

Tatlong bagay na dapat malaman:

  1. Ang mababang temperature ay mas paulit-ulit, hindi magkapareho. Huwag umasa sa byte-for-byte na pantay na sagot.
  2. Baguhin ang temperature o top_p, hindi pareho. Ito ang rekomendasyon ng DeepSeek; ang top_p ay pangalawang sampling parameter na may default na 1. Iwanan ito habang nag-aaral ka.
  3. May mga mode na hindi pinapansin ang temperature. Sinasabi ng DeepSeek reference na walang epekto ang temperature sa thinking mode, at ang top_p ay nakatakda sa 1.0 sa non-thinking mode. Kung magbabago ka ng halaga at walang pagkakaiba, tingnan muna ang mode ng modelo.

Magpadala ng request na may pareho#

Itakda ang key bilang environment variable, para hindi ito mapunta sa code (tingnan ang ano ang API key at paano ito iimbak nang ligtas). Kunin ang eksaktong model id mula sa CheapTokens docs: iba-iba ang pangalan ng parehong modelo sa iba't ibang provider. Ang halimbawang ito ay gumagamit ng 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)

Ang parehong request gamit ang 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
  }'

Ang dapat mong makita: isang maikli, mas magiliw na bersyon ng pangungusap at stop bilang finish_reason. Kung ang finish_reason ay length, naabot ng sagot ang limitasyon ng max_tokens; tingnan ang bakit humihinto ang sagot ng AI sa gitna ng pangungusap.

Makita ang temperature sa aksyon#

Ang pinakamahusay na paraan upang maunawaan ang temperature ay ang magtanong ng parehong tanong nang ilang beses. Ang loop na ito ay nagpapadala ng isang maikling request ng tatlong beses sa 0 at tatlong beses sa 1, gamit ang client mula sa halimbawa sa itaas:

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)

Sa 0 ang tatlong linya ay karaniwang parehong salita; sa 1 karaniwang makikita mo ang mas iba't ibang salita. Ang mga modelong nag-iisip bago sumagot ay maaaring gumastos ng bahagi ng max_tokens sa pag-iisip na iyon, kaya panatilihing maluwag ang limitasyon kahit para sa isang salitang sagot. Pagkatapos, baguhin lamang ang system prompt (halimbawa, "Answer with one word, in French") at patakbuhin muli: ang mga patakaran sa system message ay nalalapat sa bawat temperature.

Ang ganitong mga eksperimento ay maliit. Para sa isang magaspang na ideya, narito ang gastos ng 100 request na may humigit-kumulang 120 input at 80 output tokens bawat isa (isang halimbawang workload; ang bilang ng token ay depende sa iyong mga prompt):

Modelo Bawat kahilingan 100 mga kahilingan OpenRouter, 100 mga kahilingan
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 input at 80 output na token bawat kahilingan. Ang mga presyo kada 1M token ay kasalukuyan at nagbabago kasabay ng aming mga taripa; ang column ng OpenRouter ay nagpapakita ng reference na presyo para sa parehong workload.

Aling modelo ang susubukan#

  • MiniMax-M2.7 ay isang magandang unang pagpipilian para sa maraming maikling test request, at maaari mong gamitin muli ang parehong system prompt dito upang ihambing ang mga sagot: 180K context, hanggang 8,192 output tokens, mas mura kaysa sa reference price ng OpenRouter sa parehong panig. Kasalukuyang presyo: input $0.05, output $0.15 bawat 1M tokens.

Isang balanse ang sumasaklaw sa lahat ng ito, kaya ang pagpapalit ng modelo ay isang linyang pagbabago ng model. Ang lahat ng kasalukuyang presyo ay nasa pricing page.

Kung hindi ito gumana#

  • 401 o isang authentication error: nawawala ang key, mali ang pagkakasulat o hindi nakatakda ang environment variable sa terminal na ito. Tingnan ang echo $CHEAPTOKENS_API_KEY.
  • Model not found: kopyahin ang model id mula sa docs nang eksakto, kasama ang prefix.
  • Isang error tungkol sa invalid parameter: panatilihin ang temperature sa loob ng range na sinusuportahan ng iyong modelo (0 hanggang 1 ay ligtas) at magpasa ng mga numero, hindi string.
  • Hindi pinapansin ng modelo ang iyong patakaran: gawin itong isang maikli, direktang pangungusap, ilagay ito sa tuktok ng system message, at ulitin ang eksaktong format na gusto mo.
  • Walang nababago ang pagbabago ng temperature: maaaring gumagamit ka ng mode na hindi ito pinapansin (tingnan sa itaas), o ang sagot ay napakahigpit ("one word", "valid JSON") kaya kakaunti ang variation.
  • Naputol ang sagot: taasan ang max_tokens; ipinapaliwanag ng max_tokens guide kung paano.

Susunod na hakbang#

Maglagay ng isang malinaw na patakaran sa system message, pumili ng temperature mula sa talahanayan, at patakbuhin ang loop sa itaas sa iyong sariling gawain. Kapag ang resulta ay gusto mo, panatilihing maikli ang system prompt at gamitin muli ito. Kumuha ng key at tingnan ang kasalukuyang presyo sa docs.