Skip to content

What is YAC?

YAC lets you explore a dataset by asking questions in plain language. Each answer is a chart on a dashboard. The charts are linked: select a range or a category on one, and every other chart, count and table updates to match.

You can also refine a chart without typing a new question. The dropdowns under each chart in the conversation change the fields it uses, such as what it splits by or what it counts.

  1. You type a question in the chat, for example “Compare survival from initial diagnosis between the two diagnosis cohorts.”
  2. The agent reads the dataset’s structure. That is the table and field names, their descriptions and the values a field takes. It does not see the rows themselves.
  3. It picks a chart. Charts come from a library of templates (see the chart gallery). The agent binds a template’s slots to the tables and fields that fit your question. When no template fits, it says why instead of drawing a chart that might be wrong.
  4. Your browser draws it. The data is loaded and filtered in your browser, so charts and filters respond without a round trip.

Besides charts, the agent can answer in text (for example, “What does each table in this dataset describe?”), add a filter, or ask which field you meant when a word in your question could match several.

YAC has three parts, each published on its own:

  • The chat (udi-yac on npm): the app you see. It can be embedded in other sites.
  • The agent (udiagent on PyPI): the server that turns a question into a chart, using a large language model.
  • The grammar (udi-toolkit on npm): the chart format both sides share, and the component that renders it. The grammar pages have a tutorial, examples and a live editor.

To run or embed any of these, see Integrate.