diff --git a/src/Knowledge/Retrieval/NdjsonHybridRetriever.php b/src/Knowledge/Retrieval/NdjsonHybridRetriever.php
index c0cd6bb..2f0bf6c 100644
--- a/src/Knowledge/Retrieval/NdjsonHybridRetriever.php
+++ b/src/Knowledge/Retrieval/NdjsonHybridRetriever.php
@@ -16,7 +16,7 @@ use App\Vector\VectorSearchClient;
final class NdjsonHybridRetriever implements RetrieverInterface
{
- private const VECTOR_SCORE_THRESHOLD = 0.72;
+ private const VECTOR_SCORE_THRESHOLD = 0.82;
// Guardrails
private const HARD_MAX_CHUNKS = 90;
@@ -45,7 +45,8 @@ final class NdjsonHybridRetriever implements RetrieverInterface
private readonly CatalogIntentLite $catalogIntent,
private readonly IntentRouteResolver $routeResolver,
private readonly EntityCatalogService $entityCatalogService
- ) {
+ )
+ {
}
// =========================================================
@@ -123,9 +124,9 @@ final class NdjsonHybridRetriever implements RetrieverInterface
* text:string
* }>
*/
- public function retrieveDebug(string $prompt): array
+ public function retrieveDebug(string $prompt, ?ModelGenerationConfig $config = null): array
{
- $config = $this->configRepository->findActiveForModel();
+ $config = $config ?? $this->configRepository->findActiveForModel();
if ($config === null) {
throw new \RuntimeException('No active ModelGenerationConfig found.');
@@ -193,11 +194,12 @@ final class NdjsonHybridRetriever implements RetrieverInterface
* }
*/
private function runCore(
- string $prompt,
+ string $prompt,
ModelGenerationConfig $config,
- bool $withScores,
- string $salesIntent
- ): array {
+ bool $withScores,
+ string $salesIntent
+ ): array
+ {
$limit = max(1, min($config->getRetrievalMaxChunks(), self::HARD_MAX_CHUNKS));
$vectorTopKBase = max(1, min($config->getRetrievalVectorTopK(), self::HARD_MAX_VECTORK));
@@ -338,9 +340,10 @@ final class NdjsonHybridRetriever implements RetrieverInterface
array $globalHits,
array $scopedHits,
float $threshold,
- bool $boostScoped,
- bool $captureRaw
- ): array {
+ bool $boostScoped,
+ bool $captureRaw
+ ): array
+ {
$rrfScores = [];
$rawScores = [];
diff --git a/src/Service/Admin/ModelGenerationConfigAdminService.php b/src/Service/Admin/ModelGenerationConfigAdminService.php
index 802b9f2..7b446f3 100644
--- a/src/Service/Admin/ModelGenerationConfigAdminService.php
+++ b/src/Service/Admin/ModelGenerationConfigAdminService.php
@@ -74,7 +74,7 @@ final class ModelGenerationConfigAdminService
return [];
}
- return $this->retriever->retrieveDebug($prompt);
+ return $this->retriever->retrieveDebug($prompt,$config);
}
private function requireString(mixed $value, string $field): string
diff --git a/templates/admin/model_config/test_retrieval.html.twig b/templates/admin/model_config/test_retrieval.html.twig
index dd88bd0..1d2b210 100644
--- a/templates/admin/model_config/test_retrieval.html.twig
+++ b/templates/admin/model_config/test_retrieval.html.twig
@@ -89,10 +89,11 @@
href="{{ path('admin_document_show', { id: chunk.document_id }) }}">
{{ chunk.document_id }}
|
- raw_score: {{ chunk.raw_score|number_format(6, '.', '') }}
- |
rrf_score: {{ chunk.rrf_score|number_format(6, '.', '') }}
|
+ raw_score: {{ chunk.raw_score|number_format(6, '.', '') }}
+ |
+
threshold: {{ chunk.threshold }} |
intent: {{ chunk.intent }} |