fix shop research intent fix 3
This commit is contained in:
@@ -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[]}
|
||||
|
||||
Reference in New Issue
Block a user