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:
Copy

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)
"
Copy

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.

  1. 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.

  2. Instale o aplicativo. Siga as instruções no admin_app README para instalar as dependências necessárias e iniciar o aplicativo.

  3. 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.

  4. Gere uma consulta. No lado direito da janela, use a interface de bate-papo para fazer uma pergunta que gerará uma consulta SQL.

  5. 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.

  1. 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.

  2. 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.