SuperAPI AI 工具集

shiny-for-python

前端与建站

查看项目

更新于 10-28 07:44

技能介绍

Shiny for Python(py-shiny)用于以纯 Python 构建响应式 Web 应用,提供两种组织方式:Core 模式由显式的 app_ui 对象和 server(input, output, session) 函数组成;Express 模式则把 app 文件中的顶层代码作为 UI,并以内联方式定义输出。

响应式是框架的引擎。在响应式上下文中读取响应式源(如 input.x()、reactive.value、@reactive.calc)会注册依赖,该源变化后所有读取过它的代码都会重新执行,因此无需自行调用输出或调度更新。

本条目是一份索引型技能,按任务组织参考文档:

基础:响应式(calc/effect/value 的选择、req、isolate、定时器、轮询、后台任务赋值)、Express 模式(布局、page_opts、@expressify)、Core 与 Express 模块(可复用 UI+server 组件,避免 id 冲突)、会话生命周期(on_ended 清理、请求头/ Cookie/URL、flush 钩子、按会话路由)。

仪表盘构建:仪表盘设计(信息层级、共享筛选、响应式布局、空状态与最终质量检查)、仪表盘组件(卡片、KPI 值框、工具栏、图标、提示框)、交互式图表(经 shinywidgets 渲染 Plotly)、地图(按交互与规模选择 Plotly、ipyleaflet 或 lonboard)。

布局与导航:布局(bslib 容器中的卡片、列、侧边栏、值框、折叠面板)、导航(标签页、导航栏、活动标签读写、运行时导航面板)、动态 UI(@render.ui、ui.update_*、insert_ui/remove_ui、panel_conditional)、主题(颜色、字体、Bootswatch 预设、Sass 变量、brand.yml、ui.Theme 明暗模式)。

输出与渲染:静态图与图像(matplotlib/seaborn/plotnine 及点击/悬停/刷选交互)、数据框(@render.data_frame 的 DataGrid/DataTable,支持排序、筛选、选择、编辑)、文件(上传与生成文件下载)。

反馈与交互:提示条/通知、模态对话框、进度条、忙碌指示;扩展任务(在响应式周期外运行耗时工作以保持会话响应、任务按钮);书签(保存/恢复应用状态、可分享 URL、刷新持久化、服务端状态)。

AI 与流式输出:使用 ui.Chat 构建 LLM 聊天机器人(流式响应、接入提供商、聊天历史);用 ui.MarkdownStream 将 Markdown/LLM 文本流式输出到非聊天区域。

扩展 Shiny:自定义渲染器(继承 Renderer 编写 @render.xxx)、自定义组件(浏览器 JS 集成、自定义输入/输出绑定、send_custom_message、HTMLDependency 资源)。

测试与可观测性:测试服务器(local_server fixture / test_server() 在内存中设置输入并断言输出/导出与模块作用域,无需浏览器)、端到端测试(基于 pytest 的 Playwright)、调试(检查服务端响应式/输入/输出状态并暴露给测试工具)、OpenTelemetry(对响应式执行进行追踪/性能分析并导出 span)。

使用方式为安装 py-shiny 后运行应用,如 from shiny import ... 与 shiny run app.py。具体功能范围、依赖安装、版本与平台支持等细节,资料暂未提供。