Database Vektor NFT universal adalah inisiatif untuk menyimpan versi vektor dari setiap Ethereum NFT berbasis gambar (ERC-721). Proyek ini memanfaatkan berbagai teknologi untuk memungkinkan hal ini termasuk API Alkimia, Protokol Grafik, dan Pinecone. Infrastruktur perangkat lunak lengkap kami dapat ditemukan di bawah ini:
Di bawah ini kami telah menguraikan bagian/sistem utama sebagai bagian dari proyek ini dan kasus penggunaannya dalam sistem keseluruhan kami.
| Sistem | Gunakan kasing |
|---|---|
| Dasbor Analisis | Ini adalah bagian depan aplikasi sisi klien kami, terutama digunakan untuk menampilkan statistik dan informasi lain mengenai data dalam database dan antrian tugas kami. |
| Halaman pencarian | Halaman pencarian adalah halaman interaktif bagi pengguna untuk menanyakan database dan menemukan NFT serupa sambil juga memvisualisasikan NFT mereka relatif terhadap NFT serupa pada grafik dua dimensi. |
| Integrasi Protokol Grafik | Protokol grafik digunakan sebagai lapisan kueri untuk mendapatkan semua informasi pengumpulan NFT di blockchain. |
| Integrasi API Alkimia | API Alkimia digunakan untuk mendapatkan semua informasi NFT individual untuk setiap koleksi NFT yang kemudian disimpan dalam sistem kami. |
| Server backend | Server backend kami memungkinkan kami untuk berinteraksi dengan data dan mendapatkan informasi dari database kami untuk ditampilkan di dasbor analitik kami. |
| Integrasi penyematan gambar regnety-080 | Embeddings gambar berfungsi sebagai cara untuk membakukan representasi gambar dan menyimpannya dalam database vektor. |
| Cari API | Pencarian API memungkinkan pengguna untuk menanyakan database vektor untuk NFT serupa berdasarkan gambar sumber. Ini menggunakan jarak cosinus sebagai metrik untuk menemukan NFT terdekat. |
| API Visualisasi | API visualisasi memungkinkan pengguna untuk memvisualisasikan gambar sumbernya relatif terhadap NFT yang sama - menggunakan dekomposisi nilai tunggal terpotong untuk melakukan ini. |
| Server Pekerja Antrian Tugas | Server Pekerja Antrian Tugas memungkinkan skalabilitas horizontal untuk sistem karena memungkinkan ratusan ribu NFT untuk duduk dalam antrian karena akhirnya diproses. |
Kami selalu menyambut permintaan tarik ke repositori ini untuk memperbaiki dan lebih lanjut meningkatkan basis data kami.
Kami telah menyediakan skrip pengaturan yang tersedia ( setup.sh ) untuk mengatur sistem secara lokal - ini hanya diuji dengan WSL dan Ubuntu jadi gunakan dengan risiko Anda sendiri. Sebelum menjalankan skrip pengaturan, harap pastikan Anda menginstal berikut:
Anda juga perlu menambahkan file lingkungan untuk proyek ini. Direktori dengan file .env:
python_server/src/client/celery_queue/benchmarks/ Kami telah menyediakan .env.example untuk setiap file .env. Kami juga menyediakan doppler.example Contoh untuk melihat variabel lingkungan apa yang kami miliki karena kami menggunakan Doppler sebagai perangkat lunak manajemen rahasia terpadu kami.
Kemudian, untuk mengatur proyek ini:
sudo chmod +x ./setup.sh
sudo ./setup.sh
Atau, untuk mengatur proyek ini secara manual:
client dan instal NPM semua dependensi: cd client
npm install
python_server/src dan buat folder lingkungan virtual Python. Kemudian instal semua dependensi: cd python_server/src
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
celery_queue/ dan buat folder Lingkungan Virtual Python. Kemudian instal semua dependensi: 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