When to use a remote evaluator
Before you start
- A place to host an HTTPS endpoint Arize can reach on the public internet
- An Arize space that already has the traces or dataset you want to score
- (Recommended) A shared secret for auth headers
The contract
Request Arize sends
Treat
input defensively: only read the fields you need, and ignore anything extra.
Response Arize expects
Return HTTP2xx with a JSON object. You must include a label, a score, or both. explanation is optional but recommended.
2xx response with neither label nor score is treated as a failure.
Status codes
Path to “it works”
Do these in order. Don’t add LLM logic until step 3 works end-to-end.1
Stand up a stub endpoint
Smallest possible server: accept
POST, read JSON, return a fixed verdict.2
Prove the contract with curl
200 and JSON that includes label and/or score.3
Deploy publicly
Deploy so Arize can reach a full HTTPS URL, for example
https://evals.example.com/evaluate.Arize calls that URL verbatim — it does not append paths.If your host sleeps when idle, send one warm-up request before a real eval run so cold starts don’t time out.
4
Register it in Arize
- Create a remote evaluator in the same space where your data lives.
- Paste the full endpoint URL.
- Add auth headers if your endpoint requires them (for example
Authorization: Bearer <token>). - Map columns or attributes into the
inputkeys your endpoint reads (for example question →input, answer →output). - Create an eval task that attaches this evaluator to a project or dataset.
- Choose scope (span / trace / session), whether to run on historical data and/or continuously, and a sampling rate if continuous.
- Run the task.
eval.<name>.label, .score, .explanation) on the scored records. See View eval results.5
Confirm Arize is calling you
Log when a request arrives and when you return a verdict. Include
metadata.request_id and metadata.record_id.Make the scoring real
Once the stub works end-to-end, replace the hardcoded verdict. The HTTP contract stays the same.Rule-based (start here)
Regex, keyword checks, length limits, JSON schema validation, allowlists — fast, cheap, reproducible.Call your own LLM from the endpoint
If the score needs a model judgment, your endpoint can call OpenAI, Anthropic, or any other provider itself — then returnlabel / score / explanation like any other remote eval.
That is different from LLM-as-a-judge in Arize, where Arize runs the judge prompt for you. Here you own the model call; Arize still owns orchestration.
- Validate required
inputfields first; return4xxif they’re missing - Instruct the model to return only JSON matching the response shape, then parse it defensively
- On provider timeouts or rate limits, return
5xxor429so Arize can retry - Prefer returning both
labelandscorewhen your rubric has both
Production checklist
Auth
Protect endpoints that call paid models:Suppress tracing on the eval path
If the service hosting the evaluator also sends its own traces to Arize, wrap judge calls so evaluator traffic doesn’t create noisy nested traces:Robust input parsing
- Never assume a mapped field exists
- Ignore unknown fields
- Prefer failing a single record with
4xxover crashing the process
FAQ
Do I have to use Python?
Do I have to use Python?
No. Any stack that can serve HTTPS JSON works.
Do I need both label and score?
Do I need both label and score?
No. Either is enough. Both is fine.
explanation is optional.Can one endpoint power multiple evaluators?
Can one endpoint power multiple evaluators?
Yes. Use
metadata.evaluator (or separate paths) to branch.Where do results show up?
Where do results show up?
On the scored records as eval columns, typically
eval.<evaluator_name>.label / .score / .explanation. Trace- and session-level evals use related prefixes. See View eval results.What's the difference between this and an LLM template evaluator in Arize?
What's the difference between this and an LLM template evaluator in Arize?
Template evaluators: Arize owns both the judge prompt and the orchestration.Remote evaluators: you own the scoring logic; Arize still owns orchestration (who to score, when, retries, write-back). Use remote when you already have scoring logic, governance requirements, proprietary models, or deterministic checks you don’t want to reimplement.