Evaluasi aplikasi AI generatif Anda secara lokal dengan SDK Evaluasi AI Azure (pratinjau) (klasik)

Hanya berlaku untuk:Portal Foundry (klasik). Artikel ini tidak tersedia untuk portal Foundry baru. Pelajari selengkapnya tentang portal baru.

Catatan

Tautan dalam artikel ini mungkin membuka konten dalam dokumentasi Microsoft Foundry baru alih-alih dokumentasi Foundry (klasik) yang Anda lihat sekarang.

Penting

Item-item yang ditandai (pratinjau) dalam artikel ini saat ini dalam pratinjau publik. Pratinjau ini disediakan tanpa perjanjian tingkat layanan, dan kami tidak merekomendasikannya untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan yang dibatasi. Untuk informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Anda dapat menilai performa aplikasi AI generatif Anda secara menyeluruh dengan menerapkannya ke himpunan data yang substansial. Evaluasi aplikasi di lingkungan pengembangan Anda dengan SDK Evaluasi AI Azure.

Saat Anda menyediakan himpunan data pengujian atau target, output aplikasi AI generatif Anda diukur secara kuantitatif dengan metrik berbasis matematika dan evaluator kualitas dan keamanan yang dibantu AI. Evaluator bawaan atau kustom dapat memberi Anda wawasan komprehensif tentang kemampuan dan batasan aplikasi.

Dalam artikel ini, Anda mempelajari cara menjalankan evaluator pada satu baris data dan himpunan data pengujian yang lebih besar pada target aplikasi. Anda menggunakan evaluator bawaan yang menggunakan SDK Evaluasi AI Azure secara lokal. Kemudian, Anda belajar melacak hasil dan log evaluasi dalam proyek Foundry.

Memulai

Pertama, instal paket evaluator dari SDK Evaluasi AI Azure:

pip install azure-ai-evaluation

Catatan

Untuk informasi selengkapnya, lihat pustaka klien Azure AI Evaluation untuk Python.

Evaluator bawaan

Metrik kualitas dan keamanan bawaan menerima pasangan kueri dan respons, bersama dengan informasi tambahan untuk evaluator tertentu.

Kategori Evaluator
Tujuan umum CoherenceEvaluator, FluencyEvaluator, QAEvaluator
Kesamaan tekstual SimilarityEvaluator, F1ScoreEvaluator, BleuScoreEvaluator, GleuScoreEvaluator, RougeScoreEvaluator, MeteorScoreEvaluator
Retrieval-augmented generation (RAG) RetrievalEvaluator, DocumentRetrievalEvaluator, GroundednessEvaluator, GroundednessProEvaluator, RelevanceEvaluator, ResponseCompletenessEvaluator
Risiko dan keselamatan ViolenceEvaluator, SexualEvaluator, SelfHarmEvaluator, HateUnfairnessEvaluator, IndirectAttackEvaluator, ProtectedMaterialEvaluator, UngroundedAttributesEvaluator, CodeVulnerabilityEvaluator, ContentSafetyEvaluator
Agenik IntentResolutionEvaluator, ToolCallAccuracyEvaluator, TaskAdherenceEvaluator
Azure OpenAI AzureOpenAILabelGrader, AzureOpenAIStringCheckGrader, AzureOpenAITextSimilarityGrader, AzureOpenAIGrader

Persyaratan data untuk evaluator bawaan

Evaluator bawaan dapat menerima pasangan kueri dan respons, daftar percakapan dalam format JSON Lines (JSONL), atau keduanya.

Penilai Percakapan & dukungan sekuens tunggal untuk teks Percakapan & dukungan bergantian tunggal untuk teks dan gambar Dukungan satu sesi hanya untuk teks Memerlukan ground_truth Mendukung input agen
Evaluator Kualitas
IntentResolutionEvaluator
ToolCallAccuracyEvaluator
TaskAdherenceEvaluator
GroundednessEvaluator
GroundednessProEvaluator
RetrievalEvaluator
DocumentRetrievalEvaluator
RelevanceEvaluator
CoherenceEvaluator
FluencyEvaluator
ResponseCompletenessEvaluator
QAEvaluator
Evaluator Pemrosesan Bahasa Alami (NLP)
SimilarityEvaluator
F1ScoreEvaluator
RougeScoreEvaluator
GleuScoreEvaluator
BleuScoreEvaluator
MeteorScoreEvaluator
Evaluator Keselamatan
ViolenceEvaluator
SexualEvaluator
SelfHarmEvaluator
HateUnfairnessEvaluator
ProtectedMaterialEvaluator
ContentSafetyEvaluator
UngroundedAttributesEvaluator
CodeVulnerabilityEvaluator
IndirectAttackEvaluator
Azure OpenAI Graders
AzureOpenAILabelGrader
AzureOpenAIStringCheckGrader
AzureOpenAITextSimilarityGrader
AzureOpenAIGrader

Catatan

Evaluator kualitas yang dibantu AI, kecuali SimilarityEvaluator, sertakan bidang alasan. Mereka menggunakan teknik seperti penalaran rantai pemikiran untuk menghasilkan penjelasan untuk skor.

Mereka mengonsumsi penggunaan token yang lebih banyak selama proses generasi sebagai hasil dari peningkatan kualitas evaluasi. Secara khusus, max_token untuk generasi evaluator diatur ke 800 untuk sebagian besar evaluator yang dibantu AI. Ini memiliki nilai 1600 untuk RetrievalEvaluator dan 3000 untuk ToolCallAccuracyEvaluator mengakomodasi input yang lebih lama.

Grader Azure OpenAI memerlukan template yang menjelaskan bagaimana kolom input mereka diubah menjadi input real yang digunakan oleh grader. Misalnya, jika Anda memiliki dua input yang disebut kueri dan respons, dan templat yang diformat sebagai {{item.query}}, hanya kueri yang digunakan. Demikian pula, Anda dapat memiliki sesuatu seperti {{item.conversation}} untuk menerima input percakapan, tetapi kemampuan sistem untuk menanganinya tergantung pada bagaimana Anda mengonfigurasi siswa kelas lainnya untuk mengharapkan input tersebut.

Untuk informasi selengkapnya tentang persyaratan data untuk evaluator agen, lihat Mengevaluasi agen AI Anda.

Dukungan giliran tunggal untuk teks

Semua evaluator bawaan mengambil input satu giliran sebagai pasangan kueri-dan-respons dalam format string. Misalnya:

from azure.ai.evaluation import RelevanceEvaluator

query = "What is the capital of life?"
response = "Paris."

# Initialize an evaluator:
relevance_eval = RelevanceEvaluator(model_config)
relevance_eval(query=query, response=response)

Untuk menjalankan evaluasi batch dengan menggunakan evaluasi lokal atau mengunggah himpunan data Anda untuk menjalankan evaluasi cloud, mewakili himpunan data dalam format JSONL. Data giliran tunggal sebelumnya, yang merupakan pasangan kueri dan respons, setara dengan baris himpunan data seperti contoh berikut, yang menunjukkan tiga baris:

{"query":"What is the capital/major city of France?","response":"Paris."}
{"query":"What atoms compose water?","response":"Hydrogen and oxygen."}
{"query":"What color is my shirt?","response":"Blue."}

Himpunan data pengujian evaluasi dapat berisi elemen berikut, tergantung pada persyaratan setiap evaluator bawaan:

  • Kueri: Kueri yang dikirim ke aplikasi AI generatif.
  • Respons: Respons terhadap kueri yang dihasilkan oleh aplikasi AI generatif.
  • Konteks: Sumber yang menjadi dasar respons yang dihasilkan. Artinya, dokumen dasar.
  • Kebenaran dasar: Respons yang dihasilkan oleh pengguna atau manusia sebagai jawaban yang sebenarnya.

Untuk melihat apa yang diperlukan setiap evaluator, lihat Evaluator bawaan.

Dukungan percakapan untuk teks

Untuk evaluator yang mendukung percakapan untuk teks, Anda dapat menyediakan conversation sebagai input. Input ini mencakup kamus Python dengan daftar messages, yang mencakup content, role, dan secara opsional context.

Lihat percakapan dua giliran berikut ini di Python:

conversation = {
        "messages": [
        {
            "content": "Which tent is the most waterproof?", 
            "role": "user"
        },
        {
            "content": "The Alpine Explorer Tent is the most waterproof",
            "role": "assistant", 
            "context": "From the our product list the alpine explorer tent is the most waterproof. The Adventure Dining Table has higher weight."
        },
        {
            "content": "How much does it cost?",
            "role": "user"
        },
        {
            "content": "The Alpine Explorer Tent is $120.",
            "role": "assistant",
            "context": None
        }
        ]
}

Untuk menjalankan evaluasi batch dengan menggunakan evaluasi lokal atau mengunggah himpunan data Anda untuk menjalankan evaluasi cloud, Anda perlu mewakili himpunan data dalam format JSONL. Percakapan sebelumnya setara dengan baris himpunan data dalam file JSONL seperti contoh berikut:

{"conversation":
    {
        "messages": [
        {
            "content": "Which tent is the most waterproof?", 
            "role": "user"
        },
        {
            "content": "The Alpine Explorer Tent is the most waterproof",
            "role": "assistant", 
            "context": "From the our product list the alpine explorer tent is the most waterproof. The Adventure Dining Table has higher weight."
        },
        {
            "content": "How much does it cost?",
            "role": "user"
        },
        {
            "content": "The Alpine Explorer Tent is $120.",
            "role": "assistant",
            "context": null
        }
        ]
    }
}

Evaluator kami memahami bahwa giliran pertama percakapan menyediakan valid query dari user, context dari assistant, dan response dari assistant dalam format respons kueri. Percakapan kemudian dievaluasi per giliran dan hasil dikumpulkan di semua giliran untuk skor percakapan.

Catatan

Pada giliran kedua, bahkan jika context adalah null atau kunci yang hilang, evaluator menginterpretasikan giliran sebagai string kosong alih-alih gagal dengan kesalahan, yang mungkin menyebabkan hasil yang menyesatkan.

Kami sangat menyarankan Agar Anda memvalidasi data evaluasi Anda untuk mematuhi persyaratan data.

Untuk mode percakapan, berikut adalah contoh untuk GroundednessEvaluator:

# Conversation mode:
import json
import os
from azure.ai.evaluation import GroundednessEvaluator, AzureOpenAIModelConfiguration

model_config = AzureOpenAIModelConfiguration(
    azure_endpoint=os.environ.get("AZURE_ENDPOINT"),
    api_key=os.environ.get("AZURE_API_KEY"),
    azure_deployment=os.environ.get("AZURE_DEPLOYMENT_NAME"),
    api_version=os.environ.get("AZURE_API_VERSION"),
)

# Initialize the Groundedness evaluator:
groundedness_eval = GroundednessEvaluator(model_config)

conversation = {
    "messages": [
        { "content": "Which tent is the most waterproof?", "role": "user" },
        { "content": "The Alpine Explorer Tent is the most waterproof", "role": "assistant", "context": "From the our product list the alpine explorer tent is the most waterproof. The Adventure Dining Table has higher weight." },
        { "content": "How much does it cost?", "role": "user" },
        { "content": "$120.", "role": "assistant", "context": "The Alpine Explorer Tent is $120."}
    ]
}

# Alternatively, you can load the same content from a JSONL file.
groundedness_conv_score = groundedness_eval(conversation=conversation)
print(json.dumps(groundedness_conv_score, indent=4))

Untuk output percakapan, hasil per giliran disimpan dalam daftar dan skor 'groundedness': 4.0 percakapan keseluruhan dirata-ratakan selama giliran:

{
    "groundedness": 5.0,
    "gpt_groundedness": 5.0,
    "groundedness_threshold": 3.0,
    "evaluation_per_turn": {
        "groundedness": [
            5.0,
            5.0
        ],
        "gpt_groundedness": [
            5.0,
            5.0
        ],
        "groundedness_reason": [
            "The response accurately and completely answers the query by stating that the Alpine Explorer Tent is the most waterproof, which is directly supported by the context. There are no irrelevant details or incorrect information present.",
            "The RESPONSE directly answers the QUERY with the exact information provided in the CONTEXT, making it fully correct and complete."
        ],
        "groundedness_result": [
            "pass",
            "pass"
        ],
        "groundedness_threshold": [
            3,
            3
        ]
    }
}

Catatan

Untuk mendukung model evaluator lainnya, gunakan kunci tanpa awalan. Misalnya, gunakan groundedness.groundedness.

Dukungan percakapan untuk gambar dan teks serta gambar yang bersifat multimodal

Untuk evaluator yang mendukung percakapan untuk gambar dan teks multimodal, Anda dapat meneruskan URL gambar atau gambar yang dikodekan Base64 di conversation.

Skenario yang didukung meliputi:

  • Beberapa gambar dengan input teks untuk pembuatan gambar atau teks.
  • Pembuatan gambar dari input teks saja.
  • Input khusus gambar ke pembuatan teks.
from pathlib import Path
from azure.ai.evaluation import ContentSafetyEvaluator
import base64

# Create an instance of an evaluator with image and multi-modal support.
safety_evaluator = ContentSafetyEvaluator(credential=azure_cred, azure_ai_project=project_scope)

# Example of a conversation with an image URL:
conversation_image_url = {
    "messages": [
        {
            "role": "system",
            "content": [
                {"type": "text", "text": "You are an AI assistant that understands images."}
            ],
        },
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Can you describe this image?"},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://cdn.britannica.com/68/178268-050-5B4E7FB6/Tom-Cruise-2013.jpg"
                    },
                },
            ],
        },
        {
            "role": "assistant",
            "content": [
                {
                    "type": "text",
                    "text": "The image shows a man with short brown hair smiling, wearing a dark-colored shirt.",
                }
            ],
        },
    ]
}

# Example of a conversation with base64 encoded images:
base64_image = ""

with Path.open("Image1.jpg", "rb") as image_file:
    base64_image = base64.b64encode(image_file.read()).decode("utf-8")

conversation_base64 = {
    "messages": [
        {"content": "create an image of a branded apple", "role": "user"},
        {
            "content": [{"type": "image_url", "image_url": {"url": f"data:image/jpg;base64,{base64_image}"}}],
            "role": "assistant",
        },
    ]
}

# Run the evaluation on the conversation to output the result.
safety_score = safety_evaluator(conversation=conversation_image_url)

Saat ini, evaluator gambar dan multimodal mendukung:

  • Satu giliran saja: percakapan hanya dapat memiliki satu pesan pengguna dan satu pesan asisten.
  • Percakapan yang hanya memiliki satu pesan sistem.
  • Muatan percakapan yang lebih kecil dari 10 MB, termasuk gambar.
  • URL absolut dan gambar yang dikodekan Base64.
  • Beberapa gambar dalam satu putaran.
  • Format file JPG/JPEG, PNG, dan GIF.

Konfigurasi

Untuk evaluator kualitas yang menggunakan bantuan AI, kecuali untuk GroundednessProEvaluator pratinjau, Anda harus menentukan model GPT (gpt-35-turbo, gpt-4, gpt-4-turbo, gpt-4o, atau gpt-4o-mini) di model_config. Model GPT bertindak sebagai hakim untuk menilai data evaluasi. Kami mendukung skema konfigurasi model Azure OpenAI dan OpenAI. Untuk performa terbaik dan respons yang dapat dipahami dengan evaluator kami, sebaiknya gunakan model GPT yang bukan versi pratinjau.

Catatan

Ganti gpt-3.5-turbo dengan gpt-4o-mini untuk model evaluator Anda. Menurut OpenAI, gpt-4o-mini lebih murah, lebih mampu, dan secepatnya.

Untuk melakukan panggilan inferensi dengan kunci API, pastikan Anda memiliki setidaknya peran Cognitive Services OpenAI User untuk sumber daya OpenAI Azure. Untuk informasi selengkapnya tentang izin, lihat Permissions untuk sumber daya OpenAI Azure.

Untuk semua evaluator risiko dan keselamatan dan GroundednessProEvaluator (pratinjau), alih-alih penyebaran GPT di model_config, Anda harus memberikan informasi azure_ai_project Anda. Ini memungkinkan akses ke layanan evaluasi backend dengan menggunakan proyek Foundry Anda.

Instruksi untuk evaluator bawaan berbasis AI

Untuk transparansi, kami menjadikan perintah evaluator kualitas kami sebagai sumber terbuka di Pustaka Evaluator dan repositori SDK Python Evaluasi Azure AI, kecuali untuk Evaluator Keamanan dan GroundednessProEvaluator, yang didukung oleh Keamanan Konten Azure AI. Perintah ini berfungsi sebagai instruksi bagi model bahasa untuk melakukan tugas evaluasi mereka, yang memerlukan definisi metrik yang ramah manusia dan rubrik penilaian terkait. Kami sangat menyarankan Agar Anda menyesuaikan definisi dan menilai rubrik dengan skenario Anda secara spesifik. Untuk informasi selengkapnya, lihat Evaluator kustom.

Evaluator komposit

Evaluator komposit adalah evaluator bawaan yang menggabungkan metrik kualitas atau keamanan individu. Mereka menyediakan berbagai metrik langsung dari kotak untuk kedua pasangan respons kueri atau pesan obrolan.

Penilai Komposit Berisi Deskripsi
QAEvaluator GroundednessEvaluator, RelevanceEvaluator, CoherenceEvaluator, FluencyEvaluator, SimilarityEvaluator, F1ScoreEvaluator Menggabungkan semua penilai kualitas untuk menghasilkan satu output metrik gabungan bagi pasangan kueri dan respons.
ContentSafetyEvaluator ViolenceEvaluator, SexualEvaluator, SelfHarmEvaluator, HateUnfairnessEvaluator Menggabungkan semua evaluator keamanan untuk satu output metrik gabungan untuk pasangan kueri dan respons

Evaluasi lokal pada himpunan data pengujian menggunakan evaluate()

Setelah Anda memeriksa evaluator bawaan atau kustom pada satu baris data, Anda dapat menggabungkan beberapa evaluator dengan evaluate() API pada seluruh himpunan data pengujian.

Langkah-langkah pengaturan prasyarat untuk proyek Microsoft Foundry

Jika sesi ini adalah pertama kalinya Anda menjalankan evaluasi dan mencatatnya ke proyek Foundry, Anda mungkin perlu melakukan langkah-langkah penyiapan berikut:

  1. Buat dan sambungkan akun penyimpanan Anda ke proyek Foundry Anda di tingkat sumber daya. Templat bicep ini menyediakan dan menghubungkan akun penyimpanan ke proyek Foundry Anda dengan autentikasi kunci.
  2. Pastikan akun penyimpanan yang terhubung memiliki akses ke semua proyek.
  3. Jika Anda menyambungkan akun penyimpanan anda dengan Microsoft Entra ID, pastikan untuk memberikan izin identitas Microsoft untuk Storage Blob Data Owner ke akun anda dan sumber daya proyek Foundry di portal Azure.

Evaluasi pada dataset dan catat hasil ke Foundry

Untuk memastikan evaluate() API dapat mengurai data dengan benar, Anda harus menentukan pemetaan kolom untuk memetakan kolom dari himpunan data ke kata kunci yang diterima evaluator. Contoh ini menentukan pemetaan data untuk query, , responsedan context.

from azure.ai.evaluation import evaluate

result = evaluate(
    data="data.jsonl", # Provide your data here:
    evaluators={
        "groundedness": groundedness_eval,
        "answer_length": answer_length
    },
    # Column mapping:
    evaluator_config={
        "groundedness": {
            "column_mapping": {
                "query": "${data.queries}",
                "context": "${data.context}",
                "response": "${data.response}"
            } 
        }
    },
    # Optionally, provide your Foundry project information to track your evaluation results in your project portal.
    azure_ai_project = azure_ai_project,
    # Optionally, provide an output path to dump a JSON file of metric summary, row-level data, and the metric and Foundry project URL.
    output_path="./myevalresults.json"
)

Tips

Dapatkan isi properti result.studio_url sebagai tautan untuk melihat hasil evaluasi yang telah dicatat dalam proyek Foundry Anda.

Evaluator menghasilkan output dalam bentuk kamus, yang berisi data dan metrik tingkat agregat metrics dan tingkat-baris. Lihat contoh output berikut:

{'metrics': {'answer_length.value': 49.333333333333336,
             'groundedness.gpt_groundeness': 5.0, 'groundedness.groundeness': 5.0},
 'rows': [{'inputs.response': 'Paris is the capital/major city of France.',
           'inputs.context': 'Paris has been the capital/major city of France since '
                                  'the 10th century and is known for its '
                                  'cultural and historical landmarks.',
           'inputs.query': 'What is the capital/major city of France?',
           'outputs.answer_length.value': 31,
           'outputs.groundeness.groundeness': 5,
           'outputs.groundeness.gpt_groundeness': 5,
           'outputs.groundeness.groundeness_reason': 'The response to the query is supported by the context.'},
          {'inputs.response': 'Albert Einstein developed the theory of '
                            'relativity.',
           'inputs.context': 'Albert Einstein developed the theory of '
                                  'relativity, with his special relativity '
                                  'published in 1905 and general relativity in '
                                  '1915.',
           'inputs.query': 'Who developed the theory of relativity?',
           'outputs.answer_length.value': 51,
           'outputs.groundeness.groundeness': 5,
           'outputs.groundeness.gpt_groundeness': 5,
           'outputs.groundeness.groundeness_reason': 'The response to the query is supported by the context.'},
          {'inputs.response': 'The speed of light is approximately 299,792,458 '
                            'meters per second.',
           'inputs.context': 'The exact speed of light in a vacuum is '
                                  '299,792,458 meters per second, a constant '
                                  "used in physics to represent 'c'.",
           'inputs.query': 'What is the speed of light?',
           'outputs.answer_length.value': 66,
           'outputs.groundeness.groundeness': 5,
           'outputs.groundeness.gpt_groundeness': 5,
           'outputs.groundeness.groundeness_reason': 'The response to the query is supported by the context.'}],
 'traces': {}}

Persyaratan untuk evaluate()

evaluate() API memerlukan format data tertentu dan nama kunci parameter evaluator untuk menampilkan bagan hasil evaluasi di proyek Foundry Anda dengan benar.

Format data

evaluate() API hanya menerima data dalam format JSONL. Untuk semua evaluator bawaan, evaluate() memerlukan data dalam format berikut dengan bidang input yang diperlukan. Lihat bagian sebelumnya tentang input data yang diperlukan untuk evaluator bawaan. Cuplikan kode berikut adalah sampel seperti apa satu baris:

{
  "query":"What is the capital/major city of France?",
  "context":"France is in Europe",
  "response":"Paris is the capital/major city of France.",
  "ground_truth": "Paris"
}

Format parameter penilai

Saat Anda meneruskan evaluator bawaan, tentukan dengan tepat pemetaan kata kunci dalam daftar parameter evaluators. Tabel berikut ini memperlihatkan pemetaan kata kunci yang diperlukan agar hasil dari evaluator bawaan Anda muncul di UI saat masuk ke proyek Foundry Anda.

Penilai Parameter kata kunci
GroundednessEvaluator "groundedness"
GroundednessProEvaluator "groundedness_pro"
RetrievalEvaluator "retrieval"
RelevanceEvaluator "relevance"
CoherenceEvaluator "coherence"
FluencyEvaluator "fluency"
SimilarityEvaluator "similarity"
F1ScoreEvaluator "f1_score"
RougeScoreEvaluator "rouge"
GleuScoreEvaluator "gleu"
BleuScoreEvaluator "bleu"
MeteorScoreEvaluator "meteor"
ViolenceEvaluator "violence"
SexualEvaluator "sexual"
SelfHarmEvaluator "self_harm"
HateUnfairnessEvaluator "hate_unfairness"
IndirectAttackEvaluator "indirect_attack"
ProtectedMaterialEvaluator "protected_material"
CodeVulnerabilityEvaluator "code_vulnerability"
UngroundedAttributesEvaluator "ungrounded_attributes"
QAEvaluator "qa"
ContentSafetyEvaluator "content_safety"

Berikut adalah contoh cara mengatur evaluators parameter:

result = evaluate(
    data="data.jsonl",
    evaluators={
        "sexual":sexual_evaluator,
        "self_harm":self_harm_evaluator,
        "hate_unfairness":hate_unfairness_evaluator,
        "violence":violence_evaluator
    }
)

Evaluasi lokal terhadap target

Jika Anda memiliki daftar kueri yang ingin Anda jalankan lalu mengevaluasi, evaluate() API juga mendukung target parameter . Parameter ini mengirimkan kueri ke aplikasi untuk mengumpulkan jawaban, lalu menjalankan evaluator Anda pada kueri dan respons yang dihasilkan.

Target dapat berupa kelas yang dapat dipanggil di direktori Anda. Dalam contoh ini, ada skrip Python askwiki.py dengan kelas yang dapat dipanggil askwiki() yang ditetapkan sebagai target. Jika Anda memiliki set data kueri yang dapat Anda kirim ke aplikasi sederhana askwiki, Anda dapat mengevaluasi keterandalan output. Pastikan Anda menentukan pemetaan kolom yang tepat untuk data Anda di "column_mapping". Anda dapat menggunakan "default" untuk menentukan pemetaan kolom untuk semua evaluator.

Berikut adalah konten di "data.jsonl":

{"query":"When was United States found ?", "response":"1776"}
{"query":"What is the capital/major city of France?", "response":"Paris"}
{"query":"Who is the best tennis player of all time ?", "response":"Roger Federer"}
from askwiki import askwiki

result = evaluate(
    data="data.jsonl",
    target=askwiki,
    evaluators={
        "groundedness": groundedness_eval
    },
    evaluator_config={
        "default": {
            "column_mapping": {
                "query": "${data.queries}",
                "context": "${outputs.context}",
                "response": "${outputs.response}"
            } 
        }
    }
)