0Pricing
AI Agents · Ders

Hatalı Çıktılar için Onarım Döngüleri

JSON ayrıştırılamazsa hatayı modele geri gönderin ve çıktıyı düzeltmesini isteyin.

Hatalı Çıktılar için Onarım Döngüleri, CoddyKit'te ücretsiz bir AI Agents dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Agents öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Agents kursu toplamda 4 dersten oluşur.

Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.

Katı Modlar Bile Bazen Başarısız Olur

Eski modeller, uç durumlar veya katı olmayan sağlayıcılar zaman zaman hatalı JSON döndürebilir. Sağlam ajanlar, modelden çıktısını onarmasını isteyerek toparlanır.

Basic Repair Loop

from pydantic import ValidationError
import json

def call_with_repair(messages, schema, max_attempts=3):
    for attempt in range(max_attempts):
        response = client.chat.completions.create(
            model='gpt-4o-mini',
            messages=messages,
            response_format={'type': 'json_object'}
        )
        raw = response.choices[0].message.content
        try:
            return schema.model_validate_json(raw)
        except (json.JSONDecodeError, ValidationError) as e:
            messages.append({'role': 'assistant', 'content': raw})
            messages.append({
                'role': 'user',
                'content': f'That output failed to validate: {e}.\nReturn ONLY valid JSON that matches the schema. No prose, no markdown fences.'
            })
    raise RuntimeError('Could not get valid output after repair attempts.')

Neden İşe Yarar

Model hata iletisini görür ve genellikle bir sonraki turda hatayı düzeltir. Açık talimatlar ekleyin:

  • "Düzyazı kullanmayın"
  • "Markdown çitleri kullanmayın"
  • "Şu tam biçimle eşleştirin: ..."

Markdown Çitlerini Kaldırma

Modeller JSON'u sıklıkla ```json ... ``` içine alır. Ayrıştırmadan önce bunları kaldırın:

import re

def extract_json(text):
    m = re.search(r'```(?:json)?\s*(.*?)```', text, re.S)
    if m:
        return m.group(1).strip()
    return text.strip()

sample = '```json\n{"name": "Alice"}\n```'
print(extract_json(sample))

İlk Ayraçtan Dilimleme

Gereksiz düzyazı varsa, ilk { karakterinden son eşleşen } karakterine kadar olan bölümü alın:

def find_json_slice(text):
    start = text.find('{')
    if start == -1:
        return None
    depth = 0
    for i, c in enumerate(text[start:], start):
        if c == '{': depth += 1
        if c == '}':
            depth -= 1
            if depth == 0:
                return text[start:i+1]
    return None

sample = 'Here is your answer: {"name": "Alice", "age": 30} - hope that helps!'
print(find_json_slice(sample))

Bunu Sizin İçin Yapan Araçlar

  • Instructor — Pydantic'i, onarım döngülerini ve yeniden denemeleri bir arada sunar
  • Outlines — yönlendirmeli kod çözümleme yoluyla garanti edilmiş yapılandırılmış çıktı sağlar
  • jsonformer — belirteç belirteç JSON zorlaması yapar (HF modelleri)

İşe Yarayan Onarım İstemleri

Belirli hata iletisini ve biçimi hatırlatan kısa bir açıklamayı ekleyin:

repair_prompt = f'''
Your previous output had this error: {error}

Fix the output. Requirements:
- Valid JSON only
- Match this schema: {json.dumps(schema)}
- No prose, no markdown fences
'''

Onarım Döngülerinin Maliyeti

Her onarım, bir LLM çağrısı daha anlamına gelir. Yeniden denemeleri sınırlayın (2-3 deneme yeterlidir; bunun ötesinde modelin toparlanma olasılığı düşüktür) ve onarım oranlarını kalite ölçütü olarak günlüğe kaydedin.

Kalite Sinyali Olarak Onarım

Onarım oranınız %5'in üzerindeyse bir sorun vardır: istem açık değildir, şema fazla karmaşıktır veya model çok küçüktür. Araştırın.

Alternatif: Kısıtlı Kod Çözümleme

Açık kaynaklı modeller, dil bilgisi kısıtlı kod çözümlemeyi destekler; model hiçbir şekilde geçersiz çıktı üretemez. Outlines, jsonformer ve llama.cpp dil bilgileri bunu sağlar.

Alternatif: Şema Yerine İşlevler

Katı modla bir araç çağrısını zorunlu kılmak, JSON modu ve onarımın birlikte kullanılmasından daha temiz bir alternatiftir. Sağlayıcı desteklediğinde her zaman bunu kullanın.

Hatalı Çıktıları Günlüğe Kaydetme

Kalıpları analiz edebilmek için onarılan her çıktıyı günlüğe kaydedin:

log.warning('Repaired output', extra={'raw': raw, 'error': str(e), 'attempt': attempt})

Ne Zaman Vazgeçilmeli

N onarım denemesinden sonra çıktı hâlâ geçersizse kullanıcıya bir hata döndürün; uydurma bir yedek çözüm kullanmayın. Dürüstçe başarısız olmak, sessiz veri bozulmasından iyidir.

Onarım Döngüsü Kalıbı

Onarım döngüsündeki en basit ilk adım nedir?

Özet

Ayrıştırma hatalarını algılayın, bunları bir araç veya kullanıcı iletisi olarak ekleyin ve modelden onarmasını isteyin. Yeniden denemeleri sınırlayın. İhtiyacı tamamen ortadan kaldırmak için katı moddaki araç çağrılarını tercih edin.

Sıkça Sorulan Sorular

“Hatalı Çıktılar için Onarım Döngüleri” dersi ücretsiz mi?

Evet — “Hatalı Çıktılar için Onarım Döngüleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Agents kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Agents kursu toplamda 4 dersten oluşur.

“Hatalı Çıktılar için Onarım Döngüleri” dersinde ne öğreneceğim?

JSON ayrıştırılamazsa hatayı modele geri gönderin ve çıktıyı düzeltmesini isteyin. AI Agents ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

AI Agents öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AI Agents, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Hatalı Çıktılar için Onarım Döngüleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu AI Agents dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AI Agents dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. JSON Kipi ve Araç Çağrısı Çıktıları
  2. Pydantic Şema Doğrulaması
  3. Hatalı Çıktılar için Onarım Döngüleri
  4. Garantili Yapı için Instructor ve Outlines
← AI Agents Sayfasına Dön