Использование распознавания содержимого с помощью платформы агента Microsoft

Интеграция Azure content Understanding in Foundry Tools для платформы агента Microsoft предоставляет поставщик контекста для вложений файлов. Поставщик обнаруживает поддерживаемые документы, изображения, аудио и видео в входных данных агента, анализирует файлы и добавляет Markdown и извлекает поля в контекст модели.

Необходимые условия

Почему эта интеграция используется

  • Автоматическая обработка вложений. Платформа вызывает поставщика перед вызовом каждой модели, поэтому вы не вызываете анализатор напрямую.
  • Многомодальные входные данные. Поставщик принимает документы, изображения, аудио и видео.
  • Структурированные выходные данные. Поставщик может добавить Markdown и извлечь поля в контекст модели.
  • Отложенная обработка. Настраиваемое время ожидания позволяет длительным анализам продолжаться в фоновом режиме. Дополнительная поддержка поиска файлов отправляет извлеченные Markdown в векторное хранилище для получения дополненного поколения (RAG).

Установите пакет

Установите пакет интеграции "Понимание содержимого" для платформы агента Microsoft. Интеграция поставляется в пакете, который также доступен в agent-framework-azure-contentunderstandingPyPI:

pip install agent-framework-azure-contentunderstanding --pre

Note

Флаг --pre устанавливает текущую предварительную сборку пакета.

Регистрация распознавания контента в качестве поставщика контекста

ContentUnderstandingContextProviderСоздайте агент, передайте его context_providers через параметр и запустите агент внутри блока поставщикаasync with. В следующем примере ответит на вопрос о присоединенном документе:

import asyncio
from agent_framework import Agent, AgentSession, Message, Content
from agent_framework.foundry import FoundryChatClient
from agent_framework.foundry import ContentUnderstandingContextProvider
from azure.identity import AzureCliCredential

credential = AzureCliCredential()

cu = ContentUnderstandingContextProvider(
    endpoint="https://my-resource.cognitiveservices.azure.com/",
    credential=credential,
    # Block until analysis completes before sending to the model.
    max_wait=None,
)

client = FoundryChatClient(
    project_endpoint="https://your-project.services.ai.azure.com",
    model="gpt-5.2",
    credential=credential,
)

async def main():
    async with cu:
        agent = Agent(
            client=client,
            name="DocumentQA",
            instructions="You are a helpful document analyst.",
            context_providers=[cu],
        )
        session = AgentSession()

        response = await agent.run(
            Message(role="user", contents=[
                Content.from_text("What's on this invoice?"),
                Content.from_uri(
                    "https://raw.githubusercontent.com/Azure-Samples/"
                    "azure-ai-content-understanding-assets/main/"
                    "document/invoice.pdf",
                    media_type="application/pdf",
                    additional_properties={"filename": "invoice.pdf"},
                ),
            ]),
            session=session,
        )
        print(response.text)

asyncio.run(main())

Перед вызовом каждой модели платформа вызывает поставщика. Поставщик обнаруживает и анализирует поддерживаемые вложения, поэтому вы не вызываете анализатор напрямую.

Настройте провайдера

Передайте дополнительные параметры, чтобы выбрать анализатор и контролировать, сколько содержимого возвращает поставщик:

Parameter Purpose
endpoint Конечная точка ресурса Microsoft Foundry. Если опущено, поставщик считывает его из переменной AZURE_CONTENTUNDERSTANDING_ENDPOINT среды.
credential Для AzureKeyCredential проверки подлинности ключа API или учетных данных удостоверения Azure, например AzureCliCredentialDefaultAzureCredentialдля проверки подлинности Microsoft Entra ID.
analyzer_id Предварительно созданный или пользовательский идентификатор анализатора. Если этот параметр не указан, поставщик выбирает prebuilt-documentSearch документы и изображения, prebuilt-audioSearch аудио prebuilt-videoSearch и видео.
max_wait Сколько секунд нужно ждать, прежде чем откладывать анализ на фон. Значение по умолчанию — 5 секунд. Задайте для него None значение, чтобы ждать завершения анализа.
output_sections Какие разделы результатов следует добавить в контекст модели. Разделы по умолчанию — Markdown и поля.
file_search Необязательная конфигурация для отправки извлеченных Markdown в векторное хранилище вместо добавления полного содержимого в контекст модели.

Tip

Для извлечения для конкретного домена задайте analyzer_id предварительно созданный или пользовательский идентификатор анализатора. Затем поставщик добавляет поля анализатора в контекст модели.

Поддерживаемые типы файлов

Поставщик принимает документы, изображения, аудио и видео. Полный список поддерживаемых форматов и ограничений размера см. в разделе " Квоты и ограничения службы "Распознавание содержимого".

Дальнейшие действия