add new configs

This commit is contained in:
team 1
2026-04-15 08:46:26 +02:00
parent 8cac77ed31
commit 1815a42035
18 changed files with 508 additions and 309 deletions

View File

@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Agent;
use App\Commerce\ShopSearchService;
use App\Config\AgentRunnerConfig;
use App\Context\ContextService;
use App\Context\UrlAnalyzer;
use App\Infrastructure\OllamaClient;
@@ -28,6 +29,7 @@ final readonly class AgentRunner
private CommerceIntentLite $commerceIntentLite,
private OllamaClient $ollamaClient,
private LoggerInterface $agentLogger,
private AgentRunnerConfig $agentRunnerConfig,
private bool $debug,
private bool $logPrompt,
private bool $logContext,
@@ -84,30 +86,12 @@ final readonly class AgentRunner
if ($commerceIntent === CommerceIntentLite::PRODUCT_SEARCH || $commerceIntent === CommerceIntentLite::ADVISORY_PRODUCT_SEARCH) {
//PreOptimize swag search query
$promptSwagSearch = '
Erzeuge aus dem folgenden Nutzereingabetext einen kurzen Suchtext für die Shopware-6-Suche.
Regeln:
- Gib nur den finalen Suchtext aus.
- erstelle immer die singular form von den relevanten Suchbegriffen
- Keine Einleitung, keine Erklärung, keine Anführungszeichen.
- Verwende nur die shop relevanten Suchbegriffe für eine Shopsuche aus dem Nutzereingabetext.
- Maximal 6 Suchbegriffe, besser weniger.
- Entferne Füllwörter, Höflichkeitsformen und irrelevante Wörter.
- Erhalte Produktnamen, Marken, Modellnummern und zusammengesetzte Begriffe exakt, wenn sie relevant sind.
- Zahlen, die zu einem Produktnamen oder Modell gehören (zb Indikator 300 oder Testomat 808), müssen erhalten bleiben.
- Trenne die Begriffe nur durch Leerzeichen.
Ausgabeformat:
Keyword1 Keyword2 Keyword3
Nutzereingabetext: ' . $prompt . '
';
$promptSwagSearch = $this->agentRunnerConfig->getShopPrompt($prompt);
//Reset thinkSuppressor
$this->thinkSuppressor->reset();
yield $this->systemMsg("Ich optimere die Shopanfrage...", "think");
yield $this->systemMsg("Ich optimere die Recherche...", "think");
//Call ai for optimized swag query
foreach ($this->ollamaClient->stream($promptSwagSearch) as $swagToken) {
@@ -125,7 +109,7 @@ final readonly class AgentRunner
$swagFullOutPut .= $swagCleanToken;
}
yield $this->systemMsg("Ich rufe Shopdaten ab (type: " . $commerceIntent . ")", "think");
yield $this->systemMsg("Ich rufe Recherchedaten ab (type: " . $commerceIntent . ")", "think");
//Search in swag by ai optimized query
try {