在本快速入門中,您會使用 Azure 入口網站中的 匯入資料(新)精靈程式 來開始使用 整合式向量化。 精靈程式會分割您的內容,並調用內嵌模型,以在編製索引和查詢時將區塊向量化。
這個快速入門工具使用了基於文字的 PDF 和來自 azure-search-sample-data 倉庫的簡單圖片。 不過,您可以使用不同的檔案,但仍完成快速入門。
小提示
有豐富的圖片文件嗎? 請參閱 Azure 入口網站的快速入門:多模態搜尋 ,擷取、儲存及搜尋圖片與文字。
必要條件
具有有效訂閱的 Azure 帳戶。 免費建立帳戶。
Azure AI 搜尋服務。 建議基本層或更高階層。
熟悉精靈。 請參閱 在 Azure 入口網站中匯入數據精靈。
支援的資料來源
精靈 支援多個 Azure 資料來源。 不過,本快速入門只涵蓋使用整個檔案的資料來源,如下表所述。
| 支持的數據源 | 描述 |
|---|---|
| Azure Blob 儲存體 | 此資料來源適用於 Blob 和資料表。 您必須使用標準效能 (一般用途 v2) 帳戶。 存取層可以是經常性存取層、非經常性存取層或極非經常性存取層。 |
| Azure Data Lake Storage (ADLS) Gen2 | 這是已啟用階層命名空間的 Azure 記憶體帳戶。 若要確認您有 Data Lake Storage,請檢查 [概觀] 頁面上的 [屬性] 索引標籤。
|
| Microsoft OneLake | 此資料來源會連線到 OneLake 檔案和捷徑。 |
支援的內嵌模型
入口網站支援以下整合向量化的嵌入模型。 稍後的章節會提供部署指示。
| 提供者 | 支援的模型 |
|---|---|
| Azure AI 多服務帳戶1 | 對於文字與圖像,: Azure 視覺多模態 |
| Microsoft Foundry 中樞型專案 | 針對文字:
|
| Microsoft Foundry 專案 | 針對文字:
|
| Azure OpenAI resource3, 4 | 針對文字:
|
1 為了計費,您必須 將多服務帳號綁定 到您的 Azure AI 搜尋技能組。 目前,精靈要求你的搜尋服務和多服務帳號必須在同一 支援區域,才能使用 Azure Vision 多模態嵌入技能,即使使用無金鑰連線也是如此。
2 要在精靈中使用此模型,必須將其配置為無伺服器 API 部署。 你可以用 Azure CLI 來配置無伺服器部署。
3 你的 Azure OpenAI 資源端點必須有 自訂子網域,例如 https://my-unique-name.openai.azure.com。 如果您在 Azure 入口網站中建立資源,此子域會在資源設定期間自動產生。
不支援 4 項在 Microsoft Foundry 入口網站建立, (可存取嵌入模型) 的 Azure OpenAI 資源。 您必須在 Azure 入口網站中建立 Azure OpenAI 資源。
公用端點需求
在本快速入門中,上述所有資源都必須啟用公用存取權,讓 Azure 入口網站節點可以存取它們。 否則,精靈會失敗。 在精靈執行之後,您可以在整合元件上啟用防火牆和私人端點以確保安全性。 如需詳細資訊,請參閱在匯入精靈中保護連線。
如果私人端點已存在,而且您無法將其停用,則替代選項是從虛擬機器上的指令碼或程式來執行個別端對端流程。 虛擬機器必須位於與私人端點相同的虛擬網路中。 以下是整合向量化的 Python 程式代碼範例 。 相同的 GitHub 存放庫具有其他程式設計語言的範例。
角色型存取
您可以使用 Microsoft Entra ID 搭配角色指派,或使用金鑰型驗證搭配完整存取連接字串。 針對 Azure AI 搜尋服務與其他資源的連線,我們建議角色指派。 本快速入門採用角色。
免費搜尋服務支援 Azure AI 搜尋服務的角色型連線。 不過,他們不支援在 Azure Storage 或 Azure Vision 的出站連線上使用受管理身份。 由於缺乏支援,這種情況需要在免費搜尋服務和其他 Azure 資源之間的連線上啟用基於密鑰的驗證。 如需更安全的連線,請使用基本層或更高層級,然後啟用角色並設定受控識別。
若要設定建議的角色型存取:
在您的搜尋服務上, 啟用角色 並 設定系統指派的受控識別。
將下列角色指派給自己。
搜尋服務參與者
搜尋索引資料參與者
搜尋索引資料讀取者
附註
如果您因為選項無法使用 (例如,您無法選取資料來源或內嵌模型) 而無法逐步完成精靈,請重新造訪角色指派。 錯誤訊息指出模型或部署不存在,當真正的原因是搜尋服務沒有存取這些模型或部署的許可權時。
檢查可用空間
如果您從免費服務開始,則限製為三個索引、數據源、技能集和索引器。 基本服務的限制則為 15 個。 本快速入門會建立每種物件各一個,所以在開始之前,請確定您有額外的存放空間。
準備範例資料
在本節中,您會使用支援的 資料來源 來準備範例資料。 繼續之前,請確定您已完成 角色型存取的必要條件。
登入 Azure 入口網站 ,然後選取您的 Azure 記憶體帳戶。
從左窗格中,選取 [資料記憶體>容器]。
建立容器,然後上傳本快速入門所需的健康計劃 PDF 文件。
若要指派角色:
從左窗格中,選取 [訪問控制][IAM]。
選取 新增>新增角色指派。
在 [工作功能角色] 下,選取 [儲存體 Blob 資料讀取器],然後選取 [下一步]。
在 [成員] 下,選取 [受控識別],然後選取 [ 選取成員]。
選擇您的訂用帳戶和搜尋服務的受管理的身份。
(選擇性) 同步處理容器中的刪除與搜尋索引中的刪除。 若要設定索引器以進行刪除偵測:
新增供索引器掃描的自訂元數據,以判斷要刪除哪些blob。 為您的自訂屬性提供描述性名稱。 例如,您可以將屬性命名為 「IsDeleted」,並將其設定為 false。 針對容器中的每個 Blob 重複此步驟。 當您想要刪除 Blob 時,請將 屬性變更為 true。 如需詳細資訊,請參閱 從 Azure 儲存體編製索引時的變更和刪除偵測。
準備內嵌模型
在本節中,您會部署 支援的內嵌模型 ,以供稍後在本快速入門中使用。 繼續之前,請確定您已完成 角色型存取的必要條件。
精靈支援數個內嵌模型。 在內部,精靈會呼叫 Azure OpenAI 內嵌技能 來連線到 Azure OpenAI。
若要指派角色:
登入 Azure 入口網站 ,然後選取您的 Azure OpenAI 資源。
從左窗格中,選取 [訪問控制][IAM]。
選取 新增>新增角色指派。
在 [作業函式角色] 底下,選取 [認知服務 OpenAI 使用者],然後選取 [下一步]。
在 [成員] 下,選取 [受控識別],然後選取 [ 選取成員]。
選擇您的訂用帳戶和搜尋服務的受管理的身份。
若要部署內嵌模型:
登入 Microsoft Foundry 入口網站 ,選擇您的 Azure OpenAI 資源。
部署 支援的內嵌模型。
啟動精靈
若要啟動向量搜尋的精靈:
登入 Azure 入口網站 ,然後選取您的 Azure AI 搜尋服務。
在概觀頁面上,選取匯入資料 (新)。
選取您的數據源: Azure Blob 記憶體、 ADLS Gen2 或 OneLake。
選取 RAG。
執行精靈
巫師會帶你完成幾個設定步驟。 本節涵蓋每個步驟的順序。
連線到您的資料
在此步驟中,您會將 Azure AI 搜尋服務連線到您選擇的 資料來源 ,以進行內容擷取和索引。
在 [ 連線到您的數據] 頁面上,選取您的 Azure 訂用帳戶。
選取提供範例數據的記憶體帳戶和容器。
如果您在 準備範例資料中啟用虛刪除並新增自訂元數據,請選取 [ 啟用刪除追蹤] 複選框。
在後續執行索引編製時,搜尋索引會更新,以根據 Azure 儲存體上已虛刪除的 Blob 移除任何搜尋文件。
Blob 支援 原生 Blob 軟刪除 或使用 自訂元數據進行軟刪除。
如果您已將 Blob 設定為虛刪除,請提供中繼資料屬性的名稱/值對。 我們建議 使用IsDeleted。 如果 IsDeleted 在 Blob 上設定為 true ,索引器會在下一個索引器執行時卸除對應的搜尋檔。
精靈不會檢查 Azure 儲存體的設定是否有效,或在不符合需求時擲回錯誤。 相反地,刪除偵測無法運作,而且您的搜尋索引可能會隨著時間收集孤立的文件。
選取 [ 使用受控識別進行驗證 ] 複選框。 將身分識別類型保留為 系統指派。
選取 [下一步]。
將您的文字向量化
在此步驟期間,該精靈會使用您選擇的內嵌模型來對分塊資料進行向量化。 區塊化是內建的不可設定功能。 有效設定包括:
"textSplitMode": "pages",
"maximumPageLength": 2000,
"pageOverlapLength": 500,
"maximumPagesToTake": 0, #unlimited
"unit": "characters"
在 [將您的文字向量化] 頁面上,選取 [Azure OpenAI] 作為類型。
選取您的 Azure 訂用帳戶。
選取您的 Azure OpenAI 資源,然後選取您在準備內嵌模型中部署的模型。
針對驗證類型,選取 [系統指派的身分識別]。
選取複選框,確認使用這些資源的計費效果。
選取 [下一步]。
向量化並擴充您的影像
健康計劃 PDF 包含公司標誌,但除此之外沒有其他影像。 如果您使用範例檔,則可以略過此步驟。
不過,如果您的內容包含有用的影像,您可以透過以下其中一種或兩種方式來套用 AI:
可使用Microsoft Foundry模型目錄中支援的影像嵌入模型,或透過多服務帳號的Azure Vision多模態嵌入API)來向量化影像。
使用光學字元辨識 (OCR) 來從影像中擷取文字。 此選項會叫用 OCR 技能。
新增語意排名
在 [進階設定] 頁面上,您可以選擇性地新增 [語意排名],以在查詢執行結束時重新產生結果。 重新排名會將語意上最相關的相符項目升階到最上層。
對應新欄位
在 [ 進階設定 ] 頁面上,您可以選擇性地新增欄位,假設數據源提供第一次傳遞時未挑選的元數據或字段。 根據預設,精靈會產生下表所述的欄位。
| 欄位 | 適用於 | 描述 |
|---|---|---|
| chunk_id | 文字和影像向量 | 產生的字串欄位。 可搜尋、可擷取和可排序。 這是索引的文件鍵。 |
| parent_id | 文字向量 | 產生的字串欄位。 可擷取且可篩選。 識別區塊的來源父檔。 |
| 區塊 | 文字和影像向量 | 字串欄位。 人類可讀取的數據區塊版本。 可搜尋和擷取,但無法篩選、面向化或排序。 |
| 標題 | 文字和影像向量 | 字串欄位。 人類可讀取的文件標題或頁面標題或頁碼。 可搜尋和擷取,但無法篩選、面向化或排序。 |
| 文字向量 | 文字向量 | Collection(Edm.single)。 區塊的向量表示。 可搜尋和擷取,但無法篩選、面向化或排序。 |
您無法修改產生的欄位或其屬性,但如果您的資料來源提供欄位,您可以新增欄位。 例如,Azure Blob 儲存體 提供元數據欄位的集合。
若要將欄位新增至索引架構:
在 進階設定 頁面,索引 欄位下,選擇 預覽與編輯。
選取 新增欄位。
從可用的欄位中選擇一個來源欄位, 輸入索引的欄位名稱,並接受或覆寫預設的資料類型。
如果您想要將架構還原為其原始版本,請選取 [ 重設]。
此步驟的要點:
索引架構會提供區塊化數據的向量和非向量欄位。
檔剖析模式會建立區塊(每個區塊一個搜尋檔)。
排程索引
對於基礎數據變動的數據源,您可以 排程索引編製 ,以在特定間隔或特定日期和時間擷取變更。
若要排程索引編製:
完成精靈
最後一步是檢視你的設定,並建立向量搜尋所需的物件。 如有必要,請返回精靈中的上一頁,以調整您的設定。
若要完成精靈:
在 [ 檢閱您的組態 ] 頁面上,指定精靈所建立物件的前置詞。 常用前置詞可協助您保持井然有序。
選取 [建立]。
當精靈完成設定時,會建立下列物件:
數據源連接。
具有向量欄位、向量化工具、向量配置檔和向量演算法的索引。 您無法在精靈工作流程期間設計或修改預設索引。 索引會符合 2024-05-01-preview REST API (部分機器翻譯)。
具有用於區塊化的文字分割技能,以及用於向量化的內嵌技能。 嵌入技能可以是 Azure OpenAI 嵌入技能、 AML 技能或 Azure Vision 多模態嵌入技能。 技能集也有 索引投影設定 ,可將數據源中某個文件的數據對應至「子」索引中的對應區塊。
具有欄位對應和輸出欄位對應 (如果適用) 的索引子。
小提示
精靈建立的物件具有可設定的 JSON 定義。 若要檢視或修改這些定義,請從左窗格中選取 [ 搜尋管理 ],您可以在其中檢視索引、索引器、數據源和技能集。
檢查結果
搜尋總管可接受文字字串的輸入,然後將文字向量化,以執行向量查詢。
要查詢你的向量索引:
在 Azure 入口網站中,移至 [ 搜尋管理>索引],然後選取您的索引。
選取 [查詢選項],然後選取 [隱藏搜尋結果中的向量值]。 此步驟可讓結果更容易閱讀。
從 [ 檢視 ] 功能表中,選取 [JSON 檢視 ],以便您可以在向量查詢參數中輸入向量查詢的
text文字。默認查詢是空白搜尋(
"*"),但包含返回相符結果數量的參數。 這是以平行方式執行文字和向量查詢的混合式查詢。 它也包含語意排名,並指定要透過select語句傳回結果中的欄位。{ "search": "*", "count": true, "vectorQueries": [ { "kind": "text", "text": "*", "fields": "text_vector,image_vector" } ], "queryType": "semantic", "semanticConfiguration": "my-demo-semantic-configuration", "captions": "extractive", "answers": "extractive|count-3", "queryLanguage": "en-us", "select": "chunk_id,text_parent_id,chunk,title,image_parent_id" }將這兩個星號 (
*) 預留位置取代為與健康情況計劃相關的問題,例如Which plan has the lowest deductible?。{ "search": "Which plan has the lowest deductible?", "count": true, "vectorQueries": [ { "kind": "text", "text": "Which plan has the lowest deductible?", "fields": "text_vector,image_vector" } ], "queryType": "semantic", "semanticConfiguration": "my-demo-semantic-configuration", "captions": "extractive", "answers": "extractive|count-3", "queryLanguage": "en-us", "select": "chunk_id,text_parent_id,chunk,title" }若要執行查詢,請選取 [搜尋]。
每個文件都是原始 PDF 的區塊。
title欄位會顯示該區塊所屬的 PDF。 每一個chunk都很長。 您可以將一個複製並貼到文字編輯器中,以讀取整個值。若要查看特定檔的所有區塊,請為特定 PDF 新增
title_parent_id欄位的篩選條件。 您可以檢查索引的 [欄位] 索引標籤,以確認欄位可篩選。{ "select": "chunk_id,text_parent_id,chunk,title", "filter": "text_parent_id eq 'aHR0cHM6Ly9oZWlkaXN0c3RvcmFnZWRlbW9lYXN0dXMuYmxvYi5jb3JlLndpbmRvd3MubmV0L2hlYWx0aC1wbGFuLXBkZnMvTm9ydGh3aW5kX1N0YW5kYXJkX0JlbmVmaXRzX0RldGFpbHMucGRm0'", "count": true, "vectorQueries": [ { "kind": "text", "text": "*", "k": 5, "fields": "text_vector" } ] }
清理資源
當您在自己的訂用帳戶中工作時,建議您在完成專案後移除不再需要的資源。 仍在執行的資源可能會產生費用。
在 Azure 入口網站中,從左側窗格選擇 「所有資源 」或 「資源群組 」以尋找並管理資源。 你可以單獨刪除資源,或是一次性刪除資源群組,移除所有資源。
後續步驟
本快速入門向您介紹匯 入資料 (新) 精靈,該精靈會建立整合向量化的所有必要物件。 若要詳細探索每個步驟,請參閱 在 Azure AI 搜尋中設定整合向量化。