Skip to content

Output Parsing: JSON Schema, XML Tags, Structured Outputs

Çıktıyı parse edilebilir hale getirmek. JSON, XML, custom delimiter'lar ve tip-güvenliği.

Şükrü Yusuf KAYA
9 min read
Advanced
Output Parsing: JSON Schema, XML Tags, Structured Outputs

Üretim ortamında: parse edilemeyen çıktı = hata#

LLM çıktısı bir API yanıtı olarak kullanılacaksa, parse edilebilir olmalı. 4 yaygın yaklaşım:
  1. JSON — en yaygın, en güçlü tooling
  2. JSON Schema (Structured Outputs) — tip-garantili JSON
  3. XML Tags — Anthropic stili, daha esnek
  4. Custom delimiter — özel ayraçla bölme
Yanıtı **sadece** JSON olarak ver: { "title": string, "tags": string[], "score": number (0-1) }
Parse:
JSON.parse(response)
. %95 oranla başarılı; %5 oranla code block içinde gelir veya markdown ile sarılı — temizleme gerekir.
javascript
// Robust JSON extractor — markdown code block veya plain JSON için
function extractJSON(raw) {
// 1. Markdown code block içinde mi?
const blockMatch = raw.match(/```(?:json)?\s*([\s\S]*?)\s*```/);
const jsonStr = blockMatch ? blockMatch[1] : raw.trim();
 
// 2. JSON parse, hata varsa "balanced braces" yaklaşımı
try {
return JSON.parse(jsonStr);
} catch (e) {
// İlk { ile son } arası
const first = jsonStr.indexOf("{");
const last = jsonStr.lastIndexOf("}");
if (first !== -1 && last !== -1) {
return JSON.parse(jsonStr.slice(first, last + 1));
}
throw new Error("JSON parse failed: " + raw.slice(0, 200));
}
}
Hatasız JSON çıkarımı için yardımcı fonksiyon — markdown sarılı veya plain her ikisini de yakalar.

Özet#

✓ Üretimde parse edilebilirlik şart — JSON / Schema / XML / Delimiter ✓ Schema (Structured Outputs) %100 garantili ✓ XML iç içe karmaşık veriye daha esnek ✓ Robust parser her zaman fallback olarak yazın
Sıradaki ders: Multi-Step Pipelines — pipeline tasarımı.

Yorumlar & Soru-Cevap

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

Related Content

Connected pillar topics

Pillar topics this article maps to