Eine Vektordatenbank ermöglicht eine effiziente Ähnlichkeitssuche und Indizierung hochdimensionaler Daten. Vektordatenbanken sind besonders nützlich für Anwendungen für maschinelles Lernen, bei denen Datenpunkte häufig als hochdimensionale Vektoren dargestellt werden. Diese Datenbanken ermöglichen es Benutzern, Ähnlichkeitssuche basierend auf den Einbetten der Datenpunkte durchzuführen, sodass relevante Informationen basierend auf Inhalten oder Funktionen ermittelt werden können.
In diesem Beispielprojekt habe ich Weaviate als Vektordatenbank und ihre Integration in OpenAIs Einbettder ( text-embedding-ada-002-v2 ) verwendet, um Vektoren eines Datensatzes zu erstellen und zu retten. Als Beispiel-Datensatz habe ich den gesamten Y-Kombinator von ihrer Website (4000+ Unternehmen) abgekratzt und Vektoren aus den wichtigsten Datenpunkten erstellt (siehe /examples/y-combinator/schema.json für weitere Details). Ich habe auch den Datensatz auf Kaggle hochgeladen.
Als zweites Beispiel habe ich einen Lord of the Rings -Charakter -Datensatz von Kaggle heruntergeladen, der von Paul Mooney erstellt wurde.
Erstellen Sie eine .env -Datei im Stammverzeichnis und fügen Sie die Variablen hinzu: openai_apikey und data_path. Die Variable data_path sollte der Pfad zum Datenverzeichnis sein:
OPENAI_APIKEY=XXXXXXXXXXXXXXXXX
DATA_PATH=C:Usersyour-user-namepathtoprojectdata
Um diesen Code zu verwenden, müssen Sie die Abhängigkeiten verwenden, indem Sie:
npm install
Um Datenbank zu verwenden, müssen Sie eine Docker -Instanz der Datenbank einrichten.
docker-compose up -d --build
Füllen Sie die Weaviate -Datenbank (stellen Sie sicher, dass Docker ausgeführt wird). Sie können eines der Beispieldatensätze verwenden, die im Verzeichnis /examples (derzeit y-combinator und lotr-character ) angegeben sind.
Ausführen populate erstellt eine Wea -Datenbank mit den Daten aus dem Beispieldatensatz (und entfernen Sie alle vorhandenen Daten mit derselben Klasse). Ich habe ~ $ 0,20 in OpenAI -Nutzung bezahlt, um den Y -Kombinator -Datensatz zu bevölkern
npm run populate --dataset=<example-name>
Wenn Sie erfolgreich sind, können Sie Ihre Daten leicht über die Weaviate GraphQL -API anzeigen und abfragen. Sie können die Apollo GraphQL Sandbox verwenden, um die Daten zu untersuchen und Abfragen auszuführen. Geben Sie einfach die Grafik -URL ein ( http://localhost:8080/v1/graphql ).
Wenn Sie einen zusätzlichen Spaß haben möchten, können Sie den Einbettungsprojektor von TensorFlow verwenden, um Ihre Daten zu visualisieren. Um die erforderlichen /example/<example-name>
npm run tsv --dataset=<example-name>
Diese können auf die Website hochgeladen werden, um Ihre Daten zu visualisieren.
Um Ihre eigenen Daten zu erstellen, folgen Sie den Beispielen:
/examples mit dem Namen Ihres Datensatzes.schema.json -Datei im Stammverschluss Ihres Datensatzordners. Diese Datei sollte das Schema Ihrer Daten enthalten.data.json im Root Ihres Datensatzordners. Diese Datei sollte die Daten Ihres Datensatzes enthalten.npm run populate --dataset=<your-dataset-name> .