Skip to main content
Evaluator SDK आपके स्वयं के infrastructure पर evaluations चलाता है। आपका worker अपने evaluations को Failproof AI में register करता है, जैसे ही sessions समाप्त होते हैं उन्हें claim करता है, उन्हें score करता है, और परिणाम सबमिट करता है, सब कुछ outbound HTTPS पर: कुछ भी इसमें कनेक्ट नहीं होता। इसे उस चीज़ के लिए use करें जो hosted Python नहीं कर सकता — LLM judges, model calls, packages, secrets, और network access। इसके परिणाम evaluations page पर hosted ones के साथ दिखाई देते हैं, customer टैग के साथ। यह failproofai-sdk में आता है, failproofai_sdk.evaluator के तहत; tracing SDK को import करने से यह load नहीं होता।

Evaluations लिखें

  • @app.eval(key, version=...) एक evaluation को register करता है। key वह है जिसके तहत इसके परिणाम chart होते हैं; जब भी logic बदले तो version बदलें, और प्रत्येक result उस version को रखता है जिसने इसे produce किया। एक worker 100 तक evaluations hold कर सकता है।
  • result_kind है "score" जब तक आप अन्यथा न कहें। एक "metric" या "assertion" evaluation के लिए, key के बाद एक metrics या assertions entry को नाम दें: वह entry इसका result है।
  • when तय करता है कि क्या एक session लागू होता है। एक को skip करने के लिए ConditionResult(False, "<reason>") return करें, और reason record किया जाता है।
  • एक evaluation एक plain function या async हो सकता है, और timeout_seconds इसे bound करता है।
  • Payload keys — tool_name, response, और content ऊपर — जो कुछ भी आपके agents भेजते हैं, इसलिए उन्हें एक real session से पढ़ें।

Worker चलाएं

Administration → Keys के तहत बनाई गई एक key को evaluations:run permission के साथ FAILPROOFAI_EVALUATOR_TOKEN में रखें — इसे अपने secret store से set करें न कि इसे किसी command में type करें — और worker शुरू करें:
__main__ block के बिना, python -m failproofai_sdk.evaluator evaluator:app वही करता है।
FAILPROOFAI_EVALUATOR_ALLOW_INSECURE_HTTP सब कुछ cleartext में भेजता है। Worker प्रत्येक request पर एक Authorization: Bearer header के रूप में FAILPROOFAI_EVALUATOR_TOKEN ले जाता है, और transcripts जो वह fetch करता है वह sessions ही हैं — तो path पर कोई भी दोनों को reads करता है, और token जो वे read करते हैं वह evaluations चलाता है जब तक आप इसे rotate नहीं करते। इसे केवल एक isolated development network पर use करें। अन्य सभी जगह URL HTTPS होना चाहिए; loopback को कोई flag की ज़रूरत नहीं।

Result types

एक EvalResult कम से कम एक score, metric, या assertion ले जाता है, और अधिकतम 25, प्रत्येक एक unique key के तहत।

Session

प्रत्येक event id, ts, event_type, और payload ले जाता है।

Legacy evaluator

पहले का Evaluator SDK — एक HTTP service जिसे Failproof AI EVALUATOR_ENDPOINT पर called करता था, /evaluate का जवाब देता था और JobPending के through poll किया जाता था — retired है। इस worker पर नए evaluators build करें; एक self-hosted instance के operators जो एक legacy service चला रहे हैं वह transition के through इसे keep कर सकते हैं।