Van productfeeds naar een verrijkte catalogus.
Een zelfstandig ontwikkeld platform dat product- en voorraadinformatie samenbrengt, afbeeldingen verwerkt en productinformatie verrijkt met LLM’s, vaste validatieregels en menselijke beoordeling.
- FastAPI
- PostgreSQL
- Queues
- S3
- LLM enrichment
Product en verantwoordelijkheid
Zoekplatform voor sneakers dat product- en voorraadinformatie uit verschillende bronnen samenbrengt, zodat gebruikers direct kunnen zien bij welke winkels hun maat beschikbaar is.
Ik ben verantwoordelijk voor het ontwerp en de ontwikkeling van de backend, de beheeromgeving, de dataverwerking en de externe integraties. Daarmee omvat mijn werk zowel het product dat bezoekers gebruiken als de processen waarmee de catalogus wordt opgebouwd en onderhouden.
Architectuur en dataverwerking
Productfeeds uit Feed Panda worden via queues op de achtergrond verwerkt en opgeslagen in PostgreSQL. Via de backoffice kunnen binnenkomende sneakers, productinformatie en releases worden gecontroleerd en beheerd.
Afbeeldingstransformatie als aparte service
Een Python/FastAPI-service met BiRefNet verwijdert automatisch de achtergrond van productafbeeldingen. De service stuurt de bewerkte afbeelding terug naar Sneakerapp, dat het resultaat verder verwerkt en opslaat in S3.
De service gebruikt dezelfde API-interface als de eerdere oplossing, waardoor de bestaande Laravel-integratie grotendeels ongewijzigd kon blijven. Zo kon de beeldbewerking worden vervangen zonder de volledige koppeling opnieuw op te bouwen.
LLM-ondersteunde productverrijking
Voor het aanvullen van binnenkomende productinformatie gebruikt het platform de Responses API met web search en Structured Outputs. Het model levert gestructureerde voorstellen en broninformatie aan. Vaste validatieregels en beoordeling in de beheeromgeving bepalen vervolgens wat verwerkt kan worden.
1. Onderzoek via queues
Het onderzoek wordt op de achtergrond uitgevoerd. Web search ondersteunt het zoeken naar aanvullende productinformatie.
2. Gestructureerde voorstellen
Structured Outputs geeft de resultaten een vast formaat voor verdere verwerking. Een correct formaat maakt de inhoud nog niet automatisch juist.
3. Validatie en conflictdetectie
Eigen regels beoordelen de productidentiteit, de voorgestelde productgegevens en de door het model aangeleverde broninformatie. Conflicten worden gedetecteerd en meegenomen in de beoordeling.
4. Menselijke beoordeling
Resultaten worden in de beheeromgeving beoordeeld voordat wijzigingen definitief worden verwerkt. Modeluitvoer wordt dus niet rechtstreeks als vaststaande productinformatie overgenomen.
Wat de validatielaag controleert
De validatielaag beoordeelt de door het model aangeleverde broninformatie. Niet alle oorspronkelijke bronnen worden onafhankelijk opnieuw geverifieerd. Die grens is belangrijk: een voorstel met bronvermelding kan nog steeds onvolledig of onjuist zijn.
De combinatie van vaste regels, conflictdetectie en menselijke beoordeling maakt onzekerheid onderdeel van het proces. De beheeromgeving blijft het controlepunt voordat voorgestelde wijzigingen definitief worden verwerkt.
Hergebruik en inzicht in kosten
Onderzoeksresultaten worden hergebruikt. Het platform registreert daarnaast token- en kosteninformatie, zodat het verbruik van de LLM-verrijking inzichtelijk is.
Queues, afzonderlijke beeldbewerking en een expliciete beoordelingsstap geven elk onderdeel een eigen verantwoordelijkheid: verwerken, bewerken, voorstellen doen en controleren.