chore: ignore PDF source artifacts
Keep generated PDF source files local while publishing the final PDF.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1 +1,4 @@
|
|||||||
local/
|
local/
|
||||||
|
case_study.css
|
||||||
|
case_study_one_page.html
|
||||||
|
case_study_one_page.md
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
@page { size: A4; margin: 14mm; }
|
|
||||||
body { font-family: Arial, sans-serif; color: #1f2933; font-size: 10pt; line-height: 1.25; }
|
|
||||||
h1 { color: #0b4f71; font-size: 24pt; margin: 0 0 2pt; }
|
|
||||||
h2 { color: #0b4f71; font-size: 13pt; margin: 10pt 0 4pt; border-bottom: 1px solid #b8c9d3; padding-bottom: 2pt; }
|
|
||||||
h3 { color: #0b4f71; font-size: 11pt; margin: 7pt 0 2pt; }
|
|
||||||
p { margin: 4pt 0; }
|
|
||||||
table { width: 100%; border-collapse: collapse; margin: 4pt 0 7pt; font-size: 9pt; }
|
|
||||||
th { background: #0b4f71; color: white; text-align: left; }
|
|
||||||
th, td { border: 1px solid #cbd5e1; padding: 4pt; vertical-align: top; }
|
|
||||||
code, pre { font-family: monospace; font-size: 8pt; }
|
|
||||||
pre { background: #eef4f7; padding: 6pt; border-left: 3px solid #0b4f71; }
|
|
||||||
ul { margin: 3pt 0 5pt 15pt; padding: 0; }
|
|
||||||
li { margin: 1pt 0; }
|
|
||||||
strong { color: #0b4f71; }
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
<!doctype html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>Talk-to-Data Case Study</title>
|
|
||||||
<style>
|
|
||||||
@page{size:A4;margin:14mm}body{font-family:Arial,sans-serif;color:#1f2933;font-size:10pt;line-height:1.25}h1{color:#0b4f71;font-size:24pt;margin:0 0 2pt}h2{color:#0b4f71;font-size:13pt;margin:10pt 0 4pt;border-bottom:1px solid #b8c9d3;padding-bottom:2pt}p{margin:4pt 0}table{width:100%;border-collapse:collapse;margin:4pt 0 7pt;font-size:9pt}th{background:#0b4f71;color:#fff;text-align:left}th,td{border:1px solid #cbd5e1;padding:4pt;vertical-align:top}pre{background:#eef4f7;padding:6pt;border-left:3px solid #0b4f71;font-size:8pt}strong{color:#0b4f71}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1>Talk-to-Data</h1>
|
|
||||||
<p><strong>Governance-first semantic analytics for enterprise quotation workflows</strong></p>
|
|
||||||
<h2>The challenge</h2>
|
|
||||||
<p>More than 30 salespeople could depend on internal experts to answer routine quotation questions about products, discounts, and customer agreements. Manual lookup and email or chat coordination introduced an estimated <strong>5–30 minute delay per question</strong>.</p>
|
|
||||||
<h2>The approach</h2>
|
|
||||||
<p>Build a proof of concept around a curated semantic layer instead of exposing raw enterprise tables to an LLM.</p>
|
|
||||||
<pre>SAP ERP
|
|
||||||
│ daily batch
|
|
||||||
▼
|
|
||||||
Snowflake raw → dbt staging → dbt transforms
|
|
||||||
│
|
|
||||||
▼
|
|
||||||
Semantic views
|
|
||||||
│
|
|
||||||
▼
|
|
||||||
Cortex guardrails & audit
|
|
||||||
┌────────┴────────┐
|
|
||||||
▼ ▼
|
|
||||||
Snowflake UI Internal chatbot</pre>
|
|
||||||
<h2>Architecture decisions</h2>
|
|
||||||
<table><tr><th>Decision</th><th>Why</th></tr>
|
|
||||||
<tr><td>Snowflake + Cortex</td><td>Fast POC path with data, AI, and governance in one platform.</td></tr>
|
|
||||||
<tr><td>dbt layers</td><td>Reproducible SQL, lineage, testing, and versioned business logic.</td></tr>
|
|
||||||
<tr><td>Semantic views</td><td>One business contract for dashboards and natural-language queries.</td></tr>
|
|
||||||
<tr><td>Daily refresh</td><td>Sufficient for quotation research; avoids premature real-time complexity.</td></tr>
|
|
||||||
<tr><td>Guardrails in data layer</td><td>Protection of personal and customer information, access control, freshness checks, and exception escalation are enforceable—not only prompt instructions.</td></tr></table>
|
|
||||||
<h2>Estimated outcome</h2>
|
|
||||||
<table><tr><th>Signal</th><th>Estimate</th></tr>
|
|
||||||
<tr><td>Routine answer latency</td><td><strong>5–30 min → <1 min</strong></td></tr>
|
|
||||||
<tr><td>Sales users in scope</td><td><strong>30+</strong></td></tr>
|
|
||||||
<tr><td>Data freshness</td><td><strong>Daily batch</strong></td></tr>
|
|
||||||
<tr><td>Main benefit</td><td>Less coordination overhead and faster quote responses.</td></tr></table>
|
|
||||||
<p>These are <strong>estimates based on the human workflow</strong>, not measured production KPIs. The next delivery step is a controlled pilot that captures actual latency, adoption, escalation rate, and answer quality.</p>
|
|
||||||
<h2>Delivery lesson</h2>
|
|
||||||
<p>The reusable asset was not just the chatbot. It was the delivery pattern: establish the semantic contract, encode business rules, apply governance, and then expose the smallest useful interface.</p>
|
|
||||||
<p><strong>Stack:</strong> SAP source system · Snowflake · dbt · Snowflake semantic views · Cortex Analytics · internal chatbot workspace</p>
|
|
||||||
<p><em>All examples are anonymized and contain no proprietary source data.</em></p>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
# Talk-to-Data
|
|
||||||
## Governance-first semantic analytics for quotation workflows
|
|
||||||
|
|
||||||
### The challenge
|
|
||||||
|
|
||||||
More than 30 salespeople could depend on internal experts to answer routine quotation questions about products, discounts, and customer agreements. Manual lookup and email or chat coordination introduced an estimated **5–30 minute delay per question**.
|
|
||||||
|
|
||||||
### The approach
|
|
||||||
|
|
||||||
Build a proof of concept around a curated semantic layer instead of exposing raw enterprise tables to an LLM.
|
|
||||||
|
|
||||||
```text
|
|
||||||
SAP ERP
|
|
||||||
│ daily batch
|
|
||||||
▼
|
|
||||||
Snowflake raw → dbt staging → dbt transforms
|
|
||||||
│
|
|
||||||
▼
|
|
||||||
Semantic views
|
|
||||||
│
|
|
||||||
▼
|
|
||||||
Cortex guardrails & audit
|
|
||||||
┌────────┴────────┐
|
|
||||||
▼ ▼
|
|
||||||
Snowflake UI Internal chatbot
|
|
||||||
```
|
|
||||||
|
|
||||||
### Architecture decisions
|
|
||||||
|
|
||||||
| Decision | Why |
|
|
||||||
|---|---|
|
|
||||||
| Snowflake + Cortex | Fast POC path with data, AI, and governance in one platform |
|
|
||||||
| dbt layers | Reproducible SQL, lineage, testing, and versioned business logic |
|
|
||||||
| Semantic views | One business contract for dashboards and natural-language queries |
|
|
||||||
| Daily refresh | Sufficient for the quotation research use case; avoids premature real-time complexity |
|
|
||||||
| Guardrails in the data layer | Protection of personal and customer information, access control, freshness checks, and exception escalation are enforceable—not only prompt instructions |
|
|
||||||
|
|
||||||
### Estimated outcome
|
|
||||||
|
|
||||||
| Signal | Estimate |
|
|
||||||
|---|---:|
|
|
||||||
| Routine answer latency | **5–30 min → <1 min** |
|
|
||||||
| Sales users in scope | **30+** |
|
|
||||||
| Data freshness | **Daily batch** |
|
|
||||||
| Main benefit | Less coordination overhead and faster quote responses |
|
|
||||||
|
|
||||||
These are **estimates based on the human workflow**, not measured production KPIs. The next delivery step is a controlled pilot that captures actual latency, adoption, escalation rate, and answer quality.
|
|
||||||
|
|
||||||
### Delivery lesson
|
|
||||||
|
|
||||||
The reusable asset was not just the chatbot. It was the delivery pattern: establish the semantic contract, encode business rules, apply governance, and then expose the smallest useful interface.
|
|
||||||
|
|
||||||
**Stack:** SAP source system · Snowflake · dbt · Snowflake semantic views · Cortex Analytics · internal chatbot workspace
|
|
||||||
|
|
||||||
*All examples are anonymized and contain no proprietary source data.*
|
|
||||||
Reference in New Issue
Block a user