Cortex Analyst Verified Query Repository¶
O Cortex Analyst Verified Query Repository (VQR) pode ajudar a melhorar a precisão e a confiabilidade dos resultados fornecendo uma coleção de perguntas e consultas SQL correspondentes para respondê-las. Em seguida, o Cortex Analyst aproveita consultas SQL relevantes do repositório ao responder a perguntas semelhantes. Você pode especificar consultas verificadas no seu arquivo YAML do modelo semântico.
Importante
Consultas SQL verificadas devem usar os nomes das tabelas e colunas lógicas definidas no modelo semântico, não aquelas no conjunto de dados subjacente. Veja o exemplo de consulta e sua discussão para mais informações.
As consultas verificadas são especificadas na seção verified_queries
do modelo semântico, conforme mostrado aqui.
verified_queries:
# Verified Query 1
- name: # A descriptive name of the query.
question: # The natural language question that this query answers.
verified_at: # Optional: Time (in seconds since the UNIX epoch, January 1, 1970) when the query was verified.
verified_by: # Optional: Name of the person who verified the query.
use_as_onboarding_question: # Optional: Marks this question as an onboarding question for the end user.
sql: # The SQL query for answering the question.
# Verified Query 2
- name:
question:
verified_at:
verified_by:
use_as_onboarding_question:
sql:
Abaixo está um amostra de modelo semântico que inclui uma consulta verificada.
name: Sales Data
tables:
- name: sales_data
base_table:
database: sales
schema: public
table: sd_data
dimensions:
- name: state
description: The state where the sale took place.
expr: d_state
data_type: TEXT
unique: false
sample_values:
- "CA"
- "IL"
# Time dimension columns in the logical table.
time_dimensions:
- name: sale_timestamp
synonyms:
- "time_of_sale"
- "transaction_time"
description: The time when the sale occurred. In UTC.
expr: dt
data_type: TIMESTAMP
unique: false
# Measure columns in the logical table.
measures:
- name: profit
synonyms:
- "earnings"
- "net income"
description: The profit generated from a sale.
expr: amt - cst
data_type: NUMBER
default_aggregation: sum
verified_queries:
- name: "California profit"
question: "What was the profit from California last month?"
verified_at: 1714497970
verified_by: Jane Doe
use_as_onboarding_question: true
sql: "
SELECT sum(profit)
FROM __sales_data
WHERE state = 'CA'
AND sale_timestamp >= DATE_TRUNC('month', DATEADD('month', -1, CURRENT_DATE))
AND sale_timestamp < DATE_TRUNC('month', CURRENT_DATE)
"
No exemplo acima, __sales_data
corresponde à tabela sales_data
definida no modelo. Para evitar conflitos de nomes, o nome da tabela lógica é prefixado com dois sublinhados. As colunas usadas na consulta (state
, sale_timestamp
e profit
) são colunas lógicas definidas na tabela sale_data
do modelo. Os nomes das colunas subjacentes (d_state
, dt
, amt
e cst
) não são usados diretamente na consulta.
Conforme ilustrado no exemplo, a pergunta não precisa ser uma frase completa, ou realmente ter o formato de uma pergunta, mas deve refletir algo que um usuário pode perguntar. Certifique-se de que as consultas SQL estejam sintaticamente corretas e realmente respondam às perguntas feitas; esta é a essência de uma “consulta verificada”. Consultas inválidas ou imprecisas podem impactar negativamente o desempenho e a precisão do Cortex Analyst.
Dica
Use o aplicativo gerador de modelo semântico de código aberto, descrito na próxima seção, para ajudar a adicionar consultas verificadas ao seu modelo semântico, sem precisar se preocupar com sintaxe SQL ou YAML.
Adição de consultas verificadas usando o gerador de modelo semântico¶
A Snowflake fornece um aplicativo Streamlit de código aberto para ajudar a adicionar consultas verificadas ao seu modelo. Para instalar e usar este aplicativo, siga estas instruções.
Clone o repositório. Comece clonando do repositório semantic-model-generator. Siga as instruções de configuração no arquivo README do repositório para fornecer suas credenciais Snowflake ao aplicativo.
Instale o aplicativo. Siga as instruções no admin_app README para instalar as dependências necessárias e iniciar o aplicativo.
Configure o aplicativo. Quando o aplicativo estiver em execução, insira o banco de dados, o esquema e o local do estágio do seu arquivo YAML de modelo semântico nos campos fornecidos. O arquivo YAML aparecerá em um editor interativo no lado esquerdo da janela.
Gere uma consulta. No lado direito da janela, use a interface de bate-papo para fazer uma pergunta que gerará uma consulta SQL.
Verifique e salve a consulta.
Inspecione a consulta gerada e os resultados que ela produz. Se funcionar como esperado, selecione o botão Save as verified query abaixo da resposta do assistente para adicionar a consulta ao seu modelo semântico.
Se a consulta gerada estiver incorreta, selecione o botão Edit para modificar a consulta. Execute a consulta modificada para verificar se ela produz os resultados pretendidos. Continue editando e testando até que a consulta funcione conforme desejado. Em seguida, selecione Save as verified query para adicioná-la ao seu modelo semântico.
Atualize o modelo semântico. Selecione o botão Save no canto inferior esquerdo da janela para atualizar o modelo semântico. Repita o processo para adicionar mais consultas.
Faça upload do novo arquivo YAML. Quando estiver satisfeito com as consultas adicionadas, selecione o botão Upload, insira um nome de arquivo para o novo arquivo YAML e selecione Submit Upload.
Ao retornar ao seu estágio no Snowsight, você verá o novo arquivo YAML do modelo semântico com suas consultas verificadas.