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 the repository. Start by cloning the semantic-model-generator repository.
Configure credentials and install the app. Follow the setup instructions in the repo’s README to provide your Snowflake credentials and run the app either on Snowflake or locally.
Configure the app. Once the app is running, enter the database, schema, and stage location of your semantic model YAML file into the provided fields. The YAML file will appear in an interactive editor on the left side of the window.
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.
Adição de entradas sugeridas de consultas verificadas do Cortex Analyst¶
O Cortex Analyst também fornece a interface de sugestão de consultas verificadas em Snowsight, que oferece possíveis novas consultas verificadas com base no comportamento do usuário. Para obter informações sobre como adicionar sugestões de consultas verificadas, consulte Sugestões do Verified Query Repository do Cortex Analyst.
Exibição das consultas verificadas usadas na resposta do Cortex Analyst¶
Quando a pergunta do usuário é semelhante a uma consulta no Repositório de consultas verificadas (VQR), o Cortex Analyst usa essa consulta para gerar a consulta SQL em sua resposta. Para ver qual consulta verificada foi usada, consulte o campo de confiança na resposta da API.