Terus mengevaluasi agen AI Anda (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.

Catatan

Dokumen ini mengacu pada portal Microsoft Foundry (klasik). Untuk secara berkelanjutan mengevaluasi menggunakan portal Microsoft Foundry (baru), lihat Pengaturan Evaluasi Berkelanjutan.

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.

Evaluasi berkelanjutan untuk Agen memberikan observabilitas dan pemantauan hampir waktu nyata untuk aplikasi AI Anda. Setelah diaktifkan, fitur ini terus mengevaluasi interaksi agen pada laju pengambilan sampel yang ditetapkan untuk memberikan wawasan tentang kualitas, keamanan, dan performa dengan metrik yang muncul di dasbor Foundry Observability. Dengan menggunakan evaluasi berkelanjutan, Anda dapat mengidentifikasi dan memecahkan masalah lebih awal, mengoptimalkan performa agen, dan menjaga keamanan. Evaluasi juga terhubung ke jejak. untuk mengaktifkan penelusuran kesalahan terperinci dan analisis akar penyebab.

Prasyarat

Catatan

Anda harus menggunakan proyek Foundry untuk fitur ini. Proyek berbasis hub tidak didukung. Lihat Bagaimana cara mengetahui jenis proyek mana yang saya miliki? dan Membuat proyek Foundry. Untuk memigrasikan proyek berbasis hub Anda ke proyek Foundry, lihat Migrasi dari proyek berbasis hub ke Foundry.

Langkah-langkah untuk menyambungkan Application Insights

  1. Masuk ke Microsoft Foundry. Pastikan tombol New Foundry nonaktif. Langkah-langkah ini mengacu pada Foundry (klasik).

  2. Pilih Pemantauan di menu sebelah kiri dan buka Analitik Aplikasi.

  3. Sambungkan sumber daya Application Insights Anda ke proyek.

Menyiapkan evaluasi berkelanjutan dengan pustaka klien proyek AI Azure

pip install azure-ai-projects azure-identity

Membuat agen yang dijalankan

import os, json
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential

project_client = AIProjectClient(
    credential=DefaultAzureCredential(), endpoint=os.environ["PROJECT_ENDPOINT"]
)

agent = project_client.agents.create_agent(
    model=os.environ["MODEL_DEPLOYMENT_NAME"],
    name="my-assistant",
    instructions="You are a helpful assistant",
    tools=file_search_tool.definitions,
    tool_resources=file_search_tool.resources,
)

# Create thread and process user message
thread = project_client.agents.threads.create()
project_client.agents.messages.create(thread_id=thread.id, role="user", content="Hello, what Contoso products do you know?")
run = project_client.agents.runs.create_and_process(thread_id=thread.id, agent_id=agent.id)

# Handle run status
if run.status == "failed":
    print(f"Run failed: {run.last_error}")

# Print thread messages
for message in project_client.agents.messages.list(thread_id=thread.id).text_messages:
    print(message)

Pilih penilai

Selanjutnya, Anda ingin menentukan kumpulan evaluator yang ingin Anda jalankan terus menerus. Untuk mempelajari selengkapnya tentang evaluator yang didukung, lihat Evaluator bawaan.

from azure.ai.projects.models import EvaluatorIds

evaluators={
"Relevance": {"Id": EvaluatorIds.Relevance.value},
"Fluency": {"Id": EvaluatorIds.Fluency.value},
"Coherence": {"Id": EvaluatorIds.Coherence.value},
},

Terus mengevaluasi kinerja agen Anda dengan membuat AgentEvaluationRequest

                      
project_client.evaluation.create_agent_evaluation(
    AgentEvaluationRequest(  
        thread=thread.id,  
        run=run.id,   
        evaluators=evaluators,
        appInsightsConnectionString = project_client.telemetry.get_application_insights_connection_string(),
    )
)

Mendapatkan hasil evaluasi menggunakan Application Insights


from azure.core.exceptions import HttpResponseError
from azure.identity import DefaultAzureCredential
from azure.monitor.query import LogsQueryClient, LogsQueryStatus
import pandas as pd

credential = DefaultAzureCredential()
client = LogsQueryClient(credential)

query = f"""
traces
| where message == "gen_ai.evaluation.result"
| where customDimensions["gen_ai.thread.run.id"] == "{run.id}"
"""

try:
    response = client.query_workspace(os.environ["LOGS_WORKSPACE_ID"], query, timespan=timedelta(days=1))
    if response.status == LogsQueryStatus.SUCCESS:
        data = response.tables
    else:
        # LogsQueryPartialResult - handle error here
        error = response.partial_error
        data = response.partial_data
        print(error)

    for table in data:
        df = pd.DataFrame(data=table.rows, columns=table.columns)
        key_value = df.to_dict(orient="records")
        pprint(key_value)
except HttpResponseError as err:
    print("something fatal happened")
    print(err)

Menangkap penjelasan penalaran untuk hasil evaluasi Anda

Evaluator yang dibantu AI menggunakan penalaran rantai pemikiran untuk menghasilkan penjelasan untuk skor dalam hasil evaluasi Anda. Untuk mengaktifkan ini, atur redact_score_properties ke False di objek AgentEvaluationRedactionConfiguration dan kirimkan sebagai bagian dari permintaan Anda.

Ini membantu Anda memahami penalaran di balik skor untuk setiap metrik.

Catatan

Penjelasan penalaran mungkin menyebutkan informasi sensitif berdasarkan konten percakapan.


from azure.ai.projects.models import AgentEvaluationRedactionConfiguration
              
project_client.evaluation.create_agent_evaluation(
    AgentEvaluationRequest(  
        thread=thread.id,  
        run=run.id,   
        evaluators=evaluators,  
        redaction_configuration=AgentEvaluationRedactionConfiguration(
            redact_score_properties=False,
       ),
        app_insights_connection_string=app_insights_connection_string,
    )
)

Menyesuaikan konfigurasi pengambilan sampel Anda

Anda dapat menyesuaikan konfigurasi pengambilan sampel dengan menentukan AgentEvaluationSamplingConfiguration dan menentukan persentase pengambilan sampel pilihan Anda dan permintaan maksimum per jam dalam batas sistem 1000/jam.


from azure.ai.projects.models 

sampling_config = AgentEvaluationSamplingConfiguration (  
    name = agent.id,  
    samplingPercent = 100,       # Percentage of sampling per hour (0-100)
    maxRequestRate = 250,       # Maximum request rate per hour (0-1000)
)                                
project_client.evaluation.create_agent_evaluation(
    AgentEvaluationRequest(  
        thread=thread.id,  
        run=run.id,   
        evaluators=evaluators,  
        samplingConfiguration = sampling_config,  
        appInsightsConnectionString = project_client.telemetry.get_application_insights_connection_string(),
    )
)

Catatan

Jika beberapa aplikasi AI mengirim data evaluasi berkelanjutan ke sumber daya Application Insights yang sama, disarankan untuk menggunakan nama layanan untuk membedakan data aplikasi. Lihat Azure AI Tracing untuk informasi lebih lanjut.

Menampilkan hasil evaluasi berkelanjutan

Setelah menyebarkan aplikasi ke produksi dengan penyiapan evaluasi berkelanjutan, Anda dapat monitor kualitas dan keamanan agen Anda dengan Foundry dan Azure Monitor.