model.ts 800 B

123456789101112131415161718192021222324252627282930
  1. import { z } from "zod"
  2. export namespace ZenModel {
  3. const ModelCostSchema = z.object({
  4. input: z.number(),
  5. output: z.number(),
  6. cacheRead: z.number().optional(),
  7. cacheWrite5m: z.number().optional(),
  8. cacheWrite1h: z.number().optional(),
  9. })
  10. export const ModelSchema = z.object({
  11. cost: ModelCostSchema,
  12. cost200K: ModelCostSchema.optional(),
  13. allowAnonymous: z.boolean().optional(),
  14. providers: z.array(
  15. z.object({
  16. id: z.string(),
  17. api: z.string(),
  18. apiKey: z.string(),
  19. model: z.string(),
  20. weight: z.number().optional(),
  21. headerMappings: z.record(z.string(), z.string()).optional(),
  22. disabled: z.boolean().optional(),
  23. }),
  24. ),
  25. })
  26. export const ModelsSchema = z.record(z.string(), ModelSchema)
  27. }