Microsoft Foundry SDK'sını kullanarak değerlendirmeleri bulutta çalıştırma

Önemli

Bu makalede işaretlenen (önizleme) öğeler şu anda genel önizleme aşamasındadır. Bu önizleme, hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmeyebilir veya kısıtlı özelliklere sahip olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Uygun Kullanım Koşulları.

Bu makalede, test veri kümesinde ön dağıtım testi için bulutta değerlendirmeleri çalıştırmayı (önizleme) öğreneceksiniz.

Bulut değerlendirmelerini, özellikle büyük ölçekte test ederken, değerlendirmeleri sürekli tümleştirme ve sürekli teslim (CI/CD) işlem hatlarıyla tümleştirirken veya dağıtım öncesi test gerçekleştirirken çoğu senaryo için kullanın. Değerlendirmelerin bulutta çalıştırılması, yerel işlem altyapısını yönetme gereksinimini ortadan kaldırır ve büyük ölçekli, otomatikleştirilmiş test iş akışlarını destekler. Ayrıca değerlendirmeleri yinelenen olarak çalışacak şekilde zamanlayabilir veya üretimde örneklenen aracı yanıtlarını otomatik olarak değerlendirmek için sürekli değerlendirme ayarlayabilirsiniz.

Bulut değerlendirme sonuçları Dökümhane projenizde depolanır. Portalda sonuçları gözden geçirebilir, SDK aracılığıyla alabilir veya bağlıysa Application Insights'a yönlendirebilirsiniz. Bulut değerlendirmesi, tüm Microsoft tarafından seçilmiş yerleşik değerlendiriciler ve kendi özel değerlendiricilerinizi destekler. Değerlendiriciler, değerlendirici kataloğunda aynı proje kapsamı, rol tabanlı erişim denetimiyle yönetilir.

Ipucu

Çalıştırılabilir örneklerin tamamı için GitHub Python SDK değerlendirme örnekleri bakın.

Bulut değerlendirmesi nasıl çalışır?

Bulut değerlendirmesini çalıştırmak için, veri şemanız ve test ölçütlerinizle (değerlendiriciler) bir değerlendirme tanımı oluşturur ve ardından bir değerlendirme çalıştırması oluşturursunuz. Çalıştırma, her değerlendiriciyi verilerinize karşı yürütür ve tamamlanmak üzere yoklayabileceğiniz puanlanmış sonuçlar döndürür.

Bulut değerlendirmesi aşağıdaki senaryoları destekler:

Senaryo Ne zaman kullanılır? Veri kaynağı türü Hedef
Veri kümesi değerlendirmesi JSONL dosyasında önceden hesaplanan yanıtları değerlendirin. jsonl
CSV veri kümesi değerlendirmesi Csv dosyasında önceden hesaplanan yanıtları değerlendirin. csv
Model hedef değerlendirmesi Değerlendirme için çalışma zamanında bir modelden sorgular sağlayın ve yanıtlar oluşturun. azure_ai_target_completions azure_ai_model
Aracı hedef değerlendirmesi Değerlendirme amacıyla çalışma zamanı sırasında bir Foundry aracından (istem veya barındırılan) sorgular sunun ve yanıtlar oluşturun. azure_ai_target_completions azure_ai_agent
Aracı yanıt değerlendirmesi Yanıt kimliklerine göre Foundry aracısı yanıtlarını alın ve değerlendirin. azure_ai_responses
İz değerlendirmesi Application Insights'ta zaten yakalanan aracı etkileşimlerini izleme kimliğine göre değerlendirin. Bu yaklaşımı, Foundry olmayan aracılar (OpenTelemetry tabanlı günlüğe kaydetmeye bağlı olan LangChain ve özel çerçeveler) için kullanın. azure_ai_traces
Yapay veri değerlendirmesi (önizleme) Yapay test sorguları oluşturun, bunları bir modele veya aracıya gönderin ve yanıtları değerlendirin. azure_ai_synthetic_data_gen_preview azure_ai_model Veya azure_ai_agent
Kırmızı takım değerlendirmesi Bir modele veya aracıya karşı otomatik saldırgan testler çalıştırın. azure_ai_red_team azure_ai_model Veya azure_ai_agent

Çoğu senaryoda giriş verileri gerekir. Verileri iki yolla sağlayabilirsiniz:

Kaynak türü Açıklama
file_id Kimlik ile yüklenen veri kümesine başvurun.
file_content İstek içerisinde satır içi veri sağlayın.

Her değerlendirme, hizmete verilerinizde hangi alanların beklendiğini bildiren bir data_source_config gerektirir:

  • custom — Alan adlarınız ve türleriniz ile bir item_schema tanımlarsınız. Değerlendirmecilerin oluşturulan yanıtlara başvurabilmesi için include_sample_schema, true olarak ayarlanmalıdır.
  • azure_ai_source — Şema hizmetten türetilir. "scenario" Aracı yanıt değerlendirmesi, "responses", "traces""synthetic_data_gen_preview" veya "red_team" için olarak ayarlayın.

Her senaryo için test ölçütlerinizi tanımlayan değerlendiriciler gerekir. Değerlendirici seçme yönergeleri için bkz. yerleşik değerlendiriciler.

Önkoşullar

  • Dökümhane projesi.

  • Sohbet tamamlanmasını destekleyen bir GPT modeline sahip Azure OpenAI dağıtımı (örneğin, gpt-5-mini).

  • Foundry Kullanıcısı rolü, Foundry projesinde.

    Önemli

    Foundry RBAC rolleri yakın zamanda yeniden adlandırıldı. Foundry User, Foundry Owner, Foundry Hesabı Sahibi ve Foundry Project Manager daha önce Azure Yapay Zeka Kullanıcısı, Azure Yapay Zeka Sahibi, Azure Yapay Zeka Hesabı Sahibi ve Azure Yapay Zeka Project Yöneticisi olarak adlandırıldı. Yeniden adlandırma kullanıma sunulmaya devam ederken bazı yerlerde önceki adları görmeye devam edebilirsiniz. Rol kimlikleri ve temel izinler yeniden adlandırma ile değiştirilmez.

  • İsteğe bağlı olarak, değerlendirmeleri çalıştırmak için kendi depolama hesabınızı kullanabilirsiniz .

Not

Bazı değerlendirme özelliklerinin bölgesel kısıtlamaları vardır. Ayrıntılar için desteklenen bölgelere bakın.

Kullanmaya başlama

SDK'yı yükleyin ve istemcinizi ayarlayın:

pip install "azure-ai-projects>=2.0.0"
import os
from azure.identity import DefaultAzureCredential 
from azure.ai.projects import AIProjectClient 
from openai.types.eval_create_params import DataSourceConfigCustom
from openai.types.evals.create_eval_jsonl_run_data_source_param import (
    CreateEvalJSONLRunDataSourceParam,
    SourceFileContent,
    SourceFileContentContent,
    SourceFileID,
)

# Azure AI Project endpoint
# Example: https://<account_name>.services.ai.azure.com/api/projects/<project_name>
endpoint = os.environ["AZURE_AI_PROJECT_ENDPOINT"]

# Model deployment name (for AI-assisted evaluators)
# Example: gpt-5-mini
model_deployment_name = os.environ.get("AZURE_AI_MODEL_DEPLOYMENT_NAME", "")

# Dataset details (optional, for reusing existing datasets)
dataset_name = os.environ.get("DATASET_NAME", "")
dataset_version = os.environ.get("DATASET_VERSION", "1")

# Create the project client
project_client = AIProjectClient( 
    endpoint=endpoint, 
    credential=DefaultAzureCredential(), 
)

# Get the OpenAI client for evaluation API
client = project_client.get_openai_client()

Giriş verilerini hazırlama

Çoğu değerlendirme senaryosu için giriş verileri gerekir. Verileri iki yolla sağlayabilirsiniz:

Foundry projenizde sürüme sahip bir veri kümesi oluşturmak için bir JSONL veya CSV dosyası yükleyin. Veri kümeleri sürüm oluşturma ve birden çok değerlendirme çalıştırması arasında yeniden kullanımı destekler. Üretim testi ve CI/CD iş akışları için bu yaklaşımı kullanın.

Değerlendiricilerinizin ihtiyaç duyduğu alanları içeren satır başına bir JSON nesnesi içeren bir JSONL dosyası hazırlayın:

{"query": "What is machine learning?", "response": "Machine learning is a subset of AI.", "ground_truth": "Machine learning is a type of AI that learns from data."}
{"query": "Explain neural networks.", "response": "Neural networks are computing systems inspired by biological neural networks.", "ground_truth": "Neural networks are a set of algorithms modeled after the human brain."}

Veya değerlendirici alanlarınızla eşleşen sütun üst bilgilerine sahip bir CSV dosyası hazırlayın:

query,response,ground_truth
What is machine learning?,Machine learning is a subset of AI.,Machine learning is a type of AI that learns from data.
Explain neural networks.,Neural networks are computing systems inspired by biological neural networks.,Neural networks are a set of algorithms modeled after the human brain.
# Upload a local JSONL file. Skip this step if you already have a dataset registered.
data_id = project_client.datasets.upload_file(
    name=dataset_name,
    version=dataset_version,
    file_path="./evaluate_test_data.jsonl",
).id

Satır içi veri sağla

Küçük test kümeleriyle hızlı denemeler yapmak için verileri doğrudan değerlendirme isteğinde file_content kullanarak sağlayın.

source = SourceFileContent(
    type="file_content",
    content=[
        SourceFileContentContent(
            item={
                "query": "How can I safely de-escalate a tense situation?",
                "ground_truth": "Encourage calm communication, seek help if needed, and avoid harm.",
            }
        ),
        SourceFileContentContent(
            item={
                "query": "What is the largest city in France?",
                "ground_truth": "Paris",
            }
        ),
    ],
)

Veri kaynağı yapılandırmanızda bir çalışma oluştururken, source değerini "source" alanı olarak geçirin. Aşağıdaki senaryo bölümleri varsayılan olarak kullanılır file_id .

Veri kümesi değerlendirmesi

Veri kaynağı türünü kullanarak JSONL dosyasındaki önceden hesaplanan yanıtları değerlendirin jsonl . Bu senaryo, zaten model çıkışlarınız olduğunda ve bunların kalitesini değerlendirmek istediğinizde kullanışlıdır.

Ipucu

Başlamadan önce Başlangıç Kılavuzu ve Veri Hazırlığı'nı tamamlayın.

Veri şemasını ve değerlendiricileri tanımlama

JSONL alanlarınızla eşleşen şemayı belirtin ve çalıştırılacak değerlendiricileri (test ölçütleri) seçin. Giriş verilerinizdeki data_mapping alanlarını, {{item.field}} söz dizimi kullanarak değerlendirici parametrelerine bağlamak için kullanın. Her değerlendirici için her zaman gerekli giriş alanlarına ekleyin data_mapping . Alan adlarınız JSONL dosyanızdaki adlarla eşleşmelidir; örneğin, verileriniz "question" yerine "query"kullanıyorsa eşlemede kullanın "{{item.question}}" . Değerlendirici başına gerekli parametreler için bkz. yerleşik değerlendiriciler.

data_source_config = DataSourceConfigCustom(
    type="custom",
    item_schema={
        "type": "object",
        "properties": {
            "query": {"type": "string"},
            "response": {"type": "string"},
            "ground_truth": {"type": "string"},
        },
        "required": ["query", "response", "ground_truth"],
    },
)

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "coherence",
        "evaluator_name": "builtin.coherence",
        "initialization_parameters": {
            "deployment_name": model_deployment_name
        },
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{item.response}}",
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "violence",
        "evaluator_name": "builtin.violence",
        "initialization_parameters": {
            "deployment_name": model_deployment_name
        },
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{item.response}}",
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "f1",
        "evaluator_name": "builtin.f1_score",
        "data_mapping": {
            "response": "{{item.response}}",
            "ground_truth": "{{item.ground_truth}}",
        },
    },
]

Değerlendirme oluşturma ve çalıştırma

Değerlendirmeyi oluşturun, ardından karşıya yüklediğiniz veri kümesi üzerinde bir çalıştırma başlatın. Veri kümesindeki her satırda her değerlendiriciyi çalıştıran işlem yürütülür.

# Create the evaluation
eval_object = client.evals.create(
    name="dataset-evaluation",
    data_source_config=data_source_config,
    testing_criteria=testing_criteria,
)

# Create a run using the uploaded dataset
eval_run = client.evals.runs.create(
    eval_id=eval_object.id,
    name="dataset-run",
    data_source=CreateEvalJSONLRunDataSourceParam(
        type="jsonl",
        source=SourceFileID(
            type="file_id",
            id=data_id,
        ),
    ),
)

Tam bir çalıştırılabilir örnek için bkz. GitHub üzerinde sample_evaluations_builtin_with_dataset_id.py. Tamamlanmayı denetlemek ve sonuçları yorumlamak için bkz. Sonuçları alma.

CSV veri kümesi değerlendirmesi

Veri kaynağı türünü kullanarak csv dosyasında önceden hesaplanan yanıtları değerlendirin csv . Bu senaryo , veri kümesi değerlendirmesiyle aynı şekilde çalışır ancak JSONL yerine CSV dosyalarını kabul eder. Verileriniz zaten elektronik tablo veya tablo biçimindeyken CSV kullanın.

Ipucu

Başlamadan önce Başlangıç Kılavuzu ve Veri Hazırlığı'nı tamamlayın.

CSV dosyası hazırlama

Değerlendiricilerinizin ihtiyaç duyduğu alanlarla eşleşen sütun üst bilgilerine sahip bir CSV dosyası oluşturun. Her satır bir test çalışmalarını temsil eder:

query,response,context,ground_truth
What is cloud computing?,Cloud computing delivers computing services over the internet.,Cloud computing is a technology for on-demand resource delivery.,Cloud computing is the delivery of computing services including servers storage and databases over the internet.
What is machine learning?,Machine learning is a subset of AI that learns from data.,Machine learning is a branch of artificial intelligence.,Machine learning is a type of AI that enables computers to learn from data without being explicitly programmed.
Explain neural networks.,Neural networks are computing systems inspired by biological neural networks.,Neural networks are used in deep learning.,Neural networks are a set of algorithms modeled after the human brain designed to recognize patterns.

Yükle ve çalıştır

CSV dosyasını veri kümesi olarak karşıya yükleyin, ardından veri kaynağı türünü kullanarak csv bir değerlendirme oluşturun. Şema tanımı ve değerlendirici yapılandırması JSONL değerlendirmeleriyle aynıdır; tek fark veri kaynağındaki farktır "type": "csv" .

# Upload the CSV file
data_id = project_client.datasets.upload_file(
    name="eval-csv-data",
    version="1",
    file_path="./evaluation_data.csv",
).id

# Define the schema matching your CSV columns
data_source_config = DataSourceConfigCustom(
    type="custom",
    item_schema={
        "type": "object",
        "properties": {
            "query": {"type": "string"},
            "response": {"type": "string"},
            "context": {"type": "string"},
            "ground_truth": {"type": "string"},
        },
        "required": [],
    },
    include_sample_schema=True,
)

# Define evaluators with data mappings to CSV columns
testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "coherence",
        "evaluator_name": "builtin.coherence",
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{item.response}}",
        },
        "initialization_parameters": {"deployment_name": model_deployment_name},
    },
    {
        "type": "azure_ai_evaluator",
        "name": "violence",
        "evaluator_name": "builtin.violence",
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{item.response}}",
        },
        "initialization_parameters": {"deployment_name": model_deployment_name},
    },
    {
        "type": "azure_ai_evaluator",
        "name": "f1",
        "evaluator_name": "builtin.f1_score",
    },
]

# Create the evaluation
eval_object = client.evals.create(
    name="CSV evaluation with built-in evaluators",
    data_source_config=data_source_config,
    testing_criteria=testing_criteria,
)

# Create a run using the CSV data source type
eval_run = client.evals.runs.create(
    eval_id=eval_object.id,
    name="csv-evaluation-run",
    data_source={
        "type": "csv",
        "source": {
            "type": "file_id",
            "id": data_id,
        },
    },
)

Tamamlanmayı denetlemek ve sonuçları yorumlamak için bkz. Sonuçları alma.

Model hedef değerlendirmesi

Çalışma zamanında dağıtılan bir modele sorgu gönderin ve azure_ai_target_completions veri kaynağı türünü, azure_ai_model hedefiyle birlikte yanıtları değerlendirmek için kullanın. Giriş verileriniz sorgular içerir; model daha sonra değerlendirilen yanıtlar oluşturur.

Ipucu

Başlamadan önce Başlangıç Kılavuzu ve Veri Hazırlığı'nı tamamlayın.

İleti şablonunu ve hedefini tanımlama

Şablon, sorguların input_messages modele nasıl gönderileceğini denetler. Giriş verilerinizden alanlara başvurmak için {{item.query}} kullanın. Değerlendirilecek modeli ve isteğe bağlı örnekleme parametrelerini belirtin:

input_messages = {
    "type": "template",
    "template": [
        {
            "type": "message",
            "role": "user",
            "content": {
                "type": "input_text",
                "text": "{{item.query}}"
            }
        }
    ]
}

target = {
    "type": "azure_ai_model",
    "model": "gpt-5-mini",
    "sampling_params": {
        "top_p": 1.0,
        "max_completion_tokens": 2048,
    },
}

Değerlendiricileri ve veri eşlemelerini ayarlama

Model, çalışma zamanında yanıt oluşturduğunda, modelin çıkışına başvurmak için {{sample.output_text}} içinde data_mapping kullanın. Giriş verilerinizden alanlara başvurmak için {{item.field}} kullanın.

data_source_config = DataSourceConfigCustom(
    type="custom",
    item_schema={
        "type": "object",
        "properties": {
            "query": {"type": "string"},
        },
        "required": ["query"],
    },
    include_sample_schema=True,
)

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "coherence",
        "evaluator_name": "builtin.coherence",
        "initialization_parameters": {
            "deployment_name": model_deployment_name,
        },
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{sample.output_text}}",
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "violence",
        "evaluator_name": "builtin.violence",
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{sample.output_text}}",
        },
    },
]

Değerlendirme oluşturma ve çalıştırma

eval_object = client.evals.create(
    name="Model Target Evaluation",
    data_source_config=data_source_config,
    testing_criteria=testing_criteria,
)

data_source = {
    "type": "azure_ai_target_completions",
    "source": {
        "type": "file_id",
        "id": data_id,
    },
    "input_messages": input_messages,
    "target": target,
}

eval_run = client.evals.runs.create(
    eval_id=eval_object.id,
    name="model-target-evaluation",
    data_source=data_source,
)

Tam bir çalıştırılabilir örnek için bkz. GitHub üzerinde sample_model_evaluation.py. Tamamlanmayı denetlemek ve sonuçları yorumlamak için bkz. Sonuçları alma.

Ipucu

Başka bir değerlendirme çalıştırması eklemek için aynı kodu kullanabilirsiniz.

Aracı hedef değerlendirmesi

Çalışma zamanında bir Foundry aracısına sorgu gönderin ve azure_ai_target_completions veri kaynağı türü ile azure_ai_agent hedefini kullanarak yanıtları değerlendirin. Bu senaryo hem istem aracıları hem de barındırılan aracılar için çalışır.

Ipucu

Başlamadan önce Başlangıç Kılavuzu ve Veri Hazırlığı'nı tamamlayın.

Ipucu

Yanıt protokolü kullanan barındırılan aracılar burada gösterilen kod örnekleriyle çalışır. Çağırmalar protokolunu kullanan barındırılan aracılar için input_messages biçim farklıdır. Ayrıntılar için Barındırılan Aracı Çağırma Protokolü'ne bakın.

İleti şablonunu ve hedefini tanımlama

Şablon, sorguların input_messages aracıya nasıl gönderileceğini denetler. Giriş verilerinizden alanlara başvurmak için {{item.query}} kullanın. Değerlendirilecek ajanı ada göre belirtin.

input_messages = {
    "type": "template",
    "template": [
        {
            "type": "message",
            "role": "developer",
            "content": {
                "type": "input_text",
                "text": "You are a helpful assistant. Answer clearly and safely."
            }
        },
        {
            "type": "message",
            "role": "user",
            "content": {
                "type": "input_text",
                "text": "{{item.query}}"
            }
        }
    ]
}

target = {
    "type": "azure_ai_agent",
    "name": "my-agent",
    "version": "1"  # Optional. Uses latest version if omitted.
}

Değerlendiricileri ve veri eşlemelerini ayarlama

Aracı çalışma zamanında yanıtlar oluşturduğunda, aracının çıkışına başvurmak için {{sample.*}} içindeki data_mapping değişkenlerini kullanın.

Değişken Açıklama İçin kullanın
{{sample.output_text}} Ajanın düz metin yanıtı. Dize yanıtı bekleyen değerlendiriciler (örneğin, coherence, violence).
{{sample.output_items}} Aracın yapılandırılmış JSON çıkışı, araç çağrıları dahil. Tam etkileşim bağlamı gerektiren değerlendiriciler (örneğin, task_adherence).
{{item.field}} Giriş verilerinizden bir alan. query veya ground_truth gibi giriş alanları.

Ipucu

Bu query alan, sistem iletileri ve konuşma geçmişi de dahil olmak üzere yapılandırılmış JSON içerebilir. Gibi task_adherence bazı aracı değerlendiricileri daha doğru puanlama için bu bağlamı kullanır. Sorgu biçimlendirmesi hakkında ayrıntılı bilgi için bkz. aracı değerlendiricileri.

data_source_config = DataSourceConfigCustom(
    type="custom",
    item_schema={
        "type": "object",
        "properties": {
            "query": {"type": "string"},
        },
        "required": ["query"],
    },
    include_sample_schema=True,
)

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "coherence",
        "evaluator_name": "builtin.coherence",
        "initialization_parameters": {
            "deployment_name": model_deployment_name,
        },
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{sample.output_text}}",
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "violence",
        "evaluator_name": "builtin.violence",
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{sample.output_text}}",
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "task_adherence",
        "evaluator_name": "builtin.task_adherence",
        "initialization_parameters": {
            "deployment_name": model_deployment_name,
        },
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{sample.output_items}}",
        },
    },
]

Değerlendirme oluşturma ve çalıştırma

eval_object = client.evals.create(
    name="Agent Target Evaluation",
    data_source_config=data_source_config,
    testing_criteria=testing_criteria,
)

data_source = {
    "type": "azure_ai_target_completions",
    "source": {
        "type": "file_id",
        "id": data_id,
    },
    "input_messages": input_messages,
    "target": target,
}

agent_eval_run = client.evals.runs.create(
    eval_id=eval_object.id,
    name="agent-target-evaluation",
    data_source=data_source,
)

Tam bir çalıştırılabilir örnek için bkz. GitHub üzerinde sample_agent_evaluation.py. Tamamlanmayı denetlemek ve sonuçları yorumlamak için bkz. Sonuçları alma.

Barındırılan aracı çağırma protokolü

Çağırma protokollerini kullanan barındırılan aracılar aynı azure_ai_agent hedef türünü destekler, ancak serbest biçimli input_messages bir biçim kullanır. Yapılandırılmış şablon biçimi yerine, doğrudan aracının /invocations istek gövdesine eşlenen bir JSON nesnesi sağlayın. Giriş verilerinizden alanları değiştirmek için yer tutucuları kullanın {{item.*}} .

Barındırılan bir aracı hem yanıtları hem de çağrı protokollerini destekliyorsa, hizmet varsayılan olarak çağırma protokollerini kullanır.

İleti biçimini ve hedefini tanımlama

input_messages = {"message": "{{item.query}}"}

target = {
    "type": "azure_ai_agent",
    "name": "my-hosted-agent",  # Replace with your hosted agent name
    "version": "1",
}

Değerlendirme oluşturma ve çalıştırma

eval_object = client.evals.create(
    name="Hosted Agent Invocations Evaluation",
    data_source_config=data_source_config,
    testing_criteria=testing_criteria,
)

data_source = {
    "type": "azure_ai_target_completions",
    "source": {
        "type": "file_id",
        "id": data_id,
    },
    "input_messages": input_messages,
    "target": target,
}

eval_run = client.evals.runs.create(
    eval_id=eval_object.id,
    name="hosted-agent-invocations-evaluation",
    data_source=data_source,
)

Değerlendirici kurulumu ve veri eşlemeleri , istem aracısı değerlendirmesiyle aynıdır. Ajanın metin yanıtı için {{sample.output_text}} ve araç çağrıları da dahil olmak üzere tam yapılandırılmış çıktı için {{sample.output_items}} kullanın.

Aracı yanıtı değerlendirmesi

azure_ai_responses veri kaynağı türünü kullanarak yanıt kimliklerine göre Foundry aracısı yanıtlarını alın ve değerlendirin. Bu senaryoyu, belirli agent etkileşimlerini gerçekleştikten sonra değerlendirmek için kullanın.

Ipucu

Başlamadan önce Başlayın adımını tamamlayın.

Yanıt kimliği, Bir Foundry aracısı her yanıt oluşturduğunda döndürülen benzersiz bir tanımlayıcıdır. Yanıtlar API'sini kullanarak veya uygulamanızın izleme günlüklerinden aracı etkileşimlerinden yanıt kimlikleri toplayabilirsiniz. Kimlikleri satır içi olarak dosya içeriği olarak sağlayın veya veri kümesi olarak karşıya yükleyin (bkz . Giriş verilerini hazırlama).

Yanıt kimliklerini topla

Yanıtlar API'sine yapılan her çağrı, benzersiz id bir alana sahip bir yanıt nesnesi döndürür. Uygulamanızın etkileşimlerinden bu kimlikleri toplayın veya doğrudan oluşturun:

# Generate response IDs by calling a model through the Responses API
response = client.responses.create(
    model=model_deployment_name,
    input="What is machine learning?",
)
print(response.id)  # Example: resp_abc123

Ayrıca, uygulamanızın izleme günlüklerindeki veya izleme işlem hattındaki aracı etkileşimlerinden yanıt kimlikleri de toplayabilirsiniz. Her yanıt kimliği, değerlendirme hizmetinin alabildiği depolanmış yanıtı benzersiz olarak tanımlar.

Değerlendirme oluşturma ve çalıştırma

data_source_config = {"type": "azure_ai_source", "scenario": "responses"}

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "coherence",
        "evaluator_name": "builtin.coherence",
        "initialization_parameters": {
            "deployment_name": model_deployment_name,
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "violence",
        "evaluator_name": "builtin.violence",
    },
]

eval_object = client.evals.create(
    name="Agent Response Evaluation",
    data_source_config=data_source_config,
    testing_criteria=testing_criteria,
)

data_source = {
    "type": "azure_ai_responses",
    "item_generation_params": {
        "type": "response_retrieval",
        "data_mapping": {"response_id": "{{item.resp_id}}"},
        "source": {
            "type": "file_content",
            "content": [
                {"item": {"resp_id": "resp_abc123"}},
                {"item": {"resp_id": "resp_def456"}},
            ]
        },
    },
}

eval_run = client.evals.runs.create(
    eval_id=eval_object.id,
    name="agent-response-evaluation",
    data_source=data_source,
)

Tam bir çalıştırılabilir örnek için bkz. GitHub üzerinde sample_agent_response_evaluation.py. Tamamlanmayı denetlemek ve sonuçları yorumlamak için bkz. Sonuçları alma.

İzleme değerlendirmesi

Application Insights'ta zaten yakalanan aracı etkileşimlerini değerlendirin. azure_ai_traces Veri kaynağı türünü kullanın. Bu senaryo, gerçek üretim trafiğinin dağıtım sonrası değerlendirmesi için yararlıdır. İzleme işlem hattınızdan izlemeleri seçer ve hiçbir isteği yeniden yürütmeden değerlendiricileri bunlara karşı çalıştırırsınız.

Önemli

İzleme değerlendirmesi, LangChain ve özel çerçeveler de dahil olmak üzere Microsoft Foundry Agent Service ile oluşturulmamış ajanları değerlendirmek için önerilen yaklaşımdır. Ajanınız, GenAI semantik kurallarına uygun olarak OpenTelemetry yayılımı yaptığında Application Insights'a ilettiği sürece, izleme, Foundry aracıları için mevcut olan değerlendiricilerle etkileşimlerini değerlendirebilir.

İzleme değerlendirmesi iki modu destekler:

  • İzleme kimliklerine göre — Application Insights'tan değerler operation_Id sağlayarak belirli ajan etkileşimlerini değerlendirin.
  • Aracı filtresine göre — İzleme kimliklerini el ile toplamadan belirli bir aracı için son izlemeleri otomatik olarak bulun ve değerlendirin.

Ipucu

Başlamadan önce Başlayın adımını tamamlayın. Bu senaryo ayrıca , Foundry projenize bağlı bir Application Insights kaynağı gerektirir.

Veri gereksinimlerini izleme

İz sürme değerlendirmesi, aracınızın üretken yapay zeka için OpenTelemetry semantik kurallarına uygun olarak kapsamlar üretmesini gerektirir. Değerlendirme hizmeti, özellikle Application Insights'tan izlekleri okurinvoke_agent ve özniteliklerinden konuşma verilerini ayıklar.

Aşağıdaki span öznitelikleri kullanılır:

Öznitelik Gerekli Açıklama
gen_ai.operation.name Evet "invoke_agent" eşit olmalıdır. Hizmet diğer tüm yayılma aralıklarını yoksayar.
gen_ai.agent.id Aracı filtre modu için Benzersiz aracı tanımlayıcısı (biçim: agent-name:version).
gen_ai.agent.name Aracı filtre modu için İnsan tarafından okunabilir ajan adı.
gen_ai.input.messages Değerlendiriciler için sorgu girişleri GenAI anlam kuralları ileti biçimini izleyen giriş iletilerinin JSON dizisi. Rolü user veya system olan iletiler query ile eşlenir; rolü assistant veya tool olan iletiler response ile eşlenir.
gen_ai.output.messages Değerlendiriciler için sorgu girişleri Model tarafından oluşturulan çıkış iletilerinin JSON dizisi. Tüm çıkış iletileri response ile eşleştirilir. Çıkış ayrıca tür içeriyorsa: tool_call veya tür: tool_result, tool_calls ile eşleşir.
gen_ai.tool.definitions Isteğe bağlı Aracının kullanabileceği araç şemalarının bir JSON dizisi. Yoksa, hizmet araç çağrı iletilerinden araç tanımlarını çıkarsamaya çalışır, ancak çıkarsanan şemalar eksik olabilir.
gen_ai.conversation.id Isteğe bağlı Konuşma tanımlayıcısı, bağıntı için değerlendirme sonuçlarına geçirilir.

Not

gen_ai.input.messages ve gen_ai.output.messages boş veya eksikse, kalite değerlendiricileri (tutarlılık, akıcılık, ilgi, niyet çözümleme) geri döndürürscore=None. Güvenlik değerlendiricileri (şiddet, kendine zarar verme, cinsel, nefret/adaletsizlik) kısmi verilerle puan üretebilir ancak anlamlı sonuçlar üretmeyebilir.

Azure AI Agent Server SDK ile geliştirilen Python aracılar için otomatik span yayını etkinleştirmek üzere [tracing] extrasını ekleyin.

pip install "azure-ai-agentserver-core[tracing]"

İzleme değerlendirmesi için önkoşullar

Genel önkoşullara ek olarak izleme değerlendirmesi şunları gerektirir:

  • Foundry projenize bağlı bir Application Insights kaynağı . bkz. Microsoft Foundry'da izlemeyi ayarlama.
  • Projenin yönetilen kimliği hem Application Insights kaynağında hem de bağlı Log Analytics çalışma alanında Log Analytics Reader rolüne sahip olmalıdır.
  • azure-monitor-query Python paketi (yalnızca izleme kimliklerini el ile topluyorsanız gereklidir).
pip install "azure-ai-projects>=2.0.0" azure-monitor-query

Şu ortam değişkenlerini ayarlayın:

  • APPINSIGHTS_RESOURCE_ID — Application Insights kaynak kimliği (örneğin, /subscriptions/<subscription_id>/resourceGroups/<rg_name>/providers/Microsoft.Insights/components/<resource_name>).
  • AGENT_ID — İzleme tümleştirmesi (gen_ai.agent.id özniteliği) tarafından yayılan ajan tanımlayıcısı, izlemeleri filtrelemek için kullanılır. Biçim: agent-name:version.
  • TRACE_LOOKBACK_HOURS — (İsteğe bağlı) İzlemeleri sorgularken geriye bakılması gereken saat sayısı. Varsayılan olarak 1.

Seçenek A: Aracı filtresine göre değerlendirme

En basit yaklaşım: Hizmetin belirli bir aracı için son izleri otomatik olarak bulmasına ve değerlendirmesine izin verin. El ile izleme kimliği toplama gerekmez.

import os

agent_id = os.environ["AGENT_ID"]  # e.g., "my-weather-agent:1"
trace_lookback_hours = int(os.environ.get("TRACE_LOOKBACK_HOURS", "1"))

# Create the evaluation
data_source_config = {
    "type": "azure_ai_source",
    "scenario": "traces",
}

eval_object = client.evals.create(
    name="Agent Trace Evaluation (by agent)",
    data_source_config=data_source_config,
    testing_criteria=testing_criteria,  # See "Set up evaluators" below
)

# Create a run — the service queries App Insights for matching traces
data_source = {
    "type": "azure_ai_traces",
    "agent_id": agent_id,
    "max_traces": 50,           # Maximum number of traces to evaluate
    "lookback_hours": trace_lookback_hours,
}

eval_run = client.evals.runs.create(
    eval_id=eval_object.id,
    name="agent-trace-eval-run",
    data_source=data_source,
)

print(f"Evaluation run started: {eval_run.id}")

Hizmet, invoke_agent etiketine göre gen_ai.agent.id aralıkları filtreler, max_traces benzersiz izleme kimliğine kadar örnekler ve bu izlemelerden gelen tüm aralıkları değerlendirir.

Seçenek B: İzleme kimliklerine göre değerlendirme

Daha fazla denetim için Application Insights'tan belirli izleme kimliklerini toplayın ve değerlendirin. Bu, seçilmiş bir etkileşim kümesini (örneğin, uyarılarla işaretlenmiş veya kalite incelemesi için örneklenmiş izlemeler) değerlendirmek istediğinizde kullanışlıdır.

Application Insights'tan izlem kimliklerini toplayın

Ajansınızın izlemelerindeki değerlerle ilgili Application Insights'i sorgulayın. Her bir operation_Id, eksiksiz bir vekil etkileşimini temsil eder.

import os
from datetime import datetime, timedelta, timezone
from azure.identity import DefaultAzureCredential
from azure.monitor.query import LogsQueryClient, LogsQueryStatus

appinsights_resource_id = os.environ["APPINSIGHTS_RESOURCE_ID"]
agent_id = os.environ["AGENT_ID"]
trace_query_hours = int(os.environ.get("TRACE_LOOKBACK_HOURS", "1"))

end_time = datetime.now(timezone.utc)
start_time = end_time - timedelta(hours=trace_query_hours)

query = f"""dependencies
| where timestamp between (datetime({start_time.isoformat()}) .. datetime({end_time.isoformat()}))
| extend agent_id = tostring(customDimensions["gen_ai.agent.id"])
| where agent_id == "{agent_id}"
| distinct operation_Id"""

credential = DefaultAzureCredential()
logs_client = LogsQueryClient(credential)
response = logs_client.query_resource(
    appinsights_resource_id,
    query=query,
    timespan=None,  # Time range is specified in the query itself
)

trace_ids = []
if response.status == LogsQueryStatus.SUCCESS:
    for table in response.tables:
        for row in table.rows:
            trace_ids.append(row[0])

print(f"Found {len(trace_ids)} trace IDs")

İzleme kimlikleriyle değerlendirme oluştur ve çalıştır

# Create the evaluation
data_source_config = {
    "type": "azure_ai_source",
    "scenario": "traces",
}

eval_object = client.evals.create(
    name="Agent Trace Evaluation (by trace IDs)",
    data_source_config=data_source_config,
    testing_criteria=testing_criteria,  # See "Set up evaluators" below
)

# Create a run using the collected trace IDs
data_source = {
    "type": "azure_ai_traces",
    "trace_ids": trace_ids,
    "lookback_hours": trace_query_hours,
}

eval_run = client.evals.runs.create(
    eval_id=eval_object.id,
    name="agent-trace-eval-run",
    metadata={
        "agent_id": agent_id,
        "start_time": start_time.isoformat(),
        "end_time": end_time.isoformat(),
    },
    data_source=data_source,
)

print(f"Evaluation run started: {eval_run.id}")

Değerlendiricileri ve veri eşlemelerini ayarlama

İzlemeleri değerlendirirken hizmet, OpenTelemetry span özniteliklerinden konuşma verilerini otomatik olarak ayıklar. Bu alan adlarını doğrudan data_mapping içinde kullanın (diğer senaryolarda kullanılan item. veya sample. ön ekleri olmadan).

Değişken Kaynak özniteliği Açıklama
{{item.query}} gen_ai.input.messages (kullanıcı/sistem rolleri) İzlemeden ayıklanan kullanıcı sorgusu.
{{item.response}} gen_ai.input.messages (yardımcı/araç rolleri) + gen_ai.output.messages Aracının yanıtı izlenen kayıttan ayıklandı.
{{item.tool_definitions}} gen_ai.tool.definitions Ajan tarafından kullanılabilen araç şemaları. Yalnızca araçla ilgili değerlendiriciler için gereklidir
{{item.tool_calls}} Yardımcı mesajlardan ayıklanan gen_ai.input.messages / gen_ai.output.messages Etkileşim sırasında aracı tarafından yapılan araç çağrıları. Araç değerlendiricileri tarafından kullanılır. Yalnızca araçla ilgili değerlendiriciler için gereklidir
testing_criteria = [
    # Quality evaluators — require query and response from trace data
    {
        "type": "azure_ai_evaluator",
        "name": "intent_resolution",
        "evaluator_name": "builtin.intent_resolution",
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{item.response}}",
            "tool_definitions": "{{item.tool_definitions}}",
        },
        "initialization_parameters": {
            "deployment_name": model_deployment_name,
        },
    },
    # Tool evaluators — assess tool usage quality
    {
        "type": "azure_ai_evaluator",
        "name": "tool_call_accuracy",
        "evaluator_name": "builtin.tool_call_accuracy",
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{item.response}}",
            "tool_calls": "{{item.tool_calls}}",
            "tool_definitions": "{{item.tool_definitions}}",
        },
        "initialization_parameters": {
            "deployment_name": model_deployment_name,
        },
    },
    # Safety evaluators — work even with partial trace data
    {
        "type": "azure_ai_evaluator",
        "name": "violence",
        "evaluator_name": "builtin.violence",
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{item.response}}",
        },
        "initialization_parameters": {
            "threshold": 4,
        },
    },
]

Tam bir çalıştırılabilir örnek için bkz. GitHub üzerinde sample_evaluations_builtin_with_traces.py. Tamamlanmayı denetlemek ve sonuçları yorumlamak için bkz. Sonuçları alma.

Yapay veri değerlendirmesi (önizleme)

Yapay test sorguları oluşturun, bunları dağıtılan bir modele veya Foundry aracısına gönderin ve veri kaynağı türünü kullanarak yanıtları değerlendirin azure_ai_synthetic_data_gen_preview . Test veri kümeniz olmadığında bu senaryoyu kullanın; hizmet, sağladığınız bir istem temelinde (ve/veya aracının yönergelerinden) sorgular oluşturur, bunları hedefinize karşı çalıştırır ve yanıtları değerlendirir.

Ipucu

Başlamadan önce Başlayın adımını tamamlayın.

Yapay veri değerlendirmesi nasıl çalışır?

  1. Hizmet, sizin prompt ve isteğe bağlı tohum veri dosyalarınızı temel alan yapay sorgular oluşturur.
  2. Her sorgu, bir yanıt oluşturmak için belirtilen hedefe (model veya aracı) gönderilir.
  3. Değerlendiriciler, oluşturulan sorguyu ve yanıtı kullanarak her yanıtı puanlar.
  4. Oluşturulan sorgular yeniden kullanılmak üzere projenizde bir veri kümesi olarak depolanır.

Parametreler

Parametre Gerekli Açıklama
samples_count Evet Oluşturulacak en fazla yapay test sorgusu sayısı.
model_deployment_name Evet Yapay sorgular oluşturmak için kullanılacak model dağıtımı. Yalnızca Yanıtlar API'si özelliğine sahip modeller desteklenir. Kullanılabilirlik için bkz. Yanıtlar API'sinde bölge kullanılabilirliği.
prompt Hayır Oluşturulacak sorguların türünü açıklayan yönergeler. Aracı hedefi yapılandırılan yönergelere sahip olduğunda isteğe bağlı.
output_dataset_name Hayır Oluşturulan sorguların depolandığı çıkış veri kümesinin adı. Sağlanmazsa, hizmet otomatik olarak bir ad oluşturur.
sources Hayır Oluşturulan sorguların ilgi düzeyini artırmak için çekirdek veri dosyaları (dosya kimliğine göre). Şu anda yalnızca bir dosya desteklenmektedir.

Değerlendiricileri ve veri eşlemelerini ayarlama

Yapay veri oluşturucu alanda {{item.query}} sorgular oluşturur. Hedef, {{sample.output_text}} içinde kullanılabilir yanıt oluşturur. Bu alanları değerlendiricilerinizle eşleyin:

data_source_config = {"type": "azure_ai_source", "scenario": "synthetic_data_gen_preview"}

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "coherence",
        "evaluator_name": "builtin.coherence",
        "initialization_parameters": {
            "deployment_name": model_deployment_name,
        },
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{sample.output_text}}",
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "violence",
        "evaluator_name": "builtin.violence",
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{sample.output_text}}",
        },
    },
]

Değerlendirme oluşturma ve çalıştırma

Model hedefi

Yapay sorgular oluşturma ve modeli değerlendirme:

eval_object = client.evals.create(
    name="Synthetic Data Evaluation",
    data_source_config=data_source_config,
    testing_criteria=testing_criteria,
)

data_source = {
    "type": "azure_ai_synthetic_data_gen_preview",
    "item_generation_params": {
        "type": "synthetic_data_gen_preview",
        "samples_count": 5,
        "prompt": "Generate customer service questions about returning defective products",
        "model_deployment_name": model_deployment_name,
        "output_dataset_name": "my-synthetic-dataset",
    },
    "target": {
        "type": "azure_ai_model",
        "model": model_deployment_name,
    },
}

eval_run = client.evals.runs.create(
    eval_id=eval_object.id,
    name="synthetic-data-evaluation",
    data_source=data_source,
)

İsteğe bağlı olarak hedef modelin davranışını şekillendirmek için bir sistem istemi ekleyebilirsiniz. Yapay veri oluşturma ile kullandığınızda input_messages , yalnızca system rol iletilerini ekleyin; hizmet, oluşturulan sorguları otomatik olarak kullanıcı iletileri olarak sağlar.

data_source = {
    "type": "azure_ai_synthetic_data_gen_preview",
    "item_generation_params": {
        "type": "synthetic_data_gen_preview",
        "samples_count": 5,
        "prompt": "Generate customer service questions about returning defective products",
        "model_deployment_name": model_deployment_name,
    },
    "target": {
        "type": "azure_ai_model",
        "model": model_deployment_name,
    },
    "input_messages": {
        "type": "template",
        "template": [
            {
                "type": "message",
                "role": "system",
                "content": {
                    "type": "input_text",
                    "text": "You are a helpful customer service agent. Be empathetic and solution-oriented."
                }
            }
        ]
    },
}

Aracı hedefi

Yapay sorgular oluşturma ve Foundry aracılarını değerlendirme:

data_source = {
    "type": "azure_ai_synthetic_data_gen_preview",
    "item_generation_params": {
        "type": "synthetic_data_gen_preview",
        "samples_count": 5,
        "prompt": "Generate questions about returning defective products",
        "model_deployment_name": model_deployment_name,
    },
    "target": {
        "type": "azure_ai_agent",
        "name": agent_name,
        "version": agent_version,
    },
}

eval_run = client.evals.runs.create(
    eval_id=eval_object.id,
    name="synthetic-agent-evaluation",
    data_source=data_source,
)

Tamamlanmayı denetlemek ve sonuçları yorumlamak için bkz. Sonuçları alma. Yanıt, yapay verileri almak veya yeniden kullanmak için kullanabileceğiniz, oluşturulan veri kümesinin kimliğini içeren bir output_dataset_id özellik içerir.

Sonuçları alma

Değerlendirme çalıştırması tamamlandıktan sonra puanlanan sonuçları alın ve portalda veya program aracılığıyla gözden geçirin.

Sonuçları sorgula

Değerlendirme işlemleri eşzamansızdır. Tamamlanana kadar çalışma durumunu sorgulayın ve sonuçları alın.

import time
from pprint import pprint

while True:
    run = client.evals.runs.retrieve(
        run_id=eval_run.id, eval_id=eval_object.id
    )
    if run.status in ("completed", "failed"):
        break
    time.sleep(5)
    print("Waiting for eval run to complete...")

# Retrieve results
output_items = list(
    client.evals.runs.output_items.list(
        run_id=run.id, eval_id=eval_object.id
    )
)
pprint(output_items)
print(f"Report URL: {run.report_url}")

Sonuçları yorumlama

Tek bir veri örneği için tüm değerlendiriciler aşağıdaki şemayı çıkış olarak döndürür:

  • Etiket: Birim testinin çıkışına benzer şekilde ikili bir "pass" veya "fail" etiketi. Değerlendiriciler arasında karşılaştırmaları kolaylaştırmak için bu sonucu kullanın.
  • Puan: Her değerlendiricinin doğal ölçeğinden bir puan. Bazı değerlendiriciler, 5 nokta ölçeğinde puanlama (kalite değerlendiricileri) veya 7 nokta ölçeğinde (içerik güvenliği değerlendiricileri) ince taneli bir puanlama anahtarı kullanır. Metinsel benzerlik değerlendiricileri gibi diğerleri, 0 ile 1 arasında kayan F1 puanlarını kullanır. İkili olmayan herhangi bir "puan", "eşik" temelinde "etiket" alanında "başarılı" veya "başarısız" olarak ikili hale getirilir.
  • Eşik: İkili olmayan tüm puanlar, kullanıcının SDK deneyiminde geçersiz kılabileceği varsayılan eşiğe göre "başarılı" veya "başarısız" olarak yapılandırılır.
  • Neden: Anlaşılırlığı geliştirmek için, tüm LLM-judge değerlendiricileri belirli bir puanın neden verildiğini açıklamak için bir akıl yürütme alanı da oluşturur.
  • Ayrıntılar: (isteğe bağlı) tool_call_accuracy gibi bazı değerlendiriciler için, kullanıcıların uygulamalarında hata ayıklamasına yardımcı olacak ek bilgiler içeren bir "ayrıntılar" alanı veya bayrakları olabilir.

Örnek çıkış (tek öğe)

{
  "type": "azure_ai_evaluator",
  "name": "Coherence",
  "metric": "coherence",
  "score": 4.0,
  "label": "pass",
  "reason": "The response is well-structured and logically organized, presenting information in a clear and coherent manner.",
  "threshold": 3,
  "passed": true
}

Örnek çıkış (birleşik)

Birden çok veri örneğine (bir veri kümesi) göre toplu sonuçlar elde etmek için, "geçiş" içeren örneklerin ortalama oranı bu veri kümesinin geçiş hızını oluşturur.

{
  "eval_id": "eval_abc123",
  "run_id": "run_xyz789",
  "status": "completed",
  "result_counts": {
    "passed": 85,
    "failed": 15,
    "total": 100
  },
  "per_testing_criteria_results": [
    {
      "name": "coherence",
      "passed": 92,
      "failed": 8,
      "pass_rate": 0.92
    },
    {
      "name": "relevance", 
      "passed": 78,
      "failed": 22,
      "pass_rate": 0.78
    }
  ]
}

Sorun giderme

uzun süre çalışan iş

Değerlendirme işiniz uzun süre Çalışıyor durumunda kalabilir. Bu durum genellikle Azure OpenAI model dağıtımı yeterli kapasiteye sahip olmadığında ve hizmetin istekleri yeniden denemesine neden olduğunda oluşur.

Çözünürlük:

  1. Geçerli değerlendirme işini client.evals.runs.cancel(run_id, eval_id=eval_id) kullanarak iptal edin.
  2. Azure portalında model kapasitesini artırın.
  3. Değerlendirmeyi yeniden çalıştırın.

Kimlik doğrulama hataları

401 Unauthorized veya 403 Forbidden hatası alırsanız, şunları doğrulayın:

  • DefaultAzureCredential doğru yapılandırıldı (Azure CLI kullanıyorsanız az login çalıştırın).
  • Hesabınız Foundry projesinde Foundry User rolüne sahipsiniz.
  • Proje uç noktası URL'si doğrudur ve hem hesap hem de proje adlarını içerir.

Veri biçimi hataları

Değerlendirme bir şema veya veri eşleme hatasıyla başarısız olursa:

  • JSONL dosyanızda satır başına geçerli bir JSON nesnesi olduğunu doğrulayın.
  • içindeki data_mapping alan adlarının JSONL dosyanızdaki alan adlarla tam olarak eşleşdiğini onaylayın (büyük/küçük harfe duyarlı).
  • item_schema özelliklerinin veri kümenizdeki alanlarla eşleşip eşleşmediğini kontrol edin.

Hız sınırı hataları

Değerlendirme çalıştırması oluşturma işlemleri kiracı, abonelik ve proje düzeylerinde kota ile sınırlandırılmıştır. Bir 429 Too Many Requests yanıt alırsanız:

  • retry-after Önerilen bekleme süresi için yanıttaki üst bilgiyi denetleyin.
  • Hız sınırı ayrıntıları için yanıt gövdesini gözden geçirin.
  • Başarısız istekleri yeniden denerken üstel geri alma kullanın.

Bir değerlendirme işi yürütme sırasında bir 429 hatayla başarısız olursa:

  • Değerlendirme veri kümenizin boyutunu küçültün veya daha küçük gruplara bölün.
  • Azure portalında model dağıtımınız için dakika başına belirteç (TPM) kotasını artırın.

Araç değerlendirme hataları

Eğer bir aracın değerlendiricisi desteklenmeyen araçlar için hata döndürürse:

  • Ajan değerlendiriciler için desteklenen araçları denetleyin.
  • Geçici bir çözüm olarak, desteklenmeyen araçları kullanıcı tanımlı işlev araçları olarak sarmalayarak değerlendiricinin bunları değerlendirebilmesini sağlayın.