OpenAI'nin Evals API'sini Nasıl Kullanılır: Kapsamlı Bir Eğitim

Bu eğitim, OpenAI Evals API'sını uygulamak ve kullanmak için kapsamlı bir teknik rehber sunar.

Efe Demir

Efe Demir

5 June 2025

OpenAI'nin Evals API'sini Nasıl Kullanılır: Kapsamlı Bir Eğitim

OpenAI Evals API Framework'üne Giriş

9 Nisan 2025'te tanıtılan OpenAI Evals API, Büyük Dil Modellerinin (LLM'ler) sistematik olarak değerlendirilmesinde önemli bir ilerlemeyi temsil etmektedir. Değerlendirme yetenekleri bir süredir OpenAI panosu aracılığıyla mevcut olsa da, Evals API artık geliştiricilerin testleri programlı olarak tanımlamasına, değerlendirme çalıştırmalarını otomatikleştirmesine ve kendi iş akışları içinde istemler ve model uygulamaları üzerinde hızla yineleme yapmasına olanak tanıyor. Bu güçlü arayüz, model çıktılarının metodik olarak değerlendirilmesini destekleyerek, modelleri seçerken veya istem mühendisliği stratejilerini iyileştirirken kanıta dayalı karar vermeyi kolaylaştırır.

Bu eğitim, OpenAI Evals API'sini uygulamak ve kullanmak için kapsamlı bir teknik rehber sunmaktadır. Temel mimariyi, uygulama kalıplarını ve LLM uygulamalarınızın performansını objektif olarak ölçebilen sağlam değerlendirme hatları oluşturmaya yönelik gelişmiş teknikleri inceleyeceğiz.

OpenAI Evals API: Nasıl Çalışır?

OpenAI Evals API, iki temel soyutlama etrafında oluşturulmuş hiyerarşik bir yapıyı izler:

  1. Eval Yapılandırması - Aşağıdakileri içeren değerlendirme spesifikasyonları için bir kapsayıcı:

2. Eval Çalıştırmaları - Aşağıdakileri içeren bireysel değerlendirme yürütmeleri:

Bu endişelerin ayrılması, değerlendirme standartlarında tutarlılığı korurken birden fazla test senaryosunda yeniden kullanılabilirliği sağlar.

Evals API Nesne Modeli

Evals API içindeki temel nesneler bu ilişkiyi izler:

OpenAI Evals API için Ortamınızı Kurma

OpenAI Evals API'sini uygularken, test ve geliştirme araçları seçimi üretkenliğinizi ve sonuç kalitenizi önemli ölçüde etkileyebilir.

Apidog, teknik olarak karmaşık Evals API'si ile çalışmak için ideal bir yardımcı olmasını sağlayan, Postman gibi geleneksel çözümlerden birkaç önemli açıdan daha iyi performans gösteren önde gelen bir API platformu olarak öne çıkıyor.

button

Değerlendirmeleri uygulamadan önce, geliştirme ortamınızı düzgün bir şekilde yapılandırmanız gerekir:

import openai
import os
import pydantic
import json
from typing import Dict, List, Any, Optional

# Uygun izinlerle API erişimini yapılandırın
os.environ["OPENAI_API_KEY"] = os.environ.get("OPENAI_API_KEY", "your-api-key")

# Üretim ortamları için, daha güvenli bir yöntem kullanmayı düşünün
# örneğin bir .env dosyasından yüklenen ortam değişkenleri

OpenAI Python istemci kitaplığı, Evals API ile etkileşim kurmak için arayüz sağlar. Evals API desteğini içeren en son sürümü kullandığınızdan emin olun:

pip install --upgrade openai>=1.20.0  # Evals API desteğini içeren sürüm

OpenAI Evals API ile İlk Değerlendirmenizi Oluşturma

OpenAI Evals API'sini kullanarak eksiksiz bir değerlendirme iş akışı uygulayalım. Değerlendirme tasarımından sonuç analizine kadar tüm süreci gösteren bir metin özetleme görevi için bir değerlendirme sistemi oluşturacağız.

OpenAI Evals API için Veri Modellerini Tanımlama

İlk olarak, Pydantic modellerini kullanarak test verilerimizin yapısını tanımlamamız gerekir:

class ArticleSummaryData(pydantic.BaseModel):
    """Makale özetleme değerlendirmesi için veri yapısı."""
    article: str
    reference_summary: Optional[str] = None  # Karşılaştırma için isteğe bağlı referans

    class Config:
        frozen = True  # Tutarlı değerlendirme için değişmezliği sağlar

Bu model, değerlendirme verilerimiz için şemayı tanımlar ve bu şema, Evals API tarafından girdileri doğrulamak ve test kriterlerimiz için şablon değişkenleri sağlamak için kullanılacaktır.

Evals API Testi için Hedef İşlevi Uygulama

Ardından, değerlendirmek istediğimiz çıktıları üreten işlevi uygulayacağız:

def generate_article_summary(article_text: str) -> Dict[str, Any]:
    """
    OpenAI'nin modellerini kullanarak bir makalenin özünü oluşturun.

    Argümanlar:
        article_text: Özetlenecek makale içeriği

    Döndürür:
        Özet ile tamamlama yanıt nesnesi
    """
    summarization_prompt = """
    Aşağıdaki makaleyi öz, bilgilendirici bir şekilde özetleyin.
    Doğruluğu ve bağlamı korurken temel noktaları yakalayın.
    Özeti 1-2 paragrafla sınırlayın.

    Makale:
    {{article}}
    """

    response = openai.chat.completions.create(
        model="gpt-4o",
        messages=[
            {"role": "system", "content": summarization_prompt.replace("{{article}}", article_text)},
        ],
        temperature=0.3,  # Daha tutarlı özetler için daha düşük sıcaklık
        max_tokens=300
    )

    return response.model_dump()  # Seri hale getirilebilir sözlüğe dönüştürün

OpenAI Evals API için Veri Kaynağını Yapılandırma

Evals API, değerlendirme verilerinizin şemasını belirten tanımlı bir veri kaynağı yapılandırması gerektirir:

data_source_config = {
    "type": "custom",
    "item_schema": ArticleSummaryData.model_json_schema(),
    "include_sample_schema": True,  # Model çıktısı şemasını otomatik olarak içerir
}

print("Veri Kaynağı Şeması:")
print(json.dumps(data_source_config, indent=2))

Bu yapılandırma, Evals API'sine değerlendirme verilerinizde hangi alanların bekleneceğini ve bunların nasıl işleneceğini söyler.

OpenAI Evals API ile Test Kriterlerini Uygulama

Şimdi Evals API'nin model çıktılarını nasıl değerlendirmesi gerektiğini tanımlayacağız. Birden fazla kritere sahip kapsamlı bir değerlendirme oluşturacağız:

# 1. Model tabanlı yargı kullanarak doğruluk değerlendirmesi
accuracy_grader = {
    "name": "Özet Doğruluğu Değerlendirmesi",
    "type": "label_model",
    "model": "gpt-4o",
    "input": [
        {
            "role": "system",
            "content": """
            Makale özetlerinin doğruluğunu değerlendiren bir uzman değerlendiricisiniz.
            Özetin, orijinal makalenin ana noktalarını doğru bir şekilde temsil edip etmediğini değerlendirin.
            Özeti aşağıdakilerden biri olarak etiketleyin:
            - "accurate": Tüm temel bilgileri içerir, hiçbir olgusal hata yoktur
            - "partially_accurate": Çoğu temel bilgiyi içerir, küçük hatalar veya eksiklikler
            - "inaccurate": Önemli hatalar, kritik bilgilerin eksikliği veya yanlış temsil

            Değerlendirmeniz için ayrıntılı bir açıklama sağlayın.
            """
        },
        {
            "role": "user",
            "content": """
            Orijinal Makale:
            {{item.article}}

            Değerlendirilecek Özet:
            {{sample.choices[0].message.content}}

            Değerlendirme:
            """
        }
    ],
    "passing_labels": ["accurate", "partially_accurate"],
    "labels": ["accurate", "partially_accurate", "inaccurate"],
}

# 2. Özlülük değerlendirmesi
conciseness_grader = {
    "name": "Özet Özlülük Değerlendirmesi",
    "type": "label_model",
    "model": "gpt-4o",
    "input": [
        {
            "role": "system",
            "content": """
            Makale özetlerinin özlülüğünü değerlendiren bir uzman değerlendiricisiniz.
            Özetin, gereksiz ayrıntılar olmadan bilgileri verimli bir şekilde ifade edip etmediğini değerlendirin.
            Özeti aşağıdakilerden biri olarak etiketleyin:
            - "concise": Mükemmel uzunluk, gereksiz bilgi yok
            - "acceptable": Biraz uzun ancak genel olarak uygun
            - "verbose": Aşırı uzun veya gereksiz ayrıntılar içeriyor

            Değerlendirmeniz için ayrıntılı bir açıklama sağlayın.
            """
        },
        {
            "role": "user",
            "content": """
            Değerlendirilecek Özet:
            {{sample.choices[0].message.content}}

            Değerlendirme:
            """
        }
    ],
    "passing_labels": ["concise", "acceptable"],
    "labels": ["concise", "acceptable", "verbose"],
}

# 3. Referans özetleri mevcutsa, bir referans karşılaştırması ekleyin
reference_comparison_grader = {
    "name": "Referans Karşılaştırma Değerlendirmesi",
    "type": "label_model",
    "model": "gpt-4o",
    "input": [
        {
            "role": "system",
            "content": """
            Oluşturulan özeti referans özetle karşılaştırın.
            Oluşturulan özetin, referansla aynı temel bilgileri ne kadar iyi yakaladığını değerlendirin.
            Karşılaştırmayı aşağıdakilerden biri olarak etiketleyin:
            - "excellent": Referansa eşdeğer veya daha iyi
            - "good": Referanstan en önemli bilgileri yakalar
            - "inadequate": Referansta bulunan önemli bilgiler eksik

            Değerlendirmeniz için ayrıntılı bir açıklama sağlayın.
            """
        },
        {
            "role": "user",
            "content": """
            Referans Özeti:
            {{item.reference_summary}}

            Oluşturulan Özet:
            {{sample.choices[0].message.content}}

            Değerlendirme:
            """
        }
    ],
    "passing_labels": ["excellent", "good"],
    "labels": ["excellent", "good", "inadequate"],
    "condition": "item.reference_summary != null"  # Yalnızca referans mevcut olduğunda uygulayın
}

OpenAI Evals API ile Değerlendirme Yapılandırmasını Oluşturma

Veri şemamız ve test kriterlerimiz tanımlandığına göre, artık değerlendirme yapılandırmasını oluşturabiliriz:

eval_create_result = openai.evals.create(
    name="Makale Özetleme Kalitesi Değerlendirmesi",
    metadata={
        "description": "Birden fazla boyutta makale özetleme kalitesinin kapsamlı değerlendirmesi",
        "version": "1.0",
        "created_by": "Your Organization",
        "tags": ["summarization", "content-quality", "accuracy"]
    },
    data_source_config=data_source_config,
    testing_criteria=[
        accuracy_grader,
        conciseness_grader,
        reference_comparison_grader
    ],
)

eval_id = eval_create_result.id
print(f"ID'si ile değerlendirme oluşturuldu: {eval_id}")
print(f"Panoda görüntüle: {eval_create_result.dashboard_url}")

OpenAI Evals API ile Değerlendirme Çalıştırmalarını Yürütme

Değerlendirme Verilerini Hazırlama

Şimdi değerlendirmemiz için test verileri hazırlayacağız:

test_articles = [
    {
        "article": """
        Avrupa Uzay Ajansı (ESA) bugün yeni Dünya gözlem uydusu Sentinel-6'nın başarılı bir şekilde konuşlandırıldığını duyurdu.
        Bu uydu, iklim değişikliğinin etkileri hakkında çok önemli veriler sağlayarak, deniz seviyelerini benzeri görülmemiş bir doğrulukla izleyecek.
        Sentinel-6, deniz seviyesi değişikliklerini milimetre hassasiyetine kadar ölçebilen gelişmiş radar altimetri teknolojisine sahiptir.
        Bilim insanları, bu verilerin iklim modellerini ve kıyı planlama stratejilerini önemli ölçüde iyileştirmesini bekliyor.
        Kaliforniya'daki Vandenberg Hava Üssü'nden fırlatılan uydu, ESA, NASA, NOAA ve diğer uluslararası ortaklar arasındaki bir işbirliği olan Copernicus programının bir parçasıdır.
        """,
        "reference_summary": """
        ESA, gelişmiş radar altimetri kullanarak deniz seviyelerini milimetre hassasiyetinde izlemek üzere tasarlanan Sentinel-6 Dünya gözlem uydusunu başarıyla konuşlandırdı. Uluslararası Copernicus programının bir parçası olan bu görev, iklim değişikliği araştırmaları ve kıyı planlaması için çok önemli veriler sağlayacaktır.
        """
    },
    # Ek test makaleleri buraya eklenecektir
]

# Değerlendirme için test verilerimizi işleyin
run_data = []
for item in test_articles:
    # İşlevimizi kullanarak özet oluşturun
    article_data = ArticleSummaryData(**item)
    result = generate_article_summary(article_data.article)

    # Çalıştırma verisi girişini hazırlayın
    run_data.append({
        "item": article_data.model_dump(),
        "sample": result
    })

Bir Değerlendirme Çalıştırması Oluşturma ve Yürütme

Verilerimiz hazırlandıktan sonra, bir değerlendirme çalıştırması oluşturabiliriz:

eval_run_result = openai.evals.runs.create(
    eval_id=eval_id,
    name="baseline-summarization-run",
    metadata={
        "model": "gpt-4o",
        "temperature": 0.3,
        "max_tokens": 300
    },
    data_source={
        "type": "jsonl",
        "source": {
            "type": "file_content",
            "content": run_data,
        }
    },
)

print(f"Değerlendirme çalıştırması oluşturuldu: {eval_run_result.id}")
print(f"Ayrıntılı sonuçları görüntüle: {eval_run_result.report_url}")

Evals API'den Değerlendirme Sonuçlarını Alma ve Analiz Etme

Bir değerlendirme çalıştırması tamamlandıktan sonra, ayrıntılı sonuçları alabilirsiniz:

def analyze_run_results(run_id: str) -> Dict[str, Any]:
    """
    Bir değerlendirme çalıştırmasından sonuçları alın ve analiz edin.

    Argümanlar:
        run_id: Değerlendirme çalıştırmasının kimliği

    Döndürür:
        Analiz edilmiş sonuçları içeren sözlük
    """
    # Çalıştırma ayrıntılarını alın
    run_details = openai.evals.runs.retrieve(run_id)

    # Sonuçları çıkarın
    results = {}

    # Genel geçiş oranını hesaplayın
    if run_details.results and "pass_rate" in run_details.results:
        results["overall_pass_rate"] = run_details.results["pass_rate"]

    # Kriterlere özgü metrikleri çıkarın
    if run_details.criteria_results:
        results["criteria_performance"] = {}
        for criterion, data in run_details.criteria_results.items():
            results["criteria_performance"][criterion] = {
                "pass_rate": data.get("pass_rate", 0),
                "sample_count": data.get("total_count", 0)
            }

    # Daha fazla analiz için hataları çıkarın
    if run_details.raw_results:
        results["failure_analysis"] = [
            {
                "item": item.get("item", {}),
                "result": item.get("result", {}),
                "criteria_results": item.get("criteria_results", {})
            }
            for item in run_details.raw_results
            if not item.get("passed", True)
        ]

    return results

# Çalıştırmamızı analiz edin
results_analysis = analyze_run_results(eval_run_result.id)
print(json.dumps(results_analysis, indent=2))

Gelişmiş OpenAI Evals API Teknikleri

Evals API ile A/B Testi Uygulama

Evals API, farklı uygulamaları karşılaştırmada mükemmeldir. İşte iki model yapılandırması arasında bir A/B testi nasıl kurulur:

def generate_summary_alternative_model(article_text: str) -> Dict[str, Any]:
    """Farklı bir model yapılandırması kullanan alternatif uygulama."""
    response = openai.chat.completions.create(
        model="gpt-4o-mini",  # Farklı bir model kullanma
        messages=[
            {"role": "system", "content": "Bu makaleyi öz bir şekilde özetleyin."},
            {"role": "user", "content": article_text},
        ],
        temperature=0.7,  # Karşılaştırma için daha yüksek sıcaklık
        max_tokens=250
    )

    return response.model_dump()

# Alternatif modelle test verilerimizi işleyin
alternative_run_data = []
for item in test_articles:
    article_data = ArticleSummaryData(**item)
    result = generate_summary_alternative_model(article_data.article)

    alternative_run_data.append({
        "item": article_data.model_dump(),
        "sample": result
    })

# Alternatif değerlendirme çalıştırmasını oluşturun
alternative_eval_run = openai.evals.runs.create(
    eval_id=eval_id,
    name="alternative-model-run",
    metadata={
        "model": "gpt-4o-mini",
        "temperature": 0.7,
        "max_tokens": 250
    },
    data_source={
        "type": "jsonl",
        "source": {
            "type": "file_content",
            "content": alternative_run_data,
        }
    },
)

# Sonuçları programlı olarak karşılaştırın
def compare_evaluation_runs(run_id_1: str, run_id_2: str) -> Dict[str, Any]:
    """
    İki değerlendirme çalıştırmasından sonuçları karşılaştırın.

    Argümanlar:
        run_id_1: İlk değerlendirme çalıştırmasının kimliği
        run_id_2: İkinci değerlendirme çalıştırmasının kimliği

    Döndürür:
        Karşılaştırmalı analiz içeren sözlük
    """
    run_1_results = analyze_run_results(run_id_1)
    run_2_results = analyze_run_results(run_id_2)

    comparison = {
        "overall_comparison": {
            "run_1_pass_rate": run_1_results.get("overall_pass_rate", 0),
            "run_2_pass_rate": run_2_results.get("overall_pass_rate", 0),
            "difference": run_1_results.get("overall_pass_rate", 0) - run_2_results.get("overall_pass_rate", 0)
        },
        "criteria_comparison": {}
    }

    # Her bir kriteri karşılaştırın
    all_criteria = set(run_1_results.get("criteria_performance", {}).keys()) | set(run_2_results.get("criteria_performance", {}).keys())

    for criterion in all_criteria:
        run_1_criterion = run_1_results.get("criteria_performance", {}).get(criterion, {})
        run_2_criterion = run_2_results.get("criteria_performance", {}).get(criterion, {})

        comparison["criteria_comparison"][criterion] = {
            "run_1_pass_rate": run_1_criterion.get("pass_rate", 0),
            "run_2_pass_rate": run_2_criterion.get("pass_rate", 0),
            "difference": run_1_criterion.get("pass_rate", 0) - run_2_criterion.get("pass_rate", 0)
        }

    return comparison

# İki çalıştırmamızı karşılaştırın
comparison_results = compare_evaluation_runs(eval_run_result.id, alternative_eval_run.id)
print(json.dumps(comparison_results, indent=2))

OpenAI Evals API ile Gerilemeleri Algılama

Evals API'sinin en değerli uygulamalarından biri, istemleri güncellerken gerileme tespitidir:

def create_regression_detection_pipeline(eval_id: str, baseline_run_id: str) -> None:
    """
    Yeni bir istemi bir temel çalıştırmayla karşılaştıran bir gerileme algılama hattı oluşturun.

    Argümanlar:
        eval_id: Değerlendirme yapılandırmasının kimliği
        baseline_run_id: Karşılaştırılacak temel çalıştırmanın kimliği
    """

    def test_prompt_for_regression(new_prompt: str, threshold: float = 0.95) -> Dict[str, Any]:
        """
        Yeni bir istemin temel çizgiye göre gerilemeye neden olup olmadığını test edin.

        Argümanlar:
            new_prompt: Test edilecek yeni istem
            threshold: Kabul edilebilir minimum performans oranı (yeni/temel)

        Döndürür:
            Gerileme analizi içeren sözlük
        """
        # Yeni istemi kullanarak işlev tanımlayın
        def generate_summary_new_prompt(article_text: str) -> Dict[str, Any]:
            response = openai.chat.completions.create(
                model="gpt-4o",  # Temel çizgiyle aynı model
                messages=[
                    {"role": "system", "content": new_prompt},
                    {"role": "user", "content": article_text},
                ],
                temperature=0.3,
                max_tokens=300
            )
            return response.model_dump()

        # Test verilerini yeni istemle işleyin
        new_prompt_run_data = []
        for item in test_articles:
            article_data = ArticleSummaryData(**item)
            result = generate_summary_new_prompt(article_data.article)

            new_prompt_run_data.append({
                "item": article_data.model_dump(),
                "sample": result
            })

        # Yeni istem için değerlendirme çalıştırması oluşturun
        new_prompt_run = openai.evals.runs.create(
            eval_id=eval_id,
            name=f"regression-test-{int(time.time())}",
            metadata={
                "prompt": new_prompt,
                "test_type": "regression"
            },
            data_source={
                "type": "jsonl",
                "source": {
                    "type": "file_content",
                    "content": new_prompt_run_data,
                }
            },
        )

        # Tamamlanmasını bekleyin (üretimde, eşzamansız işlemeyi uygulamak isteyebilirsiniz)
        # Bu basitleştirilmiş bir uygulamadır
        time.sleep(10)  # Değerlendirmenin tamamlanmasını bekleyin

        # Temel çizgiye karşı karşılaştırın
        comparison = compare_evaluation_runs(baseline_run_id, new_prompt_run.id)

        # Bir gerileme olup olmadığını belirleyin
        baseline_pass_rate = comparison["overall_comparison"]["run_1_pass_rate"]
        new_pass_rate = comparison["overall_comparison"]["run_2_pass_rate"]

        regression_detected = (new_pass_rate / baseline_pass_rate if baseline_pass_rate > 0 else 0) < threshold

        return {
            "regression_detected": regression_detected,
            "baseline_pass_rate": baseline_pass_rate,
            "new_pass_rate": new_pass_rate,
            "performance_ratio": new_pass_rate / baseline_pass_rate if baseline_pass_rate > 0 else 0,
            "threshold": threshold,
            "detailed_comparison": comparison,
            "report_url": new_prompt_run.report_url
        }

    return test_prompt_for_regression

# Bir gerileme algılama hattı oluşturun
regression_detector = create_regression_detection_pipeline(eval_id, eval_run_result.id)

# Potansiyel olarak sorunlu bir istemi test edin
problematic_prompt = """
Bu makaleyi aşırı ayrıntılı bir şekilde özetleyin ve her küçük noktayı eklediğinizden emin olun.
Özet kapsamlı olmalı ve hiçbir şeyi dışarıda bırakmamalıdır.
"""

regression_analysis = regression_detector(problematic_prompt)
print(json.dumps(regression_analysis, indent=2))

OpenAI Evals API'sinde Özel Metriklerle Çalışma

Özelleşmiş değerlendirme ihtiyaçları için, özel metrikler uygulayabilirsiniz:

# Özel bir sayısal puan değerlendirmesi örneği
numeric_score_grader = {
    "name": "Özet Kalite Puanı",
    "type": "score_model",
    "model": "gpt-4o",
    "input": [
        {
            "role": "system",
            "content": """
            Makale özetlerinin kalitesini değerlendiren bir uzman değerlendiricisiniz.
            Özetin genel kalitesini 1,0 ile 10,0 arasında bir ölçekte değerlendirin; burada:
            - 1,0-3,9: Zayıf kalite, önemli sorunlar
            - 4,0-6,9: İyileştirme için yer olan kabul edilebilir kalite
            - 7,0-8,9: İyi kalite, beklentileri karşılıyor
            - 9,0-10,0: Mükemmel kalite, beklentileri aşıyor

            Belirli bir sayısal puan ve ayrıntılı bir gerekçe sağlayın.
            """
        },
        {
            "role": "user",
            "content": """
            Orijinal Makale:
            {{item.article}}

            Değerlendirilecek Özet:
            {{sample.choices[0].message.content}}

            Puan (1,0-10,0):
            """
        }
    ],
    "passing_threshold": 7.0,  # Geçmek için minimum puan
    "min_score": 1.0,
    "max_score": 10.0
}

# Bir eval oluştururken bunu test kriterlerinize ekleyin

OpenAI Evals API'sini Geliştirme İş Akışlarına Entegre Etme

Evals API ile CI/CD Entegrasyonu

Evals API'sini CI/CD hattınıza entegre etmek, tutarlı kalite sağlar:

def ci_cd_evaluation_workflow(
    prompt_file_path: str,
    baseline_eval_id: str,
    baseline_run_id: str,
    threshold: float = 0.95
) -> bool:
    """
    Dağıtımdan önce model istemlerini değerlendirmek için CI/CD entegrasyonu.

    Argümanlar:
        prompt_file_path: Güncellenen istem dosyasının yolu
        baseline_eval_id: Temel değerlendirme yapılandırmasının kimliği
        baseline_run_id: Karşılaştırılacak temel çalıştırmanın kimliği
        threshold: Kabul edilebilir minimum performans oranı

    Döndürür:
        Yeni istemin değerlendirmeyi geçip geçmediğini gösteren Boole değeri
    """
    # Yeni istemi sürüm kontrolünden yükleyin
    with open(prompt_file_path, 'r') as f:
        new_prompt = f.read()

    # Temel çizgiyi kullanarak gerileme dedektörü oluşturun
    regression_detector = create_regression_detection_pipeline(baseline_eval_id, baseline_run_id)

    # Yeni istemi test edin
    regression_analysis = regression_detector(new_prompt)

    # İsteminin dağıtıma uygun olup olmadığını belirleyin
    is_approved = not regression_analysis["regression_detected"]

    # Değerlendirme sonuçlarını günlüğe kaydedin
    print(f"{prompt_file_path} için Değerlendirme Sonuçları")
    print(f"Temel Geçiş Oranı: {regression_analysis['baseline_pass_rate']:.2f}")
    print(f"Yeni İstem Geçiş Oranı: {regression_analysis['new_pass_rate']:.2f}")
    print(f"Performans Oranı: {regression_analysis['performance_ratio']:.2f}")
    print(f"Dağıtım Kararı: {'ONAYLANDI' if is_approved else 'REDDEDİLDİ'}")
    print(f"Ayrıntılı Rapor: {regression_analysis['report_url']}")

    return is_approved

OpenAI Evals API ile Zamanlanmış İzleme

Düzenli değerlendirme, model kaymasını veya bozulmasını tespit etmeye yardımcı olur:

def schedule_periodic_evaluation(
    eval_id: str,
    baseline_run_id: str,
    interval_hours: int = 24
) -> None:
    """
    Performans değişikliklerini izlemek için periyodik değerlendirmeler planlayın.

    Argümanlar:
        eval_id: Değerlendirme yapılandırmasının kimliği
        baseline_run_id: Karşılaştırılacak temel çalıştırmanın kimliği
        interval_hours: Değerlendirmelerin sıklığı (saat cinsinden)
    """
    # Bir üretim sisteminde, Airflow, Celery veya bulut tabanlı çözümler gibi bir görev zamanlayıcı kullanırsınız. Bu basitleştirilmiş bir örnektir.

    def perform_periodic_evaluation():
        while True:
            try:
                # Mevcut üretim yapılandırmasını eval'e karşı çalıştırın
                print(f"Zamanlanmış değerlendirme {datetime.now()} tarihinde çalışıyor")

                # Burada, gerileme testine benzer şekilde değerlendirme mantığınızı uygulayın

                # Bir sonraki zamanlanmış çalıştırmaya kadar uyuyun
                time.sleep(interval_

Explore more

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Yapay zeka hızla gelişiyor. FractalAIResearch/Fathom-R1-14B, 14.8 milyar parametreyle matematik ve genel akıl yürütmede başarılı.

5 June 2025

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code'u keşfedin: Kurumsal kullanıma özel, en özelleştirilebilir yapay zeka destekli kodlama asistanı.

5 June 2025

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code, 2025'te yapay zeka destekli kodlamayı nasıl devrimleştiriyor? Özelliklerini, kullanımını ve Windsurf kısıtlamalarından sonra neden popüler olduğunu öğrenin. Geliştiriciler için okunması gereken!

5 June 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin