patch 18
This commit is contained in:
@@ -354,7 +354,8 @@ final readonly class AgentRunner
|
||||
isCommerceIntent: true,
|
||||
shopSearchAttempted: $shopSearchAttempted,
|
||||
hasShopResults: $shopResults !== [],
|
||||
shopSearchHadSystemFailure: $primaryShopSearchHadSystemFailure
|
||||
shopSearchHadSystemFailure: $primaryShopSearchHadSystemFailure,
|
||||
knowledgeEvidenceState: $knowledgeEvidenceState
|
||||
)
|
||||
),
|
||||
'meta'
|
||||
@@ -419,7 +420,8 @@ final readonly class AgentRunner
|
||||
isCommerceIntent: $this->isCommerceIntent($commerceIntent),
|
||||
shopSearchAttempted: $shopSearchAttempted,
|
||||
hasShopResults: $shopResults !== [],
|
||||
shopSearchHadSystemFailure: $primaryShopSearchHadSystemFailure
|
||||
shopSearchHadSystemFailure: $primaryShopSearchHadSystemFailure,
|
||||
knowledgeEvidenceState: $knowledgeEvidenceState
|
||||
)
|
||||
),
|
||||
'meta'
|
||||
@@ -458,7 +460,8 @@ final readonly class AgentRunner
|
||||
isCommerceIntent: $this->isCommerceIntent($commerceIntent),
|
||||
shopSearchAttempted: $shopSearchAttempted,
|
||||
hasShopResults: $shopResults !== [],
|
||||
shopSearchHadSystemFailure: $primaryShopSearchHadSystemFailure
|
||||
shopSearchHadSystemFailure: $primaryShopSearchHadSystemFailure,
|
||||
knowledgeEvidenceState: $knowledgeEvidenceState
|
||||
),
|
||||
completed: true
|
||||
),
|
||||
@@ -1652,12 +1655,20 @@ final readonly class AgentRunner
|
||||
}
|
||||
|
||||
$haystack = $this->normalizeRagEvidenceText(implode("\n\n", array_map('strval', $knowledgeChunks)));
|
||||
$isAggregateQuery = $this->isAggregateRagEvidenceQuery($prompt);
|
||||
|
||||
if (
|
||||
$this->isAggregateRagEvidenceQuery($prompt)
|
||||
$isAggregateQuery
|
||||
&& !$this->containsAnyRagEvidencePattern($haystack, $this->agentRunnerConfig->getRagEvidenceAggregateAnswerEvidencePatterns())
|
||||
) {
|
||||
return 'aggregate_missing';
|
||||
}
|
||||
|
||||
if (
|
||||
$isAggregateQuery
|
||||
&& !$this->containsAnyRagEvidenceTerm($haystack, $this->agentRunnerConfig->getRagEvidenceAggregateEvidenceTerms())
|
||||
) {
|
||||
return 'weak';
|
||||
return 'aggregate_missing';
|
||||
}
|
||||
|
||||
foreach ($needles as $needleGroup) {
|
||||
@@ -1680,6 +1691,7 @@ final readonly class AgentRunner
|
||||
{
|
||||
return match ($knowledgeEvidenceState) {
|
||||
'direct' => 'fachlich belegt',
|
||||
'aggregate_missing' => 'geprüfte Quellen, keine passende Zählinformation',
|
||||
'weak' => 'RAG-Näherungstreffer, kein direkter Fachbeleg',
|
||||
default => 'noch keine belastbaren Treffer',
|
||||
};
|
||||
@@ -1689,6 +1701,7 @@ final readonly class AgentRunner
|
||||
{
|
||||
return match ($knowledgeEvidenceState) {
|
||||
'direct' => 'fachlich belegt; Shopdaten werden geprüft',
|
||||
'aggregate_missing' => 'geprüfte Quellen ohne Zählinformation; Shopdaten werden geprüft',
|
||||
'weak' => 'RAG-Näherungstreffer; Shopdaten werden geprüft',
|
||||
default => 'Shopdaten werden geprüft',
|
||||
};
|
||||
@@ -1725,6 +1738,20 @@ final readonly class AgentRunner
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string[] $patterns
|
||||
*/
|
||||
private function containsAnyRagEvidencePattern(string $haystack, array $patterns): bool
|
||||
{
|
||||
foreach ($patterns as $pattern) {
|
||||
if (@preg_match($pattern, $haystack) === 1) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<int, string[]>
|
||||
*/
|
||||
@@ -1968,8 +1995,15 @@ final readonly class AgentRunner
|
||||
bool $isCommerceIntent,
|
||||
bool $shopSearchAttempted,
|
||||
bool $hasShopResults,
|
||||
bool $shopSearchHadSystemFailure
|
||||
bool $shopSearchHadSystemFailure,
|
||||
string $knowledgeEvidenceState = 'unknown'
|
||||
): string {
|
||||
if ($knowledgeEvidenceState === 'aggregate_missing' && !$hasShopResults) {
|
||||
return $shopSearchHadSystemFailure
|
||||
? 'geprüfte Quellen ohne Zählinformation; Shopdaten nicht verfügbar'
|
||||
: 'geprüfte Quellen, keine passende Zählinformation';
|
||||
}
|
||||
|
||||
if ($shopSearchHadSystemFailure) {
|
||||
return $hasKnowledge ? 'fachlich belegt; Shopdaten nicht verfügbar' : 'Shopdaten nicht verfügbar';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user