SnowPro Specialty: Gen AI Question 165
Single answer2.3 Build chat interfaces to interact with data in Snowflake.A data engineering team wants to build an internal analyst assistant that lets business users ask natural-language questions such as, "Which product line had the largest quarter-over-quarter revenue decline in EMEA?" The source data already resides in Snowflake tables, and the team wants the chat interface to stay inside Snowflake as much as possible, enforce existing role-based access controls, and minimize custom orchestration code. Which approach is the BEST fit?
- A
Create a Cortex Analyst semantic model over the relevant Snowflake data and use a chat interface that sends user questions to Cortex Analyst so it can generate governed SQL against the modeled data.
- B
Export the Snowflake tables to an external vector database, embed every row, and answer all analytical questions only through semantic similarity search without generating SQL.
- C
Build a custom Streamlit in Snowflake app that sends prompts directly to a large language model with raw table names and column names, relying on the model alone to infer joins, metrics, and access rules.
- D
Replicate the warehouse data into a separate application database and build the chat experience there, because Snowflake chat interfaces cannot work directly with structured data in Snowflake.
Show answer and explanation
Correct answer: A
Explanation
For chat interfaces that answer business questions over structured data in Snowflake, the strongest pattern is to pair a Snowflake-native UI, such as Streamlit in Snowflake, with Cortex Analyst and a well-defined semantic model. This lets users ask natural-language questions while Snowflake generates SQL against governed data assets. It is more reliable than relying only on embeddings or a general-purpose LLM because analytical questions require accurate joins, metric definitions, filters, and aggregation logic. Snowflake best practices emphasize using semantic context for business-friendly question answering on structured data and keeping governance centralized through Snowflake roles and policies. In contrast, vector retrieval is better suited to unstructured document search and grounded generation, not as the main method for relational analytics.
- A. Correct.
Correct. Cortex Analyst is designed for conversational interaction with structured data in Snowflake. By defining a semantic model, the team gives the system business context such as metrics, dimensions, joins, and synonyms. Cortex Analyst can translate natural-language questions into SQL over Snowflake data while respecting Snowflake governance and access controls. This aligns well with the requirement to stay inside Snowflake and reduce custom orchestration.
- B. Incorrect.
Incorrect. Vector search is useful for retrieval over unstructured or chunked text, but it is not the best primary mechanism for precise analytical questions over structured relational data such as quarter-over-quarter revenue by geography and product line. Embedding rows and relying only on similarity search would reduce analytical accuracy and would not replace governed SQL-based querying for this use case.
- C. Incorrect.
Incorrect. A custom Streamlit in Snowflake app can be part of the user interface, but sending raw schema details directly to an LLM without a semantic layer is not the best fit. This approach increases the chance of incorrect joins, inconsistent metric definitions, and governance gaps. The misconception is that an LLM alone is sufficient for reliable BI-style question answering over enterprise data.
- D. Incorrect.
Incorrect. Replicating data out of Snowflake adds unnecessary complexity, latency, and governance risk. Snowflake does support building chat-style experiences that interact with Snowflake data, including using Streamlit in Snowflake for the frontend and Cortex Analyst for natural-language-to-SQL over structured data. The statement that Snowflake chat interfaces cannot work directly with structured data in Snowflake is false.