Skip to main content
Glama
Arize-ai

@arizeai/phoenix-mcp

Official
by Arize-ai
bindEvaluator.test.ts2.45 kB
import { createClassificationEvaluator } from "../../src"; import { ObjectMapping } from "../../src/types/data"; import { bindEvaluator } from "../../src/utils/bindEvaluator"; import { MockLanguageModelV2 } from "ai/test"; import { describe, expect, it } from "vitest"; // Helper function to create a classification evaluator for testing function createTestEvaluator<RecordType extends Record<string, unknown>>( name: string, inputMapping?: ObjectMapping<RecordType> ) { return createClassificationEvaluator<RecordType>({ name, model: new MockLanguageModelV2({ doGenerate: async () => ({ finishReason: "stop", usage: { inputTokens: 10, outputTokens: 20, totalTokens: 30 }, content: [{ type: "text", text: "valid" }], warnings: [], }), }), promptTemplate: "Evaluate the input", choices: { valid: 1, invalid: 0 }, inputMapping, }); } describe("bindEvaluator", () => { describe("basic functionality", () => { it("should bind input mapping to an evaluator using context", () => { const evaluator = createTestEvaluator("test-evaluator"); const context = { inputMapping: { userName: "name", userAge: "age", }, }; const boundEvaluator = bindEvaluator(evaluator, context); expect(boundEvaluator.inputMapping).toEqual(context.inputMapping); expect(boundEvaluator.name).toBe("test-evaluator"); }); it("should return a new evaluator instance when binding", () => { const evaluator = createTestEvaluator("test-evaluator"); const context = { inputMapping: { userName: "name", }, }; const boundEvaluator = bindEvaluator(evaluator, context); expect(boundEvaluator).not.toBe(evaluator); expect(boundEvaluator.inputMapping).toEqual(context.inputMapping); expect(evaluator.inputMapping).toBeUndefined(); }); it("should preserve evaluator properties", () => { const evaluator = createTestEvaluator("test-evaluator"); const context = { inputMapping: { extractedData: "data", }, }; const boundEvaluator = bindEvaluator(evaluator, context); expect(boundEvaluator.name).toBe(evaluator.name); expect(boundEvaluator.kind).toBe(evaluator.kind); expect(boundEvaluator.optimizationDirection).toBe( evaluator.optimizationDirection ); }); }); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Arize-ai/phoenix'

If you have feedback or need assistance with the MCP directory API, please join our Discord server