Universal NFT Vector Database
1.0.0
通用NFT矢量數據庫是一項計劃,旨在存儲每個基於圖像的以太坊NFT(ERC-721)的矢量化版本。該項目利用各種技術來使其成為可能,包括Alchemy API,圖形協議和Pinecone。我們完整的軟件基礎架構可以在下面找到:
下面,我們概述了主要零件/系統作為該項目的一部分及其在整個系統中的用例。
| 系統 | 用例 |
|---|---|
| 分析儀表板 | 這是我們客戶端應用程序的首頁,主要用於顯示數據庫和任務隊列中有關數據的統計信息和其他信息。 |
| 搜索頁面 | 搜索頁面是一個交互式頁面,供用戶查詢數據庫並找到類似的NFT,同時還可以在二維圖上可視化其NFT。 |
| 圖協議集成 | 圖形協議用作查詢層,以獲取區塊鏈上的所有NFT收集信息。 |
| 煉金術API集成 | 煉金術API用於獲取每個NFT集合的所有單個NFT信息,然後將其存儲在我們的系統中。 |
| 後端服務器 | 我們的後端服務器允許我們與數據進行交互並從數據庫中獲取信息以在分析儀表板上顯示。 |
| regnety-080圖像嵌入集成 | 圖像嵌入是標準化圖像表示並將其存儲在矢量數據庫中的一種方式。 |
| 搜索API | 搜索API允許用戶根據源圖像查詢Vector數據庫中的類似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端文件夾,並安裝所有依賴項: 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