> 백엔드 개발 > 파이썬 튜토리얼 > Azure Cosmos DB에서 벡터 검색 시작하기

Azure Cosmos DB에서 벡터 검색 시작하기

Susan Sarandon
풀어 주다: 2025-01-26 20:15:09
원래의
339명이 탐색했습니다.

이 자습서에서는 간단한 영화 데이터 세트를 사용하여 NoSQL용 Azure Cosmos DB에서 벡터 검색을 빠르게 구현하는 방법을 보여줍니다. 이 애플리케이션은 Python, TypeScript, .NET 및 Java로 제공되며 설정, 데이터 로드 및 유사성 검색 쿼리에 대한 단계별 지침을 제공합니다.

벡터 데이터베이스는 데이터의 고차원 수학적 표현인 벡터 임베딩을 저장하고 관리하는 데 탁월합니다. 각 차원은 데이터 특성을 반영하며 잠재적으로 수만 개에 달할 수 있습니다. 이 공간에서 벡터의 위치는 그 특성을 나타냅니다. 이 기술은 단어, 구문, 문서, 이미지, 오디오를 포함한 다양한 데이터 유형을 벡터화하여 유사성 검색, 다중 모드 검색, 추천 엔진, 대규모 언어 모델(LLM)과 같은 애플리케이션을 가능하게 합니다.

전제 조건:

  • Azure 구독(또는 무료 Azure 계정 또는 NoSQL용 Azure Cosmos DB의 무료 계층)
  • Azure Cosmos DB for NoSQL 계정.
  • 임베딩 모델이 배포된 text-embedding-ada-002 Azure OpenAI 서비스 리소스입니다(Azure AI Foundry 포털을 통해 액세스 가능). 이 모델은 텍스트 임베딩을 제공합니다.
  • 필요한 프로그래밍 언어 환경(Maven for Java)

NoSQL용 Azure Cosmos DB에서 벡터 데이터베이스 구성:

  1. 기능 활성화: 이 단계는 일회성 단계입니다. Azure Cosmos DB 내에서 벡터 인덱싱 및 검색을 명시적으로 활성화합니다.

    Get started with Vector Search in Azure Cosmos DB

  2. 데이터베이스 및 컨테이너 생성: movies_db 파티션 키를 사용하여 데이터베이스(예: movies)와 컨테이너(예: /id)를 생성합니다.

  3. 정책 생성: 컨테이너에 대한 벡터 삽입 정책과 인덱싱 정책을 구성합니다. 이 예에서는 아래에 표시된 설정을 사용합니다. 여기에서는 Azure Portal을 통한 수동 구성이 사용되지만 프로그래밍 방식도 사용할 수 있습니다.

    Get started with Vector Search in Azure Cosmos DB

    인덱스 유형 참고: 이 예에서는 diskANN 모델과 일치하는 차원이 1536인 text-embedding-ada-002 인덱스 유형을 사용합니다. 적응 가능하지만 인덱스 유형을 변경하려면 임베딩 모델을 새로운 차원에 맞게 조정해야 합니다.

Azure Cosmos DB에 데이터 로드:

샘플 movies.json 파일은 영화 데이터를 제공합니다. 프로세스에는 다음이 포함됩니다.

    JSON 파일에서 영화 정보를 읽습니다 Azure Openai 서비스를 사용하여 영화 설명을위한 벡터 임베드 생성. 완전한 데이터 (제목, 설명 및 임베딩)를 Azure Cosmos db 컨테이너에 삽입하십시오.
  1. 진행하기 전에 다음 환경 변수를 설정하십시오
  2. 저장소를 복제하십시오 :
  3. 데이터로드에 대한 언어 별 지침은 다음과 같습니다. 각 방법은 위에서 정의 된 환경 변수를 사용합니다. 성공적인 실행은 Cosmos DB에 데이터 삽입을 나타내는 메시지를 출력합니다. 데이터로드 명령어 (약어) :
  4. Python :

typeScript :
export COSMOS_DB_CONNECTION_STRING=""
export DATABASE_NAME=""
export CONTAINER_NAME=""
export AZURE_OPENAI_ENDPOINT=""
export AZURE_OPENAI_KEY=""
export AZURE_OPENAI_VERSION="2024-10-21"
export EMBEDDINGS_MODEL="text-embedding-ada-002"
로그인 후 복사
<🎜 🎜> <🎜 🎜> <<> Java :

<🎜 🎜> <🎜 🎜> <<> .NET :
git clone https://github.com/abhirockzz/cosmosdb-vector-search-python-typescript-java-dotnet
cd cosmosdb-vector-search-python-typescript-java-dotnet
로그인 후 복사

Azure Cosmos db에서 데이터 확인 :

Azure Portal 또는 Visual Studio Code Extension을 사용하여 데이터 삽입을 확인하십시오. 벡터/유사성 검색 :

검색 구성 요소는 검색 기준 (예 : "코미디")을 기반으로 비슷한 영화를 찾기 위해
    기능을 사용합니다. 과정은 다음과 같습니다.
  • 검색 기준에 대한 벡터 임베딩을 생성합니다 를 사용하여 기존 임베딩과 비교하십시오 <:> 쿼리 : cd python; python3 -m venv .venv; source .venv/bin/activate; pip install -r requirements.txt; python load.py
  • 언어 별 지침 (환경 변수가 설정되고 데이터가로드되었다고 가정) :
  • 검색 지침 (약칭) : cd typescript; npm install; npm run build; npm run load Python :
  • typeScript : Java : cd java; mvn clean install; java -jar target/cosmosdb-java-vector-search-1.0-SNAPSHOT.jar load
  • .NET :
  • cd dotnet; dotnet restore; dotnet run load 닫는 노트 : 다른 벡터 인덱스 유형 (, ), 거리 메트릭 (코사인, 유클리드, 도트 제품) 및 임베딩 모델 (, )으로 실험하십시오. MongoDB vcore 용 Azure Cosmos DB는 벡터 검색도 지원합니다.

위 내용은 Azure Cosmos DB에서 벡터 검색 시작하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿