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"Çıkış kapısını dar yap"#
Constrained Generation = modelin üretebileceği çıktıların kümesini daraltma. 4 ana yol:
- max_tokens — uzunluk sınırı
- stop sequences — belirli karakterde dur
- JSON Mode / Structured Outputs — geçerli JSON garanti
- 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-uyumluOpenAI 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
Modül 1: Başlangıç ve Temeller
ChatGPT Nedir? Tarihçe, Evrim ve Bugünün Manzarası
Start LearningModül 1: Başlangıç ve Temeller
Hesap Açma ve Plan Karşılaştırması: Free, Plus, Pro, Team, Enterprise
Start LearningModül 1: Başlangıç ve Temeller
Arayüz Anatomisi: Her Buton, Menü ve Ayar Açıklamalı
Start LearningConnected pillar topics