alpha new hybridretriver line

This commit is contained in:
team2
2026-02-26 07:02:07 +01:00
parent c12ae8b45e
commit df97f9314b
9 changed files with 460 additions and 152 deletions

View File

@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Controller\Admin;
use App\Entity\ModelGenerationConfig;
use App\Knowledge\Retrieval\NdjsonHybridRetriever;
use App\Repository\ModelGenerationConfigRepository;
use App\Service\ModelGenerationConfigManager;
use Doctrine\ORM\EntityManagerInterface;
@@ -21,7 +22,10 @@ class ModelGenerationConfigController extends AbstractController
{
$this->denyAccessUnlessGranted('ROLE_KNOWLEDGE_ADMIN');
$configs = $repository->findBy([], ['active' => 'DESC', 'modelName' => 'ASC', 'version' => 'DESC']);
$configs = $repository->findBy(
[],
['active' => 'DESC', 'modelName' => 'ASC', 'version' => 'DESC']
);
return $this->render('admin/model_config/list.html.twig', [
'configs' => $configs,
@@ -38,20 +42,24 @@ class ModelGenerationConfigController extends AbstractController
if ($request->isMethod('POST')) {
$modelName = $request->request->get('model_name');
$modelName = (string) $request->request->get('model_name');
$version = $repository->findNextVersion($modelName);
$retrievalMaxChunks = (int) $request->request->get('retrieval_max_chunks', 25);
$retrievalVectorTopK = (int) $request->request->get('retrieval_vector_top_k', 25);
$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
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,
retrievalMaxChunks: $retrievalMaxChunks,
retrievalVectorTopK: $retrievalVectorTopK
);
$em->persist($config);
@@ -75,6 +83,32 @@ class ModelGenerationConfigController extends AbstractController
return $this->redirectToRoute('admin_model_config_list');
}
#[Route('/{id}/test-retrieval', name: 'admin_model_config_test_retrieval')]
public function testRetrieval(
ModelGenerationConfig $config,
Request $request,
NdjsonHybridRetriever $retriever
): Response {
$this->denyAccessUnlessGranted('ROLE_KNOWLEDGE_ADMIN');
$results = [];
$prompt = '';
if ($request->isMethod('POST')) {
$prompt = trim((string) $request->request->get('prompt'));
if ($prompt !== '') {
$results = $retriever->retrieveForConfig($prompt, $config);
}
}
return $this->render('admin/model_config/test_retrieval.html.twig', [
'config' => $config,
'results' => $results,
'prompt' => $prompt,
]);
}
#[Route('/{id}/delete', name: 'admin_model_config_delete', methods: ['POST'])]
public function delete(
ModelGenerationConfig $config,
@@ -99,5 +133,4 @@ class ModelGenerationConfigController extends AbstractController
return $this->redirectToRoute('admin_model_config_list');
}
}
}