Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini memperlihatkan cara menyiapkan agen data di Microsoft Fabric menggunakan lakehouse sebagai sumber data contoh. Pertama, kami membuat dan mengisi lakehouse, kemudian kami membuat data agent Fabric dan menambahkan lakehouse ke dalamnya. Jika Anda sudah memiliki model semantik Power BI, pastikan Anda memiliki izin Baca untuk berinteraksi dengannya melalui agen data (Izin tulis hanya diperlukan untuk memodifikasi model semantik atau menggunakan kemampuan seperti Persiapan untuk AI). Untuk gudang, database KQL, atau ontologi, ikuti langkah yang sama dan pilih sumber tersebut sebagai gantinya. Meskipun panduan ini menggunakan lakehouse, pola yang digunakan tetap sama untuk sumber lain; perbedaannya hanya terletak pada pemilihan sumber data.
Penting
Fitur ini sedang dalam tahap pratinjau.
Prasyarat
- Kapasitas Fabric F2 berbayar atau lebih tinggi, atau kapasitas Power BI Premium per kapabilitas (P1 atau lebih tinggi) dengan Microsoft Fabric diaktifkan.
- Aktifkan pemrosesan dan penyimpanan lintas-geo untuk AI berdasarkan persyaratan yang dijelaskan dalam pengaturan penyewa agen data Fabric.
- Sekurang-kurangnya satu dari sumber data berikut ini yang mengandung data: Gudang data, lakehouse, model semantik Power BI, database KQL, database yang dicerminkan, atau ontologi. Anda harus memiliki akses baca ke sumber data.
Penting
Pastikan pengalaman Copilot mandiri diaktifkan di portal admin Power BI (Pengaturan penyewa > Copilot > Pengalaman Copilot Mandiri). Jika tidak diaktifkan, Anda tidak akan dapat menggunakan agen data di dalam skenario Copilot bahkan jika pengaturan penyewa Copilot lainnya aktif. Untuk detailnya, lihat Copilot di pengaturan tenant Power BI.
Membangun lakehouse dengan AdventureWorksLH
Pertama, buat lakehouse dan isi dengan data yang diperlukan.
Jika Anda sudah memiliki salinan AdventureWorksLH di lakehouse atau di gudang, Anda dapat melewati tahap ini. Jika tidak, Anda dapat menggunakan instruksi berikut dari buku catatan Fabric untuk mengisi lakehouse dengan data.
Buat buku catatan baru di ruang kerja tempat Anda ingin membuat agen data Fabric Anda.
Di sisi kiri panel Explorer, pilih + Sumber data. Opsi ini memungkinkan Anda menambahkan lakehouse yang ada atau membuat lakehouse baru. Demi kejelasan, buat lakehouse baru dan tetapkan nama untuk itu.
Di sel atas, tambahkan cuplikan kode berikut:
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)Pilih Jalankan Semua.
Setelah beberapa menit, lakehouse terisi dengan data yang diperlukan.
Perhatian
Notebook yang terus berjalan (misalnya, karena perulangan tak terbatas yang tidak disengaja atau polling konstan) dapat mengonsumsi kapasitas Fabric tanpa batas waktu. Setelah data selesai dimuat, hentikan sel aktif apa pun dan akhiri sesi buku catatan (Toolbar Buku Catatan > Hentikan sesi) jika Anda tidak lagi membutuhkannya. Hindari menambahkan perulangan jangka panjang tanpa batas waktu.
Membuat agen data Fabric
Untuk membuat agen data Fabric baru, navigasi ke ruang kerja Anda dan pilih tombol + Item Baru, seperti yang ditunjukkan pada cuplikan layar ini:
Di tab Semua item, cari agen data Fabric untuk menemukan opsi yang sesuai. Setelah dipilih, permintaan meminta Anda untuk memberikan nama untuk agen data Fabric Anda, seperti yang ditunjukkan dalam cuplikan layar ini:
Setelah Anda memasukkan nama, lanjutkan dengan langkah-langkah berikut untuk menyelaraskan agen data Fabric dengan persyaratan spesifik Anda.
Pilih data
Pilih lakehouse yang Anda buat di langkah sebelumnya, lalu pilih Tambahkan, seperti yang ditunjukkan pada cuplikan layar berikut:
Setelah lakehouse ditambahkan sebagai sumber data, panel Explorer di sisi kiri halaman agen data Fabric memperlihatkan nama lakehouse. Pilih Lakehouse untuk melihat semua tabel yang tersedia. Gunakan kotak centang untuk memilih tabel yang ingin Anda sediakan untuk AI. Untuk skenario ini, pilih tabel ini:
dimcustomerdimdatedimgeographydimproductdimproductcategorydimpromotiondimresellerdimsalesterritoryfactinternetsalesfactresellersales
Izin untuk model semantik dalam agen data
Pengguna hanya memerlukan izin Baca pada model semantik Power BI untuk menambahkannya ke agen data dan mengajukan pertanyaan melalui agen. Akses ruang kerja (Peran anggota) dan Izin build tidak diperlukan untuk interaksi melalui agen data. Izin tulis hanya diperlukan untuk memodifikasi model semantik atau menggunakan kemampuan seperti Persiapan untuk AI.
Perubahan izin ini hanya berlaku untuk interaksi melalui agen data. Pola akses lainnya (misalnya, Analisis dalam Excel atau otorisasi laporan langsung) mengikuti izin Power BI standar.
Berikan instruksi
Untuk menambahkan instruksi, pilih tombol Instruksi agen data untuk membuka panel instruksi di sebelah kanan. Anda dapat menambahkan instruksi berikut.
Sumber data AdventureWorksLH berisi informasi dari tiga tabel:
-
dimcustomer, untuk demografi pelanggan terperinci dan informasi kontak -
dimdate, untuk data terkait tanggal - misalnya, informasi kalender dan fiskal -
dimgeography, untuk detail geografis termasuk nama kota dan kode wilayah negara.
Gunakan sumber data ini untuk kueri dan analisis yang melibatkan detail pelanggan, peristiwa berbasis waktu, dan lokasi geografis.
Berikan contoh
Untuk menambahkan kueri contoh, pilih tombol Kueri Contoh untuk membuka panel kueri contoh di sebelah kanan. Panel ini menyediakan opsi untuk menambahkan atau mengedit contoh kueri untuk semua sumber data yang didukung. Untuk setiap sumber data, Anda dapat memilih Menambahkan atau Mengedit Contoh Kueri untuk memasukkan contoh yang relevan, seperti yang ditunjukkan pada cuplikan layar berikut:
Di sini, Anda harus menambahkan contoh kueri untuk sumber data lakehouse yang Anda buat.
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
Nota
Menambahkan contoh pasangan kueri/pertanyaan saat ini tidak didukung untuk sumber data model semantik Power BI.
Menguji dan merevisi agen data Fabric
Sekarang setelah Anda mengonfigurasi agen data Fabric, menambahkan instruksi agen data Fabric, dan memberikan contoh kueri untuk lakehouse, Anda dapat berinteraksi dengannya dengan mengajukan pertanyaan dan menerima jawaban. Saat melanjutkan pengujian, Anda dapat menambahkan lebih banyak contoh, dan menyempurnakan instruksi, untuk lebih meningkatkan performa agen data Fabric. Berkolaborasi dengan kolega Anda untuk mengumpulkan umpan balik, dan berdasarkan input mereka, pastikan contoh kueri dan instruksi yang disediakan selaras dengan jenis pertanyaan yang ingin mereka tanyakan.
Menerbitkan agen data Fabric
Setelah memvalidasi performa agen data Fabric, Anda mungkin memutuskan untuk menerbitkannya agar Anda dapat membagikannya dengan kolega yang ingin melakukan Tanya Jawab mengenai data. Dalam hal ini, pilih Terbitkan, seperti yang ditunjukkan dalam cuplikan layar ini:
Kotak Terbitkan agen data terbuka, seperti yang ditunjukkan pada cuplikan layar ini:
Dalam kotak ini, pilih Publish untuk menerbitkan agen data Fabric. Setelah dipublikasikan, agen data dapat dikonsumsi sebagai server protokol konteks model (MCP).
Menggunakan agen data Fabric secara terprogram
Anda bisa menggunakan agen data Fabric secara terprogram dalam buku catatan Fabric. Untuk menentukan apakah agen data Fabric memiliki nilai URL yang diterbitkan atau tidak, pilih Settings, seperti yang ditunjukkan pada cuplikan layar berikut:
Sebelum Anda menerbitkan agen data Fabric, agen data tersebut tidak memiliki nilai URL yang diterbitkan, seperti yang ditunjukkan pada cuplikan layar berikut:
Jika Anda belum menerbitkan agen data Fabric sebelumnya, Anda bisa menerbitkannya mengikuti instruksi di langkah-langkah sebelumnya. Anda kemudian dapat menyalin URL yang diterbitkan dan menggunakannya di buku catatan Fabric. Dengan cara ini, Anda dapat mengkueri agen data Fabric dengan melakukan panggilan ke API agen data Fabric di buku catatan Fabric. Tempelkan URL yang disalin dalam cuplikan kode ini. Kemudian, ganti pertanyaan dengan kueri apa pun yang relevan dengan agen data Fabric Anda. Contoh ini menggunakan \<generic published URL value\> sebagai URL.
Penting
Saat memanggil agen data secara terprogram, terapkan:
- Batas waktu polling (lihat contoh di bawah) untuk menghindari perulangan yang tidak terbatas.
- Frekuensi polling minimal (mulai dari 2–5 detik; tingkatkan hanya jika diperlukan).
- Proses pembersihan benang atau sumber daya yang dibuat setelah selesai.
- Matikan sesi notebook setelah selesai guna membebaskan kapasitas Fabric.
Nota
Sesuaikan pin versi (openai, synapseml, pandas, tqdm) ke versi tervalidasi terbaru untuk runtime Fabric Anda jika versi yang tepat ini menjadi kedaluarsa.
%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
Penting
Karena OpenAI telah mempensiunkan API Assistants, aplikasi harus menggunakan endpoint MCP untuk interaksi agen. Berbeda dengan API Assistants, endpoint MCP tidak menyediakan manajemen percakapan bawaan, sehingga penelepon harus mengatur interaksi multi-giliran dengan mempertahankan status percakapan dan menyediakan konteks yang relevan di antara permintaan.
Mengkueri agen data dari Python
Contoh berikut terhubung ke titik akhir MCP, menemukan alat, mengirim pertanyaan, dan mencetak jawabannya. Ini menggunakan kembali credential dari langkah Autentikasi ke Fabric dan menggunakan MCP Python SDK. Instal SDK terlebih dahulu:
%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)
Konten terkait
- konsep agen data Fabric
- Buat agen data Fabric