Použití služby Content Understanding s architekturou agenta Microsoft

Integrace Azure Content Understanding in Foundry Tools pro Microsoft Agent Framework poskytuje zprostředkovatele kontextu pro přílohy souborů. Poskytovatel rozpozná podporované dokumenty, obrázky, zvuk a video ve vstupu agenta, analyzuje soubory a přidá Markdown a extrahovaná pole do kontextu modelu.

Předpoklady

Proč tuto integraci používat

  • Automatické zpracování příloh. Architektura volá poskytovatele před voláním jednotlivých modelů, takže analyzátor nevoláte přímo.
  • Multimodální vstup. Poskytovatel přijímá dokumenty, obrázky, zvuk a video.
  • Strukturovaný výstup Zprostředkovatel může přidat Markdown a extrahovaná pole do kontextu modelu.
  • Odložené zpracování. Konfigurovatelná doba čekání umožňuje dlouhotrvajícím analýzám pokračovat na pozadí. Volitelná podpora vyhledávání souborů podporuje nahrání extrahovaného Markdownu do úložiště vektorů pro načítání rozšířené generace (RAG).

Nainstalujte balíček

Nainstalujte integrační balíček Content Understanding pro architekturu agenta Microsoft. Integrace se dodává v agent-framework-azure-contentunderstanding balíčku, který je k dispozici také na PyPI:

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

Note

Příznak --pre nainstaluje aktuální předběžné sestavení balíčku.

Registrace služby Content Understanding jako zprostředkovatele kontextu

Vytvořte ContentUnderstandingContextProvider, předejte ho vašemu agentovi prostřednictvím parametru context_providers a spusťte agenta uvnitř bloku poskytovatele async with . Následující příklad odpovídá na otázku týkající se připojeného dokumentu:

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())

Před vyvoláním jednotlivých modelů volá architektura poskytovatele. Poskytovatel detekuje a analyzuje podporované přílohy, takže analyzátor nevyvoláte přímo.

Konfigurujte poskytovatele

Předáním dalších parametrů vyberte analyzátor a určete, kolik obsahu poskytovatel vrátí:

Parameter Purpose
endpoint Koncový bod vašeho prostředku Microsoft Foundry. Pokud tento parametr vynecháte, zprostředkovatel ho AZURE_CONTENTUNDERSTANDING_ENDPOINT přečte z proměnné prostředí.
credential Ověřování AzureKeyCredential pomocí klíče rozhraní API nebo přihlašovací údaje Azure identity, například AzureCliCredential nebo DefaultAzureCredential, pro Microsoft Entra ID ověřování.
analyzer_id Předem sestavené nebo vlastní ID analyzátoru. Pokud tento parametr vynecháte, poskytovatel vybere prebuilt-documentSearch dokumenty a obrázky, prebuilt-audioSearch zvuk a prebuilt-videoSearch video.
max_wait Kolik sekund se má počkat, než se analýza odloží na pozadí. Výchozí hodnota je 5 sekund. Nastavte ji tak, aby None počkala na dokončení analýzy.
output_sections Které části výsledků se mají přidat do kontextu modelu. Výchozí oddíly jsou Markdown a pole.
file_search Volitelná konfigurace pro nahrání extrahovaného Markdownu do úložiště vektorů místo přidání celého obsahu do kontextu modelu.

Tip

Pro extrakci specifickou pro doménu nastavte analyzer_id předem vytvořené nebo vlastní ID analyzátoru. Zprostředkovatel pak přidá pole analyzátoru do kontextu modelu.

Podporované typy souborů

Poskytovatel přijímá dokumenty, obrázky, zvuk a video. Úplný seznam podporovaných formátů a omezení velikosti najdete v tématu Kvóty a omezení služby Content Understanding.

Další kroky