إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
FoundryEvalsيربط واجهات برمجة تطبيقات تقييم Agent Framework بخدمة التقييم المدارة Microsoft Foundry. يوفر الجودة والسلامة واستخدام الأدوات وسلوك العامل والمقيمين، مع التقارير المخزنة المتوفرة في مدخل Foundry.
بالنسبة للفحوصات EvalItemالمحلية والمقيمين المخصصين واستراتيجيات تقسيم المحادثة، راجع تقييم العامل.
المتطلبات الأساسية
- مشروع Microsoft Foundry ونشر النموذج.
- نقطة نهاية Foundry ذات نطاق المشروع.
- إذن إرسال التقييمات وقراءة التقارير.
تقييم الاستجابات أو استعلامات الاختبار
تكوين FoundryEvals، ثم تقييم الاستجابات التي تم إنشاؤها بالفعل أو السماح EvaluateAsync بتشغيل العامل لكل استعلام.
string endpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set.");
string deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt-4o-mini";
// WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production.
// In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid
// latency issues, unintended credential probing, and potential security risks from fallback mechanisms.
AIProjectClient projectClient = new(new Uri(endpoint), new DefaultAzureCredential());
AIAgent agent = projectClient.AsAIAgent(
model: deploymentName,
instructions: "You are a helpful assistant that provides clear, accurate answers.",
name: "QualityTestAgent");
// Configure Foundry evaluators.
FoundryEvals foundryEvals = new(projectClient, deploymentName, FoundryEvals.Relevance, FoundryEvals.Coherence);
// --- Pattern 1: Run agent, then evaluate pre-existing responses ---
string[] queries = ["What is photosynthesis?", "Explain gravity in simple terms."];
AgentResponse[] responses = new AgentResponse[queries.Length];
for (int i = 0; i < queries.Length; i++)
{
responses[i] = await agent.RunAsync(queries[i]);
}
AgentEvaluationResults results1 = await agent.EvaluateAsync(responses, queries, foundryEvals);
Console.WriteLine("=== Pattern 1: Evaluate pre-existing responses ===");
PrintResults(results1, queries);
// --- Pattern 2: Run + evaluate in one call ---
string[] queries2 = ["What causes rain?", "Why is the sky blue?"];
AgentEvaluationResults results2 = await agent.EvaluateAsync(queries2, foundryEvals);
Console.WriteLine("=== Pattern 2: Run + evaluate in one call ===");
PrintResults(results2, queries2);
كما توضح عينات .NET مقيمي Foundry rubric وبوابات الجودة لكل بعد.
تقييم وكيل
قم بتمرير الاستجابات الموجودة أو استعلامات الاختبار إلى evaluate_agent(). تتضمن النتائج عدد مرات النجاح/الفشل وعنوان URL لتقرير Foundry.
async def main() -> None:
# 1. Set up the FoundryChatClient
chat_client = FoundryChatClient(
project_endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
model=os.environ.get("FOUNDRY_MODEL", "gpt-4o"),
credential=AzureCliCredential(),
)
# 2. Create an agent with tools
agent = Agent(
client=chat_client,
name="travel-assistant",
instructions=(
"You are a helpful travel assistant. Use your tools to answer questions about weather and flights."
),
tools=[get_weather, get_flight_price],
)
# 3. Create the evaluator — provider config goes here, once
evals = FoundryEvals(client=chat_client)
# =========================================================================
# Pattern 1: evaluate_agent(responses=...) — evaluate a response you already have
# =========================================================================
print("=" * 60)
print("Pattern 1: evaluate_agent(responses=...) — evaluate existing response")
print("=" * 60)
query = "How much does a flight from Seattle to Paris cost?"
response = await agent.run(query)
print(f"Agent said: {response.text[:100]}...")
# Pass agent= so tool definitions are extracted, queries= for the eval item context
results = await evaluate_agent(
agent=agent,
responses=response,
queries=[query],
evaluators=FoundryEvals(
client=chat_client,
evaluators=[FoundryEvals.RELEVANCE, FoundryEvals.TOOL_CALL_ACCURACY],
),
)
for r in results:
print(f"Status: {r.status}")
print(f"Results: {r.passed}/{r.total} passed")
print(f"Portal: {r.report_url}")
if r.all_passed:
print("[PASS] All passed")
else:
print(f"[FAIL] {r.failed} failed")
تغطي العينات الإضافية تقييم التتبع، وتقييم استدعاء الأدوات، والتقييم متعدد الأدوار، وتقييم سير العمل، والموفرين المختلطين، وقاعدة بيانات Foundry المخصصة.
Note
Microsoft لا يتوفر تكامل تقييم Foundry حاليا ل Agent Framework Go. راجع مستودع Agent Framework Go للحصول على أحدث حالة.
بوابات الجودة
تثبيت مجموعات البيانات، وتوزيع النماذج، وإصدارات المقيم، والإصدارات الأساسية عندما يجب أن تكون النتائج قابلة للمقارنة عبر عمليات التشغيل. استخدم مساعدي تأكيد النتيجة لفشل CI عند تراجع المقاييس المطلوبة.