TL; DR : 다른 검색 쿼리를 사용하여 MongoDB Atlas 백엔드와 함께 해킹 된 웹 앱.
응용 프로그램에서 훌륭한 사용자 검색 경험을 제공하는 것은 어려울 수 있지만 그럴 필요는 없습니다.
이 응용 프로그램은 MongoDB에서 사용 가능한 여러 검색 기술을 영화의 운영 데이터 세트에서 결합합니다. MongoDB는 JSON과 같은 구조의 구조화되고 반 구조화 된 데이터에 대한 강력한 트랜잭션 및 분석 기능으로 유명한 매우 인기있는 문서 데이터베이스입니다. 동일한 플랫폼 및 쿼리 언어에 관련성 검색 및 시맨틱 벡터 검색의 추가는 훨씬 복잡하지 않고 매우 쉽고 간단합니다. 벡터 데이터베이스로서 이제 벡터 임베딩 (고차원 벡터)에 텍스트, 이미지 또는 오디오와 같은 구조화되지 않은 데이터를 저장하여 유사한 객체를 쉽게 찾아서 쉽게 찾아 검색 할 수 있습니다.
MongoDB ),Lucene )와 관련된 관련 검색,text-embedding-ada-002 ),clip-ViT-B-32 )을 기반으로 MongoDB Atlas 벡터 검색을 사용한 시맨틱 검색, Atlas Search는 오픈 소스 Lucene 인덱스를 기반으로 관련 검색 및 점수 기능을 허용합니다. 여기에서는 언어 지원 및 오타 수정으로 관련 영화를 검색하는 데 사용합니다. 
각 영화의 텍스트 플롯은 OpenAi의 임베딩 API를 통해 실행되며 text-embedding-ada-002 임베딩은 MongoDB에 저장됩니다. 사용자의 프롬프트는 내장되어 유사한 컨텐츠에 대한 벡터 데이터베이스의 쿼리에 사용됩니다. 입력에서 검색하거나 기존 영화의 플롯에 따라 유사성 검색을 수행 할 수 있습니다. 
각 영화의 포스터 이미지는 clip-ViT-B-32 로 해석됩니다. 이 그림 임베딩은 MongoDB에 저장됩니다. 사용자는 쿼리와 유사한 포스터 이미지가있는 영화를 찾을 수 있습니다. 
문서 구조는 다음과 같이 보입니다. 파란색으로는 작동 데이터가있는 필드, 중첩 된 객체 및 배열이 있습니다. 파란색은 데이터베이스 검색 및 ATLAS 검색 관련 검색으로 쿼리됩니다. 이 프로젝트는 노란색의 필드를 추가합니다 : 영화 포스터의 Base64 표현, Ada Openai 텍스트 임베드 및 클립 이미지 임베딩은 Atlas 벡터 검색으로 쿼리됩니다.

python3 및 pip 필요합니다.
python3 --version
python3 -m ensurepip --upgrade
pip3 install -r requirements.txt
MongoDB Atlas 클러스터가 필요합니다. 이것은 cloud.mongodb.com에서 생성 된 무료 클러스터 일 수 있습니다. 데이터베이스 액세스 및 네트워크 액세스를 통해 데이터베이스에 연결할 수 있습니다. 참고 무료 클러스터에는 크기 및 성능 제한이 있으며 더 많은 데이터가있는 소규모 유료 클러스터에서이를 실행하십시오.
일부 지역 환경 변수를 설정해야합니다. 템플릿은 .env.example 이므로 로컬 .env 파일에 복사 할 수 있습니다.
MDB_CONN=<YOUR MongoDB Atlas connection string>
DB="sample_mflix"
COLL="embedded_movies"
OPENAI_API_KEY=<YOUR OpenAI API key>
MDB 검색 데이터 레포를 복제하십시오.
거기에는 백업에서 복원하거나 임베딩을 현지에서 직접 생성하는 두 가지 옵션이 제공됩니다. 백업에서 복원하는 데 1 분 미만이 걸립니다.
Atlas에서 클러스터보기 Search tab 에서 다음 JSON 구성을 입력하십시오. default 색인 이름을 사용하여 embedded_movies 컬렉션에서 작성하십시오. 이것은 필드에서 동적 텍스트 검색을 가능하게하고 벡터 검색 인덱스를 가능하게하는 마법입니다. 데이터 사본이 필요하지 않습니다 : o
{
"mappings": {
"dynamic": true,
"fields": {
"plot_embedding": {
"dimensions": 1536,
"similarity": "cosine",
"type": "knnVector"
},
"poster_embedding": {
"dimensions": 512,
"similarity": "cosine",
"type": "knnVector"
}
}
}
}
이것은 플라스크 Python3 웹 애플입니다.
이런 플라스크 앱을 시작하십시오
flask --app app run
또는 도우미와 함께 파이썬을 사용하십시오
python app.py
http://localhost:8080 의 웹 앱에 액세스 할 수 있습니다.
당신은 지금 할 수 있습니다 :
ML 및 임베딩 모델을 신뢰하십시오. 이 사진들이 왜 비슷한 지 추측 할 수 있습니까?