summaryrefslogtreecommitdiffhomepage
path: root/packages/console/core/src/model.ts
blob: 028d94655bdec37478906618ddde82ac24e76010 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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)
}