Universal NFT Vector Database
1.0.0
범용 NFT 벡터 데이터베이스는 모든 이미지 기반 이더 리움 NFT (ERC-721)의 벡터 버전을 저장하는 이니셔티브입니다. 이 프로젝트는 ALCHEMY API, 그래프 프로토콜 및 PENECONE을 포함하여 다양한 기술을 활용합니다. 우리의 전체 소프트웨어 인프라는 다음과 같습니다.
아래에서는이 프로젝트의 일부로 주요 부품/시스템과 전체 시스템의 사용 사례를 설명했습니다.
| 체계 | 유스 케이스 |
|---|---|
| 분석 대시 보드 | 이는 클라이언트 측 응용 프로그램의 전면이며 주로 데이터베이스 및 작업 대기열의 데이터에 관한 통계 및 기타 정보를 표시하는 데 사용됩니다. |
| 검색 페이지 | 검색 페이지는 사용자가 데이터베이스를 쿼리하고 유사한 NFT를 찾는 동시에 2 차원 그래프에서 유사한 NFT에 비해 NFT를 시각화 할 수있는 대화식 페이지입니다. |
| 그래프 프로토콜 통합 | 그래프 프로토콜은 블록 체인에서 모든 NFT 수집 정보를 얻기 위해 쿼리 레이어로 사용됩니다. |
| 연금술 API 통합 | 연금술 API는 각 NFT 컬렉션에 대한 모든 개별 NFT 정보를 얻은 다음 시스템에 저장하는 데 사용됩니다. |
| 백엔드 서버 | 백엔드 서버를 사용하면 데이터와 상호 작용하고 데이터베이스에서 정보를 얻을 수 있으며 분석 대시 보드에 표시 할 수 있습니다. |
| 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 을 제공하여 Doppler를 Unified Secret Management 소프트웨어로 사용하기 때문에 다른 환경 변수를 확인합니다.
그런 다음이 프로젝트를 설정하려면 다음과 같습니다.
sudo chmod +x ./setup.sh
sudo ./setup.sh
또는이 프로젝트를 수동으로 설정하려면 :
client 폴더로 이동하여 NPM 모든 종속성을 설치하십시오. cd client
npm install
python_server/src 폴더로 이동하여 Python Virtual Environment 폴더를 만듭니다. 그런 다음 모든 종속성을 설치하십시오. cd python_server/src
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
celery_queue/ 폴더로 이동하여 Python Virtual Environment 폴더를 만듭니다. 그런 다음 모든 종속성을 설치하십시오. 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