Универсальная база данных NFT-вектора является инициативой для хранения векторизованной версии каждого на основе изображений Ethereum NFT (ERC-721). Этот проект использует различные технологии, чтобы сделать это возможным, включая API ALCHEMY, протокол графика и PineCone. Наша полная программная инфраструктура можно найти ниже:
Ниже мы обрисовали основные детали/системы как часть этого проекта и их вариант использования в нашей общей системе.
| Система | Вариант использования |
|---|---|
| Аналитическая панель панели | Это передняя страница нашего приложения на стороне клиента, в основном используемой для отображения статистики и другой информации, касающейся данных в нашей базе данных и очереди задач. |
| Поиск страницы | Страница поиска является интерактивной страницей для пользователей, чтобы запросить базу данных и найти аналогичные NFT, а также визуализировать свои NFT относительно аналогичных NFT на двухмерном графике. |
| Интеграция протокола графика | Протокол графика используется в качестве уровня запросов для получения всей информации о сборе NFT на блокчейне. |
| Алхимия API интеграция | API Alchemy используется для получения всей отдельной информации NFT для каждой коллекции NFT, которая затем хранится в нашей системе. |
| Бэкэнд -сервер | Наш бэкэнд -сервер позволяет нам взаимодействовать с данными и получать информацию из наших баз данных для отображения на нашей аналитической панели. |
| Regnety-080 Image Enlceding Integration | Внедрения изображения служат способом стандартизировать представление изображений и хранить их в векторной базе данных. |
| Поиск API | Поиск API позволяет пользователям запросить векторную базу данных для аналогичных NFT на основе исходного изображения. Он использует косинусное расстояние в качестве метрики для поиска ближайших NFT. |
| Визуализация API | API визуализации позволяет пользователям визуализировать свое исходное изображение относительно аналогичных NFT - она использует усеченное разложение единственного значения для этого. |
| Сервер работников работников задач | Сервер в очереди задач обеспечивает горизонтальную масштабируемость для системы, потому что он позволяет сотням тысяч NFT сидеть в очереди, когда они в конечном итоге обрабатываются. |
Мы всегда приветствуем запросы на привлечение в этот репозиторий для исправления и дальнейшего улучшения нашей базы данных.
Мы предоставили доступный сценарий настройки ( setup.sh ) для настройки системы локально - это было протестировано только с помощью WSL и Ubuntu, поэтому используйте свой собственный риск. Перед запуском сценария настройки, пожалуйста, убедитесь, что у вас установлено следующее:
Вам также нужно будет добавить файл Enviornment для этого проекта. Каталоги с файлом .env:
python_server/src/client/celery_queue/benchmarks/ Мы предоставили .env.example для каждого файла .env. Мы также предоставляем 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/ Polder и создайте папку виртуальной среды 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