Optimizing Your Data Model for AI
Last updated: September 10, 2026
| Tier | Deployment |
|
|
|
The assistant reads your semantic model to interpret prompts and generate queries. What the model exposes, and how clearly it is described, sets the ceiling on the answers your users get.
Optimization is a sequence, not one action. Narrow what AI sees, make it readable, tell AI how to use it, then publish so the changes take effect.
Prerequisites
Confirm the following before you begin:
-
Cloud-Linked Features are enabled and an LLM is configured. See Setting Up Your LLM.
-
Model statistics are enabled on the model.
-
You have edit permission on the model.
Tip:
If your data is in Snowflake, you can import descriptions and tags from Snowflake's own semantic metadata. This replaces most of the manual work in Step 3.
Workflow at a Glance
| Step | What it does | Where | Required |
|---|---|---|---|
| 1 | Limits what AI can see to business-relevant tables and columns | Perspectives | Recommended |
| 2 | Removes ambiguity from names and structure | Data model | Required |
| 3 | Tells AI what each object is | Descriptions or Semantic Enrichment | Required |
| 4 | Groups objects and carries governance flags | Tags | Optional |
| 5 | Lets users filter using their own wording | Smart Value Matching | Situational |
| 6 | Tells AI how to interpret an object | AI Context (Beta) | Recommended |
| 7 | Applies the changes and confirms they worked | Publish Semantics or Build | Required |
How the Layers Work Together
-
Clean names, intuitive and jargon-free tables and fields.
-
Descriptions, what each object is, generated with Semantic Enrichment.
-
Smart Value Matching, so the AI recognizes column values semantically.
-
AI Context, how the AI should interpret and use specific objects.
-
Governance and model design, hide backend fields, use Perspectives, and exclude sensitive fields from AI. Use these, not AI Context, for anything that must be strictly enforced.
Excluding an object from AI is done with a tag. See Step 4.
Add AI Context Where the Model Needs Steering
After you have cleaned up naming, added descriptions via Semantic Enrichment, and enabled Smart Value Matching, add AI Context to give the AI targeted, plain-language guidance it cannot infer from the data: business meaning, preferred terminology, units, and caveats. For example, in the Revenue (Net) column: "Use for revenue questions unless the user says 'gross'. USD, in thousands."
Keep it focused. AI Context is guidance, not a rule, and it is most effective when applied only where the model cannot express something on its own.
For what to write and where you can set it, see AI Context (Beta).
AI Context is Guidance, Not a Rule
AI Context is soft guidance the AI takes into account. It is not an enforcement mechanism, a guardrail, or an access control. It cannot guarantee that the AI will refuse a request or hide a field. The AI may not honor absolute or negative rules.
For a hard rule, use the model itself:
-
To keep an object out of AI entirely, exclude it with a tag. See Step 4.
-
To control how data can be combined or sliced, hide fields, remove relationships, and use Perspectives that expose only what should be queried.
Do not write:
"This table cannot be grouped or filtered by Customers. If users ask, tell them it cannot be calculated."
Write instead:
"Revenue here is pre-aggregated at the account level. Break it down by Account or Region, not by individual customer."
Descriptions, Tags, and AI Context: Which Do I Use?
| Description | Tags | AI Context | |
|---|---|---|---|
| Answers | What is this object | How is it grouped, and what governance applies | How should AI use it |
| Nature | Descriptive | Organizational | Instructional |
| Written by | You, or Semantic Enrichment | You | You only, never generated |
| Read by | Humans and AI | Humans, via search, and the governance layer | AI features |
| Example | "Net revenue per order line, after refunds and discounts. Numeric, in USD." | measure, finance | "Use for revenue questions unless the user says 'gross'. USD, in thousands." |
Note:
If the sentence would make sense in a data dictionary a human reads, it is a description. If it only makes sense as an instruction to a machine, it is AI Context.
Step 1: Narrow What AI Sees
Large models degrade answer quality. The more tables and columns AI can reach, the more chances it has to pick the wrong one.
Create a Perspective that exposes only the objects that should be able to be queried, and point AI features at that Perspective. See Using Perspectives.
Step 2: Clean Up the Model
-
Use business-friendly names. Avoid technical jargon and abbreviations.
-
Keep logical names and display names unique across the model.
-
Remove unused or deprecated fields.
-
Hide backend and calculated fields that end users do not need.
-
Limit high-cardinality fields to reduce noise in responses.
-
Do not use periods in field names. Column names containing a period may cause errors.
-
Share any formula you want the assistant to use. The assistant is aware only of shared formulas.
Step 3: Add Descriptions
Descriptions tell AI what an object is. Semantic Enrichment is the recommended method: it generates descriptions across the model, and you edit the ones that are wrong. You can also write them manually on any column.
A strong description covers:
-
Whether the field is a dimension or a measure
-
Its business purpose
-
Representative values, for example Accessories, Bikes, and Clothing for a product category column
-
Time granularity, for date fields
Semantic Enrichment needs an initial build or publish before it can generate descriptions, and the generated descriptions need another build or publish before the assistant can use them. For Live models they become available a few minutes after the publish.
Step 4: Add Tags
Tags group and surface related objects across the model, which helps you find and maintain them. Tags also carry governance flags, including keeping an object out of AI.
Step 5: Enable Smart Value Matching
Smart Value Matching lets users filter using their own wording. A user asking to "filter by northeast" can be matched to a value stored as "NE Region".
-
Text columns only, up to 250 distinct values per column.
-
Synonym recognition is implicit, so codes and abbreviations will not match well.
-
Values re-index after 30 days, when you enable a new column, and on relevant schema changes.
To enable it:
-
In the Data tab, open the relevant model.
-
Click Smart Value Matching.
-
Toggle on the fields you want matched.
-
Click Save, then build or publish the model.
Step 6: Add AI Context
AI Context (Beta) expresses things a schema cannot: what "last quarter" means in your fiscal calendar, that "revenue" should use the net measure, that amounts are in USD, or which terminology your users prefer.
You can set context on models, perspectives, tables, columns, dashboards, widgets, and shared formulas. When more than one applies, the most specific context wins.
Note:
-
AI Context is currently in beta. It is consumed by the assistant and by natural language queries today. Narrative and Semantic Enrichment are planned for a later release.
-
Each context field accepts up to 500 characters.
Writing Effective AI Context
| Weak | Better |
|---|---|
| "Sales table." | "One row per order line; sum Quantity for units sold, don't count rows." |
| "Do not use this column." | "Legacy field; prefer Revenue (Net) for revenue questions." |
| "Customer info." | "'Region' is the sales region, not the billing country." |
More is not better. Clean names and descriptions are the broad foundation. AI Context is targeted, added only where the model cannot express something or where you have seen the AI get it wrong. Redundant context dilutes the guidance and can make answers worse.
Step 7: Publish and Verify
Semantic changes do not reach AI until they are published. Use Publish Semantics for semantic-only changes such as descriptions, tags, and AI Context. Build or publish the model for Smart Value Matching.
Then verify:
-
Ask three to five questions your users actually ask.
-
Check the interpretation the assistant shows before it returns results.
-
Where it chose the wrong object, add AI Context at that specific object rather than rewriting the description.
-
Publish again and re-test.
Optimization is iterative. Treat the first pass as a baseline, not a finished job.