Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku zjistíte, jak nastavit agenta dat v Microsoft Fabric s použitím lakehouse jako ukázkového zdroje dat. Nejprve vytvoříme a naplníme lakehouse, poté vytvoříme datového agenta Fabric a přidáme k němu lakehouse. Pokud už máte semantický model Power BI, ujistěte se, že máte oprávnění ke čtení prostřednictvím datového agenta (oprávnění k zápisu se vyžaduje pouze k úpravě semantického modelu nebo využití schopností, jako je příprava pro AI). Pro sklad, databázi KQL nebo ontologii použijte stejný postup a vyberte tento zdroj. I když tento názorný postup používá jezerní dům, vzor je stejný pro ostatní zdroje; Liší se pouze výběr zdroje dat.
Důležité
Tato funkce je ve verzi Preview.
Požadavky
- Placená kapacita Fabric F2 nebo vyšší, nebo kapacita Power BI Premium na uživatele (P1 nebo vyšší) s povolenou funkcí Microsoft Fabric.
- Povolit zpracování a ukládání napříč geografiemi pro AI na základě požadavků uvedených v nastavení tenanta datového agenta Fabric.
- Nejméně jeden z těchto zdrojů dat s daty: sklad, jezero, sémantický model Power BI, databáze KQL, zrcadlená databáze nebo ontologie. Ke zdroji dat musíte mít přístup pro čtení.
Důležité
Ujistěte se, že je na portálu pro správu Power BI povolené samostatné prostředí Copilot (nastavení klienta > Copilot > Samostatné prostředí Copilot). Pokud není povolená, nebudete moct používat datového agenta v Copilot scénářích, i když jsou zapnuté jiné přepínače tenantů Copilot. Podrobnosti najdete v tématu Copilot v nastavení tenanta Power BI.
Vytvořte lakehouse pomocí AdventureWorksLH
Nejprve vytvořte jezerní dům a naplňte ho potřebnými daty.
Pokud už máte instanci AdventureWorksLH v jezeře (nebo skladu), můžete tento krok přeskočit. Pokud ne, můžete použít následující pokyny z poznámkového bloku Fabric k načtení dat do lakehouse.
Vytvořte nový poznámkový blok v pracovním prostoru, kde chcete vytvořit datového agenta Fabric.
Na levé straně podokna Průzkumník vyberte + Zdroje dat. Tato možnost umožňuje přidat existující jezerní dům nebo vytvořit nový jezerní dům. Kvůli přehlednosti vytvořte nový jezerní dům a přiřaďte mu název.
Do horní buňky přidejte následující fragment kódu:
import pandas as pd from tqdm.auto import tqdm base = "https://synapseaisolutionsa.z13.web.core.windows.net/data/AdventureWorks" # load list of tables df_tables = pd.read_csv(f"{base}/adventureworks.csv", names=["table"]) for table in (pbar := tqdm(df_tables['table'].values)): pbar.set_description(f"Uploading {table} to lakehouse") # download df = pd.read_parquet(f"{base}/{table}.parquet") # save as lakehouse table spark.createDataFrame(df).write.mode('overwrite').saveAsTable(table)Vyberte Spustit vše.
Po několika minutách se datové úložiště naplní potřebnými daty.
Upozornění
Poznámkové bloky, které pokračují v běhu (například kvůli náhodné nekonečné smyčce nebo konstantnímu dotazování), můžou využívat kapacitu Fabricu neomezeně dlouho. Po dokončení načítání dat zastavte všechny aktivní buňky a ukončete relaci poznámkového bloku (panel nástrojů > Poznámkový blok), pokud ji už nepotřebujete. Vyhněte se přidávání dlouhotrvajících smyček bez časového limitu.
Vytvoření datového agenta Fabric
Pokud chcete vytvořit nový datový agent Fabric, přejděte do pracovního prostoru a vyberte tlačítko + Nová položka, jak je ukázáno na této obrazovce:
Na kartě Všechny položky vyhledejte agenta Fabric data a najděte příslušnou možnost. Po výběru se zobrazí výzva, abyste zadali název datového agenta Fabric, jak je znázorněno na tomto snímku obrazovky:
Po zadání názvu pokračujte podle následujících kroků, abyste přizpůsobili agenta pro data Fabricu podle vašich konkrétních požadavků.
Výběr dat
Vyberte lakehouse, který jste vytvořili v předchozím kroku, a pak vyberte Přidat, jak je znázorněno na následujícím snímku obrazovky.
Po přidání lakehouse jako zdroje dat se na levé straně stránky data agenta Fabric zobrazí podokno Explorer s názvem lakehouse. Výběrem lakehouse zobrazíte všechny dostupné tabulky. Pomocí zaškrtávacích políček vyberte tabulky, které chcete zpřístupnit umělé inteligenci. V tomto scénáři vyberte tyto tabulky:
dimcustomerdimdatedimgeographydimproductdimproductcategorydimpromotiondimresellerdimsalesterritoryfactinternetsalesfactresellersales
Oprávnění pro sémantické modely v datových agentech
Uživatelé potřebují oprávnění ke čtení jenom u Power BI sémantického modelu, aby ho mohli přidat do datového agenta a klást otázky prostřednictvím agenta. Pro interakci prostřednictvím datových agentů se nevyžaduje přístup k pracovnímu prostoru (role člena) a oprávnění k sestavení. Oprávnění k zápisu je potřeba jenom pro úpravu sémantického modelu nebo použití funkcí, jako je příprava pro AI.
Tato změna oprávnění se vztahuje pouze na interakce prostřednictvím datových agentů. Jiné vzory přístupu (například Analyzovat v Excel nebo přímé vytváření sestav) se řídí standardními Power BI oprávněními.
Uveďte pokyny
Pokud chcete přidat pokyny, vyberte tlačítko Pokyny agenta dat a otevřete podokno s pokyny vpravo. Můžete přidat následující pokyny.
Zdroj dat AdventureWorksLH obsahuje informace ze tří tabulek:
-
dimcustomer, podrobné demografické údaje o zákaznících a kontaktní údaje -
dimdate, pro data související s datem – například kalendářní a fiskální informace -
dimgeography, pro geografické podrobnosti, včetně názvů měst a kódů oblastí zemí.
Tento zdroj dat použijte pro dotazy a analýzy, které zahrnují podrobnosti o zákaznících, události založené na čase a zeměpisná umístění.
Uveďte příklady
Pokud chcete přidat ukázkové dotazy, vyberte tlačítko Ukázkové dotazy a otevřete napravo podokno ukázkových dotazů. Toto podokno poskytuje možnosti pro přidání nebo úpravu ukázkových dotazů pro všechny podporované zdroje dat. Pro každý zdroj dat můžete vybrat Přidat nebo upravit ukázkové dotazy a zadat relevantní příklady, jak je znázorněno na následujícím snímku obrazovky:
Tady byste měli přidat ukázkové dotazy pro zdroj dat lakehouse, který jste vytvořili.
Question: Calculate the average percentage increase in sales amount for repeat purchases for every zipcode. Repeat purchase is a purchase subsequent to the first purchase (the average should always be computed relative to the first purchase)
SELECT AVG((s.SalesAmount - first_purchase.SalesAmount) / first_purchase.SalesAmount * 100) AS AvgPercentageIncrease
FROM factinternetsales s
INNER JOIN dimcustomer c ON s.CustomerKey = c.CustomerKey
INNER JOIN dimgeography g ON c.GeographyKey = g.GeographyKey
INNER JOIN (
SELECT *
FROM (
SELECT
CustomerKey,
SalesAmount,
OrderDate,
ROW_NUMBER() OVER (PARTITION BY CustomerKey ORDER BY OrderDate) AS RowNumber
FROM factinternetsales
) AS t
WHERE RowNumber = 1
) first_purchase ON s.CustomerKey = first_purchase.CustomerKey
WHERE s.OrderDate > first_purchase.OrderDate
GROUP BY g.PostalCode;
Question: Show the monthly total and year-to-date total sales. Order by year and month.
SELECT
Year,
Month,
MonthlySales,
SUM(MonthlySales) OVER (PARTITION BY Year ORDER BY Year, Month ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CumulativeTotal
FROM (
SELECT
YEAR(OrderDate) AS Year,
MONTH(OrderDate) AS Month,
SUM(SalesAmount) AS MonthlySales
FROM factinternetsales
GROUP BY YEAR(OrderDate), MONTH(OrderDate)
) AS t
Poznámka:
Přidání ukázkových párů dotazů se v současné době nepodporuje pro sémantické modely zdrojů dat Power BI.
Testování a revize datového agenta Fabric
Teď, když jste nakonfigurovali agenta dat Fabric, přidali pokyny pro agenta dat Fabric a poskytli ukázkové dotazy pro jezero dat, můžete s ním pracovat, pokládat otázky a dostávat odpovědi. Když budete pokračovat v testování, můžete přidat další příklady a upřesnit pokyny, abyste dále zlepšili výkon Fabric datového agenta. Spolupracujte s kolegy a shromážděte zpětnou vazbu a na základě jejich vstupu zajistěte, aby zadané ukázkové dotazy a pokyny odpovídaly typům otázek, které chtějí položit.
Publikujte datového agenta Fabric
Po ověření výkonu Fabric datového agenta se můžete rozhodnout ho publikovat, abyste ho mohli sdílet s kolegy, kteří chtějí provádět otázky a odpovědi nad daty. V tomto případě vyberte Publikovat, jak je znázorněno na tomto snímku obrazovky:
Otevře se okno Agent pro publikování dat, jak je znázorněno na tomto snímku obrazovky.
V tomto poli vyberte Publish a publikujte agenta dat Fabric. Po zveřejnění může být datový agent využit jako server modelového kontextového protokolu (MCP).
Programové použití datového agenta Fabric
Fabric datového agenta můžete použít programově v poznámkovém bloku Fabric. Pokud chcete zjistit, jestli má datový agent Fabric publikovanou hodnotu adresy URL, vyberte Settings, jak je znázorněno na následujícím snímku obrazovky:
Před publikováním Fabric datového agenta nemá publikovanou hodnotu adresy URL, jak je znázorněno na následujícím snímku obrazovky:
Pokud jste dosud nepublikovali agenta Fabric pro data, můžete ho publikovat podle pokynů v předchozích krocích. Publikovanou adresu URL pak můžete zkopírovat a použít ji v poznámkovém bloku Fabric. Takto se můžete dotázat na data prostřednictvím agenta Fabric voláním jeho API v poznámkovém bloku Fabric. Vložte zkopírovanou adresu URL do tohoto fragmentu kódu. Pak tuto otázku nahraďte libovolným dotazem relevantním pro vašeho Fabric datového agenta. Tento příklad používá \<generic published URL value\> jako adresu URL.
Důležité
Při programovém volání datového agenta implementujte:
- Časový limit dotazování (viz příklad níže), abyste se vyhnuli nekonečným smyčkám.
- Minimální frekvence dotazování (začíná na 2–5 sekundách, zvýší se pouze v případě potřeby).
- Vyčištění vytvořených vláken či prostředků po jejich dokončení.
- Vypnutí relace poznámkového bloku po dokončení uvolnění kapacity Fabric
Poznámka:
Upravte nastavení verzí (openai, synapseml, pandas, tqdm) na nejnovější ověřené verze pro váš modul runtime Fabric, pokud tyto verze zastarají.
%pip install "openai==1.70.0"
%pip install "synapseml==1.0.5" # Required for synapse.ml.mlflow (update version as needed)
%pip install pandas tqdm # Skip if already available in the Fabric runtime
Důležité
Od doby, kdy OpenAI ukončilo API Assistants, by aplikace měly používat koncový bod MCP pro interakce s agenty. Na rozdíl od API Assistants neposkytuje MCP endpoint vestavěnou správu konverzací, takže volající musí orchestrovat vícekolové interakce udržováním stavu konverzace a poskytováním relevantního kontextu napříč požadavky.
Dotazování datového agenta z Python
Následující příklad se připojí ke koncovému bodu MCP, zjistí nástroj, odešle otázku a vytiskne odpověď. Znovu použije credential z kroku Ověření do Fabricu a používá MCP Python SDK. Nejprve nainstalujte sadu SDK:
%pip install mcp
import asyncio
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
workspace_id = "<your-workspace-id>"
data_agent_id = "<your-data-agent-id>"
question = "<your question>"
mcp_url = (
f"https://api.fabric.microsoft.com/v1/mcp/workspaces/{workspace_id}"
f"/dataagents/{data_agent_id}/agent"
)
def get_auth_headers():
token = credential.get_token("https://api.fabric.microsoft.com/.default")
return {"Authorization": f"Bearer {token.token}"}
async def query_data_agent(question):
headers = get_auth_headers()
async with streamablehttp_client(mcp_url, headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
# The data agent exposes a single tool. Discover it, then call it.
tools = await session.list_tools()
tool = tools.tools[0]
question_arg = next(iter(tool.inputSchema["properties"]))
result = await session.call_tool(tool.name, {question_arg: question})
answers = [block.text for block in result.content if block.type == "text"]
return "\n".join(answers)
answer = asyncio.run(query_data_agent(question))
print(answer)
Související obsah
- koncept datového agenta Fabric
- Vytvoření datového agenta Fabric