# Evaluators: LLM Evaluators in TypeScript LLM evaluators use a language model to judge outputs. Uses Vercel AI SDK. ## Quick Start ```typescript import { createClassificationEvaluator } from "@arizeai/phoenix-evals"; import { openai } from "@ai-sdk/openai"; const helpfulness = await createClassificationEvaluator<{ input: string; output: string; }>({ name: "helpfulness", model: openai("gpt-4o"), promptTemplate: `Rate helpfulness. {{input}} {{output}} Answer (helpful/not_helpful):`, choices: { not_helpful: 0, helpful: 1 }, }); ``` ## Template Variables Use XML tags: `{{input}}`, `{{output}}`, `{{context}}` ## Custom Evaluator with asExperimentEvaluator ```typescript import { asExperimentEvaluator } from "@arizeai/phoenix-client/experiments"; const customEval = asExperimentEvaluator({ name: "custom", kind: "LLM", evaluate: async ({ input, output }) => { // Your LLM call here return { score: 1.0, label: "pass", explanation: "..." }; }, }); ``` ## Pre-Built Evaluators ```typescript import { createFaithfulnessEvaluator } from "@arizeai/phoenix-evals"; const faithfulnessEvaluator = createFaithfulnessEvaluator({ model: openai("gpt-4o"), }); ``` ## Best Practices - Be specific about criteria - Include examples in prompts - Use `` for chain of thought