feat: Enhance category suggestion logic with improved matching rules and disambiguation guidelines
Test Suite / test (24.15.0) (push) Has been cancelled

This commit is contained in:
Nils-Johan Gynther
2026-05-11 10:35:30 +02:00
parent 56050a896b
commit c63afad672
+14 -5
View File
@@ -160,22 +160,31 @@ Regler:
Tillgängliga kategorier (format: [id] Sökväg):
${categoryList}
KWICK-MATCHNING (gör detta först):
PRIORITERINGSORDNING (måste följas):
1. Regelmatch (keyword + sortlexikon)
2. Synonym/semantisk match inom livsmedelsdomän
3. Fallback enligt regler nedan
SNABBMATCHNING (gör detta först):
- Kött/fläsk: Sök efter ord som "fläsk", "flaskytterfile", "bacon", "kotlett", "karré" → Kött, chark & fågel > Fläsk
- Fågel: Sök efter "kyckling", "kalkon", "drumstick", "filé" → Kött, chark & fågel > Fågel
- Äpplen/fruktsorter: Sök efter "äpple", "apple", "granny smith", "pink lady", "royal gala", "golden delicious", "jonagold", "fuji" → Frukt & Grönt > Frukt > Äpplen (eller Frukt om Äpplen saknas)
- Äpplen/fruktsorter: Sök efter "äpple", "apple", "granny smith", "pink lady", "royal gala", "golden delicious", "jonagold", "fuji", "braeburn", "aroma", "red moon" → Frukt & Grönt > Frukt > Äpplen (eller Frukt om Äpplen saknas)
- Choklad/spreads: Sök efter "nutella", "choklad", "kakao", "spreads" → Sötsaker & snacks > Choklad & spreads
- Bröd: Sök efter "bröd", "toast", "brödrost", "limpa" → Bröd & bakvaror > Bröd
DISAMBIGUERING:
- Om ett ord kan vara både varumärke och livsmedelssort, välj livsmedelstolkning ENDAST om ordet finns i sort/keyword-reglerna eller tydligt matchar kategoriträdet.
- Om ingen tydlig livsmedelsmatch finns, gå till fallback istället för att gissa aggressivt.
Regler:
1. Använd KEYWORD-MATCHNING först innan annat.
1. Använd SNABBMATCHNING först innan annat.
2. Om ingen keyword-match, välj den mest specifika underkategorin som passar.
3. Om ingen specifik kategori passar, välj en underkategori under "Övrigt" om möjligt.
4. Om ingen underkategori under "Övrigt" passar, välj "Övrigt" (den kategori vars sökväg är exakt "Övrigt").
5. Du MÅSTE alltid returnera ett svar — aldrig null eller tomt.
6. Svara ENDAST med giltig JSON i detta format: { "categoryId": <nummer>, "confidence": "high" | "medium" | "low" }
- "high": keyword-match ELLER uppenbart matchande kategori
- "medium": trolig matchning
- "high": regelmatch (keyword/sort) ELLER uppenbart exakt kategoriträff
- "medium": trolig semantisk matchning inom livsmedelsdomän
- "low": osäker, används fallback (Övrigt eller underkategori till Övrigt)`;
const userPrompt = `Produkt: "${productName}"`;