Skip to content

使用 Azure AI Content Understanding 提取多模态内容

解决非结构化数据处理难题:通过 Azure AI Content Understanding SDK,开发者可以快速将文档、图片、音视频等多种模态的内容转换为结构化数据或 Markdown 文本,直接支撑 RAG(检索增强生成)应用。

为什么需要这个技能

在构建现代化 AI 应用时,数据往往分散在 PDF、扫描件、会议录音或演示视频中。传统的 OCR 或简单的语音转文字工具难以捕捉深层的语义关联,且缺乏统一的接口来处理不同类型的媒体文件。

Azure AI Content Understanding 提供了一套统一的 Python SDK,能够一次性处理多种媒体格式,并将结果标准化为 Markdown 或定义的字段。这使得开发者无需为每种媒体类型编写不同的解析逻辑,极大降低了多模态数据预处理的复杂度。

适用场景

  • RAG 知识库构建:将复杂的 PDF 文档、图表、视频教程转化为高质量的 Markdown 文本,提升检索精度。
  • 自动化单据处理:使用预置的 prebuilt-invoice 分析器或自定义分析器,自动提取发票金额、供应商等关键字段。
  • 音视频内容索引:提取视频的关键帧描述和带时间戳的转录文本,实现视频内容的快速检索。
  • 多模态数据分析:从图像中提取语义内容,将其转化为可搜索的文本格式。

核心工作流

  1. 环境准备:安装 SDK 并配置 CONTENTUNDERSTANDING_ENDPOINT 环境变量。
  2. 初始化客户端:使用 DefaultAzureCredential 进行身份验证并实例化 ContentUnderstandingClient
  3. 发起异步分析:由于媒体处理耗时较长,调用 begin_analyze() 启动分析任务,该方法会返回一个轮询器(Poller)。
  4. 结果获取与处理:通过 .result() 等待任务完成,从 AnalyzeResult.contents 列表中提取结构化内容。
  5. 解析特定模态
    • 文档/图像:直接访问 .markdown 属性获取文本。
    • 音视频:遍历 transcript_phrases 获取带时间戳的文本,或遍历 key_frames 获取画面描述。

核心代码示例

python
import os
from azure.ai.contentunderstanding import ContentUnderstandingClient
from azure.ai.contentunderstanding.models import AnalyzeInput
from azure.identity import DefaultAzureCredential

# 初始化客户端
endpoint = os.environ["CONTENTUNDERSTANDING_ENDPOINT"]
client = ContentUnderstandingClient(
    endpoint=endpoint,
    credential=DefaultAzureCredential()
)

# 分析文档并提取 Markdown
poller = client.begin_analyze(
    analyzer_id="prebuilt-documentSearch",
    inputs=[AnalyzeInput(url="https://example.com/document.pdf")]
)

result = poller.result()
content = result.contents[0]
print(content.markdown)

下载和安装

下载 azure-ai-contentunderstanding-py 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐