This commit is contained in:
team 1
2026-05-12 10:56:50 +02:00
parent feaec9bbaf
commit 6dced1c4df
7 changed files with 1409 additions and 5 deletions

View File

@@ -67,4 +67,45 @@ final class AdminEvalController extends AbstractController
'type' => $type,
]);
}
#[Route('/case/create', name: 'admin_evals_case_create', methods: ['POST'])]
public function createCase(Request $request, EvalAdminService $evals): Response
{
$this->denyAccessUnlessGranted(ApplicationRoles::ROLE_KNOWLEDGE_ADMIN);
if (!$this->isCsrfTokenValid('admin_eval_case_create', (string) $request->request->get('_token'))) {
throw $this->createAccessDeniedException();
}
$type = trim((string) $request->request->get('type', 'retrieval'));
try {
$created = $evals->createCase(
type: $type,
id: (string) $request->request->get('id', ''),
prompt: (string) $request->request->get('prompt', ''),
assertJson: (string) $request->request->get('assert_json', ''),
historyJson: (string) $request->request->get('history_json', ''),
requestContextHint: (string) $request->request->get('request_context_hint', ''),
);
$type = (string) ($created['type'] ?? $type);
$this->addFlash(
'success',
sprintf('Eval-Case "%s" wurde in %s.ndjson gespeichert.', (string) ($created['id'] ?? ''), $type)
);
} catch (\Throwable $e) {
$this->addFlash('danger', $e->getMessage());
}
if (!in_array($type, $evals->supportedTypeNames(), true)) {
$type = 'retrieval';
}
return $this->redirectToRoute('admin_evals_index', [
'type' => $type,
]);
}
}