Bloga dön

Yeni başlayanlar için AIKılavuz

System prompt ve temperature: ne yaparlar ve nasıl ayarlanırlar

OpenAI uyumlu bir istekte system mesajının ve temperature'ın ne yaptığını, CheapTokens modeline gönderebileceğiniz Python ve curl örnekleriyle açıklar.

Yazan: CheapTokens TeamYayınlanma tarihi: Güncellenme tarihi: 5 dk okuma

Chat isteği diyagramı: kuralları içeren bir system mesajı, görevi içeren bir user mesajı ve bir temperature kadranı
Bu sayfada
  1. System prompt nedir?
  2. Kullanışlı bir system prompt nasıl yazılır
  3. Temperature ne yapar?
  4. İkisini birlikte kullanan bir istek gönderin
  5. Temperature'ı iş başında görün
  6. Hangi modelde denemeli
  7. Çalışmazsa
  8. Sonraki adım

Bir system prompt, modelin her yanıtta nasıl davranacağını söyleyen, rolü system olan bir mesajdır: kim olduğu, hangi formatı kullanacağı, nelerden kaçınacağı. Temperature ise genellikle 0 ile 2 arasında (aralık modele göre değişir) bir sayıdır ve ifadelerin ne kadar değişebileceğini belirler: düşük değerler odaklı, tekrarlanabilir yanıtlar verir, yüksek değerler daha çeşitli yanıtlar verir. İkisi de https://api.cheaptokens.dev/v1 adresine gönderdiğiniz aynı Chat Completions isteğine girer.

Aşağıda: her birinin ne olduğu, hangi değerlerle başlanacağı ve Python veya curl ile çalıştırabileceğiniz bir istek. Henüz bir istek göndermediyseniz, CheapTokens ile ilk API isteğiniz ile başlayın.

System prompt nedir?#

Bir chat isteği bir mesaj listesidir ve her mesajın bir rolü vardır. Chat Completions referansı dört rol listeler: system, user, assistant ve tool (DeepSeek API referansı, 22 Ekim 2026'da kontrol edildi). İlk istek için üçüne ihtiyacınız var:

  • system — sizden, yani geliştiriciden gelen kalıcı talimatlar. Model bunları konuşmanın kuralları olarak kabul eder.
  • user — kişinin bu turda sorduğu veya sağladığı şey.
  • assistant — modelin önceki yanıtları. Bir konuşmayı sürdürürken bunları kendiniz eklersiniz.

Bir system mesajı için role alanının system olarak ayarlanması ve content alanının bir string olması gerekir. name alanı isteğe bağlıdır.

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

System mesajı en başa gelir. User mesajı ise asıl görevdir.

Kullanışlı bir system prompt nasıl yazılır#

  • Modelin ne yaptığını tek cümleyle söyleyin: "Sen bir editörsün", "Destek taleplerini sınıflandırıyorsun".
  • Çıktı formatını belirtin: "Yalnızca yeniden yazılmış metni döndür", "İki cümleyle yanıtla", "Geçerli JSON ile yanıtla".
  • Kuralları kısa ve doğrudan cümlelerle verin. Birkaç net satır, tek bir uzun paragraftan daha iyi çalışır.
  • Kısa tutun. System prompt her istekle birlikte gönderilir ve giriş token'ı olarak sayılır, bu yüzden uzun bir prompt her seferinde ücretlendirilir. Giriş ve çıktının nasıl faturalandırıldığı giriş ve çıkış token'ları sayfasında anlatılıyor.

Temperature ne yapar?#

Model, bir sonraki token'ı olası adaylar arasından seçer. Temperature, en olası adaya ne kadar sıkı bağlı kalacağını kontrol eder. DeepSeek API referansına göre (22 Ekim 2026'da kontrol edildi), temperature 0 ile 2 arasındaki değerleri kabul eder ve varsayılanı 1'dir: yüksek değerler daha rastgele çıktı verir, düşük değerler daha odaklı ve deterministik çıktı verir. Aralıklar modeller arasında farklıdır: DeepSeek 0 ile 2 aralığını, Z.ai ise GLM-5.3 için 0 ile 1 aralığını belgeler (ikisi de 22 Ekim 2026'da kontrol edildi), bu yüzden 0 ile 1 arasındaki değerler her ikisinde de güvenlidir. Modelinizin aralığını dokümanlardan kontrol edin.

Çoğu görev için işe yarayan başlangıç noktaları. Bunlar genel kılavuzlardır, garanti değildir:

Görev Şununla başlayın
Çıkarım, sınıflandırma, kod, katı formatlar 0 ile 0.3
Soru-cevap, özetler, yeniden yazma 0.3 ile 0.7
Beyin fırtınası, isimler, yaratıcı metin 0.8 ile 1

Bilmeniz gereken üç şey:

  1. Düşük temperature daha tekrarlanabilirdir, birebir aynı değildir. Bayt bayt eşit yanıtlara güvenmeyin.
  2. Temperature veya top_p değerini değiştirin, ikisini birden değil. Bu DeepSeek'in önerisidir; top_p varsayılanı 1 olan ikinci bir örnekleme parametresidir. Öğrenirken ona dokunmayın.
  3. Bazı modlar temperature'ı yok sayar. DeepSeek referansı, temperature'ın düşünme modunda etkisi olmadığını ve düşünmeyen modda top_p değerinin 1.0 olarak sabitlendiğini söyler. Bir değeri değiştirip fark görmüyorsanız önce modelin modunu kontrol edin.

İkisini birlikte kullanan bir istek gönderin#

Anahtarı bir ortam değişkeni olarak ayarlayın, böylece asla koda girmez (API anahtarı nedir ve güvenle nasıl saklanır sayfasına bakın). Tam model kimliğini CheapTokens dokümanlarından alın: farklı sağlayıcılar aynı modeli farklı adlandırır. Bu örnek MiniMax-M2.7 kullanıyor.

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)

Aynı istek curl ile:

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
  }'

Görmeniz gereken: cümlenin kısa, daha samimi bir sürümü ve finish_reason olarak stop. finish_reason değeri length ise yanıt max_tokens sınırına takılmıştır; bir AI yanıtı neden cümle ortasında durur sayfasına bakın.

Temperature'ı iş başında görün#

Temperature'ı anlamanın en iyi yolu aynı soruyu birkaç kez sormaktır. Bu döngü, yukarıdaki örnekteki client değerini kullanarak kısa bir isteği üç kez 0'da ve üç kez 1'de gönderir:

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)

0'da üç satır genellikle aynı kelimedir; 1'de genellikle daha farklı kelimeler görürsünüz. Yanıtlamadan önce akıl yürüten modeller max_tokens değerinin bir kısmını bu akıl yürütmeye harcayabilir, bu yüzden tek kelimelik bir yanıt için bile sınırı cömert tutun. Ardından yalnızca system prompt'u değiştirin (örneğin, "Fransızca tek kelimeyle yanıtla") ve tekrar çalıştırın: system mesajındaki kurallar her temperature değerinde geçerlidir.

Bu tür deneyler küçüktür. Kaba bir fikir vermesi için, her biri yaklaşık 120 giriş ve 80 çıkış token'ı olan 100 isteğin maliyeti (örnek bir iş yükü; token sayıları prompt'larınıza bağlıdır):

Model İstek başına 100 istek OpenRouter, 100 istek
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

İstek başına 120 giriş ve 80 çıkış token'ı. 1M token başına fiyatlar günceldir ve tarifelerimizle birlikte değişir; OpenRouter sütunu aynı iş yükü için referans fiyatları gösterir.

Hangi modelde denemeli#

  • MiniMax-M2.7 birçok kısa test isteği için iyi bir ilk seçimdir ve yanıtları karşılaştırmak için aynı system prompt'u üzerinde yeniden kullanabilirsiniz: 180K bağlam, 8.192'ye kadar çıkış token'ı, her iki tarafta da OpenRouter'ın referans fiyatından daha ucuz. Güncel fiyat: 1M token başına giriş $0.05, çıkış $0.15.

Tek bir bakiye hepsini kapsar, bu yüzden modeli değiştirmek model için tek satırlık bir değişikliktir. Tüm güncel fiyatlar fiyatlandırma sayfasında.

Çalışmazsa#

  • 401 veya bir kimlik doğrulama hatası: anahtar eksik, yanlış yazılmış veya ortam değişkeni bu terminalde ayarlanmamış. echo $CHEAPTOKENS_API_KEY değerini kontrol edin.
  • Model bulunamadı: model kimliğini dokümanlardan önek dahil tam olarak kopyalayın.
  • Geçersiz parametreyle ilgili bir hata: temperature değerini modelinizin desteklediği aralıkta tutun (0 ile 1 güvenlidir) ve string değil sayı geçirin.
  • Model kuralınızı yok sayıyor: kuralı tek, kısa ve doğrudan bir cümle yapın, system mesajının en üstüne taşıyın ve istediğiniz tam formatı tekrarlayın.
  • Temperature'ı değiştirmek hiçbir şeyi değiştirmiyor: onu yok sayan bir mod kullanıyor olabilirsiniz (yukarıya bakın) veya yanıt o kadar kısıtlıdır ki ("tek kelime", "geçerli JSON") çok az varyasyon vardır.
  • Yanıt kesiliyor: max_tokens değerini artırın; max_tokens rehberi bunun nasıl yapıldığını açıklar.

Sonraki adım#

System mesajına net bir kural koyun, tablodan bir temperature seçin ve yukarıdaki döngüyü kendi görevinizde çalıştırın. Sonuç istediğiniz gibi olduğunda system prompt'u kısa tutun ve yeniden kullanın. Bir anahtar alın ve güncel fiyatları dokümanlardan kontrol edin.