UNPKG

@arizeai/phoenix-evals

Version:
33 lines 1.27 kB
import { generateObject } from "ai"; import { z } from "zod"; import { getTelemetryIntegrations, tracer } from "../telemetry/index.js"; /** * A function that leverages an llm to perform a classification */ export async function generateClassification(args) { const { labels, model, schemaName, schemaDescription, telemetry, ...prompt } = args; const telemetryOptions = { isEnabled: telemetry?.isEnabled ?? true, functionId: "generateClassification", integrations: getTelemetryIntegrations(telemetry?.tracer ?? tracer), }; const result = await generateObject({ model, schemaName, schemaDescription, schema: z.object({ explanation: z.string(), // We place the explanation in hopes it uses reasoning to explain the label. label: z.enum(labels), }), telemetry: telemetryOptions, // AI SDK 7 rejects system messages inside `messages` by default; keep // accepting them since prompt templates may include system messages. allowSystemInMessages: true, ...prompt, }); return { label: result.object.label, explanation: result.object.explanation, }; } //# sourceMappingURL=generateClassification.js.map