

- Description
- Vue aérienne d’un grand lac aux rives boisées, traversé par une chaussée.
- Source
- Mx. Granger · original page
- Licence
- CC0 Public domain
OneLake + SaaS Mobile Apps: AI Contribution
You will be able to position the AI offering in Fabric and Power BI (Copilot, data agents, AI Functions, notebooks) and its maturity status in October 2026.
In brief
- You will be able to position the AI offering in Fabric and Power BI (Copilot, data agents, AI Functions, notebooks) and its maturity status in October 2026.
- You have a use-case table with gain, risk, and maturity out of /5, prerequisites and guardrails, applied to field application data.
- You will be able to write useful prompts and define what AI does not replace: judgment, responsibility, confidentiality.
- Context: overview, architecture, pitfalls.
Level: 🟢→🔴
1. Overview of the AI offering#
🟢 Novice.
Vocabulary to define (Glossary):
| Building block | What it is | Where | Status (2026-10) |
|---|---|---|---|
| Copilot in Power BI | Assistant: creates report pages, summarizes, writes DAX, answers questions about a model | Power BI Service, Desktop | Available; requires eligible Fabric/Power BI capacity |
| Copilot in Fabric | Assistant in notebooks, pipelines, dataflows gen2, warehouse (SQL/PySpark/M code generation, explanation) | Fabric items | Announced as globally available; some features (e.g., inline completion in notebooks) are in preview |
| Fabric data agent (formerly “AI skill”) | Natural-language Q&A agent on lakehouse, warehouse, semantic models, KQL, which you configure (sources, instructions, examples) | Fabric | Available (GA); feature evolving quickly, some improvements remain in preview (for example authentication with service principal); answers intentionally limited in size (25 rows and 25 columns according to documentation); questions preferably in English |
| AI Functions / Spark ML | Model calls in dataframes (classify, extract, summarize, translate) | Notebooks | Available on paid capacities (F2 and above according to the April 2025 announcement) |
| Azure OpenAI / Foundry | Models called from pipelines/notebooks | Azure | Outside Fabric; separate costs and compliance |
| Anomaly detection (Power BI visuals, Eventhouse, ML) | Spotting atypical values | Reports, KQL, Spark | Mature in visuals; custom in ML |
| Operations agent / AI observability | Helps investigate pipeline failures | Fabric | Preview |
Availability: according to Microsoft announcements, Copilot and AI capabilities have been open to paid SKUs starting at F2 since April 30, 2025 (status 2026-10). Consumption is charged against the capacity's CU (there is no per-request billing); a dedicated “Copilot” capacity can be created to isolate consumption. Recheck before making a decision: conditions, regions, and admin settings are changing quickly.
“Copilot is included” is true for the license, not for capacity: in use, it consumes CUs that reports will miss (see P03 and P35).
2. Rated use cases#
🟡 Practitioner.
Ratings /5: gain (expected value), risk (5 = very risky), maturity (5 = proven). Expert assessments, contextual — see RATING: Reading Ratings, Scores, and the Legend. Context: BI team of 3 to 6 people, field SFA data.
| Use case | Gain | Risk | Maturity | Prerequisites | Guardrails |
|---|---|---|---|---|---|
| Generation of notebook/SQL/M skeletons (Copilot Fabric) | 4/5 | 2/5 | 4/5 | Usage rights, described schema | Systematic review, tests, no sensitive data in prompts |
| DAX generation and explanation (Copilot Power BI) | 3/5 | 3/5 | 3/5 | Clean model (names, relationships) | Validation against known numbers, peer review |
| Narrative report summaries | 3/5 | 3/5 | 3/5 | Documented semantic model | Reminder that summary is not acceptance testing; review by a business stakeholder |
| Natural-language questions on the model (Copilot/Q&A) | 3/5 | 4/5 | 3/5 | Descriptions, synonyms, named measures, test question set | Limited scope, clear limitation notice, question log |
| Data agent on gold (lakehouse/warehouse) | 4/5 | 4/5 | 2/5 | Clean star-schema gold, instructions, query examples, OneLake security | User rights enforced, validation, “read-only” mode |
| Cleaning and normalization of addresses, customer names | 4/5 | 3/5 | 3/5 | Reference master data, arbitration rule | Quarantined output, confidence score, human validation of ambiguities |
| Deduplication / customer matching | 5/5 | 4/5 | 3/5 | Functional key when it exists, mapping table | Conservative thresholds, decision traceability, reversibility |
| Detection of field data-entry anomalies (GPS, volumes, durations) | 4/5 | 2/5 | 4/5 | Sufficient history, business thresholds | Alerting, not correction, feedback to the field |
| Enrichment (categorizing free-text comments, entity extraction from visit notes) | 4/5 | 3/5 | 3/5 | Text volume, GDPR rules | Personal data masked, controlled sample |
| Shelf photo analysis (recognition) | 3/5 | 4/5 | 2/5 | Consent, image quality | Targeted use, accuracy assessment, compliance |
| Translation of the model's multilingual labels | 3/5 | 3/5 | 4/5 | Validated business glossary | Linguistic review, enforced glossary (Accessibility and Multilingual) |
| Help with pipeline incident diagnosis | 3/5 | 2/5 | 2/5 | Structured logs | No automatic action, read-only |
| Documentation generation (table descriptions, lineage) | 4/5 | 2/5 | 4/5 | Technical metadata | Review, sign-off (AI for Project Management (General Then Data)) |
The fastest real gain is not “querying numbers in French”: it's assisted documentation and code (descriptions, MERGE skeletons, tests). The least mature and riskiest: the data agent opened to non-specialists on an undocumented model.
3. Copilot and data agents in detail#
🟡 Practitioner.
3.1 What makes a data agent successful#
An agent translates a question into a query (SQL, DAX, KQL) on the sources you expose to it. Its quality depends on what you provide:
- Narrow scope: a few gold tables (visit/order facts, customer/product/date dimensions), not the entire lake.
- Readable schema: explicit names, column descriptions, clear keys and relationships.
- Instructions: business definitions (“completed visit = status X and duration > Y”), period conventions, currency, language.
- Validated query examples (few-shot), for frequent questions and ambiguities.
- Test set: 30 to 50 questions with expected answers, replayed with every model or agent change.
- Security: the agent must run with the user's rights; the security layer (OneLake security, model RLS) applies with no bypass. Agents with service principal are in preview (status 2026-10): do not use them to bypass security (RLS Security and Access).
3.2 What Copilot Power BI can and cannot do#
- Can: propose a report page, a DAX measure, summarize a visual, answer a simple question on a well-described model.
- Cannot: know your unwritten business rules, guess the difference between “visit date” and “sync date,” fix a poorly designed model.
- Risk: plausible but wrong answer (inappropriate join, missing filter, RLS context).
Rule of thumb: AI is a fast intern, not an auditor. It accelerates the first draft, never validation. Every generated measure is compared against a known number (the acceptance testing process from Testing and Reliability of Numbers).
3.3 Notebooks and Spark#
Copilot in a notebook: PySpark code generation, explanation, error fixing, inline completion (preview, status 2026-10). Useful for standard patterns (MERGE, nested JSON reading, joins). Risks: misused Delta APIs, no idempotency handling, secrets in code. Produced code must go through Git, code review, and testing like any other code (CI/CD for data: foundations, datamarts, pipelines, and reports).
4. Data Quality with AI#
🔴 Expert.
4.1 Field customer deduplication#
Funnel approach, from least costly to most costly:
- Deterministic rules: normalization (case, accents, punctuation, address abbreviations), exact key (ERP code, SIRET if legally available).
- Similarity: edit distance, n-grams, phonetics, geographic distance, block grouping.
- Model (embeddings or LLM) on remaining cases: “do these two records describe the same point of sale?” with score and reasons.
- Human for mid-range scores; the decision feeds the matching table (and improves the rules).
Why not hand everything over to an LLM? CU cost, variability, non-reproducibility, auditing difficulty. An LLM is a good edge-case judge, not a large-scale deduplication engine.
# Sketch: only ambiguous pairs (mid-range score) are sent to the model
ambigues = paires.filter((F.col("score") >= 0.70) & (F.col("score") < 0.92))
# then human review or LLM with structured output {decision, confidence, reason}
4.2 Anomaly detection#
Before ML, use readable rules: negative visit duration or above 12 h, number of visits per day above a plausible threshold, zero coordinates, price outside ± 5 standard deviations from historical values by product. ML (isolation forest, time series) then complements for non-trivial patterns. In all cases: flag back to field teams, do not correct silently.
4.3 Enrichment#
Categorization of free-text comments (reasons for no-sale, disputes), entity extraction from notes, summary of reports. Precautions: mask or pseudonymize personal data before calling an external model; track the model and prompt version used for each enriched row (reproducibility); measure accuracy on a labeled sample; do not overwrite source data, create derived columns.
Symptom: classifications change from one recomputation to another. Cause: unfrozen model, modified prompt, non-deterministic generation. Remedy: model and prompt version in the table, low temperature, stored result (not recomputed at each refresh).
5. Sample Prompts#
🟡 Practitioner.
Generating an idempotent Delta MERGE
“Write a Fabric PySpark notebook that reads table bronze.visite_raw (columns: visite_id, JSON payload, recu_le), extracts visite_id, commercial_id, client_id, debut, fin, statut, modifie_le, and performs a MERGE into silver.visite on visite_id by updating only if modifie_le is more recent. Add an ingere_le column. Explain how to replay without duplicates.”
Model documentation
“For each column in table gold.fait_visite (attached list), propose a one-sentence description in French, distinguishing event date from synchronization date. Flag columns whose meaning is ambiguous rather than making it up.”
DAX review
“Here is a measure Taux de couverture. Explain it line by line, list filter contexts that may distort it (RLS, date filters, roles), propose 3 acceptance testing scenarios with a minimal dataset.”
Data agent instruction (excerpt)
“You answer only from tables fait_visite, dim_client, dim_date. A completed visit is a visit with status 'RÉALISÉE'. If a question asks for agents' personal data, refuse. If the question is ambiguous, ask a clarifying question. Answer in French and state the period and scope used.”
Keep effective prompts in a versioned repository (prompt library), with their objective, author, and test cases, like code.
6. Guardrails#
🔴 Expert.
| Domain | Guardrail |
|---|---|
| Confidentiality | Clarify where data goes (Microsoft service vs external model), regions, retention; mask personal data before any external call; AI admin settings in the tenant (enablement by security group) |
| Permissions | The agent applies user permissions; no shared API key bypassing security |
| Accuracy | Test question set, comparison with validated figures, refusal to answer out of scope, display of sources and generated query |
| Cost | CU tracking by AI workload, quotas, dedicated capacity if needed (hidden costs) |
| Traceability | Log of questions, generated queries, and model/prompt versions; signature of generated content |
| Reversibility | No automatic write to production by an agent without validation; outputs in derived columns or tables |
| Compliance | GDPR (legal basis, information, right to object), processing register; EU AI Act (risk classification, transparency): to be validated by legal counsel; not covered here |
| Hidden debt | Generated code and models = code to maintain; require tests, review, and documentation |
7. What AI Does Not Replace#
🔴 Expert.
- Business judgment: deciding that a visit “counts” or that a customer is “active” depends on business rules AI cannot discover on its own.
- Accountability: the published figure is the author's responsibility; “Copilot generated it” is not a defense.
- Acceptance testing: AI proposes, testing and the business validate (Acceptance testing and business validation).
- Modeling: a bad model produces bad answers that sound more convincing.
- Architecture and cost trade-offs: where to copy, which capacity, which storage mode (architecture).
- Change management: adoption by sales reps depends on input simplicity and the feedback they get from it.
Three warning signals: (1) generated code is no longer understood; (2) agent answers are no longer compared against anything; (3) no one knows how much AI costs in CU. Any one of the three is enough to suspend deployment.
For the AI dimension of project steering: AI for Project Management (General Then Data); for AI in tooling: AI in Planning and Version Control Tools; summary: Cross-Functional Summary — AI Contribution. For the relational variant: SQL Server in SaaS — AI Contribution.
8. See Also#
- Series: OneLake + SaaS mobile apps: overview · OneLake + SaaS Mobile Apps: Architecture · OneLake + SaaS Mobile Apps: Difficulties and Pitfalls · Comparison — OneLake / Fabric vs Managed SQL Server for Power BI Reporting · Cross-Cutting Power BI Good Practices · Power BI Reporting Project Checklists
- Matrices: BI Development · Data Governance and Organization · Metadata, Lineage, and Documentation
- Terms: Glossary
✻ Written by Claude Sonnet 5.5