Universal NFT Vector Database
1.0.0
Universal NFT Vectorデータベースは、すべての画像ベースのEthereum NFT(ERC-721)のベクトル化バージョンを保存するためのイニシアチブです。このプロジェクトは、Alchemy API、グラフプロトコル、Pineconeなど、さまざまなテクノロジーを活用してこれを可能にします。私たちの完全なソフトウェアインフラストラクチャは、以下にあります。
以下に、このプロジェクトの一部として主要なパーツ/システムと、システム全体でのユースケースを概説しました。
| システム | 使用事例 |
|---|---|
| 分析ダッシュボード | これは、主にデータベースとタスクキューにデータに関する統計やその他の情報を表示するために使用されるクライアント側アプリケーションのフロントページです。 |
| 検索ページ | 検索ページは、ユーザーがデータベースをクエリして同様のNFTを見つけると同時に、2次元グラフ上の同様のNFTと比較してNFTを視覚化するインタラクティブページです。 |
| グラフプロトコル統合 | グラフプロトコルは、ブロックチェーン上のすべてのNFTコレクション情報を取得するためのクエリレイヤーとして使用されます。 |
| 錬金術API統合 | Alchemy APIは、各NFTコレクションのすべての個々のNFT情報を取得するために使用され、システムに保存されます。 |
| バックエンドサーバー | バックエンドサーバーを使用すると、データと対話し、データベースから情報を取得して、Analyticsダッシュボードに表示できます。 |
| regnety-080画像埋め込み統合 | 画像の埋め込みは、画像の表現を標準化し、ベクトルデータベースに保存する方法として機能します。 |
| APIを検索します | 検索APIを使用すると、ユーザーはソース画像に基づいて同様のNFTのベクトルデータベースを照会できます。最も近いNFTを見つけるために、メトリックとしてコサイン距離を使用します。 |
| 視覚化API | 視覚化APIを使用すると、ユーザーは同様のNFTと比較してソースイメージを視覚化できます。これを実行するために切り捨てられた特異値分解を使用します。 |
| タスクキューワーカーサーバー | タスクキューワーカーサーバーは、システムの水平方向のスケーラビリティを有効にします。これにより、数十万のNFTが最終的に処理されるとキューに座ることができるためです。 |
データベースを修正し、さらに改善するために、このリポジトリへのプルリクエストを常に歓迎します。
システムをローカルにセットアップするために利用可能なセットアップスクリプト( setup.sh )を提供しました。これはWSLとubuntuでのみテストされているため、お客様の責任で使用してください。セットアップスクリプトを実行する前に、次のインストールを確認してください。
また、このプロジェクトに環境ファイルを追加する必要があります。 .envファイルを備えたディレクトリ:
python_server/src/client/celery_queue/benchmarks/ .envファイルごとに.env.exampleを提供しました。また、ドップラーを統一された秘密管理ソフトウェアとして使用しているため、 doppler.exampleを提供して、他の環境変数を確認します。
次に、このプロジェクトをセットアップします。
sudo chmod +x ./setup.sh
sudo ./setup.sh
または、このプロジェクトを手動でセットアップするには:
clientフォルダーに移動し、npmすべての依存関係をインストールします。 cd client
npm install
python_server/srcフォルダーに移動し、python仮想環境フォルダーを作成します。次に、すべての依存関係をインストールします。 cd python_server/src
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
celery_queue/フォルダーに移動し、Python仮想環境フォルダーを作成します。次に、すべての依存関係をインストールします。 cd celery_queue
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
sudo chmod +x ./run.sh
sudo ./run.sh
npm start --prefix client/
cd python_server/src
source venv/bin/activate
python app.py
cd celery_queue
source venv/bin/activate
celery -A tasks worker