@arizeai/phoenix-evals
Version:
A library for running evaluations for AI use cases
33 lines • 1.27 kB
JavaScript
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