fix shop research intent fix 3

This commit is contained in:
team 1
2026-04-27 17:32:14 +02:00
parent 0f75a9208b
commit 547f2a0177
5 changed files with 64 additions and 9 deletions

View File

@@ -40,10 +40,12 @@ final class CommerceIntentLite
);
}
$hasAdvisoryProductSelectionIntent = $this->hasAdvisoryProductSelectionIntent($prompt);
if (
$this->isTechnicalFactualKnowledgeQuery($prompt)
&& !$this->hasExplicitCommerceIntent($prompt)
&& !$this->hasAdvisoryProductSelectionIntent($prompt)
&& !$hasAdvisoryProductSelectionIntent
) {
return $this->buildDetectionResult(
intent: self::NONE,
@@ -62,6 +64,7 @@ final class CommerceIntentLite
[$score, $signals] = $this->applySizeSignal($prompt, $score, $signals);
[$score, $signals] = $this->applySizeTokenSignal($prompt, $score, $signals);
[$score, $signals] = $this->applyColorSignal($prompt, $score, $signals);
[$score, $signals] = $this->applyAdvisoryProductSelectionSignal($prompt, $score, $signals);
[$score, $signals] = $this->applyAdvisorySignals($prompt, $score, $signals);
$signals = array_values(array_unique($signals));
@@ -107,6 +110,10 @@ final class CommerceIntentLite
*/
private function hasAdvisoryProductSelectionIntent(string $prompt): bool
{
if ($this->matchesAnyPattern($prompt, $this->config->getAdvisoryProductSelectionPatterns())) {
return true;
}
if (!$this->containsConfiguredAdvisorySignal($prompt)) {
return false;
}
@@ -327,6 +334,22 @@ final class CommerceIntentLite
return [$score, $signals];
}
/**
* @param string[] $signals
* @return array{0:int,1:string[]}
*/
private function applyAdvisoryProductSelectionSignal(string $prompt, int $score, array $signals): array
{
if (!$this->matchesAnyPattern($prompt, $this->config->getAdvisoryProductSelectionPatterns())) {
return [$score, $signals];
}
$score += $this->config->getAdvisoryProductSelectionSignalScore();
$signals[] = $this->config->getAdvisoryProductSelectionSignalLabel();
return [$score, $signals];
}
/**
* @param string[] $signals
* @return array{0:int,1:string[]}