feat: Enhance category suggestion logic with improved matching rules and disambiguation guidelines
Test Suite / test (24.15.0) (push) Has been cancelled
Test Suite / test (24.15.0) (push) Has been cancelled
This commit is contained in:
@@ -160,22 +160,31 @@ Regler:
|
|||||||
Tillgängliga kategorier (format: [id] Sökväg):
|
Tillgängliga kategorier (format: [id] Sökväg):
|
||||||
${categoryList}
|
${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
|
- 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
|
- 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
|
- 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
|
- 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:
|
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.
|
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.
|
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").
|
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.
|
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" }
|
6. Svara ENDAST med giltig JSON i detta format: { "categoryId": <nummer>, "confidence": "high" | "medium" | "low" }
|
||||||
- "high": keyword-match ELLER uppenbart matchande kategori
|
- "high": regelmatch (keyword/sort) ELLER uppenbart exakt kategoriträff
|
||||||
- "medium": trolig matchning
|
- "medium": trolig semantisk matchning inom livsmedelsdomän
|
||||||
- "low": osäker, används fallback (Övrigt eller underkategori till Övrigt)`;
|
- "low": osäker, används fallback (Övrigt eller underkategori till Övrigt)`;
|
||||||
|
|
||||||
const userPrompt = `Produkt: "${productName}"`;
|
const userPrompt = `Produkt: "${productName}"`;
|
||||||
|
|||||||
Reference in New Issue
Block a user