Selo de estado:
Preview(teto atual do produto) · Curso ACD-410 — Ingestia AI: perguntar aos dados com proveniência · Aula 4 de 8 · Atualizado em 2026-10-04.
Objetivo#
Ao final desta aula você vai reescrever perguntas ruins — aplicando os quatro elementos que o próprio produto pede (período, recorte, medida, um pedido por vez) e sabendo por que uma pergunta mal feita custa mais caro.
Vídeo#
Identificador no manifesto: acd-410-04-boas-perguntas · duração-alvo 6 min · tela do produto: /query.
Roteiro de gravação (5 capítulos):
| # | Minutagem-alvo | Capítulo | Tela do produto |
|---|---|---|---|
| 1 | 0:00–0:40 | Abertura: título + selo Preview. A tese: a mesma IA responde muito melhor a uma frase de 9 palavras bem escolhidas. | /query |
| 2 | 0:40–2:10 | Abrir o bloco "Como escrever uma boa pergunta" na própria tela e ler as quatro dicas: período, recorte, medida, um pedido por vez. | /query |
| 3 | 2:10–3:40 | Reescrita ao vivo: "como estão as vendas?" → "receita por categoria nos últimos 30 dias". Comparar os dois SQL propostos e os dois custos. | /query |
| 4 | 3:40–5:00 | As perguntas que não têm resposta: pedir causa, pedir previsão ao Q&A, pedir total sobre amostra, pedir comparação com o mercado. Mostrar a recusa como resultado correto. | /dashboards/[id] (painel lateral ✨) |
| 5 | 5:00–6:00 | Nomes do seu modelo valem mais que sinônimos; usar os chips de exemplo como ponto de partida; encerramento com o "faça você mesmo". | /query |
Conteúdo#
Os quatro elementos que o produto pede
O assistente de /query traz um bloco recolhido chamado "Como escrever uma boa pergunta". Ele não é decoração: são as quatro peças que transformam uma frase em consulta útil.
- Diga o período. "Nos últimos 6 meses", "no trimestre passado". Sem período, a consulta varre tudo e custa mais.
- Diga o recorte. "Por canal", "por loja", "por produto" — é o que vira o agrupamento.
- Diga a medida. "Faturamento", "quantidade vendida", "ticket médio". Se a sua empresa usa outro nome, use o nome de vocês.
- Um pedido por vez. Duas perguntas na mesma frase costumam virar um SQL confuso. Faça a segunda depois.
A isso soma-se um quinto princípio, que é o mais difícil de internalizar: não peça causa. A IA descreve o que os dados mostram; ela não afirma que "X causou Y" e recusa quando tentam forçar.
Nota
Use os nomes do seu modelo. "Receita", "categoria", "filial" ancoram a pergunta nas medidas e colunas que existem; sinônimos criativos ("faturamento bruto consolidado") empurram a IA para o chute ou para a recusa.
Determinístico × LLM: por que a pergunta ruim sai mais caro
| Pergunta | O que o lado determinístico faz | O que o LLM faz | Custo |
|---|---|---|---|
| Ambígua, com modelo semântico publicado ("qual a receita?") | detecta que o termo casa com ≥2 medidas e recusa antes da chamada | nada — não é nem chamado | zero |
| Vaga ("me mostra tudo") | nada a barrar: é uma frase válida | tenta algo e devolve um SQL largo | token gasto + consulta caríssima se você executar |
| Com período e recorte | monta o contexto, fixa parâmetros nomeados, estima bytes por execução seca real | redige o SQL certo | token baixo + consulta estreita |
| Pedindo causa ("por que caiu?") | regra de recusa no prompt e verificação da saída | recusa ou responde descrevendo, sem afirmar causa | token gasto, resposta sem o que você queria |
A lição: a recusa é o caminho barato. Perguntar mal não gera erro bonito — gera um SQL plausível que varre a tabela inteira.
Reescritas: text-to-SQL
| Ruim | Por que | Boa |
|---|---|---|
| "me mostra tudo" | sem métrica nem recorte | "receita total por mês em 2026" |
| "vendas" | ambíguo | "quantidade vendida por categoria no último trimestre" |
| "quais os melhores?" | "melhor" em quê? | "top 10 produtos por receita em julho/2026" |
| "compara com o mercado" | dado que você não tem | "receita deste ano vs ano anterior por filial" |
| "receita e margem e por que caiu" | três pedidos, um deles de causa | "receita por categoria nos últimos 30 dias" — depois a margem, depois a investigação |
Reescritas: Q&A do dashboard
O Q&A responde só sobre o snapshot já materializado, e cada afirmação vem com citação. Isso muda o que faz sentido pedir:
| Ruim | Por que | Boa |
|---|---|---|
| "por que as vendas caíram?" | pede causa | "qual categoria mais caiu vs o mês anterior neste painel?" |
| "qual a previsão para dezembro?" | não está no snapshot | "qual cliente teve maior receita no período mostrado?" |
| "isso é bom?" | opinião sem lastro | "quais itens estão abaixo da meta exibida?" |
| "quanto foi no total?" num visual que é amostra | amostra não permite total | agregue no text-to-SQL para o total exato |
Nas telas
Em /query, logo abaixo da caixa de texto, estão as quatro dicas e uma fileira de chips de exemplo — marcados como exemplo, porque não foram gerados das suas tabelas. Use-os como molde e troque as palavras pelos nomes do seu modelo. O campo tem como sugestão de preenchimento algo como "faturamento por mês dos últimos 6 meses": já é período + recorte + medida numa frase.
No painel, a caixa "Pergunte aos seus dados…" do ✨ é o Q&A: pergunta curta, resposta com evidências listadas abaixo. O rodapé avisa que as respostas vêm dos dados já carregados.
Exemplo: a Aurora Varejo
Ana começa com "como estão as vendas?". A resposta esperada é fraca por construção: ou um pedido de precisão, ou um SQL amplo que soma tudo sem período — e um custo estimado desproporcional.
Ela reescreve para "receita por categoria nos últimos 30 dias, só na filial Campinas". A resposta esperada é um SQL agrupando por categoria, com o período como parâmetro nomeado e o filtro de filial presente, sobre aurora_gold.vendas, com custo na casa dos centavos — e a medida citada na proveniência. Quatro palavras-chave a mais trocaram uma varredura por uma consulta estreita.
Depois ela tenta "por que a filial Campinas caiu?" no ✨ do painel. A resposta esperada é uma recusa: o painel não sustenta uma afirmação de causa. A versão que funciona é "qual categoria mais caiu em Campinas vs o mês anterior neste painel?" — descreve, não explica.
Erros comuns
| Erro | Consequência | Correção |
|---|---|---|
| Pergunta sem período | varredura da tabela inteira e custo alto | sempre diga o intervalo, mesmo que seja "nos últimos 7 dias" |
| Aceitar número sem citação | você defende na reunião um número que não conferiu | leia as tabelas citadas e, no Q&A, as evidências |
| Achar que a IA aprende com os seus dados | esperar que ela "lembre" do contexto da pergunta anterior | repita o período e o recorte em cada pergunta; o contexto é remontado a cada chamada |
| Perguntas compostas | SQL confuso, resposta meio certa | quebre em passos; a segunda pergunta custa pouco com cache de prompt |
| Pedir tempo real ao Q&A | resposta sobre dado antigo | o Q&A lê o snapshot; para "agora", atualize o painel ou use o text-to-SQL |
O que esta prática NÃO resolve
Perguntar bem melhora muito o resultado, mas não transforma a IA em fonte de verdade: o estado é Preview, a qualidade em produção é NOT_MEASURED e a avaliação humana é gate pendente. Pergunta boa também não inventa dado que você não tem — comparação com o mercado continua impossível — e não autoriza pular a conferência da proveniência.
Faça você mesmo#
No workspace de treino Aurora Varejo, como admin ou dona. Atenção: os passos 3 a 6 disparam chamadas a modelo e consomem o orçamento de IA do workspace. São cinco reescritas; confira o limite do mês na tela antes de começar e pare se ele estiver perto do teto.
- Abra
/querye expanda "Como escrever uma boa pergunta". Copie as quatro dicas para uma anotação sua. - Escreva cinco perguntas ruins de propósito, uma de cada tipo: sem período · sem medida · dois pedidos na mesma frase · pedindo causa · pedindo dado que a Aurora não tem.
- Gere a proposta para a pior delas e anote o custo estimado por execução e os bytes.
- Reescreva as cinco aplicando período + recorte + medida + um pedido por vez. Gere a proposta da versão boa correspondente à do passo 3.
- Compare os dois SQL e os dois custos estimados lado a lado. Anote a diferença em bytes.
- No ✨ de um painel, faça a pergunta de causa e registre o texto da recusa. Depois faça a versão descritiva e confirme que veio resposta com evidências.
- Em
/auditoria, confira quais das suas tentativas geraram custo e quais foram recusadas antes de gastar.
Você terminou quando tiver as cinco reescritas documentadas (ruim → por que → boa), a comparação de bytes entre a pior e a melhor versão, e uma recusa de causa registrada com o texto exato.
Checagem rápida#
Três perguntas no final da aula, corrigidas no servidor. A aula só conta como concluída depois da checagem.
Documentação relacionada#
Capacidades ensinadas#
C13.1 — o selo exibido na aula é sempre o estado mais conservador entre as capacidades citadas; nada aqui é "GA".