共用方式為


使用 Azure AI 檔智慧擷取增強世代

此內容適用於:複選標記v4.0(預覽版)

簡介

擷取增強產生 (RAG) 是一種設計模式,結合了預先定型的大型語言模型 (LLM),例如 ChatGPT 與外部數據擷取系統,以產生結合原始定型數據外部新數據的增強回應。 將資訊擷取系統新增至您的應用程式,可讓您與檔聊天、產生引人入手的內容,以及存取 Azure OpenAI 模型為您的數據提供的強大功能。 您也更能控制 LLM 在制定回應時所使用的數據。

檔智慧 版面配置模型 是以機器學習為基礎的進階檔分析 API。 版面配置模型提供適用於進階內容擷取和文件結構分析功能的完整解決方案。 使用版面配置模型,您可以輕鬆地擷取文字和結構元素,根據語意內容將大型文字主體分割成較小的有意義的區塊,而不是任意分割。 擷取的資訊可以方便輸出至 Markdown 格式,讓您根據提供的建置組塊定義語意區塊化策略。

描述使用 Azure AI 檔智慧使用 RAG 進行語意區塊化的螢幕快照。

語意區塊化

對於自然語言處理 (NLP) 應用程式來說,長句具有挑戰性。 特別是當它們是由多個子句、複雜名詞或動片組、相對子句和括號群組所組成時。 就像人類持有人一樣,NLP 系統也需要成功追蹤所有呈現的相依性。 語意區塊化的目標是尋找句子表示的語意連貫片段。 然後,這些片段可以獨立處理,並重新組合為語意表示法,而不會遺失資訊、解譯或語意相關性。 文字的固有意義會當做區塊化程式的指南使用。

文字數據區塊化策略在優化RAG回應和效能方面扮演重要角色。 固定大小和語意是兩個不同的區塊化方法:

  • 固定大小的區塊化。 現今RAG中使用的大部分區塊化策略都是以固定大小的文字區段為基礎,稱為區塊。 固定大小的區塊處理對沒有記錄和數據等強語意結構的文字快速、簡單且有效。 不過,不建議針對需要語意理解和精確內容的文字使用。 視窗的固定大小本質可能會導致斷詞、句子或段落隱含理解,並破壞資訊和理解的流程。

  • 語意區塊化。 此方法會根據語意理解,將文字分成區塊。 除界線著重於句子主旨,並使用大量的計算演算法複雜資源。 不過,它具有維護每個區塊內語意一致性的明顯優勢。 它適用於文字摘要、情感分析和文件分類工作。

使用檔智慧版面配置模型的語意區塊化

Markdown 是結構化且格式化的標記語言,也是在RAG中啟用語意區塊化的熱門輸入(擷取增強式產生)。 您可以使用版面配置模型中Markdown 內容,根據段落界限分割檔、建立數據表的特定區塊,以及微調您的區塊化策略,以改善產生的響應品質。

使用版面配置模型的優點

  • 簡化的處理。 您可以剖析不同的檔類型,例如數位和掃描的 PDF、影像、辦公室檔案(docx、xlsx、pptx)和 HTML,只要使用單一 API 呼叫即可。

  • 延展性和 AI 品質。 版面配置模型在光學字元辨識(OCR)、數據表擷取和 文件結構分析中具有高度擴充性。 它支援 309 種印刷和 12 種手寫語言,進一步確保由 AI 功能驅動的高質量結果。

  • 大型語言模型 (LLM) 相容性。 版面配置模型 Markdown 格式化的輸出是 LLM 易記,並有助於順暢地整合至您的工作流程。 您可以將檔中的任何數據表轉換成 Markdown 格式,並避免大量剖析檔以取得更大的 LLM 瞭解。

使用 Document Intelligence Studio 處理的文字影像,並使用版面配置模型輸出至 MarkDown

版面配置模型所處理的報紙文章螢幕快照,並輸出至 Markdown。

使用版面配置模型使用 Document Intelligence Studio 處理的數據表影像

版面配置模型所處理的數據表螢幕快照,並輸出至 Markdown。

開始使用

檔智慧版面配置模型 2024-02-29-preview2023-10-31-preview 支援下列開發選項:

準備好開始嗎?

Document Intelligence Studio

您可以遵循 Document Intelligence Studio 快速入門 來開始使用。 接下來,您可以使用提供的範例程序代碼,將 Document Intelligence 功能與您自己的應用程式整合。

  • 從版面配置 模型開始。 您必須選取下列 分析選項 ,才能在 Studio 中使用 RAG:

    **Required**

    • →目前檔執行分析範圍
    • 頁面範圍→ 所有頁面
    • Markdown輸出格式樣式。

    **Optional**

    • 您也可以選取相關的選擇性偵測參數。
  • 選取 [儲存]。

    Document Intelligence Studio 中 [分析選項] 對話框視窗的螢幕快照,其中含有 RAG 必要選項。

  • 選取 [ 執行分析] 按鈕以檢視輸出。

    Document Intelligence Studio 中 [執行分析] 按鈕的螢幕快照。

SDK 或 REST API

  • 您可以遵循 文件智慧快速入門 ,以取得慣用的程式設計語言 SDK 或 REST API。 使用版面配置模型,從檔擷取內容和結構。

  • 您也可以查看 GitHub 存放庫,以取得程式碼範例,以及使用 Markdown 輸出格式分析檔的秘訣。

使用語意區塊化建置檔聊天

  • 數據上的 Azure OpenAI 可讓您在檔案上執行支援的聊天。 數據上的 Azure OpenAI 會套用檔智慧版面配置模型,以根據數據表和段落區塊長文字來擷取和剖析文件數據。 您也可以使用 位於 GitHub 存放庫中的 Azure OpenAI 範例腳本 來自定義區塊化策略。

  • Azure AI 檔智慧現在已將其 LangChain 整合為其中一個檔載入器。 您可以使用它輕鬆地將資料和輸出載入 Markdown 格式。 如需詳細資訊,請參閱我們的 範例程式代碼 ,以 Azure AI 檔智慧作為檔載入器,以及 Azure 搜尋服務作為 LangChain 中的擷取器來示範 RAG 模式的簡單示範。

  • 與數據解決方案加速器 程式代碼範例 聊天示範端對端基準RAG模式範例。 它會使用 Azure AI 搜尋作為擷取器和 Azure AI 檔智慧來載入和語意區塊化。

使用案例

如果您要尋找檔中的特定區段,您可以使用語意區塊化,根據區段標頭將檔分割成較小的區塊,以協助您快速且輕鬆地尋找區段:


# Using SDK targeting 2024-02-29-preview or 2023-10-31-preview, make sure your resource is in one of these regions: East US, West US2, West Europe
# pip install azure-ai-documentintelligence==1.0.0b1
# pip install langchain langchain-community azure-ai-documentintelligence

from azure.ai.documentintelligence import DocumentIntelligenceClient

endpoint = "https://<my-custom-subdomain>.cognitiveservices.azure.com/"
key = "<api_key>"

from langchain_community.document_loaders import AzureAIDocumentIntelligenceLoader
from langchain.text_splitter import MarkdownHeaderTextSplitter
 
# Initiate Azure AI Document Intelligence to load the document. You can either specify file_path or url_path to load the document.
loader = AzureAIDocumentIntelligenceLoader(file_path="<path to your file>", api_key = key, api_endpoint = endpoint, api_model="prebuilt-layout")
docs = loader.load()
 
# Split the document into chunks base on markdown headers.
headers_to_split_on = [
    ("#", "Header 1"),
    ("##", "Header 2"),
    ("###", "Header 3"),
]
text_splitter = MarkdownHeaderTextSplitter(headers_to_split_on=headers_to_split_on)
 
docs_string = docs[0].page_content
splits = text_splitter.split_text(docs_string)
splits

下一步