aboutsummaryrefslogtreecommitdiffstats
path: root/tools/compare-models/src/config.ts
blob: 0b5d217f84d6a8bba58a4000cda6fe7f68bad7c7 (plain) (blame)
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
31
32
33
import { z } from "zod";

// Local config schema for compare-models tool
const envSchema = z.object({
  KARAKEEP_API_KEY: z.string().min(1),
  KARAKEEP_SERVER_ADDR: z.string().url(),
  MODEL1_NAME: z.string().min(1),
  MODEL2_NAME: z.string().min(1).optional(),
  OPENAI_API_KEY: z.string().min(1),
  OPENAI_BASE_URL: z.string().url().optional(),
  COMPARISON_MODE: z
    .enum(["model-vs-model", "model-vs-existing"])
    .default("model-vs-model"),
  COMPARE_LIMIT: z
    .string()
    .optional()
    .transform((val) => (val ? parseInt(val, 10) : 10)),
  INFERENCE_CONTEXT_LENGTH: z
    .string()
    .optional()
    .transform((val) => (val ? parseInt(val, 10) : 8000)),
  INFERENCE_MAX_OUTPUT_TOKENS: z
    .string()
    .optional()
    .transform((val) => (val ? parseInt(val, 10) : 2048)),
  INFERENCE_USE_MAX_COMPLETION_TOKENS: z
    .string()
    .optional()
    .transform((val) => val === "true")
    .default("false"),
});

export const config = envSchema.parse(process.env);