Skip to content

Constrained Generation: Token, Format, Uzunluk Sınırlaması

Modeli belirli sınırlar içine almak — JSON modu, regex, max_tokens, stop sequences ve format zorlamaları.

Şükrü Yusuf KAYA
10 min read
Advanced
Constrained Generation: Token, Format, Uzunluk Sınırlaması

"Çıkış kapısını dar yap"#

Constrained Generation = modelin üretebileceği çıktıların kümesini daraltma. 4 ana yol:
  1. max_tokens — uzunluk sınırı
  2. stop sequences — belirli karakterde dur
  3. JSON Mode / Structured Outputs — geçerli JSON garanti
  4. Prompt-tabanlı sınır — "şu kelimelerden birini seç" tarzı
API ayarı. Yanıtın maksimum token sayısı.
{ "model": "gpt-5", "max_tokens": 200 }
İpucu: 1 token ≈ 0.75 İngilizce kelime ≈ 1.5 Türkçe karakter. Budgeting için kritik.
javascript
import OpenAI from "openai";
import { z } from "zod";
import { zodResponseFormat } from "openai/helpers/zod";
const openai = new OpenAI();
 
const ProductReview = z.object({
sentiment: z.enum(["pozitif", "negatif", "nötr"]),
rating: z.number().int().min(1).max(5),
topics: z.array(z.string()),
summary: z.string().max(200),
});
 
const result = await openai.beta.chat.completions.parse({
model: "gpt-5",
messages: [
{ role: "system", content: "Müşteri yorumlarını analiz eden bir asistansın." },
{ role: "user", content: "Ürün geldi ama kutusu hasarlıydı. İçi sağlamdı, değiştirme istemedim. 4/5 verirdim." }
],
response_format: zodResponseFormat(ProductReview, "review"),
});
 
const review = result.choices[0].message.parsed;
// review.sentiment, review.rating, review.topics, review.summary
// Tip-güvenli, garanti schema-uyumlu
OpenAI Structured Outputs + Zod — schema-garantili çıktı.
💡 Structured Outputs neden devrim?
2024'ten önce 'JSON döndür' diyordun, model %5-10 oranla bozuk JSON üretiyordu — try/catch ile yakalıyordun. Structured Outputs %100 schema-uyumlu üretmeyi constrained decoding ile garanti eder. Üretim ortamı için olmazsa olmaz.
text
Aşağıdaki müşteri kaydından telefon numarasını çıkar.
 
KISITLAR (regex gibi):
- Format: +90 5XX XXX XX XX (boşluklu, +90 başlangıç)
- Sadece bu format, başka kelime yok
- Birden fazla numara varsa sadece **ilk** olanı
 
Müşteri kaydı: [...]
Prompt-içi regex-benzeri kısıt — model'i belirli formatta tutar.

Özet#

✓ 4 ana sınırlama: max_tokens, stop, JSON/Schema, prompt-içi ✓ Üretim ortamı için Structured Outputs olmazsa olmaz ✓ Constrained Generation = parsing maliyetinden kurtulma + tip güvenliği
Sıradaki ders: Output Parsing — JSON Schema, XML Tags, sınıf-güvenli çıktı.

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

Related Content

Connected pillar topics

Pillar topics this article maps to