Azure Cosmos DB 中的向量搜尋入門
Jan 26, 2025 pm 08:15 PM>本教程演示瞭如何使用簡單的電影數據集快速在Azure Cosmos DB中快速實現矢量搜索。 該應用程序可在Python,typeScript,.Net和Java中找到,為設置,數據加載和相似性搜索查詢提供逐步說明。
>向量數據庫在存儲和管理向量嵌入 - 數據的高維數學表示方面表現出色。每個維度都反映了一個數據功能,可能在數万個中進行編號。向量在此空間中的位置表示其特徵。 該技術將各種數據類型進行了矢量,包括單詞,短語,文檔,圖像和音頻,啟用了相似性搜索,多模式搜索,推薦引擎和大型語言模型(LLMS)等應用程序。>
>先決條件:
- azure訂閱(或免費的Azure帳戶,或NoSQL的Azure Cosmos DB的免費層)。
- NOSQL帳戶
- >具有部署的 嵌入模型的Azure OpenAI服務資源(可通過Azure AI Foundry Portal訪問)。 該模型提供了文本嵌入。
-
text-embedding-ada-002
必要的編程語言環境(Java的Maven)。 - > >在nosql中配置Azure cosmos db中的向量數據庫:
- 啟用功能:
-
>創建一個數據庫(例如,>創建數據庫和容器:
)和一個具有 - >的分區鍵的容器(例如,
)。 >。
>配置矢量嵌入策略和容器的索引策略。 在此示例中,使用下面顯示的設置(此處使用Azure Portal的手動配置,儘管也可以使用程序化方法)。movies_db
movies
/id
創建策略: -
> 索引類型注意:
索引類型,尺寸為1536,匹配該示例使用 模型。 在適應性的同時,更改索引類型需要調整嵌入模型以匹配新的維度。 將數據加載到Azure Cosmos DB:
> diskANN
示例text-embedding-ada-002
文件提供電影數據。該過程涉及:- >從JSON文件讀取電影信息。
- >使用Azure OpenAi服務生成電影描述的向量嵌入。
克隆存儲庫: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"
登入後複製>git clone https://github.com/abhirockzz/cosmosdb-vector-search-python-typescript-java-dotnet cd cosmosdb-vector-search-python-typescript-java-dotnet
登入後複製>
- > python:
cd python; python3 -m venv .venv; source .venv/bin/activate; pip install -r requirements.txt; python load.py
- > typescript:
cd typescript; npm install; npm run build; npm run load
- > 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
>在Azure Cosmos DB中驗證數據 使用Azure門戶或Visual Studio Code擴展名確認數據插入。
> 向量/相似性搜索:
>搜索組件使用函數根據搜索標準(例如“喜劇”)查找類似的電影。該過程為:
生成搜索標準的向量嵌入。
將其與現有嵌入式進行比較。> VectorDistance
使用- >
- 查詢:
-
VectorDistance
特定語言的說明(假設設置了環境變量並加載數據):
> 搜索指令(縮寫):
> python:SELECT TOP @num_results c.id, c.description, VectorDistance(c.embeddings, @embedding) AS similarityScore FROM c ORDER BY VectorDistance(c.embeddings, @embedding)
登入後複製- > typescript:
python search.py "inspiring" 3
- > java:
npm run search "inspiring" 3
-
.net:
java -jar target/cosmosdb-java-vector-search-1.0-SNAPSHOT.jar search "inspiring" 3
-
>關閉註釋:
dotnet run search "inspiring" 3
, ),距離指標(餘弦,歐幾里得,點乘積)和嵌入模型(,)。 MongoDB Vcore的Azure Cosmos DB還支持向量搜索。
以上是Azure Cosmos DB 中的向量搜尋入門的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱門文章

熱門文章

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)