Die Universal NFT Vector-Datenbank ist eine Initiative zum Speichern einer vektorisierten Version jedes bildbasierten Ethereum NFT (ERC-721). Dieses Projekt nutzt eine Vielzahl von Technologie, um dies zu ermöglichen, einschließlich Alchemie -API, dem Graph -Protokoll und Tinecone. Unsere vollständige Software -Infrastruktur finden Sie unten:
Im Folgenden haben wir die wichtigsten Teile/Systeme als Teil dieses Projekts und deren Anwendungsfall in unserem Gesamtsystem beschrieben.
| System | Anwendungsfall |
|---|---|
| Analytics Dashboard | Dies ist die Frontpage unserer Client -Seitenanwendung, die hauptsächlich zur Anzeige von Statistiken und anderen Informationen zu den Daten in unserer Datenbank- und Task -Warteschlange verwendet wird. |
| Suchseite | Die Suchseite ist eine interaktive Seite, auf der Benutzer die Datenbank abfragen und ähnliche NFTs finden und gleichzeitig ihre NFTs in Bezug auf ähnliche NFTs in einem zweidimensionalen Diagramm visualisieren. |
| Graph -Protokollintegration | Das Graph -Protokoll wird als Abfrageschicht verwendet, um alle Informationen zur NFT -Sammlung auf der Blockchain zu erhalten. |
| Alchemie -API -Integration | Die Alchemie -API wird verwendet, um alle einzelnen NFT -Informationen für jede NFT -Sammlung zu erhalten, die dann in unserem System gespeichert wird. |
| Backend Server | Auf unserem Backend -Server können wir mit den Daten interagieren und Informationen aus unseren Datenbanken erhalten, die auf unserem Analytics -Dashboard angezeigt werden. |
| REGNety-080 Bildeinbettintegration | Die Bildeinbettungen dienen dazu, die Darstellung der Bilder zu standardisieren und in einer Vektordatenbank zu speichern. |
| Suchen Sie API | Mit der Such -API können Benutzer die Vektordatenbank für ähnliche NFTs basierend auf einem Quellbild abfragen. Es verwendet Kosinusabstand als Metrik, um die engsten NFTs zu finden. |
| Visualisierungs -API | Mit der Visualisierungs -API können Benutzer ihr Quellbild relativ zu ähnlichen NFTs visualisieren - sie verwendet dazu verkürzte Singularwert -Zersetzung. |
| Task Queue Worker Server | Der Task -Warteschlangen -Arbeiterserver ermöglicht die horizontale Skalierbarkeit für das System, da Hunderttausende von NFTs in einer Warteschlange sitzen können, wenn sie schließlich verarbeitet werden. |
Wir begrüßen Pull -Anfragen an diesem Repository immer, um unsere Datenbank zu beheben und weiter zu verbessern.
Wir haben ein Setup -Skript zur Verfügung gestellt ( setup.sh ), um das System lokal einzurichten - dies wurde nur mit WSL und Ubuntu getestet. Verwenden Sie daher auf eigenes Risiko. Stellen Sie vor dem Ausführen des Setup -Skripts sicher, dass Sie die folgenden Installation haben:
Sie müssen auch eine Umweltdatei für dieses Projekt hinzufügen. Verzeichnisse mit einer .env -Datei:
python_server/src/client/celery_queue/benchmarks/ Wir haben für jede .Env -Datei ein .env.example bereitgestellt. Wir bieten auch einen doppler.example .
Dann, um dieses Projekt einzurichten:
sudo chmod +x ./setup.sh
sudo ./setup.sh
Alternativ so, um dieses Projekt manuell einzurichten:
client -Ordner und zum NPM installieren Sie alle Abhängigkeiten: cd client
npm install
python_server/src und erstellen Sie einen virtuellen Umgebungsordner von Python. Installieren Sie dann alle Abhängigkeiten: cd python_server/src
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
celery_queue/ Ordner und erstellen Sie einen Ordner Virtual Umgebungs in Python. Installieren Sie dann alle Abhängigkeiten: 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