共用方式為


快速入門:Azure 入口網站中的向量搜尋

在本快速入門中,您會使用 Azure 入口網站中的 匯入資料(新)精靈程式 來開始使用 整合式向量化。 精靈程式會分割您的內容,並調用內嵌模型,以在編製索引和查詢時將區塊向量化。

這個快速入門工具使用了基於文字的 PDF 和來自 azure-search-sample-data 倉庫的簡單圖片。 不過,您可以使用不同的檔案,但仍完成快速入門。

小提示

有豐富的圖片文件嗎? 請參閱 Azure 入口網站的快速入門:多模態搜尋 ,擷取、儲存及搜尋圖片與文字。

必要條件

支援的資料來源

精靈 支援多個 Azure 資料來源。 不過,本快速入門只涵蓋使用整個檔案的資料來源,如下表所述。

支持的數據源 描述
Azure Blob 儲存體 此資料來源適用於 Blob 和資料表。 您必須使用標準效能 (一般用途 v2) 帳戶。 存取層可以是經常性存取層、非經常性存取層或極非經常性存取層。
Azure Data Lake Storage (ADLS) Gen2 這是已啟用階層命名空間的 Azure 記憶體帳戶。 若要確認您有 Data Lake Storage,請檢查 [概觀] 頁面上的 [屬性] 索引標籤。

Azure 入口網站中 Azure Data Lake Storage 帳戶的螢幕快照。
Microsoft OneLake 此資料來源會連線到 OneLake 檔案和捷徑。

支援的內嵌模型

入口網站支援以下整合向量化的嵌入模型。 稍後的章節會提供部署指示。

提供者 支援的模型
Azure AI 多服務帳戶1 對於文字與圖像,: Azure 視覺多模態
Microsoft Foundry 中樞型專案 針對文字:
  • text-embedding-ada-002
  • text-embedding-3-small
  • text-embedding-3-large
對於文字和圖像:
  • Cohere-embed-v3-english 2
  • Cohere-embed-v3-multilingual 2
Microsoft Foundry 專案 針對文字:
  • text-embedding-ada-002
  • text-embedding-3-small
  • text-embedding-3-large
Azure OpenAI resource3, 4 針對文字:
  • text-embedding-ada-002
  • text-embedding-3-small
  • text-embedding-3-large

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 資源之間的連線上啟用基於密鑰的驗證。 如需更安全的連線,請使用基本層或更高層級,然後啟用角色並設定受控識別。

若要設定建議的角色型存取:

  1. 在您的搜尋服務上, 啟用角色設定系統指派的受控識別

  2. 下列角色指派給自己。

    • 搜尋服務參與者

    • 搜尋索引資料參與者

    • 搜尋索引資料讀取者

  3. 在您的資料來源和內嵌模型提供者上,建立角色指派,以允許搜尋服務存取資料和模型。 請參閱準備範例數據和準備內嵌模型

附註

如果您因為選項無法使用 (例如,您無法選取資料來源或內嵌模型) 而無法逐步完成精靈,請重新造訪角色指派。 錯誤訊息指出模型或部署不存在,當真正的原因是搜尋服務沒有存取這些模型或部署的許可權時。

檢查可用空間

如果您從免費服務開始,則限製為三個索引、數據源、技能集和索引器。 基本服務的限制則為 15 個。 本快速入門會建立每種物件各一個,所以在開始之前,請確定您有額外的存放空間。

準備範例資料

在本節中,您會使用支援的 資料來源 來準備範例資料。 繼續之前,請確定您已完成 角色型存取的必要條件。

  1. 登入 Azure 入口網站 ,然後選取您的 Azure 記憶體帳戶。

  2. 從左窗格中,選取 [資料記憶體>容器]。

  3. 建立容器,然後上傳本快速入門所需的健康計劃 PDF 文件

  4. 若要指派角色:

    1. 從左窗格中,選取 [訪問控制][IAM]。

    2. 選取 新增>新增角色指派

    3. [工作功能角色] 下,選取 [儲存體 Blob 資料讀取器],然後選取 [下一步]。

    4. [成員] 下,選取 [受控識別],然後選取 [ 選取成員]。

    5. 選擇您的訂用帳戶和搜尋服務的受管理的身份。

  5. (選擇性) 同步處理容器中的刪除與搜尋索引中的刪除。 若要設定索引器以進行刪除偵測:

    1. 在儲存體帳戶上啟用軟刪除。 如果您使用 原生虛刪除,則不需要下一個步驟。

    2. 新增供索引器掃描的自訂元數據,以判斷要刪除哪些blob。 為您的自訂屬性提供描述性名稱。 例如,您可以將屬性命名為 「IsDeleted」,並將其設定為 false。 針對容器中的每個 Blob 重複此步驟。 當您想要刪除 Blob 時,請將 屬性變更為 true。 如需詳細資訊,請參閱 從 Azure 儲存體編製索引時的變更和刪除偵測

準備內嵌模型

在本節中,您會部署 支援的內嵌模型 ,以供稍後在本快速入門中使用。 繼續之前,請確定您已完成 角色型存取的必要條件。

精靈支援數個內嵌模型。 在內部,精靈會呼叫 Azure OpenAI 內嵌技能 來連線到 Azure OpenAI。

  1. 若要指派角色:

    1. 登入 Azure 入口網站 ,然後選取您的 Azure OpenAI 資源。

    2. 從左窗格中,選取 [訪問控制][IAM]。

    3. 選取 新增>新增角色指派

    4. 在 [作業函式角色] 底下,選取 [認知服務 OpenAI 使用者],然後選取 [下一步]

    5. [成員] 下,選取 [受控識別],然後選取 [ 選取成員]。

    6. 選擇您的訂用帳戶和搜尋服務的受管理的身份。

  2. 若要部署內嵌模型:

    1. 登入 Microsoft Foundry 入口網站 ,選擇您的 Azure OpenAI 資源。

    2. 部署 支援的內嵌模型

啟動精靈

若要啟動向量搜尋的精靈:

  1. 登入 Azure 入口網站 ,然後選取您的 Azure AI 搜尋服務。

  2. 概觀頁面上,選取匯入資料 (新)。

    螢幕擷取畫面:開啟精靈以匯入和向量化資料的命令。

  3. 選取您的數據源: Azure Blob 記憶體ADLS Gen2OneLake

  4. 選取 RAG

    精靈中RAG圖格的螢幕快照。

執行精靈

巫師會帶你完成幾個設定步驟。 本節涵蓋每個步驟的順序。

連線到您的資料

在此步驟中,您會將 Azure AI 搜尋服務連線到您選擇的 資料來源 ,以進行內容擷取和索引。

  1. 在 [ 連線到您的數據] 頁面上,選取您的 Azure 訂用帳戶。

  2. 選取提供範例數據的記憶體帳戶和容器。

  3. 如果您在 準備範例資料中啟用虛刪除並新增自訂元數據,請選取 [ 啟用刪除追蹤] 複選框。

    • 在後續執行索引編製時,搜尋索引會更新,以根據 Azure 儲存體上已虛刪除的 Blob 移除任何搜尋文件。

    • Blob 支援 原生 Blob 軟刪除 或使用 自訂元數據進行軟刪除

    • 如果您已將 Blob 設定為虛刪除,請提供中繼資料屬性的名稱/值對。 我們建議 使用IsDeleted。 如果 IsDeleted 在 Blob 上設定為 true ,索引器會在下一個索引器執行時卸除對應的搜尋檔。

    • 精靈不會檢查 Azure 儲存體的設定是否有效,或在不符合需求時擲回錯誤。 相反地,刪除偵測無法運作,而且您的搜尋索引可能會隨著時間收集孤立的文件。

  4. 選取 [ 使用受控識別進行驗證 ] 複選框。 將身分識別類型保留為 系統指派

    具有刪除偵測選項的資料來源頁面的螢幕擷取畫面。

  5. 選取 [下一步]。

將您的文字向量化

在此步驟期間,該精靈會使用您選擇的內嵌模型來對分塊資料進行向量化。 區塊化是內建的不可設定功能。 有效設定包括:

"textSplitMode": "pages",
"maximumPageLength": 2000,
"pageOverlapLength": 500,
"maximumPagesToTake": 0, #unlimited
"unit": "characters"
  1. 在 [將您的文字向量化] 頁面上,選取 [Azure OpenAI] 作為類型。

  2. 選取您的 Azure 訂用帳戶。

  3. 選取您的 Azure OpenAI 資源,然後選取您在準備內嵌模型中部署的模型。

  4. 針對驗證類型,選取 [系統指派的身分識別]。

  5. 選取複選框,確認使用這些資源的計費效果。

    在精靈中使用 Azure OpenAI [將您的文字向量化] 頁面的螢幕擷取畫面。

  6. 選取 [下一步]。

向量化並擴充您的影像

健康計劃 PDF 包含公司標誌,但除此之外沒有其他影像。 如果您使用範例檔,則可以略過此步驟。

不過,如果您的內容包含有用的影像,您可以透過以下其中一種或兩種方式來套用 AI:

  • 可使用Microsoft Foundry模型目錄中支援的影像嵌入模型,或透過多服務帳號的Azure Vision多模態嵌入API)來向量化影像。

  • 使用光學字元辨識 (OCR) 來從影像中擷取文字。 此選項會叫用 OCR 技能

  1. 在 [將您的影像向量化並擴充] 頁面上,選取 [對影像進行向量化] 核取方塊。

  2. 至於類型,請選擇你的模型供應商: Azure AI FoundryAI Vision 向量化

  3. 選取您的 Azure 訂用帳戶、資源和內嵌模型部署(如果適用的話)。

  4. 針對驗證類型,如果您未使用中樞型專案,請選取 [系統指派的身分識別 ]。 否則,請將它保留為 API 金鑰

  5. 選取複選框,確認使用這些資源的計費效果。

    在精靈中 [將您的影像向量化並擴充] 頁面的螢幕擷取畫面。

  6. 選取 [下一步]。

新增語意排名

在 [進階設定] 頁面上,您可以選擇性地新增 [語意排名],以在查詢執行結束時重新產生結果。 重新排名會將語意上最相關的相符項目升階到最上層。

對應新欄位

在 [ 進階設定 ] 頁面上,您可以選擇性地新增欄位,假設數據源提供第一次傳遞時未挑選的元數據或字段。 根據預設,精靈會產生下表所述的欄位。

欄位 適用於 描述
chunk_id 文字和影像向量 產生的字串欄位。 可搜尋、可擷取和可排序。 這是索引的文件鍵。
parent_id 文字向量 產生的字串欄位。 可擷取且可篩選。 識別區塊的來源父檔。
區塊 文字和影像向量 字串欄位。 人類可讀取的數據區塊版本。 可搜尋和擷取,但無法篩選、面向化或排序。
標題 文字和影像向量 字串欄位。 人類可讀取的文件標題或頁面標題或頁碼。 可搜尋和擷取,但無法篩選、面向化或排序。
文字向量 文字向量 Collection(Edm.single)。 區塊的向量表示。 可搜尋和擷取,但無法篩選、面向化或排序。

您無法修改產生的欄位或其屬性,但如果您的資料來源提供欄位,您可以新增欄位。 例如,Azure Blob 儲存體 提供元數據欄位的集合。

若要將欄位新增至索引架構:

  1. 進階設定 頁面,索引 欄位下,選擇 預覽與編輯

  2. 選取 新增欄位

  3. 從可用的欄位中選擇一個來源欄位, 輸入索引的欄位名稱,並接受或覆寫預設的資料類型。

  4. 如果您想要將架構還原為其原始版本,請選取 [ 重設]。

此步驟的要點:

  • 索引架構會提供區塊化數據的向量和非向量欄位。

  • 檔剖析模式會建立區塊(每個區塊一個搜尋檔)。

排程索引

對於基礎數據變動的數據源,您可以 排程索引編製 ,以在特定間隔或特定日期和時間擷取變更。

若要排程索引編製:

  1. 在 [ 進階設定] 頁面上的 [ 排程索引編製] 底下,指定索引器的執行排程。 我們建議在快速入門中選擇使用Once

    用於排程索引的精靈頁面螢幕快照。

  2. 選取 [下一步]。

完成精靈

最後一步是檢視你的設定,並建立向量搜尋所需的物件。 如有必要,請返回精靈中的上一頁,以調整您的設定。

若要完成精靈:

  1. 在 [ 檢閱您的組態 ] 頁面上,指定精靈所建立物件的前置詞。 常用前置詞可協助您保持井然有序。

  2. 選取 [建立]

當精靈完成設定時,會建立下列物件:

小提示

精靈建立的物件具有可設定的 JSON 定義。 若要檢視或修改這些定義,請從左窗格中選取 [ 搜尋管理 ],您可以在其中檢視索引、索引器、數據源和技能集。

檢查結果

搜尋總管可接受文字字串的輸入,然後將文字向量化,以執行向量查詢。

要查詢你的向量索引:

  1. 在 Azure 入口網站中,移至 [ 搜尋管理>索引],然後選取您的索引。

  2. 選取 [查詢選項],然後選取 [隱藏搜尋結果中的向量值]。 此步驟可讓結果更容易閱讀。

    查詢選項的按鈕螢幕擷取畫面。

  3. 從 [ 檢視 ] 功能表中,選取 [JSON 檢視 ],以便您可以在向量查詢參數中輸入向量查詢的 text 文字。

    用於開啟 JSON 檢視之功能表命令的螢幕擷取畫面。

    默認查詢是空白搜尋("*"),但包含返回相符結果數量的參數。 這是以平行方式執行文字和向量查詢的混合式查詢。 它也包含語意排名,並指定要透過 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"
     }
    
  4. 將這兩個星號 (*) 預留位置取代為與健康情況計劃相關的問題,例如 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"
     }
    
  5. 若要執行查詢,請選取 [搜尋]。

    搜尋結果的螢幕擷取畫面。

    每個文件都是原始 PDF 的區塊。 title 欄位會顯示該區塊所屬的 PDF。 每一個 chunk 都很長。 您可以將一個複製並貼到文字編輯器中,以讀取整個值。

  6. 若要查看特定檔的所有區塊,請為特定 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 搜尋中設定整合向量化