Microsoft Agent Framework에 대한 foundry Tools 통합의 Azure Content Understanding은 파일 첨부 파일에 대한 컨텍스트 공급자를 제공합니다. 공급자는 에이전트 입력에서 지원되는 문서, 이미지, 오디오 및 비디오를 검색하고, 파일을 분석하고, Markdown 및 추출된 필드를 모델 컨텍스트에 추가합니다.
사전 요구 사항
- Azure 구독입니다. 무료 Azure 구독을 만들 수 있습니다.
- Content Understanding이 구성된 Microsoft Foundry 리소스입니다. 설치 지침은 Microsoft Foundry 리소스 만들기를 참조하세요. 리소스가 지원되는 지역에 있는지 확인합니다.
- 리소스에 대해 구성된 기본 모델 배포입니다. Foundry 모델 배포를 참조하세요.
- Python 3.10 이상.
- 샘플에서 인증할 수 있도록 Azure CLI(
az login)로AzureCliCredential로그인합니다.
이 통합을 사용하는 이유
- 자동 첨부 파일 처리. 프레임워크는 각 모델 호출 전에 공급자를 호출하므로 분석기를 직접 호출하지 않습니다.
- 다중 모드 입력입니다. 공급자는 문서, 이미지, 오디오 및 비디오를 허용합니다.
- 구조적 출력. 공급자는 Markdown 및 추출된 필드를 모델 컨텍스트에 추가할 수 있습니다.
- 지연된 처리입니다. 구성 가능한 대기 시간을 사용하면 장기 실행 분석을 백그라운드에서 계속할 수 있습니다. 선택적 파일 검색 지원은 RAG(검색 보강 생성)를 위해 추출된 Markdown을 벡터 저장소에 업로드합니다.
패키지 설치
Microsoft Agent Framework용 Content Understanding 통합 패키지를 설치합니다. 통합은 PyPI에서도 agent-framework-azure-contentunderstanding사용할 수 있는 패키지에 제공됩니다.
pip install agent-framework-azure-contentunderstanding --pre
메모
플래그는 --pre 패키지의 현재 시험판 빌드를 설치합니다.
Content Understanding을 컨텍스트 공급자로 등록
생성하고 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())
각 모델 호출 전에 프레임워크는 공급자를 호출합니다. 공급자는 지원되는 첨부 파일을 검색하고 분석하므로 분석기를 직접 호출하지 않습니다.
제공자 구성
추가 매개 변수를 전달하여 분석기를 선택하고 공급자가 반환하는 콘텐츠 양을 제어합니다.
| 매개 변수 | Purpose |
|---|---|
endpoint |
Microsoft Foundry 리소스의 엔드포인트입니다. 생략하면 공급자가 환경 변수에서 AZURE_CONTENTUNDERSTANDING_ENDPOINT 읽습니다. |
credential |
AzureKeyCredential API 키 인증 또는 Microsoft Entra ID 인증에 대한 Azure ID 자격 증명(예: AzureCliCredential 또는DefaultAzureCredential)입니다. |
analyzer_id |
미리 빌드된 또는 사용자 지정 분석기 ID입니다. 이 매개 변수를 생략하면 공급자가 문서 및 이미지, prebuilt-audioSearch 오디오 및 prebuilt-videoSearch 비디오에 대해 선택합니다prebuilt-documentSearch. |
max_wait |
분석을 백그라운드로 연기하기 전에 대기할 시간(초)입니다. 기본값은 5초입니다. 분석이 완료될 때까지 기다리도록 None 설정합니다. |
output_sections |
모델 컨텍스트에 추가할 결과 섹션입니다. 기본 섹션은 Markdown 및 필드입니다. |
file_search |
모델 컨텍스트에 전체 콘텐츠를 추가하는 대신 추출된 Markdown을 벡터 저장소에 업로드하기 위한 선택적 구성입니다. |
Tip
도메인별 추출의 경우 미리 빌드된 또는 사용자 지정 분석기 ID로 설정합니다 analyzer_id . 그런 다음 공급자는 분석기 필드를 모델 컨텍스트에 추가합니다.
지원되는 파일 형식
공급자는 문서, 이미지, 오디오 및 비디오를 허용합니다. 지원되는 형식 및 크기 제한의 전체 목록은 Content Understanding 서비스 할당량 및 제한을 참조하세요.