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/
|
||||
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