summaryrefslogtreecommitdiffhomepage
path: root/packages/console/core/src/model.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/console/core/src/model.ts')
-rw-r--r--packages/console/core/src/model.ts30
1 files changed, 30 insertions, 0 deletions
diff --git a/packages/console/core/src/model.ts b/packages/console/core/src/model.ts
new file mode 100644
index 000000000..028d94655
--- /dev/null
+++ b/packages/console/core/src/model.ts
@@ -0,0 +1,30 @@
+import { z } from "zod"
+
+export namespace ZenModel {
+ const ModelCostSchema = z.object({
+ input: z.number(),
+ output: z.number(),
+ cacheRead: z.number().optional(),
+ cacheWrite5m: z.number().optional(),
+ cacheWrite1h: z.number().optional(),
+ })
+
+ export const ModelSchema = z.object({
+ cost: ModelCostSchema,
+ cost200K: ModelCostSchema.optional(),
+ allowAnonymous: z.boolean().optional(),
+ providers: z.array(
+ z.object({
+ id: z.string(),
+ api: z.string(),
+ apiKey: z.string(),
+ model: z.string(),
+ weight: z.number().optional(),
+ headerMappings: z.record(z.string(), z.string()).optional(),
+ disabled: z.boolean().optional(),
+ }),
+ ),
+ })
+
+ export const ModelsSchema = z.record(z.string(), ModelSchema)
+}