Când oamenii vorbesc despre scalarea comerțului electronic, se concentrează pe provocările de inginerie majore: căutare distribuită, inventar în timp real, motoare de recomandare și optimizarea procesului de finalizare a comenzii. Dar sub toate acestea se află o problemă mai liniștită, mai persistentă, cu care aproape fiecare comerciant se confruntă: valorile atributelor.
Atributele sunt coloana vertebrală a descoperirii produselor. Ele alimentează filtrele, comparațiile, clasificarea căutărilor și logica de recomandare. Dar în cataloagele reale, valorile atributelor sunt rareori curate. Sunt inconsistente, duplicate, formatate greșit sau ambigue semantic.
Luați ceva simplu precum Dimensiune. Ați putea vedea:
Cod
["XL", "Small", "12cm", "Large", "M", "S"]
Sau Culoare:
Cod
["RAL 3020", "Crimson", "Red", "Dark Red"]
Individual, aceste inconsistențe par inofensive. Dar înmulțiți-le pe peste 3 milioane de SKU-uri, fiecare cu zeci de atribute, și problema devine sistemică. Filtrele se comportă imprevizibil, motoarele de căutare pierd relevanța, comercianții se înec în curățarea manuală, iar descoperirea produselor devine mai lentă și mai frustrantă pentru clienți.
Aceasta a fost provocarea cu care m-am confruntat ca inginer software full-stack la Zoro, o problemă ușor de trecut cu vederea, dar care afecta fiecare pagină de produs.
Nu doream un AI misterios de tip cutie neagră care pur și simplu sortează lucrurile. Sistemele de genul acesta sunt greu de avut încredere, de depanat sau de scalat. În schimb, am urmărit o conductă care să fie:
Rezultatul a fost o conductă AI hibridă care combină raționamentul contextual din LLM-uri cu reguli clare și controale pentru comercianți. Acționează inteligent când este necesar, dar rămâne întotdeauna previzibilă. Acesta este AI cu balustrade de protecție, nu AI scăpat de sub control.
Toată procesarea atributelor se întâmplă în taskuri de fundal offline, nu în timp real. Aceasta nu a fost un compromis; a fost o alegere arhitecturală strategică.
Conductele în timp real sună atrăgător, dar la scară de comerț electronic, ele introduc:
Taskurile offline, pe de altă parte, ne-au oferit:
Menținerea sistemelor orientate către clienți separate de conductele de procesare a datelor este esențială atunci când lucrați cu milioane de SKU-uri.
Înainte de a folosi AI pe date, am rulat un pas clar de preprocesare pentru a elimina zgomotul și confuzia. Acest pas poate părea simplu, dar a îmbunătățit considerabil raționamentul LLM-ului.
Conducta de curățare a inclus:
Acest lucru a asigurat că LLM-ul primea input curat și clar, ceea ce este esențial pentru rezultate consistente. Gunoi la intrare, gunoi la ieșire. La această scară, chiar și erorile mici pot duce la probleme mai mari mai târziu.
LLM-ul nu doar sortea valorile alfabetic. Raționează despre ele.
Serviciul primea:
Cu acest context, modelul putea înțelege:
Modelul returna:
Acest lucru permite conductei să gestioneze diferite tipuri de atribute fără a codifica reguli pentru fiecare categorie.
Nu fiecare atribut necesită AI.
De fapt, multe atribute sunt gestionate mai bine prin logică deterministă.
Intervalele numerice, valorile bazate pe unități și seturile simple beneficiază adesea de:
Conducta detecta automat aceste cazuri și folosea logica deterministă pentru ele. Acest lucru a menținut sistemul eficient și a evitat apelurile LLM inutile.
Comercianții aveau încă nevoie de control, în special pentru atributele sensibile din punct de vedere comercial.
Astfel, fiecare categorie putea fi etichetată ca:
Acest sistem cu două etichete permite oamenilor să ia deciziile finale în timp ce AI făcea cea mai mare parte a muncii. De asemenea, a construit încredere, deoarece comercianții puteau suprascrie modelul când era necesar fără a strica conducta.
Toate rezultatele au fost stocate direct într-o bază de date Product MongoDB, menținând arhitectura simplă și centralizată.
MongoDB a devenit singurul depozit operațional pentru:
Acest lucru a făcut ușoară revizuirea modificărilor, suprascrierea valorilor, reprocesarea categoriilor și sincronizarea cu alte sisteme.
Odată sortate, valorile au fost transmise către:
Acest lucru a asigurat că:
Căutarea este locul unde sortarea atributelor este cel mai vizibilă și unde consistența contează cel mai mult.
Pentru a face acest lucru să funcționeze pe milioane de SKU-uri, am proiectat o conductă modulară construită în jurul taskurilor de fundal, raționamentului AI și integrării căutării. Diagrama de arhitectură de mai jos surprinde fluxul complet:
Acest flux asigură că fiecare valoare de atribut, fie sortată de AI sau setată manual, se reflectă în căutare, merchandising și experiența clientului.
Iată cum au fost transformate valorile dezordonate:
| Atribut | Valori brute | Output ordonat | |----|----|----| | Size | XL, Small, 12cm, Large, M, S | Small, M, Large, XL, 12cm | | Color | RAL 3020, Crimson, Red, Dark Red | Red, Dark Red, Crimson, Red (RAL 3020) | | Material | Steel, Carbon Steel, Stainless, Stainless Steel | Steel, Stainless Steel, Carbon Steel | | Numeric | 5cm, 12cm, 2cm, 20cm | 2cm, 5cm, 12cm, 20cm |
Aceste exemple arată cum conducta combină raționamentul contextual cu reguli clare pentru a crea secvențe curate, ușor de înțeles.
Procesarea în timp real ar fi introdus:
Taskurile offline ne-au oferit:
Compromisul a fost o mică întârziere între ingestia datelor și afișare, dar beneficiul a fost consistența la scară, pe care clienții o apreciază mult mai mult.
Rezultatele au fost semnificative:
Aceasta nu a fost doar o victorie tehnică; a fost și o victorie pentru experiența utilizatorului și venituri.
Sortarea valorilor atributelor sună simplu, dar devine o provocare reală când trebuie să o faci pentru milioane de produse.
Combinând inteligența LLM cu reguli clare și controlul comercianților, am transformat o problemă complexă și ascunsă într-un sistem curat și scalabil.
Este o reamintire că unele dintre cele mai mari victorii provin din rezolvarea problemelor plictisitoare, cele care sunt ușor de ratat, dar apar pe fiecare pagină de produs.
\n \n \n


