remove old files

This commit is contained in:
team2
2026-02-14 08:45:53 +01:00
parent 0657e0585b
commit 993531b268
2 changed files with 0 additions and 122 deletions

View File

@@ -1,35 +0,0 @@
<?php
declare(strict_types=1);
namespace App\Knowledge;
/**
* KeywordMapper
*
* Expands short or ambiguous prompts into richer semantic variants
* before they are passed into retrieval or embedding pipelines.
*
* This is a direct port of prompt_mapping.py.
*/
final class KeywordMapper
{
private array $map = [
'ki' => 'künstliche Intelligenz, AI, Projekte, Modelle, Agenten, ki',
'shop' => 'Shopware, Onlineshop, Webshop, Commerce-System',
'shops' => 'Shopware, Webshops, Verkaufsplattformen',
'agentur' => 'Agentur, Firma, Unternehmen, mitho media',
'api' => 'Schnittstelle, API, Anbindung, Integration',
'plugin' => 'Shopware Plugin, Erweiterung, Modul, Funktion',
];
/**
* Maps a raw prompt to an expanded semantic variant if applicable.
*/
public function map(string $prompt): string
{
$key = mb_strtolower(trim($prompt));
return $this->map[$key] ?? $prompt;
}
}

View File

@@ -1,87 +0,0 @@
<?php
declare(strict_types=1);
namespace App\Knowledge;
/**
* KeywordSimilarity
*
* Deterministic and fault-tolerant comparison of two keywords.
* Returns a similarity score between 0.0 and 1.0.
*
* Design goals:
* - index.json remains unchanged
* - comparison logic is intelligent (typos, phonetics)
* - no alias or synonym lists
* - no LLM dependency
*/
final class KeywordSimilarity
{
/**
* Compare a query token with an index keyword.
*
* @param string $queryToken Token from user input
* @param string $indexKeyword Keyword from index.json
*
* @return float Similarity score (0.0 1.0)
*/
public static function compare(string $queryToken, string $indexKeyword): float
{
$a = self::normalize($queryToken);
$b = self::normalize($indexKeyword);
// Guard: ignore empty or very short tokens
if ($a === '' || $b === '' || mb_strlen($a) < 3 || mb_strlen($b) < 3) {
return 0.0;
}
// 1. Exact match
if ($a === $b) {
return 1.0;
}
// 2. Phonetic comparison (metaphone)
// Useful for: showpare → shopware, shopvare → shopware
if (metaphone($a) === metaphone($b)) {
return 0.85;
}
// 3. Edit distance comparison (only for longer words)
if (mb_strlen($a) >= 6 && mb_strlen($b) >= 6) {
$distance = levenshtein($a, $b);
if ($distance === 1) {
return 0.9;
}
if ($distance === 2) {
return 0.8;
}
}
// No relevant match
return 0.0;
}
/**
* Normalize a keyword to ensure stable comparison.
*/
private static function normalize(string $value): string
{
$value = mb_strtolower(trim($value));
// Remove non-alphanumeric characters
$value = preg_replace('/[^\p{L}\p{N}]/u', '', $value) ?? '';
// Normalize German umlauts
$map = [
'ä' => 'ae',
'ö' => 'oe',
'ü' => 'ue',
'ß' => 'ss',
];
return strtr($value, $map);
}
}