/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { EvalDataset, EvalDataset$inboundSchema, EvalDataset$Outbound, EvalDataset$outboundSchema, } from "./evaldataset.js"; export const Strategy = { First: "first", Random: "random", } as const; export type Strategy = ClosedEnum; export type EvalFewshotConfig = { count?: number | undefined; /** * Dataset backing an eval task. */ dataset?: EvalDataset | undefined; /** * Optional prompt template for few-shot examples. Defaults to task prompt_template. */ promptTemplate?: string | undefined; /** * Optional target template for few-shot examples. Defaults to task target_template. */ targetTemplate?: string | undefined; /** * Template for one rendered few-shot example. */ exampleTemplate?: string | undefined; /** * Separator between few-shot examples and the evaluated prompt. */ separator?: string | undefined; strategy?: Strategy | undefined; seed?: number | undefined; }; /** @internal */ export const Strategy$inboundSchema: z.ZodNativeEnum = z .nativeEnum(Strategy); /** @internal */ export const Strategy$outboundSchema: z.ZodNativeEnum = Strategy$inboundSchema; /** @internal */ export const EvalFewshotConfig$inboundSchema: z.ZodType< EvalFewshotConfig, z.ZodTypeDef, unknown > = z.object({ count: z.number().int().default(0), dataset: EvalDataset$inboundSchema.optional(), prompt_template: z.string().optional(), target_template: z.string().optional(), example_template: z.string().default("{{prompt}}\n{{target}}"), separator: z.string().default("\n\n"), strategy: Strategy$inboundSchema.default("first"), seed: z.number().int().default(0), }).transform((v) => { return remap$(v, { "prompt_template": "promptTemplate", "target_template": "targetTemplate", "example_template": "exampleTemplate", }); }); /** @internal */ export type EvalFewshotConfig$Outbound = { count: number; dataset?: EvalDataset$Outbound | undefined; prompt_template?: string | undefined; target_template?: string | undefined; example_template: string; separator: string; strategy: string; seed: number; }; /** @internal */ export const EvalFewshotConfig$outboundSchema: z.ZodType< EvalFewshotConfig$Outbound, z.ZodTypeDef, EvalFewshotConfig > = z.object({ count: z.number().int().default(0), dataset: EvalDataset$outboundSchema.optional(), promptTemplate: z.string().optional(), targetTemplate: z.string().optional(), exampleTemplate: z.string().default("{{prompt}}\n{{target}}"), separator: z.string().default("\n\n"), strategy: Strategy$outboundSchema.default("first"), seed: z.number().int().default(0), }).transform((v) => { return remap$(v, { promptTemplate: "prompt_template", targetTemplate: "target_template", exampleTemplate: "example_template", }); }); export function evalFewshotConfigToJSON( evalFewshotConfig: EvalFewshotConfig, ): string { return JSON.stringify( EvalFewshotConfig$outboundSchema.parse(evalFewshotConfig), ); } export function evalFewshotConfigFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => EvalFewshotConfig$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'EvalFewshotConfig' from JSON`, ); }