MCPcopy Create free account
hub / github.com/antirez/ds4 / main

Function main

ds4_eval.c:4102–4289  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4100 "#", "state", "prompt", "gen", "total", "given", "correct", "test");
4101 for (int i = 0; i < ncases; i++) {
4102 int prompt_tokens = ui->prompt_tokens ? ui->prompt_tokens[i] : 0;
4103 int generated_tokens = ui->generated_tokens ? ui->generated_tokens[i] : 0;
4104 int total_tokens = prompt_tokens + generated_tokens;
4105 const char *given = ui->guess && ui->guess[i][0] ? ui->guess[i] : "-";
4106 printf("%3d %-8s %8d %8d %8d %-8s %-8s %s/%s\n",
4107 i + 1,
4108 report_status_name(ui->status[i]),
4109 prompt_tokens,
4110 generated_tokens,
4111 total_tokens,
4112 given,
4113 ui->cases[i].answer,
4114 ui->cases[i].source,
4115 ui->cases[i].id);
4116 }
4117}
4118
4119int main(int argc, char **argv) {
4120 eval_config cfg = parse_options(argc, argv);
4121 if (cfg.self_test_extractors) return run_extractor_self_tests();
4122 if (cfg.regrade_trace_path) return regrade_trace_file(cfg.regrade_trace_path);
4123
4124 int ncases = (int)(sizeof(eval_cases) / sizeof(eval_cases[0]));
4125 if (cfg.question_limit > 0 && cfg.question_limit < ncases) ncases = cfg.question_limit;
4126 if (cfg.question_limit > (int)(sizeof(eval_cases) / sizeof(eval_cases[0]))) {
4127 fprintf(stderr, "ds4-eval: only %zu questions are embedded\n",
4128 sizeof(eval_cases) / sizeof(eval_cases[0]));
4129 return 2;
4130 }
4131 int *case_sequence = NULL;
4132 int case_sequence_len = 0;
4133 if (cfg.case_sequence &&
4134 parse_case_sequence(cfg.case_sequence, ncases, &case_sequence, &case_sequence_len) != 0) {
4135 return 2;
4136 }
4137 if (!cfg.seed) {
4138 cfg.seed = (uint64_t)time(NULL) ^
4139 ((uint64_t)getpid() << 32) ^
4140 (uint64_t)clock();
4141 }
4142
4143 FILE *trace = NULL;
4144 if (cfg.trace_path) {
4145 trace = fopen(cfg.trace_path, "w");
4146 if (!trace) {
4147 fprintf(stderr, "ds4-eval: cannot open trace '%s': %s\n",
4148 cfg.trace_path, strerror(errno));
4149 free(case_sequence);
4150 return 2;
4151 }
4152 }
4153
4154 ds4_engine_options opt = {
4155 .model_path = cfg.model_path,
4156 .mtp_path = cfg.mtp_path,
4157 .backend = cfg.backend,
4158 .n_threads = cfg.threads,
4159 .context_size = cfg.ctx_size > 0 ? cfg.ctx_size : 0,

Callers

nothing calls this directly

Calls 15

run_extractor_self_testsFunction · 0.85
regrade_trace_fileFunction · 0.85
parse_case_sequenceFunction · 0.85
ds4_engine_openFunction · 0.85
eval_auto_context_sizeFunction · 0.85
eval_max_prompt_tokensFunction · 0.85
eval_warn_context_budgetFunction · 0.85
ds4_engine_model_nameFunction · 0.85
trace_write_headerFunction · 0.85
ds4_session_createFunction · 0.85

Tested by

no test coverage detected