aboutsummaryrefslogtreecommitdiffstats
path: root/tools/compare-models/src/config.ts
diff options
context:
space:
mode:
Diffstat (limited to 'tools/compare-models/src/config.ts')
-rw-r--r--tools/compare-models/src/config.ts34
1 files changed, 34 insertions, 0 deletions
diff --git a/tools/compare-models/src/config.ts b/tools/compare-models/src/config.ts
new file mode 100644
index 00000000..3a2d0d41
--- /dev/null
+++ b/tools/compare-models/src/config.ts
@@ -0,0 +1,34 @@
+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(),
+ OPENAI_SERVICE_TIER: z.enum(["auto", "default", "flex"]).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);