Microsoft Fabric 데이터 에이전트는 엔터프라이즈 데이터를 대화형 Q&A 시스템으로 변환합니다. 이를 통해 사용자는 채팅을 통해 데이터와 상호 작용하여 실행 가능한 인사이트를 파악할 수 있습니다. Fabric 데이터 에이전트를 사용하는 한 가지 방법은 Microsoft Foundry의 핵심 구성 요소인 Foundry 에이전트 서비스를 사용하는 것입니다. Fabric 데이터 에이전트와 Foundry의 통합을 통해 Azure AI 에이전트는 Microsoft Fabric OneLake에서 사용할 수 있는 풍부하고 구조화된 의미 체계 데이터를 직접 활용할 수 있습니다. 이러한 통합을 통해 고품질 엔터프라이즈 데이터에 즉시 액세스할 수 있으며, Azure AI 에이전트가 실행 가능한 인사이트를 생성하고 분석 워크플로를 간소화할 수 있습니다. 그런 다음 조직은 Azure AI 환경 내에서 강력한 지식 원본으로 Fabric 데이터 에이전트를 사용하여 데이터 기반 의사 결정을 향상시킬 수 있습니다.
중요합니다
이 기능은 프리뷰 상태입니다. 최신 베타 또는 미리 보기 버전의 Azure AI 에이전트 Python SDK 사용합니다.
필수 조건
- F2 이상의 유료 Fabric 용량 또는 Power BI 프리미엄(P1 이상) 용량에 Microsoft Fabric이 활성화된 용량.
- 패브릭 데이터 에이전트 테넌트 설정에 설명된 요구 사항에 따라 AI에 대해 지역 간 처리 및 지역 간 저장을 사용하도록 설정합니다.
- 데이터가 포함된 데이터 원본으로는 웨어하우스, 레이크하우스, Power BI 의미 체계 모델, KQL 데이터베이스, 미러된 데이터베이스 또는 온톨로지 중 하나 이상이 포함됩니다. 데이터 원본에 대한 읽기 권한이 있어야 합니다.
- Foundry의 개발자 및 최종 사용자에게는 최소한 RBAC(
AI DeveloperRole-Based Access Control) 역할이 있어야 합니다.
작동 방식
Agent Setup: 에이전트 서비스에서 새 에이전트를 만들고 Fabric 데이터 에이전트를 해당 기술 자료 중 하나로 추가합니다. 이 연결을 설정하려면 Fabric 데이터 에이전트의 작업 영역 ID 및 아티팩트 ID가 필요합니다. 이 설정을 사용하면 Azure AI 에이전트가 쿼리를 받을 때 사용 가능한 원본을 평가하여 요청을 처리하기 위해 올바른 도구를 호출하는지 확인할 수 있습니다. 현재 Azure AI 에이전트에 하나의 Fabric 데이터 에이전트를 지식 원본으로 추가할 수 있습니다.
비고
Azure AI 에이전트 설정에서 선택한 모델은 Azure AI 에이전트 오케스트레이션 및 응답 생성에만 사용됩니다. Fabric 데이터 에이전트가 사용하는 모델에는 영향을 주지 않습니다.
쿼리 처리: 사용자가 Foundry 플레이그라운드에서 쿼리를 보내면 에이전트 서비스에서 Fabric 데이터 에이전트가 작업에 가장 적합한 도구인지 여부를 결정합니다. 이 경우 Azure AI 에이전트는 다음과 같습니다.
- 최종 사용자의 ID를 사용하여 사용자가 Fabric 데이터 에이전트 내에서 액세스할 수 있는 권한이 있는 데이터 원본에 대한 보안 쿼리를 생성합니다.
- Fabric 호출하여 데이터를 가져오고 처리하여 원활하고 자동화된 환경을 보장합니다.
- Fabric 데이터 에이전트의 결과를 고유한 논리와 결합하여 포괄적인 응답을 생성합니다. ID Passthrough(On-Behalf-Of) 인증은 이러한 흐름을 보호하여 기업 데이터 전반에 걸쳐 강력한 보안과 적절한 액세스 제어를 보장합니다.
비고
Fabric 데이터 에이전트와 Foundry 리소스는 동일한 테넌트에 있어야 하며 Microsoft Fabric 및 Foundry는 모두 동일한 계정으로 로그인되어야 합니다.
Azure AI 에이전트에 Fabric 데이터 에이전트 추가
프로그래밍 방식으로 또는 UI(사용자 인터페이스)를 사용하여 Azure AI 에이전트에 Fabric 데이터 에이전트를 추가할 수 있습니다. 자세한 코드 예제 및 추가 지침은 Azure AI 에이전트 통합 설명서를 참조하세요.
UI를 통해 Fabric 데이터 에이전트를 추가
- 왼쪽 창으로 이동합니다. 다음 스크린샷과 같이 구축 및 사용자 지정에서 에이전트 선택:
이 단계에서는 기존 Azure AI 에이전트 목록을 표시합니다. 이러한 에이전트 중 하나에 Fabric 추가하거나 새 에이전트를 선택하여 새 에이전트를 만들 수 있습니다. 새 에이전트를 만들면 고유한 에이전트 ID와 기본 이름이 생성됩니다. 언제든지 해당 이름을 변경할 수 있습니다. 자세한 내용은 Foundry 포털에서 Azure OpenAI는 무엇인가요 참조하세요.
- 정보 원본 추가를 시작: 다음 스크린샷과 같이 추가 버튼 선택:
이 단계에서는 지원되는 기술 자료 유형의 메뉴를 엽니다.
- 원본으로 Microsoft Fabric 선택합니다. 목록에서 다음 스크린샷과 같이 Microsoft Fabric 선택합니다.
이 옵션을 사용하면 에이전트가 Fabric 데이터 에이전트에 액세스할 수 있습니다.
- 연결 만들기: 이전에 Fabric 데이터 에이전트에 대한 연결을 설정한 경우 새 Azure AI 에이전트에 해당 연결을 다시 사용할 수 있습니다. 그렇지 않으면 다음 스크린샷과 같이 새 연결을 선택하여 연결을 만듭니다.
다음 스크린샷과 같이 새 Microsoft Fabric 연결 만들기 창이 열립니다.
연결을 설정할 때 Fabric 데이터 에이전트 workspace-id 및 artifact-id 값을 사용자 지정 키로 제공합니다. 게시된 Fabric 데이터 에이전트 엔드포인트에서 workspace-id 및 artifact-id 값을 찾을 수 있습니다. Fabric 데이터 에이전트 엔드포인트의 형식은 다음과 같습니다.
https://fabric.microsoft.com/groups/ < workspace_id>/aiskills/<artifact-id>, 그리고 Is Secret 확인란 선택
마지막으로 연결에 이름을 할당하고 Foundry의 모든 프로젝트에서 사용할 수 있도록 할지 아니면 현재 프로젝트로 제한할지 선택합니다.
Connect 선택하면 다음 스크린샷과 같이 Microsoft Fabric 데이터 에이전트가 Knowledge 리소스로 추가됩니다.
또한 Azure AI 에이전트에 Fabric 데이터 에이전트를 사용하는 시기, 방법 및 조건에 대한 지침을 제공해야 합니다. Azure AI 에이전트의 관점에서 Fabric 데이터 에이전트는 Fabric 도구로 처리되므로 지침에서 참조할 수 있습니다.
사용 사례 요구 사항에 따라 배포 모델을 조정하거나, 작업을 추가하거나, 모델 설정을 변경할 수도 있습니다. Azure AI 에이전트가 완전히 구성되면 놀이터에서 시도를 선택하여 성능을 테스트합니다.
프로그래매틱 방식으로 Fabric 데이터 에이전트 추가: 다음 단계에서는 Python Azure AI 에이전트에 프로그래밍 방식으로 Fabric 데이터 에이전트를 추가하는 방법을 설명합니다. 다른 언어(C#, JavaScript)는 이 리소스를 참조하세요.
1단계: 프로젝트 클라이언트 만들기
AI 프로젝트 및 기타 리소스에 연결하는 connection string 포함하는 클라이언트 개체를 만듭니다.
import os
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from azure.ai.agents.models import FabricTool, ListSortOrder
2단계: Microsoft Fabric 도구를 사용하도록 설정된 에이전트 만들기
Azure AI 에이전트에서 Fabric 데이터 에이전트 도구를 사용할 수 있도록 하려면 연결을 사용하여 도구를 초기화하고 에이전트에 연결합니다. Foundry 포털에서 프로젝트의 연결된 리소스 섹션에서 연결을 찾을 수 있습니다.
# The Fabric connection ID can be found in the Foundry project as a property of the Fabric tool
# Your connection ID is in the format /subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group>/providers/Microsoft.MachineLearningServices/workspaces/<your-project-name>/connections/<your-fabric-connection-name>
conn_id = "your-connection-id"
# Initialize the AI project client
project_client = AIProjectClient(
endpoint=os.environ["PROJECT_ENDPOINT"],
credential=DefaultAzureCredential(),
)
# Initialize agent Fabric tool and add the connection ID
fabric = FabricTool(connection_id=conn_id)
# Create agent with the Fabric tool and process assistant run
with project_client:
agent = project_client.agents.create_agent(
model="gpt-4o",
name="my-assistant",
instructions="You are a helpful assistant",
tools=fabric.definitions,
headers={"x-ms-enable-preview": "true"},
)
print(f"Created agent, ID: {agent.id}")
3단계: 스레드 만들기
# Create thread for communication
thread = project_client.agents.create_thread()
print(f"Created thread, ID: {thread.id}")
# Create message to thread
# Remember to update the message with your data
message = project_client.agents.create_message(
thread_id=thread.id,
role="user",
content="what is top sold product in Contoso last month?",
)
print(f"Created message, ID: {message.id}")
4단계: 실행 만들기 및 출력 확인
실행을 만들고 모델이 Fabric 데이터 에이전트 도구를 사용하여 사용자의 질문에 대한 응답을 제공하는지 확인합니다.
# Create and process agent run in thread with tools
run = project_client.agents.create_and_process_run(thread_id=thread.id, assistant_id=agent.id)
print(f"Run finished with status: {run.status}")
if run.status == "failed":
print(f"Run failed: {run.last_error}")
# Delete the assistant when done
project_client.agents.delete_agent(agent.id)
print("Deleted agent")
# Fetch and log all messages
messages = project_client.agents.list_messages(thread_id=thread.id)
print(f"Messages: {messages}")