Skip to content

المُقيِّمات البرمجية

قيِّم مسارات الوكلاء والمخرجات النصية تلقائيًا بمكتبة مُقيِّمات Potato المستقلة عن Flask — مطابقة مسار حتمية، وصحة استخدام الأدوات، وحكم LLM بلا مرجع، ومُقيِّمات استدلالية (مطابقة تامة، مسافة تحرير، JSON، تضمينات).

يأتي Potato بمكتبة مُقيِّمات خفيفة التبعيات تُقيِّم مسارات الوكلاء والمخرجات النصية تلقائيًا: الفحوص الحتمية وفحوص الحكم بواسطة LLM التي تكمّل التعليق البشري. تعمل المُقيِّمات نفسها داخل التجارب ومحرك الأتمتة ومكوّن CI الإضافي، كما تعمل مستقلة.

يعيد كل مُقيِّم نتيجة موحّدة واحدة — score (اصطلاحًا بين 0.0 و1.0، والأعلى أفضل) وvalue وcomment وmetadata — فتصبح المُقيِّمات الحتمية والاستدلالية ومُقيِّمات الحكم بواسطة LLM قابلة للتبادل. يمكن تمرير المسارات كقوائم رسائل بنمط OpenAI، أو أدوار conversation القياسية في Potato، أو ككائن CanonicalTrace؛ والتوحيد تلقائي.

مطابقة المسار (حتمية)

تقارن تسلسل استدعاءات الأدوات لدى الوكيل بمرجع.

python
from potato.evaluators import TrajectoryMatchEvaluator
 
ev = TrajectoryMatchEvaluator(
    mode="unordered",               # strict | unordered | subset | superset
    tool_args_match_mode="subset",  # exact | ignore | subset | superset
    tool_args_match_overrides={"search": "ignore"},
)
result = ev.evaluate(outputs=agent_trace, reference_outputs=gold_trace)
modeتنجح عندما…
strictاستدعاءات أدوات متطابقة وبالترتيب نفسه
unorderedالمجموعة المتعددة نفسها من استدعاءات الأدوات بأي ترتيب
subsetلم يستدعِ الوكيل إلا أدوات تظهر في المرجع
supersetاستدعى الوكيل أدوات المرجع على الأقل (مع السماح بزيادات)

مقارنة الوسائط قابلة للضبط باستقلال (exact / ignore / subset / superset)، مع تجاوزات لكل أداة على حدة.

صحة استخدام الأدوات

python
from potato.evaluators import ToolUseEvaluator, ToolCallAccuracyEvaluator
 
# Did the agent call a specific tool (optionally with expected args)?
ToolUseEvaluator(expected_tool="submit", expected_args={"id": 1}).evaluate(outputs=trace)
 
# What fraction of reference tool calls did the agent reproduce? (partial credit)
ToolCallAccuracyEvaluator(args_match_mode="exact").evaluate(outputs=trace, reference_outputs=gold)

الحكم بواسطة LLM (بلا مرجع)

يُقيِّم جودة المسار دون مرجع ذهبي، إذ توجد مسارات وكيل صحيحة كثيرة. يعيد استخدام إعداد نقطة النهاية ai_support نفسه المستخدم في بقية Potato (مع OpenAI وAnthropic وOllama وvLLM و…).

python
from potato.evaluators import LLMTrajectoryJudge
 
judge = LLMTrajectoryJudge(config=task_config, continuous=True)  # 0.0–1.0 score
result = judge.evaluate(outputs=agent_trace, inputs=task_prompt)

المُقيِّمات الاستدلالية / البرمجية

تشمل ExactMatch وContains وRegexMatch وEditDistance وJSONValid وJSONSchemaMatch وEmbeddingDistance (باستيراد كسول لتبعيات تعلّم الآلة أو بدالة تضمين مُمرَّرة). استيراد المكتبة لا يسحب حزمة تعلّم الآلة أبدًا.

تقييم مسارات الرسم البياني (LangGraph)

لتقييم عُقد LangGraph وانتقالاتها، يعيد Potato استخدام حزمة agentevals المرخّصة بترخيص MIT عبر مهايئ كسول — ثبّتها فقط إذا احتجت إليها.

ضبط المُقيِّمات تصريحيًا

يربط سجلٌّ الأسماءَ بالمُقيِّمات حتى يمكن ضبطها في YAML (يستخدمه مشغّل التجارب ومحرك الأتمتة):

python
from potato.evaluators import build_evaluator, list_evaluators
 
ev = build_evaluator("trajectory_match", {"mode": "unordered"})
result = ev.evaluate(outputs=trace, reference_outputs=gold)

مواضيع ذات صلة