/* * 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 { EvalDatasetFormat, EvalDatasetFormat$inboundSchema, EvalDatasetFormat$outboundSchema, } from "./evaldatasetformat.js"; /** * Dataset source. Inferred from file_id or path when omitted. */ export const Source = { File: "file", Huggingface: "huggingface", } as const; /** * Dataset source. Inferred from file_id or path when omitted. */ export type Source = ClosedEnum; export type Three = string | Array; /** * Optional Hugging Face data_files value for json/csv/parquet style datasets. */ export type DataFiles = string | Array | { [k: string]: string | Array; }; /** * Dataset backing an eval task. */ export type EvalDataset = { /** * Dataset source. Inferred from file_id or path when omitted. */ source?: Source | undefined; /** * File ID for a JSONL or CSV dataset uploaded with purpose 'evals'. */ fileId?: string | undefined; format?: EvalDatasetFormat | undefined; /** * Hugging Face dataset path, for example facebook/belebele. */ path?: string | undefined; /** * Hugging Face dataset config/name. */ name?: string | undefined; /** * Hugging Face split to load, for example test, train, or validation. */ split?: string | undefined; /** * Optional Hugging Face dataset revision. */ revision?: string | undefined; /** * Optional Hugging Face data_files value for json/csv/parquet style datasets. */ dataFiles?: | string | Array | { [k: string]: string | Array } | undefined; /** * Additional dataset loading kwargs retained for import/parity metadata. */ datasetKwargs?: { [k: string]: any } | undefined; /** * Optional safety cap for remote dataset loading. */ maxRows?: number | undefined; /** * Row column holding the audio input for transcription tasks (e.g. a Hugging Face Audio feature that resolves to a clip URL). Required for transcription tasks. */ audioColumn?: string | undefined; }; /** @internal */ export const Source$inboundSchema: z.ZodNativeEnum = z .nativeEnum(Source); /** @internal */ export const Source$outboundSchema: z.ZodNativeEnum = Source$inboundSchema; /** @internal */ export const Three$inboundSchema: z.ZodType = z .union([z.string(), z.array(z.string())]); /** @internal */ export type Three$Outbound = string | Array; /** @internal */ export const Three$outboundSchema: z.ZodType< Three$Outbound, z.ZodTypeDef, Three > = z.union([z.string(), z.array(z.string())]); export function threeToJSON(three: Three): string { return JSON.stringify(Three$outboundSchema.parse(three)); } export function threeFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => Three$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'Three' from JSON`, ); } /** @internal */ export const DataFiles$inboundSchema: z.ZodType< DataFiles, z.ZodTypeDef, unknown > = z.union([ z.string(), z.array(z.string()), z.record(z.union([z.string(), z.array(z.string())])), ]); /** @internal */ export type DataFiles$Outbound = string | Array | { [k: string]: string | Array; }; /** @internal */ export const DataFiles$outboundSchema: z.ZodType< DataFiles$Outbound, z.ZodTypeDef, DataFiles > = z.union([ z.string(), z.array(z.string()), z.record(z.union([z.string(), z.array(z.string())])), ]); export function dataFilesToJSON(dataFiles: DataFiles): string { return JSON.stringify(DataFiles$outboundSchema.parse(dataFiles)); } export function dataFilesFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => DataFiles$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'DataFiles' from JSON`, ); } /** @internal */ export const EvalDataset$inboundSchema: z.ZodType< EvalDataset, z.ZodTypeDef, unknown > = z.object({ source: Source$inboundSchema.optional(), file_id: z.string().optional(), format: EvalDatasetFormat$inboundSchema.optional(), path: z.string().optional(), name: z.string().optional(), split: z.string().optional(), revision: z.string().optional(), data_files: z.union([ z.string(), z.array(z.string()), z.record(z.union([z.string(), z.array(z.string())])), ]).optional(), dataset_kwargs: z.record(z.any()).optional(), max_rows: z.number().int().optional(), audio_column: z.string().optional(), }).transform((v) => { return remap$(v, { "file_id": "fileId", "data_files": "dataFiles", "dataset_kwargs": "datasetKwargs", "max_rows": "maxRows", "audio_column": "audioColumn", }); }); /** @internal */ export type EvalDataset$Outbound = { source?: string | undefined; file_id?: string | undefined; format?: string | undefined; path?: string | undefined; name?: string | undefined; split?: string | undefined; revision?: string | undefined; data_files?: | string | Array | { [k: string]: string | Array } | undefined; dataset_kwargs?: { [k: string]: any } | undefined; max_rows?: number | undefined; audio_column?: string | undefined; }; /** @internal */ export const EvalDataset$outboundSchema: z.ZodType< EvalDataset$Outbound, z.ZodTypeDef, EvalDataset > = z.object({ source: Source$outboundSchema.optional(), fileId: z.string().optional(), format: EvalDatasetFormat$outboundSchema.optional(), path: z.string().optional(), name: z.string().optional(), split: z.string().optional(), revision: z.string().optional(), dataFiles: z.union([ z.string(), z.array(z.string()), z.record(z.union([z.string(), z.array(z.string())])), ]).optional(), datasetKwargs: z.record(z.any()).optional(), maxRows: z.number().int().optional(), audioColumn: z.string().optional(), }).transform((v) => { return remap$(v, { fileId: "file_id", dataFiles: "data_files", datasetKwargs: "dataset_kwargs", maxRows: "max_rows", audioColumn: "audio_column", }); }); export function evalDatasetToJSON(evalDataset: EvalDataset): string { return JSON.stringify(EvalDataset$outboundSchema.parse(evalDataset)); } export function evalDatasetFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => EvalDataset$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'EvalDataset' from JSON`, ); }