Wanneer mensen praten over het opschalen van e-commerce, richten ze zich op grote technische uitdagingen: gedistribueerd zoeken, realtime voorraad, aanbevelingsmachines en checkout-optimalisatie. Maar daaronder ligt een stiller, hardnekkiger probleem waarmee bijna elke retailer worstelt: attribuutwaarden.
Attributen vormen de ruggengraat van productontdekking. Ze voeden filters, vergelijkingen, zoekrangschikking en aanbevelingslogica. Maar in echte catalogi zijn attribuutwaarden zelden schoon. Ze zijn inconsistent, gedupliceerd, verkeerd geformatteerd of semantisch dubbelzinnig.
Neem iets simpels als Maat. Je zou kunnen zien:
Code
["XL", "Small", "12cm", "Large", "M", "S"]
Of Kleur:
Code
["RAL 3020", "Crimson", "Red", "Dark Red"]
Individueel lijken deze inconsistenties onschuldig. Maar vermenigvuldig ze over meer dan 3 miljoen SKU's, elk met tientallen attributen, en het probleem wordt systemisch. Filters gedragen zich onvoorspelbaar, zoekmachines verliezen relevantie, merchandisers verdrinken in handmatig opruimwerk, en productontdekking wordt langzamer en frustrerender voor klanten.
Dit was de uitdaging waarmee ik werd geconfronteerd als full-stack software engineer bij Zoro, een probleem dat gemakkelijk over het hoofd werd gezien maar elke productpagina beïnvloedde.
Ik wilde geen mysterieuze black box AI die simpelweg dingen sorteert. Systemen als die zijn moeilijk te vertrouwen, debuggen of op te schalen. In plaats daarvan streefde ik naar een pipeline die:
Het resultaat was een hybride AI-pipeline die contextuele redenering van LLM's combineert met duidelijke regels en merchandiser-controles. Het handelt slim wanneer nodig, maar blijft altijd voorspelbaar. Dit is AI met vangrails, geen AI die uit de hand loopt.
Alle attribuutverwerking gebeurt in offline achtergrondtaken, niet in realtime. Dit was geen compromis; het was een strategische architectuurkeuze.
Realtime pipelines klinken aantrekkelijk, maar op e-commerce schaal introduceren ze:
Offline taken gaven ons daarentegen:
Het gescheiden houden van klantgerichte systemen en gegevensverwerkende pipelines is essentieel bij het werken met miljoenen SKU's.
Voordat ik AI op de gegevens toepaste, voerde ik een duidelijke voorverwerkingsstap uit om ruis en verwarring te verwijderen. Deze stap klinkt misschien simpel, maar verbeterde de redenering van de LLM aanzienlijk.
De opschoningspipeline omvatte:
Dit zorgde ervoor dat de LLM schone, duidelijke input ontving, wat essentieel is voor consistente resultaten. Rommel erin, rommel eruit. Op deze schaal kunnen zelfs kleine fouten later tot grotere problemen leiden.
De LLM sorteerde niet alleen alfabetisch waarden. Het redeneerde erover.
De service ontving:
Met deze context kon het model begrijpen:
Het model retourneerde:
Dit laat de pipeline verschillende attribuuttypes afhandelen zonder voor elke categorie regels hard te coderen.
Niet elk attribuut heeft AI nodig.
Sterker nog, veel attributen worden beter afgehandeld door deterministische logica.
Numerieke bereiken, eenheid-gebaseerde waarden en eenvoudige sets profiteren vaak van:
De pipeline detecteerde deze gevallen automatisch en gebruikte deterministische logica ervoor. Dit hield het systeem efficiënt en vermeed onnodige LLM-aanroepen.
Merchandisers hadden nog steeds controle nodig, vooral voor bedrijfsgevoelige attributen.
Dus elke categorie kon worden getagd als:
Dit dual-tag systeem laat mensen de uiteindelijke beslissingen nemen terwijl AI het meeste werk deed. Het bouwde ook vertrouwen op, aangezien merchandisers het model konden overschrijven wanneer nodig zonder de pipeline te breken.
Alle resultaten werden rechtstreeks opgeslagen in een Product MongoDB-database, waardoor de architectuur eenvoudig en gecentraliseerd bleef.
MongoDB werd de enkele operationele opslag voor:
Dit maakte het gemakkelijk om wijzigingen te beoordelen, waarden te overschrijven, categorieën opnieuw te verwerken en te synchroniseren met andere systemen.
Eenmaal gesorteerd, stroomden waarden naar:
Dit zorgde ervoor dat:
Zoeken is waar attribuutsortering het meest zichtbaar is, en waar consistentie het belangrijkst is.
Om dit werkend te krijgen over miljoenen SKU's, ontwierp ik een modulaire pipeline gebouwd rond achtergrondtaken, AI-redenering en zoekintegratie. Het onderstaande architectuurdiagram legt de volledige flow vast:
Deze flow zorgt ervoor dat elke attribuutwaarde, of deze nu door AI is gesorteerd of handmatig is ingesteld, wordt weerspiegeld in zoeken, merchandising en de klantervaring.
Zo werden rommelige waarden getransformeerd:
| Attribuut | Ruwe Waarden | Geordende Output | |----|----|----| | Maat | XL, Small, 12cm, Large, M, S | Small, M, Large, XL, 12cm | | Kleur | RAL 3020, Crimson, Red, Dark Red | Red, Dark Red, Crimson, Red (RAL 3020) | | Materiaal | Steel, Carbon Steel, Stainless, Stainless Steel | Steel, Stainless Steel, Carbon Steel | | Numeriek | 5cm, 12cm, 2cm, 20cm | 2cm, 5cm, 12cm, 20cm |
Deze voorbeelden tonen hoe de pipeline contextuele redenering combineert met duidelijke regels om schone, gemakkelijk te begrijpen reeksen te creëren.
Realtime verwerking zou hebben geïntroduceerd:
Offline taken gaven ons:
De afweging was een kleine vertraging tussen gegevensinname en weergave, maar het voordeel was consistentie op schaal, wat klanten veel meer waarderen.
De resultaten waren significant:
Dit was niet alleen een technische overwinning; het was ook een overwinning voor gebruikerservaring en omzet.
Het sorteren van attribuutwaarden klinkt simpel, maar het wordt een echte uitdaging wanneer je het moet doen voor miljoenen producten.
Door LLM-intelligentie te combineren met duidelijke regels en merchandiser-controle, transformeerde ik een complex, verborgen probleem in een schoon, schaalbaar systeem.
Het is een herinnering dat enkele van de grootste overwinningen voortkomen uit het oplossen van de saaie problemen, degene die gemakkelijk te missen zijn maar op elke productpagina verschijnen.
\n \n \n


