>本教程演示瞭如何使用簡單的電影數據集快速在Azure Cosmos DB中快速實現矢量搜索。 該應用程序可在Python,typeScript,.Net和Java中找到,為設置,數據加載和相似性搜索查詢提供逐步說明。
>向量數據庫在存儲和管理向量嵌入 - 數據的高維數學表示方面表現出色。每個維度都反映了一個數據功能,可能在數万個中進行編號。向量在此空間中的位置表示其特徵。 該技術將各種數據類型進行了矢量,包括單詞,短語,文檔,圖像和音頻,啟用了相似性搜索,多模式搜索,推薦引擎和大型語言模型(LLMS)等應用程序。>
>先決條件:
text-embedding-ada-002
必要的編程語言環境(Java的Maven)。
>創建數據庫和容器:
>創建一個數據庫(例如,)。 >。
movies_db
movies
/id
創建策略:
> 索引類型注意:
將數據加載到Azure Cosmos DB:diskANN
示例text-embedding-ada-002
文件提供電影數據。該過程涉及:
<code class="language-bash">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"</code>克隆存儲庫:
下面提供了用於數據加載的語言特定說明。 每種方法都使用上面定義的環境變量。 成功的執行將輸出表示數據插入Cosmos db的消息。
<code class="language-bash">git clone https://github.com/abhirockzz/cosmosdb-vector-search-python-typescript-java-dotnet cd cosmosdb-vector-search-python-typescript-java-dotnet</code>>
數據加載指令(縮寫):
>
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
cd java; mvn clean install; java -jar target/cosmosdb-java-vector-search-1.0-SNAPSHOT.jar load
cd dotnet; dotnet restore; dotnet run load
>在Azure Cosmos DB中驗證數據
使用Azure門戶或Visual Studio Code擴展名確認數據插入。
向量/相似性搜索:
>搜索組件使用函數根據搜索標準(例如“喜劇”)查找類似的電影。該過程為: 生成搜索標準的向量嵌入。 搜索指令(縮寫):
),距離指標(餘弦,歐幾里得,點乘積)和嵌入模型(,)。 MongoDB Vcore的Azure Cosmos DB還支持向量搜索。VectorDistance
使用>
VectorDistance
<code class="language-sql">SELECT TOP @num_results c.id, c.description, VectorDistance(c.embeddings, @embedding) AS similarityScore FROM c ORDER BY VectorDistance(c.embeddings, @embedding)</code>
> python:
實驗不同的矢量索引類型(python search.py "inspiring" 3
npm run search "inspiring" 3
java -jar target/cosmosdb-java-vector-search-1.0-SNAPSHOT.jar search "inspiring" 3
dotnet run search "inspiring" 3
以上是Azure Cosmos DB 中的向量搜尋入門的詳細內容。更多資訊請關注PHP中文網其他相關文章!