處理文件並將文本分塊為標記化字串,以用於 Azure Logic Apps 的工作流程。

適用於:Azure Logic Apps(消耗量+標準)

有時你必須先將內容轉換成標記(tokens),也就是單字或字元塊,或是將大型文件分割成較小的部分,才能用這些內容執行特定動作。 例如,Azure AI 搜尋服務Azure OpenAI動作預期有標記化輸入,且只能處理有限數量的標記。

針對這些案例,請在邏輯應用程式工作流程中使用名為剖析文件區塊文字資料作業動作。 這些動作分別將內容(如 PDF 文件、CSV 檔案、Excel 檔案等)轉換成標記化的字串輸出,然後根據標記數量將字串分割成多個部分。 然後,您可以參考並使用這些輸出搭配工作流程中的後續動作。

秘訣

想了解更多,你可以問Azure Copilot以下問題:

  • 什麼是 AI 中的權杖?
  • 什麼是權杖化輸入?
  • 什麼是權杖化字串輸出?
  • 什麼是 AI 中的剖析?
  • 什麼是 AI 中的區塊化?

要找到Azure Copilot,請在Azure portal工具列中選擇 Copilot

本指南說明如何在工作流程中新增和設定解析文件和分段文字的動作。

已知問題和限制

  • 在消費工作流程中,Parse a document 動作僅在以下Azure區域可用:

    • Australia East
    • 巴西南部
    • 東亞
    • 美國東部
    • 美國東部 2
    • 北歐
    • 美國中南部
    • 東南亞
    • 瑞典中部
    • 美國西部 2
    • 美國西部 3
    • 英國南部

    這些區域提供資料來源連結、文件追蹤、文件分區、支援 Azure OpenAI 嵌入模型,以及內建索引拉取資料的支援。 更多資訊請參閱 AI 搜尋中自動化索引,工作流程見 Azure Logic Apps

  • 剖析文件區塊文字動作目前不支援主機檔案,例如大型主機和中型二進位檔案,例如虛擬儲存體存取方法 (VSAM) 檔案。 不過,如果您使用標準工作流程,您可以改用名為 Parse Host File Contents 的IBM 主機檔案內建動作。

先決條件

  • 一個 Azure 帳號和訂閱。 如果你沒有Azure訂閱, 註冊免費的Azure帳號

  • 具有現有觸發程序的使用或標準邏輯應用程式工作流程,因為剖析文件區塊文字作業只能當做動作使用。 請確定擷取您想要剖析的內容或區塊的動作在這些資料作業之前。

剖析文件

Parse a document 動作會將內容(如 PDF 文件、CSV 檔案、Excel 檔案等)轉換成標記化的字串。 舉例來說,假設你的工作流程是以名為 When a HTTP request is receive請求觸發器開始。 此觸發器會等待接收來自其他元件的 HTTP 請求,例如 Azure 函式、另一個邏輯應用程式工作流程等等。 HTTP 要求包含可供工作流程擷取和剖析之新上傳文件的 URL。 HTTP 動作會緊接在觸發程序之後,並將 HTTP 要求傳送至文件的 URL,並從其儲存位置傳回文件內容。

如果你使用其他內容來源,例如 Azure Blob 儲存體、SharePoint、OneDrive、檔案系統、FTP 等,可以檢查這些來源是否有觸發器。 您也可以檢查動作是否可供擷取這些來源的內容。 如需詳細資訊,請參閱內建作業受控連接器

  1. Azure 入口,在設計器中開啟你的 Logic App 資源和工作流程。

  2. 在現有的觸發程序和動作下,遵循這些一般步驟,將名為剖析文件資料作業動作新增至您的工作流程。

  3. 在設計工具上,選取 [剖析文件] 動作。

  4. 動作資訊窗格開啟之後,在 [參數] 索引標籤的 [文件內容] 屬性中,依照下列步驟指定要剖析的內容:

    1. 在 [文件內容] 方塊內選取。

      動態內容清單 (閃電圖示) 和運算式編輯器 (函式圖示) 的選項隨即出現。

      • 若要從上述動作選擇輸出,請選取動態內容清單。

      • 若要建立操控上述動作輸出的運算式,請選取運算式編輯器。

      此範例會選取動態內容清單的閃電圖示以繼續。

    2. 動態內容清單開啟之後,請從先前的作業中選取您想要的輸出。

      在此範例中,[剖析文件] 動作會參考 [HTTP] 動作的本文輸出。

      此螢幕擷取畫面顯示工作流程設計工具,其動作名為 [剖析已開啟動態內容清單的文件],以及從 HTTP 動作選取的 [本文輸出]。

      本文輸出現在會出現在文件內容方塊中:

      此螢幕擷取畫面顯示範例工作流程,其中包含名為 [剖析文件] 動作中的 [本文輸出]。

  5. 剖析文件動作底下,新增您想要使用權杖化字串輸出的動作,例如區塊文字,本指南稍後將加以說明。

剖析文件 - 參考

參數

名稱 資料類型 描述 限制
文件內容 < 內容剖析> 任意 要剖析的內容。 None

輸出

名稱 資料類型 描述
剖析的結果文字 字串陣列 字串的陣列。
剖析的結果 Object 物件包含整個剖析的文字。

區塊文字

[區塊文字] 動作會將內容分割成較小的片段,以供後續動作更輕鬆地在目前的工作流程中使用。 下列步驟以剖析文件一節中的範例為基礎,並將權杖字串輸出分割,以供需要權杖化小型內容區塊的 Azure AI 作業使用。

附註

使用區塊處理的先前動作不會影響 [區塊文字] 動作,[區塊文字] 動作也不會影響使用區塊處理的後續動作。

  1. Azure 入口,在設計器中開啟你的 Logic App 資源和工作流程。

  2. 在 [剖析文件] 動作底下,遵循這些一般步驟來新增名為 [區塊文字] 的[資料作業] 動作

  3. 在設計工具上,選取 [區塊文字] 動作。

  4. 動作資訊窗格開啟之後,在 [參數] 索引標籤的區塊化策略屬性上,如果尚未選取,請選取 [TokenSize] 作為區塊化方法。

    策略 描述
    TokenSize 根據權杖數目分割指定的內容。
  5. 選取策略之後,請在 [文字] 方塊內選取,以指定區塊化的內容。

    動態內容清單 (閃電圖示) 和運算式編輯器 (函式圖示) 的選項隨即出現。

    • 若要從上述動作選擇輸出,請選取動態內容清單。

    • 若要建立操控上述動作輸出的運算式,請選取運算式編輯器。

    此範例會選取動態內容清單的閃電圖示以繼續。

    1. 動態內容清單開啟之後,請從先前的作業中選取您想要的輸出。

      在此範例中,[區塊文字] 動作會參考 [剖析文件] 動作中剖析的結果文字輸出。

      此螢幕擷取畫面顯示工作流程設計工具、名為 [區塊文字] 的動作,與開啟動態內容清單,以及 [剖析文件] 動作的選取輸出。

      文字方塊現在會顯示剖析的結果動作輸出:

      此螢幕擷取畫面顯示範例工作流程,其中包含名為 [區塊文字] 的動作中已選取剖析的結果文字輸出。

  6. 根據您選取的策略和案例,完成 [區塊文字] 動作的設定。 如需詳細資訊,請參閱區塊文字 - 參考

現在,當你加入其他預期並使用代幣化輸入的動作,例如 Azure AI 動作時,輸入內容會被格式化以便使用。

區塊文字 - 參考

參數

名稱 資料類型 描述 限制
區塊化策略 TokenSize 字串列舉 根據權杖數目分割內容。

預設:TokenSize
不適用
Text < 內容到區塊> 任意 要區塊化的內容。 請參閱限制和設定參考指南
EncodingModel < 編碼方法> 字串列舉 要使用的編碼模型:

- 預設值:cl100k_base (gpt4,gpt-3.5-turbo,gpt-35-turbo)

- r50k_base (gpt-3)

- p50k_base (gpt-3)

- p50k_edit (gpt-3)

- cl200k_base (gpt-4o)

如需詳細資訊,請參閱 OpenAI - 模型概觀
不適用
TokenSize < 每個區塊的最大標記數> 整數 每個內容區塊的權杖數目上限。

預設值:無
最小值:1
最大值:8000
PageOverlapLength < 重疊字元數> 整數 上一個區塊結尾要包括在下一個區塊中的字元數。 此設定可協助您避免在將內容分割成區塊時遺失重要資訊,並保留跨區塊的持續性和內容。

預設:0 - 沒有重疊字元存在。
最小值:0

秘訣

想了解更多,你可以問Azure Copilot以下問題:

  • 什麼是區塊化中的 PageOverlapLength?
  • Azure AI 裡的編碼是什麼?

要找到Azure Copilot,請在Azure portal工具列中選擇 Copilot

輸出

名稱 資料類型 描述
區塊化結果文字項目 字串陣列 字串的陣列。
區塊化結果文字項目項目 String 陣列中的單一字串。
區塊化結果 Object 物件,包含整個區塊化文字。

範例工作流程

下列範例包含其他動作,其會建立完整的工作流程模式,以從任何來源內嵌資料:

顯示完整範例工作流程的螢幕擷取畫面。

步驟 Task 基礎作業 描述
1 等候或檢查新內容。 收到 HTTP 要求時 會根據排程的定期或分別回應特定事件,輪詢或等候新資料送達的觸發程序。 這類事件可能是新上傳到特定儲存系統的檔案,例如 Azure Blob 儲存體、SharePoint、OneDrive、檔案系統、FTP 等等。

在此範例中,要求觸發程序作業會等候從另一個端點傳送的 HTTP 或 HTTPS 要求。 要求包含新上傳文件的 URL。
2 取得內容。 HTTP 使用觸發程序輸出中的檔案 URL 擷取上傳文件的 [HTTP] 動作。
3 撰寫文件詳細資料。 撰寫 串連各種項目的 [資料作業] 動作。

本範例會串連文件的相關索引鍵/值資訊。
4 建立權杖字串。 剖析文件 使用 Compose 動作的輸出產生權杖化字串的資料作業動作。
5 建立內容區塊。 區塊文字 資料作業動作,根據每個內容區塊的權杖數目,將權杖字串分割成片段。
6 將權杖化和區塊化文字轉換成 JSON。 剖析 JSON 將資料作業動作,將區塊化輸出轉換成 JSON 陣列。
7 選取 [JSON 陣列項目]。 選取 從 JSON 陣組選取多個項目的資料作業動作。
8 產生內嵌。 取得多個內嵌 一個 Azure OpenAI 動作,為每個 JSON 陣列項目建立嵌入。
9 選取內嵌和其他資訊。 選取 選取內嵌和其他文件資訊的 [資料作業] 動作。
10 為資料編製索引。 索引文件 一個Azure AI 搜尋服務動作,根據每個選擇的嵌入來索引資料。