Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Microsoft Fabric'da, örnek veri kaynağı olarak bir lakehouse kullanarak veri aracısını nasıl ayarlayacağınızı bu makalede gösteriyoruz. Önce bir lakehouse oluşturup doldururuz, ardından bir Fabric veri aracısı oluşturur ve lakehouse'u buna ekleriz. Zaten Power BI bir semantik modeliniz varsa, veri aracısı aracılığıyla bu modelle etkileşime geçmek için Okuma izniniz olduğundan emin olun (Yazma izni yalnızca anlam modelini değiştirmek veya yapay zeka için hazırlık gibi özellikleri kullanmak için gereklidir). Bir ambar, KQL veritabanı veya ontoloji için aynı adımları izleyin ve bunun yerine bu kaynağı seçin. Bu inceleme bir lakehouse kullansa da, şablon diğer kaynaklar için de aynıdır; yalnızca veri kaynağı seçimi farklıdır.
Önemli
Bu özellik önizleme aşamasındadır.
Önkoşullar
- F2 veya üstü ücretli bir Fabric kapasitesi veya Microsoft Fabric etkin kapasiteye sahip bir Power BI Premium kapasitesi (P1 veya üzeri).
- Fabric veri aracısı kiracı ayarlarında açıklanan gereksinimlere göre yapay zeka için coğrafi bölgeler arası işleme ve depolama işlevlerini etkinleştirin.
- Veri içeren bu veri kaynaklarından en az biri: Ambar, göl evi, Power BI anlam modeli, KQL veritabanı, yansıtılmış veritabanı veya ontoloji. Veri kaynağına okuma erişiminiz olmalıdır.
Önemli
Power BI yönetim portalında tek başına Copilot deneyiminin etkinleştirildiğinden emin olun (Kiracı ayarları > Copilot > Tek başına Copilot deneyimi). Etkinleştirilmemişse, diğer Copilot kiracı anahtarları açık olsa da Copilot senaryolarında veri aracısını kullanamazsınız. Ayrıntılar için bkz. Power BI kiracı ayarlarında Copilot.
AdventureWorksLH ile göl evi oluşturma
İlk olarak bir göl evi oluşturun ve gerekli verilerle doldurun.
Bir göl evinde (veya bir depoda) AdventureWorksLH örneği zaten varsa bu adımı atlayabilirsiniz. Aksi takdirde, lakehouse'u verilerle doldurmak için bir Fabric not defterindeki aşağıdaki yönergeleri kullanabilirsiniz.
çalışma alanında, Fabric veri aracınızı oluşturmak istediğiniz yeni bir not defteri oluşturun.
Gezgin bölmesinin sol tarafında + Veri kaynakları'nı seçin. Bu seçenek mevcut bir göl evi eklemenize veya yeni bir göl evi oluşturmanıza olanak tanır. Açıklık sağlamak için yeni bir göl evi oluşturun ve ona bir ad atayın.
Üst hücreye aşağıdaki kod parçacığını ekleyin:
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)Tümünü çalıştır'ı seçin.
Birkaç dakika sonra göl evi gerekli verilerle doldurulur.
Dikkat
Çalışmaya devam eden not defterleri (örneğin, yanlışlıkla oluşan sonsuz döngüler veya sürekli yoklama nedeniyle) Fabric kapasitesini belirsiz bir süre boyunca tüketebilir. Verilerin yüklenmesi tamamlandıktan sonra, artık ihtiyacınız yoksa tüm etkin hücreleri durdurun ve not defteri oturumunu sonlandırın (Not defteri araç çubuğu > Oturumu durdur). Zaman aşımı olmadan uzun süre çalışan döngüler eklemekten kaçının.
Fabric veri aracısı oluşturma
Yeni bir Fabric veri aracısı oluşturmak için çalışma alanınıza gidin ve bu ekran görüntüsünde gösterildiği gibi + Yeni Öğe düğmesini seçin:
Tüm öğeler sekmesinde uygun seçeneği bulmak için Fabric veri aracısı arayın. Seçildikten sonra, bu ekran görüntüsünde gösterildiği gibi Fabric veri aracınız için bir ad girmeniz istenir:
Adı girdikten sonra, Fabric veri aracısını özel gereksinimlerinizle hizalamak için aşağıdaki adımlarla devam edin.
Verileri seçme
Aşağıdaki ekran görüntüsünde gösterildiği gibi, önceki adımda oluşturduğunuz lakehouse'ı ve ardından Ekle'yi seçin:
Lakehouse veri kaynağı olarak eklendikten sonra, Fabric veri aracısı sayfasının sol tarafındaki Explorer bölmesinde lakehouse adı gösterilir. Kullanılabilir tüm tabloları görüntülemek için göl evi'ni seçin. Yapay zeka için kullanılabilir hale getirmek istediğiniz tabloları seçmek için onay kutularını kullanın. Bu senaryo için şu tabloları seçin:
dimcustomerdimdatedimgeographydimproductdimproductcategorydimpromotiondimresellerdimsalesterritoryfactinternetsalesfactresellersales
Veri aracılarındaki anlam modelleri için izinler
Kullanıcılar, veri aracısına eklemek ve aracı aracılığıyla soru sormak için yalnızca Power BI anlamsal modelde Okuma iznine ihtiyaç duyar. Veri aracıları aracılığıyla etkileşim için çalışma alanı erişimi (Üye rolü) ve Derleme izni gerekmez. Yazma izni yalnızca anlam modelini değiştirmek veya yapay zeka için hazırlık gibi özellikleri kullanmak için gereklidir.
Bu izin değişikliği yalnızca veri aracıları aracılığıyla yapılan etkileşimler için geçerlidir. Diğer erişim desenleri (örneğin, Excel çözümle veya doğrudan rapor yazma) standart Power BI izinlerini izler.
Yönergeleri sağlayın
Yönergeler eklemek için Veri aracısı yönergeleri düğmesini seçerek sağ taraftaki yönergeler bölmesini açın. Aşağıdaki yönergeleri ekleyebilirsiniz.
AdventureWorksLH veri kaynağı üç tablodan bilgi içerir:
-
dimcustomer, ayrıntılı müşteri demografisi ve iletişim bilgileri için -
dimdate, örneğin takvim ve mali bilgiler gibi, tarihle ilgili veriler için - şehir adları ve ülke bölge kodları gibi coğrafi ayrıntılar için
dimgeography.
Müşteri ayrıntılarını, zamana dayalı olayları ve coğrafi konumları içeren sorgular ve analizler için bu veri kaynağını kullanın.
Örnekler sağlayın
Örnek sorgular eklemek için Örnek sorgular düğmesini seçerek sağ taraftaki örnek sorgular bölmesini açın. Bu bölme, desteklenen tüm veri kaynakları için örnek sorgular ekleme veya düzenleme seçenekleri sağlar. Her veri kaynağı için, aşağıdaki ekran görüntüsünde gösterildiği gibi örnek sorgu ekleme veya düzenleme seçebilirsiniz:
Burada, oluşturduğunuz lakehouse veri kaynağı için Örnek sorgular eklemelisiniz.
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
Uyarı
Örnek sorgu/soru çiftlerinin eklenmesi şu anda Power BI anlam modeli veri kaynakları için desteklenmemektedir.
Fabric veri aracısını test edin ve düzeltin
artık Fabric veri aracısını yapılandırdığınıza, Fabric veri aracısı yönergeleri eklediğinize ve lakehouse için örnek sorgular sağladığınıza göre, sorular sorarak ve yanıtlar alarak onunla etkileşim kurabilirsiniz. Teste devam ettikçe, Fabric veri aracısının performansını daha da geliştirmek için daha fazla örnek ekleyebilir ve yönergeleri geliştirebilirsiniz. Geri bildirim toplamak için iş arkadaşlarınızla işbirliği yapın ve girdilerine göre, sağlanan örnek sorguların ve yönergelerin sormak istedikleri soru türleriyle uyumlu olduğundan emin olun.
Fabric veri aracısını yayımlama
Fabric veri aracısının performansını doğruladıktan sonra, yayınlamaya karar verebilirsiniz; böylece veri üzerinde soru-cevap yapmak isteyen iş arkadaşlarınızla paylaşabilirsiniz. Bu durumda, bu ekran görüntüsünde gösterildiği gibi Yayımla'yı seçin:
Bu ekran görüntüsünde gösterildiği gibi Veri aracısı yayımla kutusu açılır:
Bu kutuda Fabric veri aracısını yayımlamak için Publish öğesini seçin. bu ekran görüntüsünde gösterildiği gibi Fabric veri aracısının yayımlanan URL'si görüntülenir:
Power BI'de Copilot Fabric veri aracısını kullanma
Fabric veri aracısını yayımladıktan sonra etkileşime geçmek için Power BI'daki Copilot kullanabilirsiniz. Power BI'da Copilot ile veri aracısını ve diğer öğeleri (örneğin, raporlar veya anlam modelleri) aralarında geçiş yapmaya gerek kalmadan doğrudan kullanabilirsiniz.
sol gezinti bölmesindeki Copilot düğmesini seçerek Copilot Power BI açın. Ardından, veri aracısını eklemek için alttaki metin kutusunda Daha iyi sonuçlar elde etmek için Öğe ekle'yi seçin. Açılan pencerede Veri aracıları'nı seçin. Yalnızca erişim izniniz olan veri aracılarını görebilirsiniz. İstediğiniz veri aracısını seçin ve Onayla'yı seçin. Bu örnekte tek bir veri aracısı ile nasıl çalışabileceğiniz gösterilmektedir, ancak diğer veri aracıları, raporlar veya anlam modelleri gibi daha fazla öğe ekleyebilirsiniz. Aşağıdaki ekran görüntüsünde tek bir veri aracısı ile ilgili adımlar gösterilmektedir:
Veri aracısı Power BI bir anlam modeli içerdiğinde, kullanıcıların Copilot aracılığıyla etkileşime geçmek için bu anlam modeli üzerinde yalnızca Okuma iznine sahip olması gerekir; çalışma alanı erişimi gerekmez. Anlamsal model değişiklikleri ve Yapay zeka hazırlığı için yazma izni hala gereklidir.
Veri aracısını Power BI'daki Copilot eklediğinize göre, aşağıdaki ekran görüntüsünde gösterildiği gibi Fabric veri aracınızla ilgili tüm soruları sorabilirsiniz:
Fabric veri aracısını program aracılığıyla kullanma
Fabric veri aracısını bir Fabric not defteri içinde program aracılığıyla kullanabilirsiniz. Fabric veri aracısının yayımlanmış bir URL değerine sahip olup olmadığını belirlemek için, aşağıdaki ekran görüntüsünde gösterildiği gibi Settings öğesini seçin:
Fabric veri aracısını yayımlamadan önce, aşağıdaki ekran görüntüsünde gösterildiği gibi yayımlanmış bir URL değeri yoktur:
Fabric veri aracısını daha önce yayımlamadıysanız, önceki adımlardaki yönergeleri izleyerek yayımlayabilirsiniz. Ardından yayımlanan URL'yi kopyalayıp Fabric not defterinde kullanabilirsiniz. Bu şekilde, bir Fabric not defterindeki Fabric veri aracısı API'sine çağrılar yaparak Fabric veri aracısını sorgulayabilirsiniz. Kopyalanan URL'yi bu kod parçacığına yapıştırın. Ardından, soruyu Fabric veri aracınızla ilgili sorgularla değiştirin. Bu örnekte URL olarak kullanılır \<generic published URL value\> .
Önemli
Bir veri aracıyı program aracılığıyla çağırırken şunları uygulayın:
- Süresiz döngüleri önlemek için yoklama zaman aşımı (aşağıdaki örniğe bakın).
- En az yoklama sıklığı (2-5 saniyede başlayın; yalnızca gerekirse artırın).
- Tamamlandıktan sonra oluşturulan iş parçacıklarının veya kaynakların temizlenmesi.
- İşlem tamamlandığında Fabric kapasitesini boşa çıkarmak için not defteri oturumu sonlandırılır.
Uyarı
Sürüm pinlerini (openai, synapseml, pandas, tqdm) belirli sürümler güncel değilse Fabric çalışma zamanınız için en son doğrulanmış sürümlere ayarlayın.
%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
Önemli
Aşağıdaki kod, OpenAI Assistants API’sini (beta.assistants, beta.threads, beta.threads.runs) kullanır; OpenAI bu API’yi kullanımdan kaldırdı ve kapanış tarihini 26 Ağustos 2026 olarak belirledi. Geçerli kod 26 Ağustos 2026'ya kadar çalışmaya devam eder ancak bu tarihten önce MCP uç noktasına geçiş yapmayı planlayın.
import typing as t
import time
import uuid
# OpenAI SDK internals
from openai import OpenAI
from openai._models import FinalRequestOptions
from openai._types import Omit
from openai._utils import is_given
# SynapseML helper for env config
from synapse.ml.mlflow import get_mlflow_env_config
# Removed unused imports: requests, json, pprint, APIStatusError, SynapseTokenProvider
base_url = "https://<generic published base URL value>"
question = "What data sources do you have access to?"
configs = get_mlflow_env_config()
# Create OpenAI Client
class FabricOpenAI(OpenAI):
def __init__(
self,
api_version: str ="2024-05-01-preview",
**kwargs: t.Any,
) -> None:
self.api_version = api_version
default_query = kwargs.pop("default_query", {})
default_query["api-version"] = self.api_version
super().__init__(
api_key="",
base_url=base_url,
default_query=default_query,
**kwargs,
)
def _prepare_options(self, options: FinalRequestOptions) -> None:
headers: dict[str, str | Omit] = (
{**options.headers} if is_given(options.headers) else {}
)
options.headers = headers
headers["Authorization"] = f"Bearer {configs.driver_aad_token}"
if "Accept" not in headers:
headers["Accept"] = "application/json"
if "ActivityId" not in headers:
correlation_id = str(uuid.uuid4())
headers["ActivityId"] = correlation_id
return super()._prepare_options(options)
# Pretty printing helper
def pretty_print(messages):
print("---Conversation---")
for m in messages:
print(f"{m.role}: {m.content[0].text.value}")
print()
fabric_client = FabricOpenAI()
# Create assistant
assistant = fabric_client.beta.assistants.create(model="not used")
# Create thread
thread = fabric_client.beta.threads.create()
# Create message on thread
message = fabric_client.beta.threads.messages.create(thread_id=thread.id, role="user", content=question)
# Create run
run = fabric_client.beta.threads.runs.create(thread_id=thread.id, assistant_id=assistant.id)
# Wait for run to complete (avoid indefinite loop)
terminal_states = {"completed", "failed", "cancelled", "requires_action"}
poll_interval = 2
timeout_seconds = 300 # Adjust based on expected workload
start_time = time.time()
while run.status not in terminal_states:
if time.time() - start_time > timeout_seconds:
raise TimeoutError(f"Run polling exceeded {timeout_seconds} seconds (last status={run.status})")
run = fabric_client.beta.threads.runs.retrieve(
thread_id=thread.id,
run_id=run.id,
)
print(run.status)
time.sleep(poll_interval)
if run.status != "completed":
print(f"Run finished with status: {run.status}")
# Print messages
response = fabric_client.beta.threads.messages.list(thread_id=thread.id, order="asc")
pretty_print(response)
# Delete thread
fabric_client.beta.threads.delete(thread_id=thread.id)