ベクトルデータベースは、高次元データの効率的な類似性検索とインデックス作成を可能にします。ベクトルデータベースは、データポイントがしばしば高次元ベクトルとして表されることが多い機械学習アプリケーションに特に役立ちます。これらのデータベースを使用すると、ユーザーはデータポイントの埋め込みに基づいて類似性検索を実行でき、コンテンツや機能に基づいて関連情報を簡単に見つけることができます。
この試験プロジェクトでは、Weaviateをベクトルデータベースとして使用し、OpenaiのEmbedder( text-embedding-ada-002-v2 )との統合を使用して、データセットのベクトルを作成および保存しました。データセットの例として、私は彼らのウェブサイト(4000以上の企業)からすべてのyコンビネーターを削り取り、キーデータポイントからベクトルを作成しました(詳細については/examples/y-combinator/schema.jsonを参照)。また、データセットをKaggleにアップロードしました。
2番目の例として、Paul Mooneyが作成したKaggleからLord of the Rings Character Datasetをダウンロードしました。
ルートディレクトリに.envファイルを作成し、変数を追加します:openai_apikeyとdata_path。 data_path変数は、データディレクトリへのパスである必要があります。
OPENAI_APIKEY=XXXXXXXXXXXXXXXXX
DATA_PATH=C:Usersyour-user-namepathtoprojectdata
このコードを使用するには、以下を使用して依存関係をインストールする必要があります。
npm install
データベースを使用するには、データベースのDockerインスタンスをセットアップする必要があります。
docker-compose up -d --build
Weaviate Databaseに入力します(Dockerが実行されていることを確認してください)。 /examplesディレクトリ(現在はy-combinatorおよびlotr-character )で提供されているデータセットの例の1つを使用できます。
populateを実行すると、データセットの例からデータを使用してWeaviateデータベースが作成されます(同じクラスで既存のデータを削除します)。 Yコンビネーターデータセットを入力するためにOpenaiの使用で0.20ドルを支払いました
npm run populate --dataset=<example-name>
成功した場合は、Weaviate GraphQL APIを介してデータを簡単に表示および照会できます。 Apollo GraphQL Sandboxを使用して、データを探索してクエリを実行できます。グラフURL( http://localhost:8080/v1/graphql )を入力するだけです。
さらに楽しみたい場合は、Tensorflowの埋め込みプロジェクターを使用してデータを視覚化できます。 .tsvファイルを取得するには、次のコマンドを使用します( /example/<example-name>フォルダーの内側に配置します):
npm run tsv --dataset=<example-name>
これらをWebサイトにアップロードして、データを視覚化できます。
独自のデータを作成するには、例をフォローしてください。
/examples内に新しいフォルダーを作成します。schema.jsonファイルを作成します。このファイルには、データのスキーマが含まれている必要があります。data.jsonファイルを作成します。このファイルには、データセットのデータが含まれている必要があります。npm run populate --dataset=<your-dataset-name> 、データベースにデータを入力します。