Verwendungsfall von Ähnlichkeitsempfehlungen für Lebensmittelprodukte mit Chroma -Vektor -Datenbank basierend auf offenen Lebensmittelfakten.

Rund 10.000 Produkte werden mit der Open Food Fakten -API abgerufen, aber einige Produkte haben keine Informationen. Nach der Verarbeitung haben wir rund 4.300 Produkte. Jedes Produkt verfügt über eine eindeutige Kennung, einen Namen, eine Bild -URL und den Prozentsatz der Zutaten. Es gibt über 1.500 indexierte Vektoren, wobei jeder Vektor den Prozentsatz einer Zutat im gesamten Lebensmittel (wie Zucker, Öl, Wasser usw.) darstellt.
Führen Sie den folgenden Befehl aus, um die Generierung von Datensätzen zu initiieren:
npm run data-mining Die Migration exportiert Produktdatensätze ( products.json ) in lokale Chroma -Datenbank.
Um die Migration zu starten, rennen Sie:
npm run migration Um eine Abfrage in die Vektor -Datenbank durchzuführen, müssen Sie Vektoren aus Produktdaten generieren.
Zunächst nennen wir die Open Food -Fakten -Produkt -API. Anschließend generieren wir Vektoren zum Einbettung ( likeliest_recipes.json ) und verwenden sie, um eine Anfrage an die Datenbank zu stellen.
Wenn eine Abfrage in der Chroma -Datenbank durchgeführt wird, werden ähnliche Produkte unter Verwendung der Squared L2 Norm Vektor Norm ermittelt:

Andere Vektornormen sind ebenfalls verfügbar, wie das Inner product oder Cosine similarity , weitere Details zu Chroma und HNSWLIB.
npm cidocker run -p 8000:8000 chromadb/chroma:0.4.213017620429484 : https://world.openfoodfacts.org/product/3017620429484/nutella-hazelnut-spead-ferrero)) node ./query.js product=3017620429484Alle Datensätze wurden mit der Open Food Facts API extrahiert. Spenden Sie an Open Food Facts Project
Dieses Projekt ist mit GNU AGPL V3 -Lizenz lizenziert.
Weitere Informationen finden Sie unter Lizenz.