optimize ui

add new ki endpoint params
This commit is contained in:
team2
2026-02-17 20:36:47 +01:00
parent 5b2a633a99
commit 6822c8f3f8
23 changed files with 1915 additions and 608 deletions

View File

@@ -0,0 +1,103 @@
<?php
declare(strict_types=1);
namespace App\Controller\Admin;
use App\Entity\ModelGenerationConfig;
use App\Repository\ModelGenerationConfigRepository;
use App\Service\ModelGenerationConfigManager;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
#[Route('/admin/model-config')]
class ModelGenerationConfigController extends AbstractController
{
#[Route('/', name: 'admin_model_config_list')]
public function list(ModelGenerationConfigRepository $repository): Response
{
$this->denyAccessUnlessGranted('ROLE_KNOWLEDGE_ADMIN');
$configs = $repository->findBy([], ['modelName' => 'ASC', 'version' => 'DESC']);
return $this->render('admin/model_config/list.html.twig', [
'configs' => $configs,
]);
}
#[Route('/create', name: 'admin_model_config_create')]
public function create(
Request $request,
EntityManagerInterface $em,
ModelGenerationConfigRepository $repository
): Response {
$this->denyAccessUnlessGranted('ROLE_SUPER_ADMIN');
if ($request->isMethod('POST')) {
$modelName = $request->request->get('model_name');
$version = $repository->findNextVersion($modelName);
$config = new ModelGenerationConfig(
modelName: $modelName,
version: $version,
stream: (bool)$request->request->get('stream'),
temperature: (float)$request->request->get('temperature'),
topK: (int)$request->request->get('top_k'),
topP: (float)$request->request->get('top_p'),
repeatPenalty: (float)$request->request->get('repeat_penalty'),
numCtx: (int)$request->request->get('num_ctx'),
active: false
);
$em->persist($config);
$em->flush();
return $this->redirectToRoute('admin_model_config_list');
}
return $this->render('admin/model_config/create.html.twig');
}
#[Route('/{id}/activate', name: 'admin_model_config_activate')]
public function activate(
ModelGenerationConfig $config,
ModelGenerationConfigManager $manager
): Response {
$this->denyAccessUnlessGranted('ROLE_SUPER_ADMIN');
$manager->activate($config);
return $this->redirectToRoute('admin_model_config_list');
}
#[Route('/{id}/delete', name: 'admin_model_config_delete', methods: ['POST'])]
public function delete(
ModelGenerationConfig $config,
Request $request,
EntityManagerInterface $em
): Response {
$this->denyAccessUnlessGranted('ROLE_SUPER_ADMIN');
if ($config->isActive()) {
$this->addFlash('danger', 'Aktive Konfiguration kann nicht gelöscht werden.');
return $this->redirectToRoute('admin_model_config_list');
}
if (!$this->isCsrfTokenValid('delete_model_config_'.$config->getId(), $request->request->get('_token'))) {
throw $this->createAccessDeniedException('Invalid CSRF token.');
}
$em->remove($config);
$em->flush();
$this->addFlash('success', 'Konfiguration gelöscht.');
return $this->redirectToRoute('admin_model_config_list');
}
}

View File

@@ -32,4 +32,5 @@ final class SystemAgentController extends AbstractController
'debugCount'=>count($ndjsonPage['items'])
]);
}
}