✨ Świeża dostawa•nowe kody na kinetyka.pl: Gemini Pro 18 mies. 170 zł•Cursor, ElevenLabs, Lovable i więcej, roczne plany AI w ułamku ceny Zobacz →
Przejdź do treści
Artykuły

System prompt, temperatura, okno kontekstowe i max tokens po ludzku

Najważniejsze parametry zapytania do modelu AI na prawdziwych wynikach: system prompt, temperatura (i pułapka z GPT-6), top_p, okno kontekstowe, max tokens i finish_reason oraz gotowe ustawienia na start.

11 min czytania
Klamry { } i napis Parametry API - system prompt, temperatura, okno kontekstowe

👁 115 przeczytań

// w skrócie
  • System prompt to instrukcja roli i zasad modelu, wysyłana w każdym zapytaniu API, za którą płacisz przy każdym wywołaniu.
  • Temperatura 0 daje powtarzalne wyniki (trzy identyczne odpowiedzi co do znaku), 0,7 - zróżnicowane i sensowne, 1,2 - losowe z dziwnymi artefaktami jak słowo 'Kawa Mrugu'.
  • Okno kontekstowe wynosi dziś zwykle 1 mln tokenów w GPT-6, Claude Sonnet, Opus 5.5 i Gemini 3.8 Flash, a liczy się w nim zarówno wejście, jak i wyjście razem.

System prompt ustala, kim jest model i jakich zasad się trzyma. Temperatura decyduje, jak bardzo odpowiedzi są przewidywalne. Okno kontekstowe to limit wszystkiego, co model widzi naraz, a max tokens to limit długości odpowiedzi. Poniżej wyjaśniam każdy parametr po ludzku i pokazuję prawdziwe wyniki: to samo pytanie przy temperaturze 0, 0,7 i 1,2, trzy różne system prompty i odpowiedź uciętą w pół słowa. To część ścieżki API AI od zera.

Ściąga (stan na 4 października 2026)

  • system - rola i zasady; wysyłany w każdym zapytaniu, więc płacisz za niego za każdym razem.
  • temperature - 0 dla danych i klasyfikacji, 0,7 dla zwykłego tekstu, powyżej 1 dla burzy mózgów. Modele rozumujące OpenAI (GPT-6) jej nie przyjmują.
  • max_tokens - górny limit długości odpowiedzi; po jego przekroczeniu finish_reason to length.
  • okno kontekstowe - dziś zwykle 1 mln tokenów (GPT-6, Claude Sonnet i Opus 5.5, Gemini 3.8 Flash), ale liczy się w nim wejście i wyjście razem.

System prompt: instrukcja, która obowiązuje całą rozmowę

W zapytaniu do API wysyłasz listę wiadomości. Pierwsza, z rolą system (w Anthropic osobne pole system, w OpenAI Responses pole instructions), mówi modelowi, kim ma być i czego pilnować. Kolejne to wymiana user i assistant. Model traktuje instrukcję systemową poważniej niż prośby użytkownika, dlatego tam wpisujesz zasady, które nie mogą się zmienić: język, ton, format, czego nie robić.

Sprawdziłem, jak bardzo system prompt zmienia odpowiedź na to samo pytanie „Czy warto uczyć się programowania w 2026 roku?” w modelu Mistral Small 4:

"""System prompt zmienia zachowanie modelu, a max_tokens ucina odpowiedź (finish_reason=length)."""
import os
from dotenv import load_dotenv
from openai import OpenAI

load_dotenv()
client = OpenAI(base_url="https://openrouter.ai/api/v1", api_key=os.environ["OPENROUTER_API_KEY"])
MODEL = "mistralai/mistral-small-2603"
PYTANIE = "Czy warto uczyć się programowania w 2026 roku?"

for system in (
    None,
    "Jesteś zrzędliwym programistą z 30-letnim stażem. Odpowiadasz w maksymalnie dwóch zdaniach.",
    "Odpowiadasz wyłącznie jednym słowem: TAK albo NIE.",
):
    wiadomosci = [{"role": "user", "content": PYTANIE}]
    if system:
        wiadomosci.insert(0, {"role": "system", "content": system})
    r = client.chat.completions.create(model=MODEL, messages=wiadomosci, max_tokens=150, temperature=0.3)
    print(f"\n### system: {system or '(brak)'}")
    print(r.choices[0].message.content.strip())
    print(f"[finish_reason={r.choices[0].finish_reason}, tokeny wyjścia={r.usage.completion_tokens}]")

# max_tokens za mały: odpowiedź urwana w pół zdania
r = client.chat.completions.create(model=MODEL, messages=[{"role": "user", "content": PYTANIE}], max_tokens=25)
print("\n### max_tokens=25")
print(r.choices[0].message.content.strip())
print(f"[finish_reason={r.choices[0].finish_reason}]")
### system: (brak)
Tak, **uczenie się programowania w 2026 roku nadal będzie bardzo wartościowe**, a nawet bardziej niż obecnie. Oto kluczowe powody, dlaczego warto zainwestować w te umiejętności:

### **1. Wysokie zapotrzebowanie na programistów**
- **AI i automatyzacja** będą dalej zastępować rutynowe zadania, ale **programiści będą potrzebni do tworzenia, utrzymania i rozwijania systemów AI, narzędzi i infrastruktury**.
- Według **World Economic Forum**, do 2025 roku **ponad połowa wszystkich nowych miejsc pracy** będzie wymagać umieję
[finish_reason=length, tokeny wyjścia=150]

### system: Jesteś zrzędliwym programistą z 30-letnim stażem. Odpowiadasz w maksymalnie dwóch zdaniach.
Nawet w 2026 programowanie będzie potrzebne, ale nie ucz się tylko samego kodu - zrozum problem, który rozwiązujesz, bo inaczej stracisz pracę na rzecz AI. I nie marudź, że to trudne, bo w moich czasach mieliśmy dziury w kartach perforowanych.
[finish_reason=stop, tokeny wyjścia=79]

### system: Odpowiadasz wyłącznie jednym słowem: TAK albo NIE.
TAK
[finish_reason=stop, tokeny wyjścia=3]

Trzy obserwacje:

  • Bez system promptu model rozpisał się w punktach, z nagłówkami i pogrubieniami, i nie zmieścił się w limicie 150 tokenów (finish_reason=length). Do tego powołał się na prognozę „do 2025 roku”, czyli nieaktualną wiedzę z danych treningowych.
  • Z rolą „zrzędliwy programista” zmieścił się w dwóch zdaniach, zmienił ton i sam zakończył odpowiedź (stop).
  • Z ograniczeniem do jednego słowa odpowiedział „TAK” i zużył 3 tokeny zamiast 150. To najtańszy sposób na klasyfikację.

Zasady, których się trzymam przy pisaniu system promptów:

  1. Konkret zamiast przymiotników: „maksymalnie 3 zdania” zamiast „zwięźle”.
  2. Format odpowiedzi wprost: lista, JSON, jedno słowo. Do twardego JSON-a używam trybu structured output, nie samej prośby.
  3. Czego nie robić, z powodem: „nie podawaj cen, bo zmieniają się co tydzień”.
  4. Długi, stały system prompt na początku zapytania - wtedy dostawca może go trzymać w pamięci podręcznej i liczyć taniej.

Więcej o samej sztuce pisania instrukcji: Prompt: co to jest i jak napisać polecenie do AI i System prompty w Claude.

Temperatura: eksperyment 0 / 0,7 / 1,2

Model przy każdym kolejnym tokenie wybiera z listy kandydatów z prawdopodobieństwami. Temperatura „spłaszcza” albo „wyostrza” ten rozkład. Przy 0 model prawie zawsze bierze najbardziej prawdopodobny token, więc odpowiedź jest powtarzalna. Przy wyższych wartościach częściej sięga po mniej oczywiste słowa: odpowiedzi są bardziej zróżnicowane, ale też bardziej ryzykowne.

Wysłałem to samo polecenie dziewięć razy do Mistral Small 4: po trzy razy przy temperaturze 0, 0,7 i 1,2.

"""Eksperyment: to samo zapytanie przy temperaturze 0, 0.7 i 1.2 (po 3 razy)."""
import os, sys
from dotenv import load_dotenv
from openai import OpenAI

load_dotenv()
client = OpenAI(base_url="https://openrouter.ai/api/v1", api_key=os.environ["OPENROUTER_API_KEY"])

# Model musi obsługiwać temperature. Modele rozumujące OpenAI (GPT-6) jej nie przyjmują.
MODEL = sys.argv[1] if len(sys.argv) > 1 else "mistralai/mistral-small-2603"
PYTANIE = "Wymyśl nazwę i jednozdaniowy slogan dla małej kawiarni w Gdańsku. Odpowiedz w jednej linii."

for temperatura in (0, 0.7, 1.2):
    print(f"\n=== temperature={temperatura} ===")
    for proba in range(1, 4):
        r = client.chat.completions.create(
            model=MODEL,
            messages=[{"role": "user", "content": PYTANIE}],
            temperature=temperatura,
            max_tokens=80,
            # tylko dostawcy, którzy naprawdę obsługują temperature
            extra_body={"provider": {"require_parameters": True}},
        )
        print(f"{proba}. {r.choices[0].message.content.strip()}")
=== temperature=0 ===
1. **"Bursztynowa Kawa" - "Gdański smak, który rozgrzewa duszę."*
2. **"Bursztynowa Kawa" - "Gdański smak, który rozgrzewa duszę."*
3. **"Bursztynowa Kawa" - "Gdański smak, który rozgrzewa duszę."*

=== temperature=0.7 ===
1. **"Morska Kawa"** - "Gdańskie smaki w sercu miasta."
2. **"Kawa na Darszu"** - *Gdańska kawa, lokalny smak.*
3. **"Gdańska Mała Kawa" - "Gdzie każda filiżanka to kawałek Gdańska."*

=== temperature=1.2 ===
1. **"Kawa Mrugu"** - *Twój ulubiony smak spotyka gdański zachód słońca.*
2. **"Bursztynowa Kawiarnia
- Serce Gdańska w filiżance."**
3. **"Bursztyn Café"** - "Gdzie rodzinna atmosfera spotyka się z gdańskim niebem."

Co widać w wynikach:

  • Temperatura 0: trzy razy identyczna odpowiedź, co do znaku, łącznie z niedomkniętą gwiazdką formatowania. Tego chcesz przy wyciąganiu danych, klasyfikacji i testach.
  • Temperatura 0,7: trzy różne, sensowne propozycje. Dobry kompromis do tekstów marketingowych i odpowiedzi czatu.
  • Temperatura 1,2: pojawiają się dziwactwa: „Kawa Mrugu” (słowo, którego nie ma), łamanie linii w środku nazwy, pomieszane cudzysłowy. Czasem trafi się perełka, ale do produkcji to za dużo losowości.

Dwie pułapki, na które trafiłem:

  1. Temperatura 0 nie gwarantuje identycznych odpowiedzi. U mnie trzy razy wyszło to samo, ale dostawcy nie obiecują pełnej powtarzalności (obliczenia na GPU, różne serwery). Dlaczego czat odpowiada różnie na to samo pytanie, opisałem w tekście Dlaczego ChatGPT podaje różne odpowiedzi.
  2. Nie każdy model przyjmuje temperaturę. Modele rozumujące OpenAI (GPT-6 Luna, Sol, Astra) jej nie obsługują. OpenRouter domyślnie po cichu pomija taki parametr, więc kod działa, ale temperatura nic nie zmienia. Sprawdziłem to:
"""Pułapka: GPT-6 nie obsługuje temperature, a OpenRouter domyślnie po cichu pomija ten parametr."""
import os
from dotenv import load_dotenv
import openai
from openai import OpenAI

load_dotenv()
client = OpenAI(base_url="https://openrouter.ai/api/v1", api_key=os.environ["OPENROUTER_API_KEY"])

for wymagaj in (False, True):
    try:
        r = client.chat.completions.create(
            model="openai/gpt-6-luna",
            messages=[{"role": "user", "content": "Podaj jedną nazwę dla kawiarni w Gdańsku."}],
            temperature=1.2,
            max_tokens=60,
            extra_body={"provider": {"require_parameters": wymagaj}},
        )
        print(f"require_parameters={wymagaj}: 200 OK -> {r.choices[0].message.content}")
    except openai.APIStatusError as e:
        print(f"require_parameters={wymagaj}: {e.status_code} -> {e.body.get('message') if isinstance(e.body, dict) else e.message}")
require_parameters=False: 200 OK -> Mokka Motława
require_parameters=True: 404 -> No endpoints found that can handle the requested parameters. To learn more about provider routing, visit: https://openrouter.ai/docs/guides/routing/provider-selection

Bez require_parameters zapytanie przeszło, a temperatura 1,2 została zignorowana. Z tym ustawieniem OpenRouter uczciwie odmówił (404 - brak dostawcy, który obsłuży wszystkie parametry). W modelach rozumujących zamiast temperatury sterujesz parametrem reasoning_effort (ile model myśli) i verbosity (jak długo pisze).

Pokrewny parametr top_p ogranicza wybór do najbardziej prawdopodobnych tokenów, których łączne prawdopodobieństwo nie przekracza podanej wartości. Zasada praktyczna: zmieniaj albo temperaturę, albo top_p, nie oba naraz.

Okno kontekstowe: ile model widzi naraz

Mam to spisane w całości

Zebrałem te rzeczy w ebookach, które możesz pobrać za darmo - bez zapisu na listę, bez haczyka.

Pobierz ebooki

Okno kontekstowe to maksymalna liczba tokenów w jednym zapytaniu: system prompt, cała historia rozmowy, wklejone dokumenty, opisy narzędzi i odpowiedź modelu. API nie pamięta poprzednich zapytań - jeśli chcesz rozmowy, za każdym razem wysyłasz całą historię od nowa i za każdym razem za nią płacisz.

ModelOkno kontekstoweMaksymalna odpowiedź
GPT-6 Luna, Sol, Astra1,05 mln tokenów128 tys.
Claude Opus 5.5, Sonnet 5.5, Fable 5.11 mln128 tys.
Claude Haiku 4.5200 tys.64 tys.
Gemini 3.8 Flash1,05 mln65 tys.
Grok 4.7500 tys.-
DeepSeek V4.1 Flash, V4 Pro1 mln384 tys.
Mistral Small 4, Medium 3.5256 tys.-

Milion tokenów to po polsku kilka książek, ale w praktyce trzy rzeczy psują ten obraz:

  • Koszt. Zapytanie z 500 tys. tokenów wejścia do Claude Sonnet 5.5 kosztuje 1 USD, zanim model napisze słowo. GPT-6 i Grok powyżej progów (272 tys. i 200 tys.) liczą wyższe stawki za całe zapytanie.
  • Jakość. Model gorzej znajduje informacje w środku bardzo długiego tekstu. Sprawdziłem to w tekście Modele obiecują milion tokenów kontekstu - dwa z trzech modeli poległy.
  • Polski zajmuje więcej. Ten sam tekst po polsku to od 1,4 do 2,1 raza więcej tokenów niż po angielsku (pomiar w tekście Tokeny AI).

Gdy dokumentów jest więcej, niż sensownie mieści się w oknie, zamiast wklejać wszystko używa się wyszukiwania fragmentów, czyli RAG. Wyjaśniam go w tekście RAG: jak działa, a w kodzie pokazuję go w tekście RAG krok po kroku.

max tokens: limit długości odpowiedzi

max_tokens (w nowszym API OpenAI max_completion_tokens, w Gemini max_output_tokens) to sufit liczby tokenów, które model może wygenerować. Model nie „planuje” odpowiedzi pod ten limit - po prostu zostaje ucięty, gdy go osiągnie:

### max_tokens=25
Tak, warto uczyć się programowania w **2026 roku** - i to z kilku ważnych powod
[finish_reason=length]

Jak tego używać:

  • Zawsze sprawdzaj finish_reason. stop - model skończył sam, length - ucięty limitem, tool_calls - chce wywołać narzędzie, content_filter - zablokowany.
  • Limit to zabezpieczenie kosztów, nie sposób na krótkie odpowiedzi. Krótkość wymuszasz w system prompcie („maksymalnie 3 zdania”), a max_tokens ustawiasz z zapasem.
  • W modelach rozumujących limit obejmuje myślenie. Gdy ustawisz 200 tokenów, a model zużyje 190 na myślenie, odpowiedź będzie miała 10 tokenów albo będzie pusta. Dla takich modeli daję limit co najmniej kilka tysięcy.
  • W Anthropic max_tokens jest obowiązkowy - zapytanie bez niego dostanie błąd 400.

Inne parametry, które warto znać

ParametrDo czegoKiedy używam
stoplista napisów, po których model ma przestaćgdy model dopisuje zbędne rzeczy po właściwej odpowiedzi
seedziarno losowości dla powtarzalnościtesty; działa „w miarę możliwości”, bez gwarancji
reasoning_effortile model myśli (np. low, medium, high)modele rozumujące; niski poziom tnie koszt przy prostych zadaniach
response_formatwymuszenie JSON zgodnego ze schematemwyciąganie danych - structured output
toolslista funkcji, które model może wywołaćagenci - function calling
streamodpowiedź kawałek po kawałkuczaty - przykład w Pythonie

Moje ustawienia na start

Zadanietemperaturemax_tokensSystem prompt
Wyciąganie danych, klasyfikacja0500 + schemat JSONkrótki, z listą kategorii
Streszczenie, tłumaczenie0,2-0,32× oczekiwana długośćjęzyk, długość, dla kogo
Teksty, odpowiedzi czatu0,71500-3000rola, ton, czego unikać
Burza mózgów, nazwy, slogany0,9-1,1500„podaj 10 propozycji, każda inna”
Modele rozumujące (GPT-6, Gemini z myśleniem)nie ustawiammin. 4000jak wyżej + reasoning_effort

Najczęstsze pytania

Co to jest system prompt?

To instrukcja dla modelu wysyłana na początku zapytania, z rolą system. Ustala zasady całej rozmowy: kim jest model, w jakim języku i formacie odpowiada, czego nie robi. W aplikacjach czatu użytkownik go nie widzi.

Jaką temperaturę ustawić?

0 do zadań z jedną poprawną odpowiedzią (dane, klasyfikacja, kod), około 0,7 do zwykłego tekstu, 0,9-1,1 do szukania pomysłów. Powyżej 1,2 odpowiedzi zaczynają się sypać, co widać w moim teście.

Co to jest okno kontekstowe?

Maksymalna liczba tokenów, którą model przetworzy w jednym zapytaniu, razem z odpowiedzią. W październiku 2026 czołowe modele mają około 1 mln tokenów, mniejsze 128-256 tys.

Czym różni się max_tokens od okna kontekstowego?

Okno to limit całości (wejście plus wyjście), ustalony przez model. max_tokens to Twój limit samej odpowiedzi, który ustawiasz w zapytaniu i który nie może przekroczyć maksymalnej odpowiedzi modelu.

Dlaczego model ignoruje mój system prompt?

Najczęściej instrukcje są sprzeczne albo ogólnikowe, a prośba użytkownika mówi co innego. Pomaga konkret („maksymalnie 3 zdania”), przykład oczekiwanej odpowiedzi i powtórzenie najważniejszej zasady na końcu instrukcji.

Google · Twoje źródłaPromptowy wyżej w Twoim Google - jednym kliknięciemDodaj do preferowanych źródeł →

Źródła i data sprawdzenia

Eksperymenty uruchomiłem 4 października 2026 na Windows 11, Python 3.13.15, openai 3.24.0, przez OpenRouter. Koszt wszystkich zapytań z tego tekstu: około 0,002 USD.

// Newsletter

Cały tydzień w AI, w jednym mailu

Wybrane premiery, narzędzia i analizy. Raz w tygodniu, prosto do skrzynki.

Zapisz się za darmo →
Za darmo. Wypisujesz się jednym kliknięciem.
// czytaj też

Podobne tematy na Promptowym

Piotr Olszewski

Piotr Olszewski

AUTOR I WYDAWCA

Piotr Olszewski - twórca i autor Promptowego, polskiego serwisu o sztucznej inteligencji. Codziennie śledzi premiery modeli, narzędzia i regulacje AI, i tłumaczy je prostym, konkretnym językiem.

// mapa strony

🛒 Sklep Kinetyka Google AI Gemini Pro 170 zł CapCut Pro 460 zł/rok Lovable Pro 400 zł/rok Zobacz wszystko →
promptowy w liczbach 0tekstów w archiwum0newsów z ostatnich 7 dni0modeli wideo w obserwatorium0zagadek w grach
× ‹ powiększenie ›