Use it · 13
A question in Vision
A plain question, a chart or a table back, and a board that builds up from what the team actually asks. The language model is shown the model of the data and writes the query; the query is checked and run live on the database, and nothing of theirs is copied to do it.
One question
- Someone types a question. On a board, about one connected model. The chat holds one working answer: a follow-up revises it in place.
- The language model reads the model and answers one of three ways. SQL with a first idea of the chart, a question back when the request is ambiguous, or a refusal that says why. It is sent the model of the data and the question. If any part of that model cannot be loaded the question is not asked at all.
- The SQL is checked to be a plain read. One that is not is blocked and logged.
- It runs live on their database. Through the saved connection, or the owner's for someone the board was shared with. The rows are today's.
- A second pass reads what came back. It writes the title and the sentence that frames the answer and picks the chart. If the query failed, it says so in plain words.
- The answer shows every chart the rows can hold. Each drawn small from the actual rows and graded from what the values show about themselves: honest, possible, or misleading with the reason stated. A poor fit is offered last, never hidden.
- Pinning keeps it. The answer becomes a tile on the board, saved with its query.
The board, later
- Someone opens the board. Each tile runs its own saved query again, live. No language model is asked.
- They set a slicer on the tab. A column the model knows, and the values to keep.
- The condition is written into every tile's query before it runs. It filters at the database, not on the page. A tile whose query never reads that column is left as it was, and the slicer says how many of the tab's tiles it reached. A tile it should narrow but cannot is not run and says so, because a number that only looks filtered is worse than none.