/** * llmindex.io — CLI: pnpm eval:run --model --domain --n 200 [--k 1] * Author: Simon-Pierre Boucher * Contact: contact@spboucher.ai * License: Proprietary — © Simon-Pierre Boucher, all rights reserved */ import { parseArgs } from 'node:util'; import { prisma } from '@llmindex/db'; import { isDomain } from '@llmindex/scoring'; import '../env'; import { runEvalBatch } from '../eval-runner'; const { values } = parseArgs({ options: { model: { type: 'string' }, domain: { type: 'string' }, n: { type: 'string', default: '200' }, k: { type: 'string', default: '1' }, seed: { type: 'string' }, }, }); async function main(): Promise { if (!values.model || !values.domain) { console.error('Usage: pnpm eval:run --model --domain --n 200 [--k 1] [--seed s]'); process.exit(2); } if (!isDomain(values.domain)) { console.error(`Unknown domain: ${values.domain}`); process.exit(2); } const result = await runEvalBatch({ modelSlug: values.model, domain: values.domain, n: Number(values.n), kSamples: Number(values.k), seed: values.seed, }); console.log(JSON.stringify(result)); } main() .catch((err) => { console.error(String(err)); process.exitCode = 1; }) .finally(() => prisma.$disconnect());