Three patterns, increasing complexity:
shinychat)querychat)shinychat provides a ready-made chat UI component for Shiny:
What if users could ask questions about your dataset in plain English?
querychat translates natural language → SQL → runs against a DuckDB table:
import querychat
import seaborn as sns
from shiny.express import ui
tips = sns.load_dataset("tips")
qc = querychat.init(tips, "tips",
greeting="Ask me about the tips dataset!")
ui.page_opts(title="Tips Q&A", fillable=True)
querychat.chat_ui("chat")
querychat.dataframe_ui("df")
querychat.chat_server("chat", qc)
querychat.dataframe_server("df", qc)Use an LLM to drive filters in a dashboard via natural language:
Template: shiny create --mode core --github jcheng5/py-databot
Generative AI shiny templates: https://shiny.posit.co/py/templates/#generative-ai
Upcoming tool: ggsql https://ggsql.org/
Trt it: https://ggsql.org/wasm/
See also: Querychat + Vis docs: https://posit-dev.github.io/querychat/py/visualize.html
VISUALISE FROM ggsql:penguins
DRAW point
MAPPING
bill_dep AS x,
body_mass AS y,
species AS color

PyCon US 2026. chendaniely/pycon-2026-shiny