22 lines
671 B
TypeScript
22 lines
671 B
TypeScript
import { z } from "zod";
|
|
|
|
export const modelCapabilitySchema = z.object({
|
|
structuredOutputs: z.boolean().default(false),
|
|
jsonMode: z.boolean().default(false)
|
|
});
|
|
|
|
export const modelProfileSchema = z.object({
|
|
name: z.string().min(1),
|
|
provider: z.string().min(1),
|
|
apiBase: z.string().url(),
|
|
apiKeyRef: z.string().min(1),
|
|
model: z.string().min(1),
|
|
temperature: z.number().min(0).max(2).optional(),
|
|
maxTokens: z.number().int().positive().optional(),
|
|
timeoutMs: z.number().int().positive().optional(),
|
|
capabilities: modelCapabilitySchema,
|
|
tags: z.array(z.string().min(1)).default([])
|
|
});
|
|
|
|
export type ModelProfile = z.infer<typeof modelProfileSchema>;
|