Gradio 月活用户突破百万!
阅读更多Gradio 月活用户突破百万!
阅读更多b768651
- 为 Block Label 添加 rtl
支持。感谢 @hannahblair!be46b94
- 为 gr.HighlightedText 添加 rtl
支持。感谢 @hannahblair!2f68c9d
- 重构和重新设计 ImageEditor
组件。感谢 @pngwn!8a62c7e
- 为 gr.Radio
添加 rtl
支持。感谢 @hannahblair!5b3414a
- 更改 FRPC 二进制文件的下载位置。感谢 @abidlabs!6754d82
- 放宽 aiofiles 版本限制。感谢 @freddyaboulton!d654e60
- 在 gr.Dataframe 中,将搜索过滤后的行索引映射到原始数据索引。感谢 @hannahblair!36da6d0
- 修复 gr.Dataframe 中的值同步问题。感谢 @hannahblair!ede7428
- 修复 gr.NativePlot 默认行为中标签的排序问题。感谢 @Rafalex04!c37de0f
- 调整 gr.MultimodalTextbox
中的 rtl
UI。感谢 @hannahblair!c851862
- 取消渲染 gr.ChatInterface
中用户提供的文本框,以便它作为 gr.Blocks
应用的一部分在正确的位置渲染。感谢 @abidlabs!f09f543
- 反转聊天历史记录中的对话顺序,并使用自定义聊天机器人正确渲染。感谢 @abidlabs!2521e8a
- 检查当前运行时是否可用 SharedWorker,如果不可用,则回退到 DedicatedWorker。感谢 @whitphx!d81385b
- 为 MetadataDict 添加状态文档。感谢 @aliabd!d5fde7c
- Babylon 更新,用于 model3D。感谢 @CedricGuillemet!01b88c7
- 改进 JS Client 中的 API 错误处理。感谢 @l2dy!2322700
- 更新 i18n 文件。感谢 @freddyaboulton!afe0b13
- 修复聊天机器人思考过程无法折叠的回归问题。感谢 @abidlabs!64a6ead
- 修复当 gr.Image
处于全屏模式时 EventData 的缩放问题。感谢 @tiago-gsantos!c8d6ddd
- 重构 get_request_url
。感谢 @abidlabs!09a8d0c
- 锁定 pydantic
版本。感谢 @abidlabs!1e8cdee
- 修复 route_utils.get_api_call_path()。感谢 @whitphx!17fed95
- 修复 gr.Dropdown
中箭头键处理中的空数组检查。感谢 @l2dy!a018a46
- 修复数据框中的换行行为。感谢 @hannahblair!bfb7aae
- 修复轻微的心跳内存泄漏。感谢 @brentyi!b9b8d08
- 修复当 interactive=False
时 MultimodalTextbox
中按钮禁用问题。感谢 @lara-gfaria!cd7f486
- 修复挂载应用中 Gradio 的根路径问题。感谢 @aliabid94!b19e8ad
- 在 get_api_call_path()
中,从 root_url
切换到 request.url
。感谢 @abidlabs!3ba9e4f
- 修复请求 URL。感谢 @abidlabs!e30348b
- Gradio Sketch:移除 HF Inference 健康检查。感谢 @aliabid94!c05610c
- 添加深度链接。感谢 @freddyaboulton!a06c7e4
- 允许在 Gradio Sketch 中进行迭代编码。感谢 @aliabid94!243942e
- 修复 gr.on 事件监听器的类型。感谢 @JackismyShephard!a1862f5
- 修复加载事件监听器的类型。感谢 @JackismyShephard!1649b00
- 在 Markdown
组件(以及使用 Markdown 的组件,如 gr.Chatbot
)中添加对 mermaid.js
的支持。感谢 @abidlabs!6384bcc
- 基于 Jedi 的 Python 代码补全,用于 gr.Code
。感谢 @whitphx!f40e008
- 更改 gr.DeepLinkButton
的默认变体为 secondary。感谢 @abidlabs!8ff0a5e
- 修复 bash API 返回文件的路径生成问题。感谢 @cansik!fb4c3da
- 错误修复:如果启动时存在 root_path,则注销。感谢 @azharizz!4d78710
- Sketch 代码生成器。感谢 @aliabid94!b42e461
- 为 gr.Chatbot
添加水印参数,该参数会添加到复制的文本中。感谢 @abidlabs!4fa8e00
- 更新 markupsafe
依赖版本。感谢 @abidlabs!e0ab4f0
- 修复 gr.load_chat。感谢 @aliabid94!ac075ad
- 修复非可编辑数据框中不显示单元格菜单的问题。感谢 @hannahblair!6812544
- 在 Windows 操作系统上,隐藏 gr.Dataframe
滚动条,同时保留滚动功能。感谢 @abidlabs!9ec8898
- 修复数据框中的过度滚动错误。感谢 @hannahblair!8d03368
- 修复非可编辑数据框中的最大字符数限制。感谢 @hannahblair!b3e8c26
- 实现数据框中通过拖动进行单元格选择。感谢 @hannahblair!c44b8f4
- 为交互式数据框添加 static_columns
参数。感谢 @hannahblair!373007b
- 允许在数据框中按多列排序。感谢 @hannahblair!39c30be
- 为拖动选择添加父级焦点。感谢 @hannahblair!3b48367
- 允许从表头单元格向下导航,并支持 cmd/ctrl + 箭头键。感谢 @abidlabs!85f6132
- 修复使用 shift + 箭头键时的单元格选择问题。感谢 @abidlabs!731ab92
- 代码编辑器组件上的自动完成功能。感谢 @whitphx!3086343
- 修复待处理思考过程的尺寸。感谢 @dawoodkhan82!0ce7bfe
- 允许使用 gr.load
为聊天机器人模型添加标签。感谢 @dawoodkhan82!b4342d2
- 修复数据框搜索和过滤功能。感谢 @hannahblair!88941b6
- 从数据框中移除固定布局。感谢 @hannahblair!b5ca1dc
- 重构 gr.Dataframe
。感谢 @hannahblair!fb8c1cb
- 将 gr.Textbox
行数逻辑移至前端。感谢 @abidlabs!3232cdd
- 修复:Markdown 的 LaTeX 渲染。感谢 @Col0ring!dd2de17
- 修复 FileExplorer 中的 Windows 路径问题。感谢 @aliabid94!16244f3
- Gradio Sketch 中的事件监听器。感谢 @aliabid94!2b38420
- 更改警告堆栈级别以改进控制台中的警告信息。感谢 @wolph!2248005
- 为 mount_gradio_app
添加 pwa
和 enable_monitoring
参数。感谢 @abidlabs!1cf992b
- 侧边栏固定定位。感谢 @dawoodkhan82!9fce28b
- 允许在连接到自定义共享服务器时发送自定义 TLS 证书或不发送 TLS 证书。感谢 @abidlabs!19411c6
- 修复 ClearButton。感谢 @phos-phophy!b3ac430
- 仅当 SSR 模式为 true 时才检查 Node.js 路径。感谢 @anirbanbasu!667f8a1
- 修复 Chatbot 头像图片位置。感谢 @abidlabs!b710d7c
- 修复错误显示。感谢 @aliabid94!5faa2a3
- chore: 将 Pyodide 版本提升至 0.27.3。感谢 @peter-gy!bd982df
- 更改 gr.load
chatinterface 行为为流式传输。感谢 @abidlabs!16d419b
- 允许仅更新组件属性的函数通过设置 js=True
在前端运行。感谢 @abidlabs!b43200d
- 数据框的自定义样式。感谢 @abidlabs!374b762
- 支持 gr.LoginButton
用于 gr.load()
。感谢 @abidlabs!cb3c762
- 添加泰语翻译。感谢 @haihandsome!249eccd
- 修复 Dataframe 表头类型以允许整数值。感谢 @abidlabs!36309ea
- 自动恢复多选下拉菜单中的最后滚动位置。感谢 @XcantloadX!367fe14
- 修复聊天机器人共享按钮有效负载过大的问题。感谢 @dawoodkhan82!f0a920c
- 为 gr.Code() 添加 show_line_numbers 以切换行号显示。感谢 @lalitx17!0b1f729
- 允许 websocket 版本 15。感谢 @freddyaboulton!d06f3e3
- 聊天机器人思考过程生成动画。感谢 @dawoodkhan82!d7607a2
- gradio sketch
的人体工程学改进和分析。感谢 @abidlabs!b01ce47
- 修复 Table.svelte
中的单元格选择逻辑。感谢 @abidlabs!bd4895a
- 更新 Lite 以支持多页面应用。感谢 @whitphx!77432c7
- Gradio Sketch - 基于 UI 的 Gradio 骨架构建器。感谢 @aliabid94!b505df0
- 修复 fill_width。感谢 @aliabid94!ae4ba46
- 将侧边栏更改为绝对定位并使其可访问。感谢 @dawoodkhan82!75c9748
- 修复:聊天机器人共享有效负载过大的问题。感谢 @dawoodkhan82!ce4fb99
- 修复 gr.Chatbot
中 resizable
参数的拼写错误。感谢 @abidlabs!f0e4fd0
- 修复 Blocks.serve_static_file
和 Button.svelte
以在 Lite 上工作。感谢 @whitphx!4e70d74
- 修复 gr.load()
用于 gr.ChatInterface(save_history=True)
和任何上游应用包含 gr.State
作为输入的 Gradio 应用的问题。感谢 @abidlabs!f8eb8e5
- 将 kwargs 传递到 gr.load()
创建的 gr.ChatInterface
中。感谢 @abidlabs!8c87eb8
- 修复了当值同时更新时,样式更改被覆盖的问题。 感谢 @abidlabs!b640df2
- 修复了移动端 Sidebar 的问题。 感谢 @dawoodkhan82!1299267
- 更改了 sidebar 位置。 感谢 @dawoodkhan82!c4aa886
- 在 playground 中实现了语义搜索。 感谢 @aliabd!c354f5f
- 添加了空 dataframe 功能。 感谢 @hannahblair!a8bde76
- 修复了当未提供 header 时,gr.Dataframe
上方的 margin 问题。 感谢 @abidlabs!b8fada8
- [ZeroGPU] 基于握手的 postMessage 第 2 部分 (非 SSR 模式)。 感谢 @cbensimon!12669f4
- 行缩放更改。 感谢 @aliabid94!26494ce
- 允许在 gr.Dataframe
中冻结列。 感谢 @hannahblair!b8ff5d6
- 向 gr.Dataframe
的工具栏添加了可选的搜索栏。 感谢 @hannahblair!196b600
- 在 dataframe 中选择整行或整列。 感谢 @hannahblair!1113002
- 修复了 Safari 中 gr.Dataframe
的间距问题。 感谢 @hannahblair!29880d5
- 允许在任意组件上显示进度更新。 感谢 @abidlabs!4c08b9f
- 阻止在 dataframe 单元格菜单打开时滚动。 感谢 @hannahblair!e505fab
- 向 gr.Dataframe
添加了复制按钮反馈。 感谢 @hannahblair!3748e4c
- Chatbot allow_tags
。 感谢 @dawoodkhan82!ed25a10
- 为宽显示器添加了 1920px 宽分辨率。 感谢 @Oncorporation!deeebfb
- 还原了可编辑文本更改。 感谢 @hannahblair!9b87e12
- 修复了 gr.Plot change/load 事件和 plotly css 加载问题。 感谢 @freddyaboulton!1269ad0
- Plotly 6.0 修复:安装最新的 plotly js 版本。 感谢 @freddyaboulton!178311b
- 确保 dataframe 中的行号功能按预期工作。 感谢 @hannahblair!4e72dfe
- 修复了 Auth 问题。 感谢 @freddyaboulton!8e2cf2f
- 修复了 micropip.install 的包装器函数,使其抛出原始错误,以获得更好的调试体验。 感谢 @whitphx!bcbb7b6
- 修复了元组的 DF Postprocess。 感谢 @freddyaboulton!27155cf
- Native Plot 尊重 height 参数。 感谢 @freddyaboulton!855d870
- Footer 对齐修复。 感谢 @aliabid94!d909868
- 确保 max_height
应用于 gr.Dataframe
。 感谢 @hannahblair!083d68b
- quick_fix_client。 感谢 @aliabid94!79937fd
- 更改了 dataframe headers 中的 word-break 属性。 感谢 @hannahblair!2a1fc2a
- 确保链接在 dataframe 中按预期工作。 感谢 @hannahblair!ccf590c
- 默认情况下展开行中的选项卡。 感谢 @aliabid94!a18ac9c
- 修复了当提供初始值时,plots 无法加载的错误。 感谢 @freddyaboulton!39f0c23
- 允许将图像上传到 gr.load_chat。 感谢 @aliabid94!8e40c15
- 实现了多单元格选择。 感谢 @hannahblair!90f90b7
- 向文档添加了 sidebar。 感谢 @aliabd!35fda36
- 向 gr.ParamViewer
添加了一个 anchor_links
参数,允许链接到特定参数。 感谢 @abidlabs!2e8dc74
- 允许构建多页 Gradio 应用。 感谢 @aliabid94!a9bfbc3
- 在 gr.load()
中添加了对 inference providers
的支持。 感谢 @abidlabs!ed7a091
- 展开和折叠 dataframe 单元格。 感谢 @hannahblair!afb96c6
- 改进了 dataframe 的上传可访问性。 感谢 @hannahblair!ff5f976
- 允许在 gr.Dataframe 中使用多行 header。 感谢 @hannahblair!10932a2
- 确保当 interactive
为 False 时,dataframe 不可编辑。 感谢 @hannahblair!6401d32
- chore: 更新 dropdown.py。 感谢 @eltociear!2cf449a
- 添加了更多 ImageEditor js 测试。 感谢 @freddyaboulton!3750082
- Sidebar 修复。 感谢 @dawoodkhan82!ca7c47e
- 向 dataframe 工具栏添加了复制按钮。 感谢 @hannahblair!a69b8e8
- 支持在 gr.DataFrame
中删除列/行。 感谢 @abidlabs!3465fdb
- 使用最新的 ruff
格式化了后端代码。 感谢 @abidlabs!62d0669
- 仅在点击 gr.Audio()
中的录制按钮后才请求麦克风权限。 感谢 @abidlabs!ef66fe5
- Sidebar 组件。 感谢 @dawoodkhan82!324383f
- 修复了由于 huggingface_hub 更新导致的类型检查错误。 感谢 @freddyaboulton!dd178f3
- 对示例 dataframes 进行了微小的调整。 感谢 @hannahblair!2167f58
- 更新了 Pyodide 到 0.27.2。 感谢 @whitphx!337b522
- 对 gr.ChatMessage
和 chatbot 消息之间的间距进行了小的调整。 感谢 @abidlabs!71c8b8a
- 使用 None 清除 Image Editor Value。 感谢 @freddyaboulton!3c2e12b
- 修复了 ImageEditor 裁剪 - 裁剪现在裁剪背景图像,而不是图像 + 画布。 感谢 @freddyaboulton!92dda15
- 如果 show_recording_waveform
为 False
,则在播放录制的音频时隐藏波形。 感谢 @abidlabs!90e0b47
- 将所有 md5 哈希更新为 sha256。 感谢 @LArkema!b7a7e59
- 支持带有 gr.Video、gr.Model3D 和其他组件的预签名 URL。 感谢 @abidlabs!c44da25
- 允许直接在 gr.ChatInterface
中修改 chatbot 值。 感谢 @abidlabs!5881296
- 改进了组件文档字符串和杂项文档。 感谢 @abidlabs!feb1e81
- 向 gr.Dataframe
添加了带有全屏按钮的工具栏。 感谢 @hannahblair!b0cf92f
- PWA 图标自定义。 感谢 @whitphx!4d47e4b
- 向 Chatbot 元数据添加了一个 log
参数,允许在思想标题旁边显示 str
内容。 感谢 @abidlabs!6a7cfc4
- Client 和 ZeroGPU 之间的兼容性。 感谢 @abidlabs!b10f5e1
- Lite:重试安装。 感谢 @whitphx!2b7ba48
- 向 gr.Dataframe 添加了 show_row_numbers
参数。 感谢 @hannahblair!8cf0461
- 修复了 ReDoS。 感谢 @kevinbackhouse!43e05d7
- 文档化了 gr.Chatbot
的其他辅助类。 感谢 @abidlabs!a91cb9c
- 向 gr.slider
初始化添加了 show_reset_button
。 感谢 @amanchauhan11!48809c7
- 修复了当手动更改输入值时,dataframe value
属性未更新的错误。 感谢 @abidlabs!eb85edf
- 快速修复:0 被 Slider/Number 问题忽略。 感谢 @dawoodkhan82!43e7cce
- 修复了 ImageEditor Size Issues。 感谢 @freddyaboulton!40e0c48
- 确保单击单元格一次即可启用编辑模式。 感谢 @hannahblair!9517043
- 确保使用 pandas .hide()
隐藏的列按预期工作。 感谢 @hannahblair!9dc5d15
- 调整了与 gr.Chatbot
思想消息的 status
相关的行为。 感谢 @abidlabs!9e6eded
- 移除覆盖 Gradio 主题设置的 css 标签。 感谢 @ericwu09!62cd4ef
- 处理 gr.Dataframe 中的 row_count=0
。 感谢 @hannahblair!3219382
- 修复了事件触发器和最近与 gr.DataFrame
相关的回归。 感谢 @abidlabs!31cccc3
- 修复了检测 gr.Dataframe
表格值更改的逻辑。 感谢 @abidlabs!96bbde2
- 允许通过 Rows 和 Tabs 传播 fill_height,通过 scale。 感谢 @aliabid94!391a4d0
- 向 gr.EditData
添加了 .previous_value
。 感谢 @abidlabs!bb11a2a
- [ZeroGPU] 基于握手的 postMessage。 感谢 @cbensimon!be40307
- 在 gr.ChatInterface
中添加了对直接思考 LLM 的支持。 感谢 @abidlabs!58b8391
- 改进了工具 UI 并支持嵌套思想。 感谢 @hannahblair!e0cb47f
- 修复了 webcam。 感谢 @Col0ring!3543418
- ImageEditor:即使未定义 change 事件,也触发 input 事件。 感谢 @freddyaboulton!d2691e7
- 快速修复:多模态麦克风音频未清除。 感谢 @dawoodkhan82!decb594
- 更新了 gr.load_chat
的指南并允许 **kwargs
。 感谢 @abidlabs!e742dcc
- 允许用户添加自定义 API 路由。 感谢 @aliabid94!343503d
- 支持 gr.load()
-ing 带有 Blocks.load()
事件的 Gradio 应用。 感谢 @abidlabs!6b63fde
- Blocked Paths 修复。 感谢 @freddyaboulton!f19ca89
- 向 Gallery 添加了 preview_open 和 preview_close 事件。 感谢 @freddyaboulton!84e72e4
- 恢复了 chat interface 的全高度。 感谢 @aliabid94!9fc988e
- 修复了 ImageEditor 始终向后端发送空图层列表的错误。 感谢 @freddyaboulton!1e253ff
- 修复了 numpy==2.x 的 test_subclass_conversion。 感谢 @abidlabs!c3a9e64
- 允许编辑 chatbot 消息。 感谢 @aliabid94!a1f2649
- Chat Interface 标记和 chatbot 反馈。 感谢 @aliabid94!f0cf3b7
- Chatbot 中的 Dataframe 支持。 感谢 @dawoodkhan82!f2bd72f
- 在聊天历史记录中切换对话时,重置标记的值。 感谢 @abidlabs!5ce2832
- 支持在 gr.ChatInterface
中保存聊天历史记录。 感谢 @abidlabs!a95f8ef
- 添加了对从 gr.ChatInterface
聊天函数返回多条消息的支持。 感谢 @abidlabs!9b17032
- 向 MultimodalTextbox 添加了麦克风输入。 感谢 @dawoodkhan82!4fc7fb7
- 确保组件可以使用其先前的数据重新挂载。 感谢 @pngwn!64d1864
- PWA 的 manifest json
。 感谢 @whitphx!f3bedd4
- 添加 gr.Success 并更新 windows contributing。 感谢 @not-lain!da07707
- 在页脚添加了带有 i18n 选项和 pwa 说明的 settings
链接。 感谢 @abidlabs!45df1b1
- Lite:从主线程捕获 stdout 和 stderr。 感谢 @whitphx!13a83e5
- 允许在 gr.File 中重新排序文件。 感谢 @hannahblair!506bd28
- 更新了与将 Gradio chatbots 部署到 Discord、Slack 和网站 widgets 相关的指南。 感谢 @abidlabs!1be31c1
- 允许可编辑的 ChatInterface。 感谢 @aliabid94!3e4e0de
- 添加了 gr.BrowserState
change 事件。 感谢 @abidlabs!9c6d83d
- gr.load_chat: 允许立即将任何 openai 兼容服务器加载为 ChatInterface。 感谢 @aliabid94!501adef
- 一些 agent 容易解决的问题。 感谢 @freddyaboulton!99123e7
- 修复了关于无法为某些模式找到应用程序的警告。 感谢 @YanSte!890eaa3
- 允许在 gr.Image
和 gr.Gallery
组件中安全地显示 SVG 图像。 感谢 @abidlabs!2700d18
- 确保 gr.File
中的 height
参数按预期工作。 感谢 @hannahblair!9285dd9
- 修复了 gr.Interface
中组件的类型和 image.py
中的文档字符串。 感谢 @abidlabs!314a8b5
- fix: 确保 comp.instance
存在。 感谢 @Col0ring!3f19210
- 在 **all** 中声明导出以进行类型检查。 感谢 @dustalov!c9ba9a4
- 在 API 类型信息中使用现代小写 Python 类型。 感谢 @abidlabs!9cd291b
- 可调整大小的 chatbot。 感谢 @aliabid94!48e4aa9
- 向 gr.ChatInterface
添加了 run_examples_on_click
参数,镜像了 gr.Examples
中的 run_on_click
参数。 感谢 @abidlabs!3e93740
- 改进了 Multimodaltextbox
中粘贴文本的行为。 感谢 @hannahblair!9a6ce6f
- 重构了全屏逻辑以实现可重用。 感谢 @hannahblair!3665e81
- 允许 Chatbot 示例显示多个图像。 感谢 @hannahblair!cb5b891
- 重构了 NO_RELOAD
实现。 感谢 @CNSeniorious000!6645518
- 调整了 Chatbot bubble_full_width
行为。 感谢 @hannahblair!494c4dd
- 添加了 SSR 模式是实验性的说明。 感谢 @abidlabs!23a2958
- 向 HTML
组件添加了 .click()
事件和 padding
参数。 感谢 @abidlabs!19e1ef5
- 使从 gr.Error
打印到控制台的错误消息可配置。 感谢 @obendidi!fe7a9db
- 改进了 Chatbot 中上传文件 UI。 感谢 @hannahblair!25484f4
- 默认情况下,连续消息显示在同一气泡中。 这由 Chatbot 的新 display_consecutive_in_same_bubble
参数控制。 感谢 @freddyaboulton!20b9d72
- 在使用 gr.load
加载模型时,传递 HF_TOKEN
环境变量的值。 感谢 @abidlabs!8ac5b13
- 为登录 UI 添加了日语翻译。 感谢 @kazuhitoyokoi!424365b
- Client 中的 JSON 类型修复和 gr.ChatInterface
中 /chat
端点的类型修复。 感谢 @abidlabs!7ca3685
- 向消息目录添加了日语消息。 感谢 @kazuhitoyokoi!22fe4ce
- 通过将导入重命名为 python_multipart
,修复了 multipart
ModuleNotFoundError。 感谢 @archiloque!7d70596
- 多模态自动对焦修复。 感谢 @dawoodkhan82!5f03649
- 让 Gradio 可以进行类型标注!。 感谢 @abidlabs!e525680
- 清理了 gr.ChatInterface
并修复了 API 类型差异。 感谢 @abidlabs!4984e84
- 修复了 multimodal_textbox.py
的 API 文档。 感谢 @abidlabs!2b55302
- 快速修复:修复了聊天机器人中音频/视频的自动播放参数。感谢 @dawoodkhan82!b4004e3
- 在 gr.render 触发器中支持 event + request 数据。感谢 @aliabid94!5e6e234
- 在重新渲染中支持自定义组件。感谢 @aliabid94!3a053cc
- 修复了聊天机器人 visible
属性对更改无反应的问题。感谢 @freddyaboulton!43d88c3
- 修复:在 mount_gradio_app 中添加了对 show_api 的支持。感谢 @HongweiRuan!b2a21c6
- 向 paramviewer 描述添加 HTML 支持。感谢 @aliabd!ec10aa3
- 修复了 paramviewer 描述,使其仅渲染 markdown 链接。感谢 @aliabd!ebe25bc
- 修复了聊天机器人/chatinterface 类型不匹配的问题。感谢 @abidlabs!01b919f
- 在 gr.ChatInterface
中支持 additional_outputs
。感谢 @abidlabs!b94f010
- 为 gr.ChatInterface
应用零 GPU。感谢 @abidlabs!8530b6e
- 重新设计聊天机器人中的待定气泡。感谢 @hannahblair!e450674
- 添加 webcam_height
和 webcam_width
以指定网络摄像头的分辨率。感谢 @yinsumirage!36e9597
- 修复了流式聊天机器人案例中的选项。感谢 @abidlabs!97d647e
- 修复了 gr.render 中的状态更改。感谢 @aliabid94!98dd668
- 将 http 代码 303 和 307 添加到 url_ok
。感谢 @sharon-wang!b02c8b7
- 修复了在带有空格的聊天机器人上共享的问题。感谢 @aliabid94!5d61c7b
- 修复了惰性缓存。感谢 @abidlabs!ce5680f
- 在 gr.render 代码块中添加了事件和 gr.Select 数据支持。感谢 @aliabid94!de42c85
- 修复了 render 中的 every=
支持。感谢 @aliabid94!5ea3cb5
- 更新了 gradio
和 gradio_client
的 requirements.txt
。感谢 @abidlabs!cbd7032
- 修复:将流节点响应发送给用户。感谢 @XciD!c38cf64
- 使用 get_token 而不是 HfFolder.get_token。感谢 @Wauplin!368ba73
- 更新了聊天界面示例,并添加了更多 LLM 库和 API 提供商。感谢 @abidlabs!19d4ee6
- 允许并发渲染。感谢 @aliabid94!afd75de
- 修复了 gr.HTML 中的标签位置。感谢 @hannahblair!5d36c80
- 为 gr.datetime
添加了参数 interactive:bool
。感谢 @yinsumirage!458941c
- 允许在交互式 gr.Image 中使用全屏模式。感谢 @hannahblair!a95fda1
- 修复了连接 src 和 api_prefix 时的小错误。感谢 @Chandler-Bing!4aa0e88
- 为 gr.HTML
组件添加了 container parameter
参数。感谢 @yinsumirage!a2a3cd4
- 为 gr.Label 添加了 show_heading
参数。感谢 @hannahblair!ba05a7c
- 修复了启动器函数的类型。感谢 @JackismyShephard!e7629f7
- 向 gr.Markdown
、gr.Chatbot
和 gr.Textbox
添加了复制事件。感谢 @abidlabs!369a44e
- 添加了在 gr.Chatbot
/ gr.ChatInterface
中提供预设响应选项的功能。感谢 @abidlabs!bea3d2e
- 为 ChatInterface 添加了 api_name。感谢 @freddyaboulton!e9f0d03
- 确保在 Safari 和 Firefox 中正确处理 Enter 键。感谢 @hannahblair!c3324d7
- 修复了 gr.ChatInterface
中与示例和示例缓存相关的问题。感谢 @abidlabs!5da6c1d
- 确保聊天机器人消息正确对齐。感谢 @hannahblair!ed156e2
- 修复了状态序列化问题。感谢 @freddyaboulton!7b8f1e4
- 修复了预览中双重画廊关闭按钮的问题。感谢 @freddyaboulton!2e2cdbf
- 修复了从代理子路径提供服务时的 css 预加载问题。感谢 @amol-!d0b74ba
- 确保工具栏在 ImageEditor 中对于大型图像保持可见。感谢 @hannahblair!db162bf
- 为 chatinterface 启用惰性缓存。感谢 @abidlabs!29cfc03
- 在 Lite 中调用 run_extra_startup_events
。感谢 @whitphx!7d134e0
- 修复了示例加载问题。感谢 @freddyaboulton!74f22d5
- 修复了 Starlette 模板弃用警告。感谢 @abidlabs!f2fa270
- 修复了 Windows 中 Node.js 启动问题。感谢 @rrg92!0879be7
- 确保在 HighlightedText 中使用了 show_label
参数。感谢 @hannahblair!2afcad8
- 允许在 gr.Slider 中使用负值。感谢 @hannahblair!c1fa13c
- 确保在更改时更新 ImageEditor 画笔颜色。感谢 @hannahblair!e0ed480
- 删除了 gr.Chatbot 中重复的共享图标。感谢 @hannahblair!eafe22c
- CheckboxGroup 的预处理函数中更清晰的错误消息。感谢 @muhammadyaseen!eae345e
- 允许在 js 客户端中设置自定义标头。感谢 @elgiano!a70ba5e
- Dropdown 和 Radio 的预处理函数中更清晰的错误消息。感谢 @muhammadyaseen!66375ac
- 修复了 base.py 引发的异常中的拼写错误。感谢 @meg-huggingface!fc06fe4
- 添加了从 LocalStorage 读取和写入的功能。感谢 @abidlabs!da6f191
- 使用 gr.load()
在本地记住令牌。感谢 @abidlabs!cfb62bf
- 允许数据帧列内容换行。感谢 @hannahblair!c0cf80b
- 允许日期时间值为 null。感谢 @hannahblair!75ad3e3
- SSR Safari 修复。感谢 @dawoodkhan82!08f4b8b
- 添加了 allow_file_downloads
参数,以允许在聊天机器人中下载图像/视频/音频媒体。感谢 @hannahblair!d81f430
- 修复:修复了文件名剥离以保留扩展名。感谢 @TakaSoap!a966e9f
- 当 file_count="single"
时,上传后隐藏上传按钮。感谢 @abidlabs!74b4ff0
- 确保单选按钮半径与复选框半径一致。感谢 @hannahblair!f523c91
- 确保在 MultimediaTextbox 中验证拖放的文件。感谢 @hannahblair!8305ff8
- 向 gr.Accordion
添加了 .expand()
和 .collapse()
事件。感谢 @abidlabs!a1582a6
- Lite worker 重构。感谢 @whitphx!fc12496
- 允许在 gr.File 中上传更多文件。感谢 @hannahblair!dcfa7ad
- 强制要求在 FileData 负载的预处理期间存在 meta
键。感谢 @freddyaboulton!d407c00
- 向 gr.File
添加了 .download()
事件。感谢 @abidlabs!b6725cf
- Lite 自动加载导入的模块,使用 pyodide.loadPackagesFromImports
。感谢 @whitphx!f109497
- 修复了 ApiDocs 和 RecordingSnippet 上的前端错误。感谢 @whitphx!d1cfe1e
- 允许绘图工具提示显示额外的列。感谢 @aliabid94!4d90883
- 允许在文件资源管理器中选择目录。感谢 @aliabid94!e10bbd2
- 修复了音频/图像流的实时接口。感谢 @freddyaboulton!458a38c
- 修复了在提供额外输入时 ChatInterface 示例的问题。感谢 @dawoodkhan82!7ed8d02
- 修复了通过 gr.load 加载 SSR 的应用程序的问题。感谢 @freddyaboulton!6c8a064
- 确保在应用缩放时正确放置非表单元素。感谢 @hannahblair!120198f
- 修复了 SSR 的 LoginButton。感谢 @dawoodkhan82!6866a54
- 确保画廊共享按钮正确定位。感谢 @hannahblair!69acfeb
- 确保如果工具手风琴不是最后一条消息,则将其关闭。感谢 @freddyaboulton!7d77024
- 修复了数据帧高度在滚动时增加的问题。感谢 @abidlabs!c1cb5be
- 修复:解决了 Textbox 组件中的复制按钮可见性问题。感谢 @rahulsamant37!fa5d433
- 在重新加载模式监视线程中,不要在 gr.NO_RELOAD 中加载代码。感谢 @freddyaboulton!febbed6
- 锁定 multipart 版本以修复与 yanking 相关的问题。感谢 @aliabd!d2b56a4
- 更多修复。感谢 @pngwn!ff5be45
- 使用 safehttpx.get()
而不是 async_get_with_secure_transport()
。感谢 @abidlabs!5e89b6d
- 允许在 gr.load
中接受用户提供的令牌。感谢 @abidlabs!160b27c
- 更新 requirements.txt 以允许 pillow 11.x。感谢 @bob-jones-cs!b1b81c9
- 当数据帧中的计数固定时,隐藏添加行/列的选项。感谢 @hannahblair!78e3b51
- 允许设置 plotly 边距。感谢 @aliabid94!767643f
- 修复了示例文本框在初始不可见时渲染的错误。感谢 @cornzz!a4e70f3
- 修复了行中的选项卡。感谢 @aliabid94!3b9ed29
- 修复了聊天机器人中的头像图像放置问题。感谢 @hannahblair!f971ca6
- 添加了 audioop-lts 模块以支持 python3.13+ 的 pydub。感谢 @samy-FERGUI!1163a37
- 修复了组件信息字体大小。感谢 @dawoodkhan82!6505d42
- 支持在子路径上提供的 spaces 上的 gradio 应用程序。感谢 @pngwn!b538bda
- 更新了 gr.Button
中 “variant” 参数的文档字符串。感谢 @fadingNA!90d9d14
- 对节点端口范围使用不同的环境变量。感谢 @pngwn!f15808e
- 修复:在 gr.DateTime
中使用系统时区,且 include_time=False。感谢 @lcian!caf3650
- 排除 python-multipart 0.0.13。感谢 @whitphx!5015abb
- 修复 @gradio/sanitize
导出。感谢 @pngwn!92f337c
- 修复了网站构建问题。感谢 @aliabd!7579e92
- 允许更平滑的绘图更改。感谢 @aliabid94!47b5565
- 修复了损坏的图像选择。感谢 @aliabid94!36a5076
- 更新 client.py:在 429 get_config 时引发错误。感谢 @Pendrokar!a72e1a9
- 聊天机器人组件中的流式 Markdown 修复。感谢 @dawoodkhan82!16895e8
- 修复了 #9742。感谢 @crypdick!cd7dab7
- 改进了 gr.Dataframe 中的选择事件行为。感谢 @hannahblair!2932e06
- 修复了 API 信息错误。感谢 @freddyaboulton!61cd768
- 确保将 visible 设置为 false 的选项卡不可见。感谢 @hannahblair!38701a9
- 修复了 Safari 中不显示图标的问题。感谢 @hannahblair!2ade59b
- 从 @gradio/tabs
导出 Tabs
类型,并修复 Playground 以兼容新的 Tabs API。感谢 @whitphx!bcb7d15
- 向 gr.Chatbot
组件添加了 .clear
事件。感谢 @abidlabs!df34f58
- 修复了 SVG 图标无法在按钮/聊天机器人中使用的问题。感谢 @freddyaboulton!bad46f3
- 设置最小 FastAPI 版本。感谢 @freddyaboulton!ea2367c
- 允许将 gr.Dropdown
的初始值设置为 None
,以指定最初不应选择任何值。感谢 @abidlabs!2ed2361
- 允许在 gr.Info/Warning/Error 中设置标题。感谢 @ABucket!3c7f2ad
- 恢复了浅色/深色自定义设置。感谢 @aliabid94!7ec57cb
- 修复了 Lite 依赖项。感谢 @whitphx!7134fc2
- 自定义组件修复。感谢 @freddyaboulton!b1a0f6d
- 修复了 gr.LoginButton
在本地和 Spaces 上的行为。感谢 @abidlabs!c45b466
- 修复了进度条与生成器的兼容性。感谢 @brody715!d0b2ce8
- 确保选项卡在 SSR 模式下渲染,并减少渲染所需的时间。感谢 @pngwn!31418ef
- 修复了表类型检查。感谢 @hannahblair!ea283e7
- 修复了 css 语法错误。感谢 @pngwn!35bebf3
- 隐藏了默认滑块背景。感谢 @hannahblair!a25a26e
- 修复:file_types
检查错误。感谢 @jasongzy!b1c5a68
- 调整了 Colab 笔记本中显示的消息。感谢 @abidlabs!8f6626c
- 修复了流式音频/视频输出。感谢 @freddyaboulton!3407b50
- 聊天界面功能测试修复 + 聊天示例居中。感谢 @dawoodkhan82!3a19e69
- 还原文本禁用。感谢 @whitphx!9b58ab0
- 升级到 node 20。感谢 @pngwn!ec95b02
- 修复了单击停止按钮时停止聊天界面的问题。感谢 @aliabid94!c163182
- 修复了深色模式检测和容器高度。感谢 @pngwn!5923c67
- 修复了聊天机器人示例错误。感谢 @freddyaboulton!5d98550
- 修复了 gr.Chatbot 中的 retry
和 undo
响应性。感谢 @hannahblair!1f3ee97
- 修复了功能测试。感谢 @dawoodkhan82!c3d93be
- 向 Gradio 5.0 添加新主题。感谢 @allisonwhilden!cc61fe7
- 更多聊天机器人修复。感谢 @dawoodkhan82!b92a762
- 当文本为空时,禁用提交按钮和回车键提交。 感谢 @whitphx!e853c41
- SSR e2e + 修复。 感谢 @pngwn!139152f
- 默认情况下,行高相等 (equal height in row) 设置为 false。 感谢 @aliabid94!477f45c
- 仅将具有 meta 键的文件移动到缓存。 感谢 @freddyaboulton!6f8fa54
- 聊天界面多模态修复 & 回退到 gr.Examples()
。 感谢 @dawoodkhan82!bd6c5f2
- 修复 main/5.0 上的自定义组件 CLI。 感谢 @freddyaboulton!c078892
- 调整 gr.Dataframe 菜单 UX。 感谢 @hannahblair!4ec2feb
- 使用操作弹出窗口更新 gr.Dataframe UI。 感谢 @hannahblair!43a7f42
- 聊天机器人自动滚动。 感谢 @whitphx!ffc33fa
- 修复 gr.Chatbot 中的 markdown 代码复制/检查按钮。 感谢 @hannahblair!430a26a
- 修复重新加载模式。 感谢 @freddyaboulton!a9ac396
- 使用哈希进行深度相等检查。 感谢 @aliabid94!17e6c84
- 修复 gr.Chatbot
面板布局。 感谢 @hannahblair!24fe222
- 修复 ssr 模式下的 favicon。 感谢 @freddyaboulton!b0fedd7
- 修复 5.0-dev
分支中大多数不稳定的 Python 测试。 感谢 @abidlabs!9f532e0
- 等高列。 感谢 @aliabid94!e0ee3d5
- 更新 gr.ColorPicker UI。 感谢 @hannahblair!8dc7c12
- 如果可能,通过 Websocket 发送流式数据。 也支持图像的 base64 输出格式。 感谢 @freddyaboulton!06ef22e
- 允许 info=
渲染 markdown。 感谢 @dawoodkhan82!148345d
- 修复 chatinterface 嵌入高度问题。 感谢 @aliabid94!7c367b6
- 修复 gr.ImageEditor 中的裁剪问题。 感谢 @hannahblair!3b71ed2
- Api 信息修复。 感谢 @freddyaboulton!b260389
- 更改缓存发生的时间,不是在创建 gr.Examples()
时,而是在实际启动 Blocks 时。 感谢 @aliabid94!cf39640
- 添加 css_paths
和 head_paths
参数。 感谢 @abidlabs!b82aa6f
- 暂时禁用 sagemaker_check()。 感谢 @vmatt!098a009
- 将 Jinja2 语言添加到 Code 组件。 感谢 @CISC!f60bb68
- 修复单选下拉菜单。 感谢 @whitphx!d826faa
- 隐藏 x 轴标签。 感谢 @aliabid94!7352a89
- Playground requirements 选项卡。 感谢 @whitphx!1647ebd
- UI 主题修复。 感谢 @aliabid94!991883e
- 改进 gr.Code
。 感谢 @hannahblair!d054262
- 当设置了高度和宽度时,将组件居中于 Block
内。 感谢 @hannahblair!2510a6e
- 修复 slider-color
变量。 感谢 @hannahblair!488ef76
- 修复自定义组件 CLI 单元测试。 感谢 @freddyaboulton!4e6a47f
- 修复:自定义聊天机器人的聊天机器人示例 + 重命名 suggestions
-> examples
。 感谢 @dawoodkhan82!861f5e9
- 修复节点进程以正确的服务器名称运行。 感谢 @abidlabs!c307a0c
- 文档和演示的小幅修复。 感谢 @abidlabs!0ab6ac5
- 修复下拉菜单和单选按钮的 change 触发器。 感谢 @dawoodkhan82!b406139
- 为 gr.load
添加对第三方提供商的支持,并为对话模型提供更好的 UX。 感谢 @abidlabs!30d13ac
- 预处理/后处理下载请求。 感谢 @aliabid94!3ac5d9c
- 修复绘图。 感谢 @pngwn!018c140
- 从后端启动/停止录音。 添加关于对话式聊天机器人的指南。 感谢 @freddyaboulton!56dbf77
- 聊天机器人错误修复。 感谢 @dawoodkhan82!e7a415b
- 使用或 pathlib.Path
对象来指示 css
、js
和 head
参数的文件路径。 感谢 @abidlabs!f7c3396
- 修复。 触发了数据框标题更改事件。 感谢 @Joodith!afbd8e7
- 减少收集的分析数据。 感谢 @abidlabs!8f469e1
- 缓存的小幅更改。 感谢 @abidlabs!0c8fafb
- 使用 mount_gradio_app
修复 SSR 模式标志,并恢复对 pytests 的更改。 感谢 @abidlabs!4d75f02
- 更新对象检测指南。 感谢 @freddyaboulton!74f3b9d
- 允许跳过任意数量的输出组件,并且如果输出组件的数量与函数返回值的数量不匹配,则发出警告。 感谢 @abidlabs!a16787a
- Lite: HTTPX 客户端改进。 感谢 @whitphx!d92c26f
- 对 gr.Dataframe
和聊天机器人文档的小幅修复。 感谢 @abidlabs!c2c2fd9
- 修复 spaces 上的 SSR 应用。 感谢 @pngwn!50c3a7f
- 小幅调整 gr.Chatbot
中显示想法的方式。 感谢 @abidlabs!06babda
- 默认禁用聊天机器人中用户消息的点赞功能,但使其可配置。 感谢 @freddyaboulton!8e52b6a
- 聊天机器人示例。 感谢 @dawoodkhan82!73647a0
- 将图标移动到 IconButtonWrapper
中。 感谢 @hannahblair!4338f29
- 9227 chatinterface 重试错误。 感谢 @freddyaboulton!1fef9d9
- 标准化组件之间的 height
,并在适当的位置添加 max_height
和 min_height
参数。 感谢 @abidlabs!4c8c6f2
- Ssr 第 2 部分。 感谢 @pngwn!350b0a5
- 改进图标按钮一致性。 感谢 @hannahblair!e05f568
- 修复 5.0 dev 中的重新加载模式和流媒体。 感谢 @freddyaboulton!1daf259
- 在 gr.Markdown
中使用 container
参数。 感谢 @hannahblair!81a356d
- 删除两个依赖项:importlib_resources
和 urllib3
(如果不在 Wasm 中)。 感谢 @abidlabs!99648ec
- 添加在文件上传时阻止事件触发的功能。 感谢 @dawoodkhan82!02369b3
- 改进 is_in_or_equal 和 fuzzer。 感谢 @freddyaboulton!5b86e2f
- 增强 Lite E2E 测试并修复 Lite 上的网络问题。 感谢 @whitphx!19f6b31
- 修复 tunneling.py
中的错别字。 感谢 @abidlabs!736046f
- 来自 Webcam 流的对象检测指南。 感谢 @freddyaboulton!6309a48
- 抛出 ChecksumMismatchError。 感谢 @abidlabs!6443062
- 修复流媒体介质的缓存示例。 感谢 @freddyaboulton!1c94328
- 添加本地字体并更新主题。 感谢 @hannahblair!b543465
- 从 Git 管理的文件树中删除 lite/theme.css。 感谢 @whitphx!16c0485
- 小幅调整以改善 gr.Chatbot
中“tuples”/“messages”参数的 DX。 感谢 @abidlabs!34f46b0
- 不要在聊天机器人后处理中自动将文件移动到缓存。 感谢 @freddyaboulton!3ad28c7
- 防止 HTML 和 Markdown 在状态隐藏时高度发生变化。 感谢 @hannahblair!d47dd1f
- 修复聊天机器人中溢出的 markdown。 感谢 @hannahblair!98cbcae
- chore: 修复文档样式。 感谢 @imba-tjd!299879d
- 使 gr.Image
预处理更高效。 感谢 @abidlabs!7bf3e99
- 修复 gr.ImageEditor
工具栏裁剪问题。 感谢 @hannahblair!f3f0fef
- 修复 update_root_in_config
中的竞争条件。 感谢 @abidlabs!7c0780b
- 提议:删除 gr.make_waveform
并删除 matplotlib
作为依赖项。 感谢 @abidlabs!4c8c6f2
- 对 SSR 模式的调整。 感谢 @pngwn!b0b8500
- 修复停止录制按钮颜色。 感谢 @freddyaboulton!c469d40
- 如果二进制文件的校验和不匹配,则引发错误而不是警告。 感谢 @abidlabs!618e9fe
- 将 babylon.js 更新到 v7
以用于 gr.Model3D
。 感谢 @abidlabs!54ea485
- 进一步调整 is_in_or_equal。 感谢 @freddyaboulton!7afb9a1
- 5.0 合并,第二次尝试。 感谢 @pngwn!7122420
- 使文本框停止按钮的样式与提交按钮的样式匹配。 感谢 @freddyaboulton!61f794b
- 不要为开发者明确允许的文件附加 content_disposition_type = "attachment"
标头。 感谢 @abidlabs!5eb860f
- 重构惰性缓存。 感谢 @abidlabs!c4afdcd
- 为 gr.Code
添加了最大行数和溢出滚动条。 感谢 @micpst!aa35b07
- 在迭代器上触发状态更改事件。 感谢 @freddyaboulton!53ed0f0
- 修复多模态文本框的文件类型。 感谢 @dawoodkhan82!6a7f631
- 将禁用文本框中占位符的颜色设置为灰色而不是黑色,并在 gr.ChatInterface
中响应生成时禁用键入,允许 gr.MultimodalTextbox
接受字符串值。 感谢 @abidlabs!f8b411f
- 在 gr.ChatInterface(multimodal=False)
中内置提交和停止按钮,向 gr.Textbox()
和 gr.MultimodalText()
添加 submit_btn
和 stop_btn
属性。 感谢 @whitphx!5492e74
- 将按钮从 chat_interface 移动到 Chatbot。 感谢 @freddyaboulton!3175c7a
- 重新设计 gr.Tabs()
。 感谢 @hannahblair!e9e737e
- 重新设计 gr.Button()
。 感谢 @hannahblair!4a832f4
- 向 FRP 隧道添加 TLS。 感谢 @abidlabs!8a75559
- 5.0 标记的小幅更改。 感谢 @abidlabs!03f3735
- 添加“huggingface”按钮变体,并使其成为 gr.LoginButton
和 gr.DuplicateButton
的默认变体。 感谢 @abidlabs!5bf00b7
- 使所有组件与 SSR 兼容。 感谢 @pngwn!dd8e2e3
- 改进浅色/深色模式下的按钮一致性。 感谢 @hannahblair!5f2e047
- 向 gradio.Image 组件添加“None”选项以禁用 image_m…。 感谢 @GeeMoose!3c73f00
- 🔡 更新默认核心 Gradio 字体。 感谢 @hannahblair!c8cfe93
- 减轻辅助按钮灰色填充。 感谢 @hannahblair!38cf712
- 停止在 Lite v5 上的 flagging.CSVLogger
中使用 multiprocessing
。 感谢 @whitphx!e137b30
- 减小组件半径并删除输入阴影。 感谢 @hannahblair!2e179d3
- 前缀 api 路由。 感谢 @pngwn!f9f84bf
- 默认情况下,gr.load()
中不传递令牌。感谢 @abidlabs!8f5a895
- 修复原生 plot lite 演示。感谢 @aliabd!6773c4d
- 重新设计 gr.Slider()
。感谢 @hannahblair!c054ec8
- 放弃 python 3.8 和 3.9。感谢 @abidlabs!fe9d1cb
- 改进文件对象的 url 下载。感谢 @aliabid94!4cf8af9
- 阻止将无效值提交到 dropdown 等。感谢 @abidlabs!20c0836
- 弃用 chatbot 的 type=‘tuples’,并将 chatbot 文档重点放在 ‘messages’ 类型上。感谢 @freddyaboulton!2672ea2
- 后处理加固。感谢 @freddyaboulton!3d7a9b8
- 仅在队列准备就绪时打开音频/图像输入流。感谢 @freddyaboulton!66349fe
- 流式传输指南。感谢 @freddyaboulton!2daf3d1
- 通过 max_length
参数为 gr.TextBox()
组件的 textarea
和 input
HTML 元素添加 maxlength
属性处理。感谢 @WH-Yoshi!a0aac66
- 为 launch()
添加 strict_cors
参数。感谢 @abidlabs!f3652eb
- 视频画廊。感谢 @dawoodkhan82!ab4580b
- 移除所有组件后面的灰色背景。感谢 @hannahblair!0d8a358
- 在 gr.Audio
中将默认 format
设置为 None
,以避免不必要的预处理。感谢 @abidlabs!864cd0f
- 为 Lite 上的 ffmpeg 使用引发 WasmUnsupportedError。感谢 @whitphx!6e6818c
- 针对 5.0 弃用。感谢 @abidlabs!5cedf16
- 弃用为 gr.Code 值传递元组。感谢 @freddyaboulton!97a7bf6
- 5.0 的流式输入。感谢 @freddyaboulton!80c966a
- ip 检查的 DNS 解析器。感谢 @aliabid94!e6d456a
- 将暗模式颜色主题从 gray
更改为 zinc
。感谢 @hannahblair!3408dba
- 将 ip 地址替换为机器特定的哈希值。感谢 @abidlabs!8f8e1c6
- 修复函数具有 js 时的多个触发器错误。感谢 @freddyaboulton!fb5845c
- 将 starlette.Request 与 PredictBody 分开。仅在新 PredictBodyInternal 对象中设置。感谢 @freddyaboulton!ecf9137
- 将 root_url 添加到 gr.render 创建的组件。感谢 @freddyaboulton!8f5a895
- 修复原生 plot lite 演示。感谢 @aliabd!2daf3d1
- 通过 max_length
参数为 gr.TextBox()
组件的 textarea
和 input
HTML 元素添加 maxlength
属性处理。感谢 @WH-Yoshi!5bf00b7
- 使所有组件与 SSR 兼容。 感谢 @pngwn!5f2e047
- 向 gradio.Image 组件添加“None”选项以禁用 image_m…。 感谢 @GeeMoose!d0e93d7
- 修复 component_meta.py 中 create_or_modify_pyi read_text Windows Issue 的问题。感谢 @SmirkingKitsune!ab142ee
- 修复 curl api 中的序列化错误。感谢 @freddyaboulton!d9c4c86
- 在 requirements.txt
中固定 fastapi<0.113.0
。感谢 @abidlabs!747013b
- 允许在 gr.DataFrame
中访问所选值的整行。感谢 @abidlabs!f6b2b97
- 使用 Lite 服务器的虚假主机初始化客户端。感谢 @whitphx!04b7d32
- 允许在 gr.Image
和多模态文本框中拖放和替换图像。感谢 @hannahblair!41d5ab9
- 为 Image 和 ImageEditor 添加 placeholder
参数以替换上传图像文本。感谢 @hannahblair!87e3537
- 为 gr.JSON 添加 height 参数。感谢 @hannahblair!5350f1f
- 向 chatbot 添加复制所有消息按钮。感谢 @hannahblair!e1c404d
- 设置所有软件包的 npm-previews。感谢 @pngwn!efdc323
- 初始 SSR 重构。感谢 @pngwn!1a9d729
- 在 HuggingFaceDatasetSaver._deserialize_components
中捕获 OSErrors。感谢 @davidberenstein1957!96f8ffa
- 当发生故障时,为自定义组件构建和安装命令设置非零退出代码。感谢 @freddyaboulton!173c7b8
- Chatbot 图像大小和列表修复。感谢 @dawoodkhan82!f1ef94a
- 在浏览器中打开媒体类型文件。感谢 @aliabid94!8715f10
- 允许 gr.Request
与 ZeroGPU 一起使用。感谢 @abidlabs!60650d8
- 当样本更改时,将 Dataset
页面重置为 0。感谢 @abidlabs!ba6322e
- 修复图像高度内容适配。感谢 @hannahblair!d6dc384
- 为事件监听器添加更多类型。感谢 @JackismyShephard!30b5d6f
- 修复 chatinterface 多模态错误。感谢 @freddyaboulton!7b288cf
- 修复 Dataset 的意外渲染。感谢 @Col0ring!508ac84
- 在 downloadbutton 后处理中设置 orig_name。感谢 @freddyaboulton!6e7d9e5
- 处理 OAuth 重定向过多问题。感谢 @Wauplin!38b3682
- 改进 FRP 客户端下载和使用。感谢 @abidlabs!d30432e
- 加固 CI。感谢 @pngwn!d4c503a
- 类型提示更正。感谢 @sthemeow!bf6bbd9
- 为 gr.Image 和 gr.Gallery 添加最小化/最大化按钮。感谢 @hannahblair!981731a
- 修复不稳定的测试和 Windows 上的测试。感谢 @abidlabs!360350c
- 细微修复。感谢 @aliabid94!4ba7b23
- 改进 plot 指南,为 plot 添加双击功能。感谢 @aliabid94!3feea64
- 防止 Model3D 中的溢出。感谢 @hannahblair!2f89877
- 在下载的文件上设置 content_disposition_type
和 media_type
。感谢 @aliabid94!4ff91a3
- 修复了一些文档字符串,特别是 show_progress
参数的文档字符串。感谢 @abidlabs!08b5159
- 对 is_in_or_equal 的一些调整。感谢 @freddyaboulton!c68eefb
- 修复: httpx 超时导致 gradio 在启动期间失败。感谢 @rsamborski!4d8a473
- 重构 Chatinterface 以使用 Chatbot 而不是 gr.State 变量。感谢 @freddyaboulton!9fa635a
- 修复多模态 chatinterface api 错误。感谢 @freddyaboulton!4d8a473
- 修复: js 客户端的错误命名参数检查。感谢 @freddyaboulton!0978de8
- 如果类型提示为 Request | None
,则传递 gr.Request
。感谢 @abidlabs!8b33393
- 修复 gr.Interface
中的 show_progress
。感谢 @abidlabs!5010e95
- 为 JSON 添加 overflow: wrap
,以捕获 xs 设备宽度中的溢出。感谢 @hannahblair!600c97c
- 允许使用 show_indices
参数将 JSON 视为列表或字典进行查看。感谢 @hannahblair!3539787
- 为 gr.JSON 添加行号和折叠/展开逻辑。感谢 @hannahblair!ac132e3
- 在 Python 客户端中支持使用自定义身份验证机制、超时和其他 httpx
参数。感谢 @valgai!96d36d7
- 恢复 plot 标签角度。感谢 @aliabid94!f7fbd2c
- 为 gradio-client 增加 websockets 版本上限。感谢 @evanscho!9b42ba8
- 更新指南,特别是 plots。感谢 @aliabid94!70a0c56
- 添加了对 TokenClassificationPipeline 的支持。感谢 @cswamy!7e997a8
- 修复使用虚假 OAuth 运行本地应用程序的问题。感谢 @Wauplin!f8ccb5e
- 使 update_root_in_config
具有原子性。感谢 @abidlabs!de997e6
- 通过 Video 组件中的 watermark
参数添加为视频添加水印的功能。感谢 @meg-huggingface!1e16f67
- 修复 gr.JSON 和 gr.Code 中的检查图标。感谢 @hannahblair!20444f9
- 修复 Chatbot 多模态示例。感谢 @dawoodkhan82!5f9b8d0
- 修复惰性缓存。感谢 @abidlabs!67c08bf
- 修复 iOS 中的文件上传。感谢 @hannahblair!4b14ea8
- 允许在 iOS 中的 gr.File 中使用文件扩展名。感谢 @hannahblair!223688b
- 修复 gradio/utils 包中 Could not resolve "virtual:component-loader"
的问题。感谢 @benzler!8204425
- 修复 Json 组件序列化错误。感谢 @freddyaboulton!4c2d37d
- 为 gr.Code 行号添加背景。感谢 @hannahblair!e75f2ca
- 修复预发布版本的构建。感谢 @pngwn!aa4b7a7
- 改进文档中参数表的样式。感谢 @abidlabs!4030f28
- 允许更新 gr.Examples
的数据集。感谢 @abidlabs!6073736
- 在文档中记录 FileData
类。感谢 @hannahblair!76c1759
- 添加 space header。感谢 @pngwn!1d09925
- 修复 Lite 的a238af4
- 重构 plots 以删除 altair
并直接使用 vega.js
。感谢 @aliabid94!a3d23b4
- 为 gr.Audio
和 gr.Video
添加 loop
参数。感谢 @abidlabs!5622331
- 扩展 pyright
以涵盖测试。感谢 @abidlabs!914b193
- 向 gr.Markdown
添加复制按钮。感谢 @hannahblair!0d76169
- 升级 pyright==1.1.372。感谢 @abidlabs!9ee6839
- 更改 submit
+ predict
中 data
参数的可选性。感谢 @hannahblair!7f41567
- 在检查用户提供的分析密钥时使用恒定时间比较。感谢 @abidlabs!34510db
- 允许在 alert 模态框中使用 HTML。感谢 @abidlabs!e1a4040
- 确保所有上传组件都具有一致的上传区域。感谢 @pngwn!cea3bf9
- 修复 statustracker 和 markdown 的依赖循环。感谢 @aliabd!2d179f6
- 将 gr.Plot 的默认格式设置为 Wasm 模式下的 png。感谢 @whitphx!e36bab7
- 重构 loadPyodide 类型。感谢 @whitphx!d1f0441
- 在整个代码库中使用协变容器类型,并为我们的演示添加类型。感谢 @abidlabs!2de9a97
- 重构61bb588
- 从 Lite 中删除 Pydantic v2 补丁。感谢 @whitphx!3a81fb2
- Latex 渲染修复。感谢 @dawoodkhan82!2f630ab
- Chatbot 示例滚动修复。感谢 @dawoodkhan82!5050b36
- 修复: js 客户端的错误命名参数检查。感谢 @JacobLinCool!7e8c829
- 为 gr.Audio
和 gr.Image
添加 .input()
事件。感谢 @abidlabs!7b19474
- 确保 ImageEditor
画笔颜色可以使用 gr.update
更新。感谢 @pngwn!16b8200
- 修复 gr.Image 高度不一致问题。感谢 @hannahblair!4221290
)gr.Chatbot
和 gr.ChatInterface
现在支持 Messages API,它与 LLM API 提供商(例如 Hugging Face Text Generation Inference、OpenAI 的 chat completions API 和 Llama.cpp 服务器)完全兼容。
围绕这些 LLM 解决方案构建 Gradio 应用程序现在甚至更加容易!
gr.Chatbot
和 gr.ChatInterface
现在有一个 type
参数,可以接受两个值 - 'tuples'
和 'messages'
。如果设置为 'tuples'
,则预期默认的聊天机器人数据格式。如果设置为 'messages'
,则预期包含带有 content
和 role
键的字典的列表。请参见下文 -
def chat_greeter(msg, history):
history.append({"role": "assistant", "content": "Hello!"})
return history
此外,gradio 现在公开了一个 gr.ChatMessage
数据类,您可以将其用于 IDE 类型提示和自动完成。
Gradio 聊天机器人现在可以原生显示工具使用情况以及 Agent 和 chain-of-thought 工作流程中常见的中间想法!
如果您正在使用新的“messages”格式,只需添加一个带有字典的 metadata
键,其中包含 title
键和 value
。 这会将助手消息显示在可扩展的消息框中,以显示工具或中间步骤的结果。
import gradio as gr
from gradio import ChatMessage
import time
def generate_response(history):
history.append(ChatMessage(role="user", content="What is the weather in San Francisco right now?"))
yield history
time.sleep(0.25)
history.append(ChatMessage(role="assistant",
content="In order to find the current weather in San Francisco, I will need to use my weather tool.")
)
yield history
time.sleep(0.25)
history.append(ChatMessage(role="assistant",
content="API Error when connecting to weather service.",
metadata={"title": "💥 Error using tool 'Weather'"})
)
yield history
time.sleep(0.25)
history.append(ChatMessage(role="assistant",
content="I will try again",
))
yield history
time.sleep(0.25)
history.append(ChatMessage(role="assistant",
content="Weather 72 degrees Fahrenheit with 20% chance of rain.",
metadata={"title": "🛠️ Used tool 'Weather'"}
))
yield history
time.sleep(0.25)
history.append(ChatMessage(role="assistant",
content="Now that the API succeeded I can complete my task.",
))
yield history
time.sleep(0.25)
history.append(ChatMessage(role="assistant",
content="It's a sunny day in San Francisco with a current temperature of 72 degrees Fahrenheit and a 20% chance of rain. Enjoy the weather!",
))
yield history
with gr.Blocks() as demo:
chatbot = gr.Chatbot(type="messages")
button = gr.Button("Get San Francisco Weather")
button.click(generate_response, chatbot, chatbot)
if __name__ == "__main__":
demo.launch()
感谢 @freddyaboulton!
a92c3e8
- 警告 Falsy 凭据。感谢 @Paillat-dev!ee497d5
- 当请求具有 cookie 时执行 CORS 验证。感谢 @abidlabs!b736c8d
- 重构 gr.ParamViewer
以使用 HTML <details>
和其他调整。感谢 @abidlabs!3b8238c
- 添加 c/cpp 代码支持。感谢 @ginazhouhuiwu!e3c7079
- 时间范围组件。感谢 @aliabid94!280a3f4
- GRADIO_ALLOWED_PATHS 和 GRADIO_BLOCKED_PATHS 逗号分隔的环境变量.... 感谢 @cocktailpeanut!fb0daf3
- 改进 gr.Examples
:添加作为属性和文档的事件,添加 sample_labels
和 visible
属性。感谢 @abidlabs!5e36144
- 为 msg 格式和 llm agents 添加指南。感谢 @freddyaboulton!bc1d45d
- Model3D 点云和线框显示模式。感谢 @dawoodkhan82!012da05
- 确保 JS 客户端 status_callback
功能正常工作,并改进状态消息。感谢 @hannahblair!c1ecfde
- 8394 df 隐藏项目。感谢 @pngwn!2943d6d
- 添加 Timer 组件。感谢 @aliabid94!a6b3c6c
- 确保 @gradio/client
的 submit
迭代器按预期释放。感谢 @pngwn!26cdd0f
- 恢复 chatbot 样式。感谢 @pngwn!0482453
- Chatbot LaTeX 崩溃修复。感谢 @dawoodkhan82!e834d30
- 确保 @gradio/client
始终返回正确的数据。感谢 @pngwn!31a876d
- 修复图像的 Share to community
按钮。感谢 @hannahblair!d15ada9
- 修复多模态文本框自定义组件。感谢 @freddyaboulton!1b5b5b0
- 在 JS 客户端中绑定 fetch
和 stream
。感谢 @hannahblair!c946c6f
- 允许向 gr.ChatInterface
提供带有事件的自定义 gr.Chatbot
。感谢 @abidlabs!a9307c6
- 修复 Chatbot 生成时的滚动和点击问题。感谢 @freddyaboulton!936c713
- 在指南、查看 API 页面中添加文档认证,并为 Blocks.config 对象添加类型定义。感谢 @abidlabs!ea6482c
- 从 gr.Chatbot
文档页面中移除 chatbot_multimodal
示例。感谢 @abidlabs!4b6c8b1
- 确保在 JS 客户端的 handle_file
中处理 File
对象。感谢 @hannahblair!b6fa6b5
- 为 .on()
、.then()
和 .success()
以及 gr.EventData
的子类添加文档。感谢 @abidlabs!3896398
- 确保在适当的时候显示 chatbot 上的复制按钮。感谢 @pngwn!9933e53
- 为 height
的字符串类型更新 file_explorer.py。感谢 @magical-l!c12f82a
- Bugfix:向 gr.MultimodalTextbox
添加 file_count
参数。可以通过设置 file_count="multiple"
上传多个文件。默认值为 "single"
以保持之前的行为。感谢 @freddyaboulton!9b8840a
- 确保屏幕阅读器可以访问 chatbot 消息。感谢 @hannahblair!c348392
- 多模态文本框按钮对齐。感谢 @dawoodkhan82!bb504b4
- gr.Chatbot()
中的 Gradio 组件。感谢 @dawoodkhan82!c2a0d05
- 控制错误、信息、警告的显示。感谢 @freddyaboulton!a77877f
- 首次加载性能优化。感谢 @baojianting!c7cd0a0
- 确保 chatbot 背景与其他组件保持一致。感谢 @pngwn!7fc7455
- 支持 chatbot 中的 html。感谢 @pngwn!65afffd
- 修复多模态聊天外观。感谢 @aliabid94!affce4c
- 修复 altair 上的调整大小器。感谢 @aliabid94!797621b
- 改进了绘图渲染以在主题上匹配。感谢 @aliabid94!/n 重点:预计 gr.Plot、gr.BarPlot、gr.LinePlot、gr.ScatterPlot 中会出现视觉变化,包括颜色和宽度尺寸的变化。595ecf3
- 向自定义组件 gradio.config.js
文件添加构建目标选项。感谢 @pngwn!d35c290
- 为在 chatbot 中使用组件添加更多文档。感谢 @abidlabs!36b2af9
- 将 gradio 版本检查从打印语句更改为警告。感谢 @gdevakumar!7289c4b
- 添加 credentials: include 和 Cookie 标头以防止 401 错误。感谢 @yinkiu602!b03da67
- 对监控的细微更改。感谢 @freddyaboulton!6f99a02
- 升级 pyodide 0.26。感谢 @whitphx!fd5aab1
- 移除 routes.py
中的重复代码。感谢 @sadra-barikbin!d43d696
- feat:关于 File 组件的 file_count 参数的异常处理。感谢 @young-hun-jo!2b0c157
- 为 Markdown 组件添加了可选的 height
和溢出滚动条。感谢 @ShruAgarwal!de6aa2b
- 向文档添加 helper 类。感谢 @aliabd!bdaa678
- 添加 handle_file 文档。感谢 @pngwn!ca125b7
- 修复 jupyter notebook 和有状态演示的重新加载模式。感谢 @freddyaboulton!900cf25
- 确保前端函数在不返回值时也能正常工作。感谢 @pngwn!530f8a0
- chatbot 组件调整。感谢 @pngwn!d429690
- 修复 fastapi /docs
的请求序列化。感谢 @zhzLuke96!34430b9
- 在 gr.Image
预处理中正确处理 GIF。感谢 @abidlabs!7c5fec3
- 使用根 URL 作为监控 URL。感谢 @abidlabs!546d14e
- 添加测试 + 演示。感谢 @pngwn!1e61644
- 将 deploy_space_action.yaml
移动到正确的位置。感谢 @abidlabs!a4433be
- 通过在事件定义中设置 show_progress='minimal'
或 show_progress='hidden'
,可以禁用生成器的橙色进度动画。这是一个小的视觉破坏性更改,但更符合 show_progress
参数的预期行为。还向 gr.Interface
和 gr.ChatInterface
添加了 show_progress
。感谢 @freddyaboulton!bc5fccf
- 允许 gr.load
在 gr.Blocks
内部自动工作。感谢 @abidlabs!56af40f
- 修复 favicon_path
工作错误。感谢 @ShruAgarwal!7fc0f51
- 通过在客户端实现 close
来修复重新加载模式。感谢 @freddyaboulton!88de38e
- 修复 windows 上的自定义组件。感谢 @freddyaboulton!a1c21cb
- 修复数据集更新。感谢 @abidlabs!81ae766
- 对网站和文档的许多小修复。感谢 @aliabd!41a4493
- 修复客户端不稳定的测试。感谢 @abidlabs!e2271e2
- @gradio/client 的文档。感谢 @pngwn!f8ebace
- 确保在调用 predict
时内部报告所有状态。感谢 @pngwn!48eeea4
- 重构取消逻辑以使用 /cancel。感谢 @freddyaboulton!8628899
- 在 Api Recorder 中支持 Bash。感谢 @aliabd!96d8de2
- 向 File
组件添加删除事件。感谢 @pngwn!2cd02ff
- 从 Python 客户端中移除已弃用的参数。感谢 @abidlabs!8ca93d4
- 改进 api recorder 的设计。感谢 @aliabd!5c8915b
- 向查看 API 页面添加 cURL,并添加专用指南。感谢 @abidlabs!d5a9604
- 修复 js 客户端捆绑包。感谢 @pngwn!9d2d605
- 更改客户端提交 API 为 AsyncIterable 并支持更多平台。感谢 @pngwn!6447dfa
- 改进 JS 客户端中的文件处理。感谢 @hannahblair!63d36fb
- 处理在 JS 客户端中使用 state
的 gradio 应用程序。感谢 @hannahblair!d393a4a
- 修复 render 和 on 的类型提示。感谢 @freddyaboulton!341844f
- 点击 chatbot 中的图像以预览。感谢 @dawoodkhan82!a970589
- 修复多模态文本框占位符。感谢 @dawoodkhan82!4a55157
- 具有深度哈希检查的 state.change 监听器。感谢 @aliabid94!33c8081
- 在提取查看 API 页面的参数名称时处理特殊参数。感谢 @abidlabs!4795c6e
- 修复某些主题的多模态文本框样式。感谢 @dawoodkhan82!83bdf5c
- 添加对 numpy~=2.0
的支持。感谢 @freddyaboulton!d078621
- 向 JS 文档添加 CDN 安装。感谢 @hannahblair!55f664f
- 向渲染块添加事件监听器支持。感谢 @aliabid94!945ac83
- 改进渲染。感谢 @aliabid94!ab65360
- 允许 JS 客户端与经过身份验证的 spaces 🍪 一起使用。感谢 @hannahblair!e738e26
- 包含从别人的自定义组件仓库开始的说明。感谢 @freddyaboulton!94a1143
- 向预检标头添加 allow-credentials。感谢 @abidlabs!5efd35c
- 可编辑文档。感谢 @aliabd!33e8bab
- 使用 show_inline_category
参数启用隐藏 HighlightedText 中的内联类别。感谢 @xu-song!8028c33
- 渲染装饰器文档。感谢 @aliabid94!3fbf2e8
- chore:更新 docs.py。感谢 @eltociear!e86dd01
- 如果状态在渲染中创建,则连接心跳。同时修复配置清理错误 #8407。感谢 @freddyaboulton!1f8e5c4
- 改进 JS 客户端中的 URL 处理。感谢 @hannahblair!aebd2e9
- Model3D 右手坐标系。感谢 @dylanebert!24ab22d
- 修复编码错误。感谢 @xu-song!6a1b58c
- 添加 --table-text-color
变量以修复 Examples
中的正文文本。感谢 @hannahblair!2d705bc
- 向 gr.Accordion
添加正文颜色。感谢 @hannahblair!a373b0e
- 在 python 客户端文件上传中设置 orig_name。感谢 @freddyaboulton!97ac79b
- 修复重新加载模式等式检查中的错误。更好的状态变量等式转换。感谢 @freddyaboulton!89d6a17
- 更改状态跟踪器的 z-index。感谢 @hannahblair!4dc7fa7
- 修复 Chatbot、Dataframe、Markdown 自定义组件。感谢 @freddyaboulton!f138b41
- 如果无法导入 JsonValue,则使用 Any。感谢 @freddyaboulton!0236b1a
- fix:防止在删除时触发 gr.File.select。感谢 @gtm-nayan!82ba397
- 添加丢失的 orig_name(跟进 #8334)。感谢 @gtm-nayan!47012a0
- 确保客户端正确处理所有二进制数据。感谢 @Saghen!7c81897
- chore(deps):更新依赖 esbuild 到 ^0.21.0。感谢 @renovate!4350215
- 链接到自定义组件加载状态下的故障排除指南。感谢 @freddyaboulton!ee1e294
- 确保 JSON 组件输出在后处理中得到正确处理。感谢 @freddyaboulton!929d216
- 如果存在 hf_token,则在连接到 space 时始终创建 jwt。感谢 @pngwn!0bf3d1a
- 修复客户端无法连接到具有自签名证书的应用程序的错误。感谢 @freddyaboulton!7e976fd
- 在作业取消时发送 ProcessCompleted 消息。感谢 @freddyaboulton!719d596
- 修复状态跟踪器是指针事件目标的问题。感谢 @freddyaboulton!fbf4edd
- 确保客户端适用于私有 spaces。感谢 @pngwn!892181b
- chore(deps):更新依赖 @types/prismjs 到 v1.26.4。感谢 @renovate!0a6f0a7
- 修复分析中的自定义组件检测逻辑。感谢 @freddyaboulton!52dac63
- 向 gr.ChatInterface
添加 examples_per_page
,并允许隐藏 gr.Interface
中的 clear_btn
。感谢 @abidlabs!32d915a
- 将 clean_indent() 应用于用5436031
- 渲染装饰器 2。感谢 @aliabid94!e09b4e8
- 添加对将关键字参数传递给 JS 客户端中 data
的支持。感谢 @hannahblair!bf909bd
- 更改 MultimodalTextbox 的上传图标。感谢 @dawoodkhan82!c562a3d
- 从 python 客户端取消服务器进度。感谢 @freddyaboulton!05fe491
- 允许使用 .success()
的 Spaces 被 gr.load
加载。感谢 @abidlabs!22df61a
- 客户端节点修复。感谢 @pngwn!9ece050
- 修复重新加载模式下更新组件值不会在 UI 中显示的问题。感谢 @freddyaboulton!72039be
)现在可以使用 gr.load
加载带有自定义组件的演示。
自定义组件必须安装在您的系统中并在您的 python 会话中导入。
import gradio as gr
import gradio_pdf
demo = gr.load("freddyaboulton/gradiopdf", src="spaces")
if __name__ == "__main__":
demo.launch()
感谢 @freddyaboulton!
f5b710c
- chore(deps):更新依赖 eslint 到 v9。感谢 @renovate!a81e369
- 移除 js/app/package.json 中不再需要的 hatch 安装。感谢 @whitphx!b9afe93
- 重命名 eventSource_Factory
和 fetch_implementation
。感谢 @hannahblair!bed2f82
- 实现 JS 客户端测试。感谢 @hannahblair!d0a759f
- 在 /dev/reload 流中传递错误状态。感谢 @freddyaboulton!611c927
- Lite wheel 优化。感谢 @whitphx!91b5cd6
- 移除冗余的事件源逻辑。感谢 @hannahblair!24b2286
- 允许在 ImageEditor
上设置画布大小。感谢 @pngwn!cfc272f
- 在 Lite 上设置 show_api 标志。感谢 @whitphx!1435d1d
- 扩展 Interface.from_pipeline() 以支持 Lite 上的 Transformers.js.py pipelines。感谢 @whitphx!68dcae5
- 对 _website 中的代码使用 workspace 版本。感谢 @aliabd!6a218b4
- 重做上传为类方法 + 将客户端传递到每个组件中。感谢 @pngwn!cf52ca6
- 确保使用 SSE 协议连接到私有 HF spaces。感谢 @hannahblair!3a6f1a5
- 仅在需要时连接到心跳。感谢 @freddyaboulton!7aca673
- 为 Node.js 和浏览器环境添加 eventsource polyfill。感谢 @hannahblair!5671ff1
- fix:在 reload.py 中正确处理 SIGINT,blocks.py 中 block_thread 的单个入口。感谢 @Tiger3018!449d0e6
- 重构分析以不使用 api.gradio.app。感谢 @freddyaboulton!39791eb
- 将客户端中的 sse 调用从异步转换为同步。感谢 @abidlabs!08b4e61
- 向 /custom_component
路由添加 ETag 以控制浏览器缓存。感谢 @freddyaboulton!2471f79
- 仅在 python 文件更改时运行 python 重新加载。感谢 @jameszhou02!376dfaa
- 在 Lite 上指定 fastapi 版本,以避免 ujson 安装,这在 Pyodide 上尚不可用。感谢 @whitphx!2afca65
)我们已向 launch()
添加了 max_file_size
大小参数,以限制上传到服务器的文件大小。此限制适用于每个单独的文件。此参数可以指定为字符串或整数(对应于字节大小)。
以下代码片段设置了 5 兆字节的最大文件大小。
import gradio as gr
demo = gr.Interface(lambda x: x, "image", "image")
demo.launch(max_file_size="5mb")
# or
demo.launch(max_file_size=5 * gr.FileSize.MB)
当组件遇到错误时,现在可以通过单击组件右上角的 x
图标来清除 UI 中显示的错误状态。这适用于所有类型的错误,无论是在 UI 还是服务器中引发的错误。
感谢 @freddyaboulton!
659d3c5
- chore(deps):更新依赖 iframe-resizer 到 v4.3.11。感谢 @renovate!0fb058e
- 修复 Lite 自定义元素解析器,使其在已指定入口点文件时不会添加 .code 选项。感谢 @whitphx!d665f40
- 修复自定义 JS 函数调用器,将依赖项的输出连接到输入作为参数。感谢 @whitphx!2e469a5
- 使用键来保留重载之间的值。感谢 @aliabid94!450b8cc
- 重构 JS 客户端。感谢 @hannahblair!595ebf7
- 缓存来自 app.submit() 的错误并在前端显示。感谢 @whitphx!1c99570
- 调整 View Api
容器的 z-index
。感谢 @hannahblair!cbf2d4e
- 修复了来自 #8105 的拼写错误。感谢 @abidlabs!cbdfbdf
- 将 ruff
测试依赖项升级到 ruff==0.4.1
。感谢 @abidlabs!15a7106
- 允许自定义组件作者提供自定义 vite 插件和 svelte 预处理器。感谢 @pngwn!568eeb2
- 修复 gr.Interface.from_pipeline()
以允许音频上传并正确显示分类标签。感谢 @whitphx!32cfa61
- 从 gradio cc publish
中删除自动创建的文件以及其他调整。感谢 @freddyaboulton!6864035
- 向 gr 请求添加会话哈希。感谢 @freddyaboulton!17e83c9
- 文档重组和介绍页面。感谢 @aliabd!5bf61cb
- 在 WaveformControls 中,当不需要时隐藏滚动条。感谢 @whitphx!0efd72e
- 为自定义组件添加分析功能。感谢 @freddyaboulton!b50a67d
- 修复 GRADIO_CACHE_EXAMPLES
环境变量,使其仅在提供 fn
和 outputs
参数时生效。感谢 @abidlabs!ac30e07
- [HF OAuth] 如果 oauth 令牌已过期,则注销用户。感谢 @Wauplin!72f4ca8
- 修复 gr.Label
样式和 a11y 标记。感谢 @whitphx!006fa3c
- 改进了 Blocks
、Interface
、ChatInterface
中 js
参数的文档。感谢 @abidlabs!176a8a4
- 修复 Label 组件的值更改检测,以避免无限循环分发 change 事件。感谢 @whitphx!91a7a31
- 在后端存储每个会话的配置。感谢 @aliabid94!d7461aa
- 修复了 gradio/components/code.py 中的编码问题。感谢 @3210448723!5d9db89
- 修复导致热重载 (#8070) 的问题。感谢 @zolgear!937c858
- 使用 orjson 序列化包含 np.array 的字典。感谢 @whitphx!487db7b
- 尊重 launch()
中的 auth_dependency
参数。感谢 @abidlabs!0a42e96
- 允许用户在使用自定义组件时模板化 ImageEditor
。感谢 @pngwn!624f9b9
- 使 gradio dev tools 成为本地依赖项,而不是捆绑。感谢 @pngwn!ImageEditor
ImageEditor
组件已刷新,使其更用户友好和可靠。
此版本包含对 ImageEditor
组件的大量改进,对于那些构建实时图像编辑应用程序或复杂图像处理管道的人员来说,将特别感兴趣。
input
、upload
、change
和 apply
事件的支持。change
事件进行实时绘图。06bdf0e
- 恢复聊天机器人格式。感谢 @aliabid94!05f935c
- GRADIO_SHARE 环境变量。感谢 @cocktailpeanut!cecd6e4
- 将依赖项 iframe-resizer 更新到 v4.3.10。感谢 @renovate!92139f3
- 刷新 ImageEditor
UI。感谢 @pngwn!a0c2848
- 修复 HF OAuth 工作流程中的内部服务器错误。感谢 @Wauplin!5f0248e
- 当使用 HF OAuth 进行身份验证时,保持在同一标签页中。感谢 @Wauplin!074ce38
- 确保 ImageEditor
与图层和 change
事件一起正常工作。感谢 @pngwn!dbb7373
- 确保 ImageEditor
事件按预期工作。感谢 @pngwn!c9ddd84
- 更新 Lite 自定义元素解析器。感谢 @whitphx!299c87c
- 文档说明 gr.Textbox 中的 show_copy_button 在 show_label=False 时不可见。感谢 @lappemic!55ef4a5
- 修复聊天机器人图像尺寸问题。感谢 @dawoodkhan82!e10ec6a
- 修复多模态界面文件上传时的双框问题。感谢 @TALLEC-Scott!6fafce0
- 确保在更新状态时正确地浅克隆地图。感谢 @pngwn!79e0aa8
- 修复 js 客户端中的心跳,使其与 Lite 兼容。感谢 @whitphx!8903415
- 向 Upload 组件添加 show_progress 属性,以恢复上传进度动画。感谢 @freddyaboulton!d6c289b
- 在裁剪前舍入 [x, y, w, h],以避免像素值上出现意外的插值。感谢 @ernestchu!f17d1a0
- 添加 urllib3~=2.0
的显式依赖项,并更新 processing_utils.save_url_to_cache
以使用 urllib3
以支持 Lite。感谢 @whitphx!c1df2f8
- 修复自定义组件的示例加载。感谢 @freddyaboulton!522daf7
- 为 Lite 补丁 async_save_url_to_cache
。感谢 @whitphx!2a5cb97
- 确保 ImageEditor
始终在正确的位置绘制。感谢 @hrrbay!0424c75
- 更新 typer
以删除 [all]
,因为它不再需要。感谢 @joennlae!b43055b
- Lite playground 设计变更。感谢 @aliabd!2bae1cf
- 在 API 视图页面添加了 “API 记录器”,一些内部方法已变为异步。感谢 @abidlabs!b165193
- 恢复 Chatbots, MarkdownCode 的 Markdown 格式。感谢 @aliabid94!a4782f7
- 如果值是元组,则允许按文件名显示 gr.Code 示例。感谢 @freddyaboulton!8250a1a
- 处理构造根 URL 时出现多个标头的情况。感谢 @abidlabs!b78129d
- 使用 asyncio.Event 在心跳路由中停止流。感谢 @freddyaboulton!eae97c2
- 修复 python 3.9 中的任务错误。感谢 @freddyaboulton!1a7851c
- 修复主题中单个字体名称的处理。感谢 @sd109!1eb4c20
- 确保 kwargs 在整个应用程序中始终同步。感谢 @pngwn!7c9a964
- 修复程序化选项卡选择。感谢 @aliabid94!057d171
- 正确处理 Image
和 ImageEditor
中的设备选择。感谢 @hannahblair!b729f10
- Bugfix: 修复主题构建器应用程序中的颜色和大小键。感谢 @shubhamofbce!be46ab1
- 确保整个下拉菜单都可点击。感谢 @dawoodkhan82!bad3836
- 为 example 参数添加提示 list[list]
。感谢 @WH-Yoshi!867ff16
- 触发 Image Editor 的 “clear” 事件。感谢 @uebian!919afff
- 添加了关于使用 Docker 部署 Gradio 应用程序的指南。感谢 @abidlabs!efd9524
- 修复 gr.CheckboxGroup change 事件。感谢 @freddyaboulton!9666854
- 修复了流式传输事件的竞争条件。感谢 @aliabid94!6a4bf7a
)现在,当用户关闭浏览器选项卡时,Gradio 会自动删除存储在服务器 RAM 中的 gr.State
变量。删除将在服务器检测到与用户浏览器断开连接后 60 分钟发生。如果用户在该时间范围内重新连接,则他们的状态将不会被删除。
此外,Gradio 现在包含一个 Blocks.unload()
事件,允许您在用户断开连接时运行任意清理函数(这没有 60 分钟的延迟)。您可以将 unload
事件视为与 load
事件相反的事件。
with gr.Blocks() as demo:
gr.Markdown(
"""# State Cleanup Demo
🖼️ Images are saved in a user-specific directory and deleted when the users closes the page via demo.unload.
""")
with gr.Row():
with gr.Column(scale=1):
with gr.Row():
img = gr.Image(label="Generated Image", height=300, width=300)
with gr.Row():
gen = gr.Button(value="Generate")
with gr.Row():
history = gr.Gallery(label="Previous Generations", height=500, columns=10)
state = gr.State(value=[], delete_callback=lambda v: print("STATE DELETED"))
demo.load(generate_random_img, [state], [img, state, history])
gen.click(generate_random_img, [state], [img, state, history])
demo.unload(delete_directory)
demo.launch(auth=lambda user,pwd: True,
auth_message="Enter any username and password to continue")
感谢 @freddyaboulton!
024b44c
- 添加对示例的延迟缓存的支持,以及添加 GRADIO_CACHE_EXAMPLES
环境变量。感谢 @abidlabs!c7933ff
- 当设置 quiet 时,禁止打印 “Running on local URL:”。感谢 @dnoliver!b9dbcf7
- 使 gr.ChatInterface
中的按钮更适合移动设备。感谢 @abidlabs!e6d051d
- 将图像粘贴到多模态文本框中。感谢 @abidlabs!f42d3e2
- 使 gr.Interface 和 gr.ChatInterface 的内部事件处理程序异步。感谢 @freddyaboulton!ccdab9b
- 注销路由删除 cookie 修复。感谢 @MichaelPerger!946487c
- 在服务器和 python 客户端中缓存 view_api 信息。感谢 @freddyaboulton!5e66e01
- 修复音频流输出。感谢 @aliabid94!7bbc3b6
- 如果没有输入,JS 函数会破坏整个应用程序,已修复。感谢 @aliabid94!7af3cd7
- 向 gr.Chatbot
添加了 placeholder
参数。感谢 @abidlabs!ee804b2
- 当 js 客户端断开连接时停止运行迭代器。感谢 @freddyaboulton!72661e3
- 恢复 vite.config.js 中的 minify 设置,该设置在 #6261 中被错误地引入。感谢 @whitphx!1a7c8d3
- 停止在 Wasm 模式下导入 gradio.ipython_ext。感谢 @whitphx!75a2bf7
- 添加关于客户端状态的指南,并修复组件的默认值。感谢 @abidlabs!e0a8b7f
- 从 Wasm 环境的需求列表中排除 typer
,并修复 gradio.cli
不被导入的问题。感谢 @whitphx!e3b1236
- 懒加载 pandas。感谢 @whitphx!ecf5c52
- 修复 gradio/components/dataframe.py 不导入 pandas.io
的问题。感谢 @whitphx!05db0c4
- 重构 CORS 中间件以更快。感谢 @abidlabs!425fd1c
- 基准修复测试。感谢 @aliabid94!1c257f5
- Bugfix: ..
在文件名中加载到输出时抛出错误。感谢 @shubhamofbce!0e125d7
- 即使没有文件,也从 gr.DownloadButton
触发 click 事件。感谢 @abidlabs!8d7b3ca
- 多模态文本框加载 + 其他修复。感谢 @dawoodkhan82!2c8cd0a
- 懒加载 altair。感谢 @whitphx!b0a3ea9
- 在默认文件值的情况下,对 client.view_api() 进行小修复。感谢 @abidlabs!755157f
- 不要重新加载 gr.NO_RELOAD 上下文中的代码。感谢 @freddyaboulton!dd3e363
- 如果 lint 或 typecheck 失败,则使 CI 失败。感谢 @abidlabs!aad209f
- 减少延迟:不要在线程池中运行预处理和后处理。感谢 @freddyaboulton!d831040
- 在 Wasm 环境中删除 Ruff 和 Uvicorn。感谢 @whitphx!2efb05e
- 在 python 客户端中添加对 kwargs 和默认参数的支持,并改进了 “view API” 页面中参数信息的显示方式。感谢 @abidlabs!c62a57e
- 将文档演示转换为 Lite。感谢 @aliabd!f7df92f
- 改进非交互式滑块的 UX。感谢 @Pythongor!ff6bf3e
- 从 Wasm worker 中删除 aiohttp mock,因为它已在 https://github.com/gradio-app/gradio/pull/5244 中删除。感谢 @whitphx!43ae23f
- 修复了阻止自定义文本框传递到 chatinterface 的意外错误。感谢 @freddyaboulton!e78bca4
- 即使 radio 是输出组件,也为 Radio 触发 input 事件。感谢 @freddyaboulton!781678b
- 修复从 x_forwarded_host
标头解析根 URL。感谢 @abidlabs!cf98c7e
- 向 gr.on 添加 trigger_mode。使用它为实时界面设置 trigger_model=“always_last”。感谢 @freddyaboulton!ca42748
- 确保 Dataset
中的 samples 值更改时 paginate
更新。感谢 @hannahblair!a2badf1
- 迁移到 Storybook 8。感谢 @hannahblair!853d945
- 向 gr.Image, gr.Gallery, gr.AnnotatedImage, gr.Plot 添加 format 参数,以控制保存图像文件的格式。感谢 @dfl!84f81fe
- 从后端关闭流。感谢 @aliabid94!15da39f
- 多模态文本框 (聊天输入组件)。感谢 @dawoodkhan82!aca4892
- 更多 gr.load()
的修复,以及调整组件的 __str__
和 __repr__
方法。感谢 @abidlabs!f739bef
- 向 Lite 自定义元素添加 Playground。感谢 @aliabd!0a3870d
- 即使 window.__gradio_mode__ === "website"
也调用 handle_darkmode(),但强制执行 light 主题。感谢 @whitphx!7d3c868
- 用于 wasm_utils.get_registered_app() 的详细错误消息。感谢 @whitphx!04857bc
- 向 gr.mount_gradio_app
添加 allowed_paths
、blocked_paths
、show_error
和 favicon_path
参数。感谢 @abidlabs!aba4470
- 向 mount_gradio_app
添加 auth
、auth_message
和 root_path
参数。感谢 @abidlabs!188b86b
- 在 gr.load()
中添加对对象检测模型的支持。感谢 @abidlabs!5d1e8da
- 基于每帧批量 UI 更新。感谢 @pngwn!6390d0b
- 添加对 python 客户端连接到使用自签名 SSL 证书运行的 gradio 应用程序的支持。感谢 @abidlabs!a1c24db
- 修复 OAuth + 修复 OAuth 文档 + 取消记录注销按钮。感谢 @Wauplin!c9aba8d
- 修复: 当 gr.Markdown 具有图像标签时,不会正确更新。感谢 @dawoodkhan82!95c6bc8
- 修复标记文件,并确保 flagging_mode=“auto” 也保存输出组件。感谢 @abidlabs!bc61ff6
- gr.load
的多项修复。感谢 @abidlabs!7f9b291
- 在后处理中将按钮值强制转换为字符串。感谢 @heaversm!84f81fe
- 修复状态更新和 loading_status 更新之间的竞争条件。感谢 @aliabid94!f67759d
- 修复 wasm_proxied_mount_css 以不重用现有的 style 元素。感谢 @whitphx!598ad7b
- 修复开发模式。感谢 @pngwn!28342a2
- 修复 httpx 超时问题。感谢 @freddyaboulton!7c66a29
- 修复 Lite 自定义元素以在 connected callback 中初始化应用程序,并在 disconnected callback 中处理应用程序。感谢 @whitphx!1a4b089
- 重构 example_inputs()
,将其逻辑分离为两个单独的方法:example_payload()
和 example_value()
。感谢 @abidlabs!6ebf0ce
- 在 gr.Interface.from_pipeline() 中添加对 diffuser 管道的支持。感谢 @shubhamofbce!048364c
- 降级 contourpy。感谢 @abidlabs!2edba13
- 修复 CrossOriginWorkerMaker
以缓存 blob URL。感谢 @whitphx!9482c7a
- 修复: 多余的不需要的 meta 标签。感谢 @qkdxorjs1002!ba8cc48
- 功能检测 CSSStylesheet。感谢 @pngwn!d0688b3
- 文件现在应在 Client 中以 file(...)
形式提供,以及对 gr.load()
的一些修复。感谢 @abidlabs!a22f3e0
- 修复子路径重复两次的根路径问题。感谢 @abidlabs!b3b0ea3
- 添加 —python-path, —pip-path, —gradio-path 命令行参数,以便自定义组件开发者控制使用的可执行文件。感谢 @freddyaboulton!0ae1e44
- 使用 gr.set_static_paths 控制哪些文件移动到缓存。感谢 @freddyaboulton!cb3999e
- 使用 x-forwarded-host
标头来确定根 url,并允许用户提供完整的 root_path
来覆盖自动确定的根 url。感谢 @abidlabs!8181695
- 图片上传修复。感谢 @dawoodkhan82!4d5789e
- 允许挂载的 Gradio 应用与外部/任意身份验证提供程序一起工作。感谢 @abidlabs!355ed66
- 修复流式传输文件的 root_url
逻辑。感谢 @abidlabs!9c6de6d
- 将 Pyodide 升级到 0.25.0。感谢 @whitphx!a57e34e
- 向 gr.Blocks 添加 delete_cache 参数,以删除应用程序在关闭时创建的文件。感谢 @freddyaboulton!98aa808
- 为 Gradio 身份验证添加 /logout
功能。感谢 @abidlabs!375bfd2
- 修复 server_messages.py 以使用修补后的 BaseModel 类用于 Wasm 环境。感谢 @aliabid94!3645da5
- 修复 Gallery
预览覆盖层的不正确的相对鼠标坐标。感谢 @MMP0!eda33b3
- 重构 get_fetchable_url_or_file()
以将其从前端移除。感谢 @abidlabs!4b0d589
- 杂项(依赖): 更新所有非主要依赖。感谢 @renovate!561579d
- 修复测试。感谢 @pngwn!bd2c695
- 添加 gr.DownloadButton
组件。感谢 @abidlabs!d3384cb
- 防止可能在 Windows 上触发凭据泄露的其他路径。感谢 @abidlabs!f84720c
- 防止以 //
或 \\
开头的路径。感谢 @abidlabs!1c22123
- 修复了解析 root
URL 的方法。感谢 @abidlabs!26356a6
- 修复:无效的 file_type 导致拖放失败。感谢 @dawoodkhan82!fc4c2db
- 允许 Python 客户端在连接到启用身份验证的 Gradio 应用时上传/下载文件。感谢 @abidlabs!08c2d49
- 当添加自定义头部 html 时,确保没有重复的 meta 标签。感谢 @qkdxorjs1002!1fa2e91
- 修复 auth_message
以使其正确渲染 HTML。感谢 @abidlabs!f26aba0
- 防止修剪时音频加速。感谢 @hannahblair!e340894
- 快速修复:自定义下拉菜单值。感谢 @dawoodkhan82!ddd4d3e
- 启用 Ruff S101。感谢 @abidlabs!b7a97f2
- 在 requirements.txt
中将 httpx
更新到 httpx>=0.24.1
。感谢 @abidlabs!16fbe9c
- 防止组件与非上传文件一起工作。感谢 @aliabid94!84802ee
- 收紧 CORS 规则。感谢 @abidlabs!98a2719
- 修复橙色生成边框的 z-index 层。感谢 @daviirodrig!9c36572
- 快速修复:文件高度溢出。感谢 @dawoodkhan82!ddd4d3e
- 确保滚动时 Dataframe 标题与内容对齐。感谢 @abidlabs!ba3ec13
- 标签页选择修复。感谢 @aliabid94!b186767
- 修复 Gallery
预览覆盖层和背景。感谢 @MMP0!33f68cb
- 修复 Canvas3D/Canvas3DGS 异步导入。感谢 @whitphx!ba747ad
- 使 #7444(阻止可能在 Windows 上暴露凭据的 Block /file= 文件路径)中的修复更通用。感谢 @abidlabs!c88290d
- WIP:优化 /file 路由。感谢 @freddyaboulton!e329f1f
- 防止定时攻击猜测 Gradio 密码。感谢 @abidlabs!3e4e680
- 修复了 .key_up()
方法,使其可用于动态下拉菜单自动完成。感谢 @abidlabs!4faf8a7
- 阻止可能在 Windows 上暴露凭据的 /file=
文件路径。感谢 @abidlabs!f52cab6
- 为文件浏览器分发 change 事件。感谢 @aliabid94!fb1f6be
- 在线程池中运行预处理/后处理。感谢 @freddyaboulton!6b8a7e5
- 确保 gr.Dropdown
可以具有空的初始值。感谢 @hannahblair!f191786
- 提高 gr.Audio()
控件的响应速度。感谢 @hannahblair!3e886d8
- Model3D 高斯溅射。感谢 @dylanebert!fa8225d
- 在 postprocess()
中使用更新后的组件。感谢 @abidlabs!17fb116
- 修复 gr.Markdown() 无法正确渲染链接周围的空格。感谢 @dawoodkhan82!65437ce
- 提高文件浏览器性能。感谢 @aliabid94!c2dfc59
- 移除等待时的静态行为。感谢 @pngwn!b5c74ff
- 修复 HTTPX 包在接口中 “article” 参数的某些值下崩溃的问题。感谢 @YuryYakhno!4ab399f
- 允许配置包含不可 pickle 的值。感谢 @abidlabs!065c5b1
- 为 gr.Dropdown()
添加 .key_up
事件监听器。感谢 @abidlabs!314ccfa
- 修复文件浏览器交互性。感谢 @aliabid94!dff4109
- 如果选项已更改,则保留下拉菜单值。感谢 @abidlabs!32b317f
- 为部署在反向代理之后的 Gradio 应用正确设置 root
。感谢 @abidlabs!46b4568
- 允许在自定义 CSS 中应用 @media
, @keyframes
和 @import
。感谢 @hannahblair!f35f615
- 为文件预览中的每个文件添加删除按钮,以删除 gr.File() 中的单个文件。感谢 @shubhamofbce!49d9c48
- [WIP] 重构文件规范化以使其位于后端并从每个组件的前端删除。感谢 @abidlabs!7e9b206
- 停止使用已弃用的 pydantic 配置类,并从测试中过滤 gradio 警告。感谢 @freddyaboulton!6dfd40f
- 使 set_documentation_group 成为空操作。感谢 @freddyaboulton!c1a7ea7
- 为 gr.Code 添加 SQL 支持。感谢 @aersam!7b10d97
- 从 @gradio/gallery 中删除未使用的 @gradio/wasm
依赖项。感谢 @whitphx!b95d0d0
- 允许在 Python 客户端中设置自定义标头。感谢 @abidlabs!1e68561
- 更新 Lite 的 Pydantic 补丁,该补丁使用 V1 模拟 PydanticV2 API。感谢 @whitphx!cccab27
- Lite 的 E2E 测试。感谢 @whitphx!a7fa47a
- 确保在选择选项卡时,后台选项卡中的 Dataframe 可见。感谢 @pngwn!2244059
- 确保应用 CSS .dark
规则选择器。感谢 @hannahblair!4dc9ffb
- 存储 gr.Accordion
的 open
值。感谢 @hannahblair!7f19ba2
- 停止缓存根 URL。感谢 @abidlabs!7302a6e
- 修复基于文件的 Spaces 的 gr.load。感谢 @abidlabs!ccdaec4
- 为自定义组件添加 simpleimage
模板。感谢 @abidlabs!edfd05d
- 将 chatinterface 扩展到全窗口高度。感谢 @aliabid94!aa97a5e
- API 文档的改进。感谢 @abidlabs!e418edd
- 修复 SimpleImage 包 json。感谢 @abidlabs!5181957
- 添加移动端 Chromatic 测试。感谢 @hannahblair!e5344ba
- 杂项(依赖): 将依赖 marked 更新到 v12。感谢 @renovate!572e360
- 上传调整。感谢 @pngwn!0fddd0f
- 自动确定文档组。感谢 @akx!68a54a7
- 通过差异提高聊天机器人流式传输性能。感谢 @aliabid94!/n 请注意,此 PR 更改了生成器函数的 API 格式,对于任何直接读取 EventStream 的客户端来说,这将是一个破坏性更改efacc7d
- 确保 Accordion 中的 open 响应性。感谢 @hannahblair!2e6672c
- 允许启动/暂停流式图像输入。仅在需要时访问网络摄像头。感谢 @freddyaboulton!dec6a71
- 修复 PIL 导入。感谢 @akx!fdd1521
- 杂项:更改时间格式 (感谢 @jjshoots 的独立贡献)。感谢 @arian81!3c8c4ac
- 记录 gr.ParamViewer
组件,并修复组件预处理/后处理文档字符串。感谢 @abidlabs!46919c5
- 延迟导入 matplotlib。感谢 @akx!8bb0ce2
- 热修复:stt_or_tts
演示。感谢 @abidlabs!200e251
- 添加 gr.Image
交互测试 + gr.ImageEditor
交互测试改进。感谢 @hannahblair!87d5105
- 在设置非 URL 文章字符串时处理 httpx.InvalidURL。感谢 @nopperl!aab2a75
- 允许在 dataframe 单元格中选择文本。感谢 @shubhamofbce!05d8a3c
- 将 ruff 更新到 0.1.13,启用更多规则,修复问题。感谢 @akx!b3a9c83
- Lite:兼容 Wasm 的 Model3D。感谢 @whitphx!7ea8336
- 从 read_from_flag() 中删除 flag_dir。感谢 @akx!6a7e98b
- 修复 gradio cc 发布中的连字符错误。感谢 @freddyaboulton!60078df
- 修复测试要求以兼容 python 3.11。感谢 @abidlabs!09257ef
- 修复 ci 缓存。感谢 @pngwn!1893756
- Code 组件的小清理。感谢 @abidlabs!aea14c4
- 重构 Inference API 并将其重命名为 Serverless Inference Endpoints。感谢 @abidlabs!24157a3
- 根据操作系统模式添加背景颜色。感谢 @aileenvl!8dd6f4b
- 处理所有组件的示例都为 null 的情况。感谢 @abidlabs!757dba6
- 为 gr.Dataframe
添加 show_label
检查。感谢 @hannahblair!2d51a9d
- 为 gr.TabbedInterface
添加缺少的参数和文档字符串。感谢 @abidlabs!9f23b0b
- 优化客户端 view_api 方法。感谢 @freddyaboulton!ded5256
- 修复音频录制事件未分发。感谢 @hannahblair!733ca26
- 确保示例图像按预期显示。感谢 @hannahblair!a3aa22f
- 调整 Value 以修复 .Label 显示。感谢 @codydh!0d36ac0
- 修复 gr.Dataframe 中数据类型设置的问题。设置不再依赖于 col_count。感谢 @cswamy!db27df3
- 在为自定义组件创建 space.py 时转义三引号。感谢 @abidlabs!c3e61e4
- 少量文件组件拖放。感谢 @dawoodkhan82!cae05c0
- 修复单个文件上传显示。感谢 @freddyaboulton!e3217b4
- 修改音频波形颜色。感谢 @hannahblair!b25e95e
- 修复 processing_utils.save_url_to_cache()
以在访问 URL 时遵循重定向。感谢 @whitphx!d7095c4
- 数字示例修复。感谢 @abidlabs!faead14
- 在交互式图像编辑器中显示标签。感谢 @hannahblair!3b8dfc6
- 为 Tab 添加 visible 检查。感谢 @hannahblair!daaaf95
- 修复与 gr.Dataframe 接收空 dataframe 相关的问题。感谢 @cswamy!21a16c6
- 为 gr.Interface
和 gr.ChatInterface
添加参数。感谢 @abidlabs!6abad53
- 添加了 polars dataframe 支持及演示。感谢 @cswamy!94aa271
- 通过 UI 节流提高快速生成性能。感谢 @aliabid94!bc2cdc1
- 允许交互式音频和视频组件的下载按钮。感谢 @hannahblair!125a832
- 在运行 gradio cc build
时生成文档。感谢 @pngwn!c60ad4d
- 使用 Gallery 作为输入组件。感谢 @freddyaboulton!1718c4a
- 添加 STL 3D 模型支持。感谢 @Mon-ius!6ee22dc
- 确保 gradio cc publish
上传文档空间(如果存在)。感谢 @pngwn!82fe73d
- 在 oauth 之后使用查询参数重定向。感谢 @Wauplin!2cdcf4a
- 单个 oauth 按钮。感谢 @Wauplin!5727b92
- 允许按钮接受空值。感谢 @abidlabs!217bfe3
- 在 gr.Audio
组件中支持 np.int8
格式的音频数据。感谢 @Ram-Pasupula!ac73555
- 为每个生成器迭代运行 before_fn 和 after_fn。感谢 @freddyaboulton!7d53aa1
- 杂项文档修复。感谢 @abidlabs!ca8753b
- 修复:Chatbot 在 http:// 或 https:// 后跟空 url 时崩溃。感谢 @dawoodkhan82!cb90b3d
- 以编程方式确定要推送到 spaces 的最大 wheel 版本。感谢 @freddyaboulton!80f8fbf
- 添加逻辑来处理非交互式或隐藏的标签页。感谢 @hannahblair!b961652
- 从模板组件中移除 kwargs。感谢 @freddyaboulton!45f725f
- 在引发异常后取消禁用输出组件。感谢 @abidlabs!44c53d9
- 修复由于 <label />
元素导致的下拉菜单重新聚焦问题。感谢 @hannahblair!e7ab406
- 修复 ParamViewer css。感谢 @freddyaboulton!28e8a8a
- 降低开发模式的 CPU 使用率。感谢 @freddyaboulton!c35fac0
- 确保在流式传输时音频中的设备选择有效。感谢 @hannahblair!13cb6af
- 确保麦克风设备列表更新。感谢 @hannahblair!be56c76
- Lite: 将 home_dir
添加到 sys.path
。感谢 @whitphx!8c355a4
- 为 Lite 添加 ruff mock。感谢 @whitphx!e8b2d8b
- 向 gr.Audio()
添加采样率配置选项。感谢 @tsukumijima!3a944ed
)如果您的自定义组件对参数和返回值都有类型提示和文档字符串,您现在可以自动生成文档页面和 README.md,而无需额外的工作。只需运行以下命令
gradio cc docs这将生成一个 Gradio 应用,您可以将其上传到 spaces,为潜在用户提供丰富的文档。文档页面包括
还将生成一个 README,详细说明相同的信息,但格式针对在 GitHub 或 PyPi 上查看进行了优化!
感谢 @pngwn!
1fc8a94
- 修复 lint。感谢 @freddyaboulton!07d520c
- 修复版本。感谢 @pngwn!3642b7a
- 发布:简化 twine_files 代码。感谢 @akx!64c65d8
- 在 deploy_discord 函数中,为打开/写入文件添加编码。感谢 @WilliamHarer!f2d69fc
- 修复画廊缩略图设计退化。感谢 @hannahblair!ec28b4e
- 向 gr.Tab()
添加 visible
和 interactive
参数。感谢 @hannahblair!aaecfe5
- 主题:修复错误的头部图片 URL。感谢 @akx!a336508
- 修复阻止布局组件用作自定义组件的错误。感谢 @freddyaboulton!3c3cf86
- 修复快速生成器上的 UI 卡顿。感谢 @aliabid94!9201f86
- 如果未安装自定义组件包,则在构建步骤中引发错误。感谢 @freddyaboulton!9cefd2e
- 重构示例,使其接受与函数返回格式相同的数据,将 .as_example()
重命名为 .process_example()
。感谢 @abidlabs!523b6bc
- gr.File()
的 gr.update(value=[])
清除文件。感谢 @dawoodkhan82!6be3c2c
- 修复 Chatbot 自定义组件模板。感谢 @freddyaboulton!3f139c7
- 修复特定 file_types 的文件拖放功能。感谢 @dawoodkhan82!623bc1a
- 切换 gr.Video
的默认来源顺序,使上传成为默认选项。感谢 @abidlabs!5d00dd3
- 使ccf317f
- 向 gr.Interface
添加 additional_inputs
、additional_inputs_accordion
参数。感谢 @abidlabs!8dfabee
- 修复拼写错误。感谢 @Cassini-chris!793bf8f
- 在等待上传请求时,在 <Upload />
中显示待处理文件。感谢 @hannahblair!640b7fe
- 修复摄像头录制问题。感谢 @dawoodkhan82!5e00162
- 使6e285be
- 修复重载器。感谢 @aliabid94!0f0498b
- 确保正确设置 Chatbot 主题文本大小。感谢 @hannahblair!f742d0e
- Lite:在 Wasm 上支持 AnnotatedImage。感谢 @whitphx!8a093e2
- 在 SharedWorker 模式下为 lite 添加开发说明。感谢 @whitphx!6c863af
- 修复功能测试。感谢 @aliabid94!fb9c6ca
- Lite:Chatbot。感谢 @whitphx!4511d57
- 修复 gr.Chatbot()
中的 aria-label 属性。感谢 @whitphx!649cd4d
- 在 open_stream()
中为 Wasm 使用 EventSource_factory
。感谢 @whitphx!02c2442
- 修复已弃用参数 concurrency_count 的文档字符串。感谢 @ronensc!24a5836
- 组件服务器修复。感谢 @aliabid94!8333db8
- 修复 Wasm worker 以初始化应用目录。感谢 @whitphx!e671e54
- 允许 gr.ClearButton
和 gr.DuplicateButton
被隐藏(以及其他更新)。感谢 @abidlabs!b1b78c2
- 修复 gr.Image
、gr.CheckboxGroup
的 .select
事件。感谢 @abidlabs!bd11d6e
- 移除 Chatbot 组件中音频元素上的样式。感谢 @whitphx!d361a0f
- 确保 Model3D 中的相机设置仅在必要时更新。感谢 @hannahblair!459c5dc
- 替换 Python 3.12 的 distutils.StrictVersion 依赖项。感谢 @velaia!7bab755
- 已修复(this this)。感谢 @Cassini-chris!31c2316
- 修复问题 6873:file_count=‘directory’ 的 File 组件 bug。感谢 @joshwilson-dev!c00da89
- 修复从预测函数返回组件实例副本的问题。感谢 @abidlabs!d406855
- 修复当应用在代理后面运行时 JS 客户端的问题。感谢 @freddyaboulton!48d6534
- 向事件添加 show_api
参数,并修复 gr.load()
。同时对在 Spaces 上运行时“查看 API”页面进行了一些小改进。感谢 @abidlabs!15c97c6
- 修复当 streaming=True
时的摄像头问题。感谢 @hannahblair!7bb561a
- 为 4.0 重写 README 的部分内容和入门指南。感谢 @abidlabs!846d52d
- 修复 md 高亮。感谢 @pngwn!f3abde8
- 添加一个选项来为 markdown 启用标题链接。感谢 @pngwn!828fb9e
- 重构队列,以便每个并发 ID 都有单独的队列。感谢 @aliabid94!1401d99
- 修复 ImageEditor
交互故事。感谢 @hannahblair!77c9003
- 修复问题 5781:允许为 Examples 指定缓存目录。感谢 @cswamy!67a2b7f
- 修复重复单词(“this this”)。感谢 @Cassini-chris!1b9d423
- 阻止文件遍历。感谢 @abidlabs!50496f9
- 在 gr.Number()
中,当精度为 None
时,调整舍入逻辑。感谢 @hannahblair!73268ee
- 改进来源选择 UX。感谢 @hannahblair!245d58e
- 改进服务器/js 客户端处理意外错误的方式。感谢 @freddyaboulton!7ba8c5d
- 修复 /file=
路由上的 SSRF 漏洞。感谢 @abidlabs!c352811
- 为 gr.WaveformOptions
、gr.Brush
和 gr.Eraser
添加文档字符串,修复 ImageEditor
的示例,并允许将单个图像用作 ImageEditor
的初始 value
。感谢 @abidlabs!6b130e2
- 确保显示 LoginButton value
文本。感谢 @hannahblair!526fb6c
- 修复 gr.load()
,使其与 SSE v1 协议一起使用。感谢 @abidlabs!5d51fbc
- 修复上传的拖放功能。感谢 @dawoodkhan82!51e241a
- 再次修复不稳定的 CI 测试 😓 。感谢 @freddyaboulton!34f9431
- Python 客户端正确处理心跳和日志消息。同时处理超过 65k 的响应。感谢 @freddyaboulton!21cfb0a
- 移除 Image/Video 原始组件的样式,并修复容器样式。感谢 @whitphx!67ddd40
- Lite v4。感谢 @whitphx!053bec9
- 改进 Storybook 中的 CSS token 文档。感谢 @hannahblair!3240d04
- 向 Audio 添加 editable
参数。感谢 @hannahblair!9a0bd27
- 添加对 OAuth 令牌的支持。感谢 @Wauplin!f3c4d78
- 在 css 更改时重新加载 + 修复 css 优先级。感谢 @pngwn!299f5e2
- 更新 CI 测试中使用的 HF token。感谢 @abidlabs!cfd5700
- 使 gr.ClearButton
重置 gr.State
的值。感谢 @abidlabs!6b1401c
- 构建(deps):更新依赖 marked 到 v11。感谢 @renovate!30c9fbb
- 从 env 设置 gradio api 服务器。感谢 @aisensiy!51b54b3
- 微调我们的 bug 问题模板。感谢 @abidlabs!7cbf96e
- 问题 5245:整合 requests 和 httpx 的使用。感谢 @cswamy!24e0481
- 热修复:更新 huggingface_hub
依赖版本。感谢 @abidlabs!bdf81fe
- Lite:在每次运行时为每个 appId 设置 home dir 路径。感谢 @whitphx!4d1cbbc
- 允许在 Blocks.svelte
中以字符串形式传递 height 和 width。感谢 @hannahblair!5177132
- Lite:修复 js/wasm/src/worker-proxy.ts
中的 isMessagePort()
类型守卫。感谢 @whitphx!8a70e83
- 从 black 切换到 ruff 格式化工具。感谢 @DarhkVoyd!6a9151d
- 移除流式传输时的进度动画。感谢 @aliabid94!5238053
- 修复关于无法找到应用的重新加载模式警告。感谢 @freddyaboulton!1234c37
- 使用 gr.Error 处理音频长度错误。感谢 @abidlabs!fe40308
- 在预处理中将图像旋转到正立位置。感谢 @freddyaboulton!9a5811d
- 修复 gr.Gallery()
组件的下载按钮使其工作。感谢 @whitphx!c9673ca
- 修复 FileExplorer 的仅目录 glob。感谢 @freddyaboulton!9a6ff70
- 修复当添加多个 script 标签时 head
参数的问题。感谢 @dawoodkhan82!d76bcaa
- 修复 api 事件丢失问题。感谢 @aliabid94!a1b966e
- 修复了文件无法归档的问题。感谢 @duolabmeng6!dfc61ec
- 修复当值以元组形式提供时的下拉菜单模糊 bug。感谢 @abidlabs!128ab5d
- 确保 FileExplorer 重新渲染后,选中的文件仍然保留。感谢 @hannahblair!798eca5
- 使视频媒体适应 Video 组件。感谢 @hannahblair!28a7aa9
- 在带有生命周期管理器的 FastAPI 应用上挂载。感谢 @Xmaster6y!1751f14
- 从文档中移除 2 个滑块演示。感谢 @aliabd!4396f3f
- 修复重新加载模式的编码问题 #6364。感谢 @curiousRay!9919b8a
- 修复文档字符串装饰器。感谢 @whitphx!9bf1ad4
- 修复上传的文件未移动到不同磁盘上的自定义临时目录的问题。感谢 @dodysw!9bcb1da
- 功能:使 UploadButton 接受 icon。感谢 @Justin-Xiang!4f040c7
- 更新 zh-CN.json。感谢 @cibimo!13ace03
- 更新 file_explorer.py - 修复 file_count=single 模式下未选择任何内容时的错误(返回 None 而不是其他值)。感谢 @v-chabaux!2b625ad
- 确保当 rtl
为 true 时,聊天机器人消息正确对齐。感谢 @hannahblair!b639e04
- 快速图像 + 文本组件修复。感谢 @dawoodkhan82!206af31
- 改进喜欢/不喜欢 功能。感谢 @hannahblair!d548202
- 改进视频裁剪和错误处理。感谢 @hannahblair!d92c819
- 为 ChatInterface 添加 concurrency_limit,并为 concurrency_limit 添加 IDE 支持。感谢 @freddyaboulton!8fc562a
- 为 Audio 添加 show_recording_waveform
属性。感谢 @hannahblair!3156598
- 使 FileExplorer 在 python 3.8 和 3.9 上正常工作。同时使其在 root、glob 或 glob_dir 更改时更新。感谢 @freddyaboulton!b8034a1
- 修复:Gradio Client 可以与私有 Spaces 一起工作。感谢 @abidlabs!13ef0f0ca
- 快速修复:使组件在聚焦时可交互。感谢 @dawoodkhan82!96290d304
- 调整依赖项。感谢 @pngwn!71f1a1f99
- 在前端将 FileData.orig_name
标记为可选,与 Python 端的类型定义对齐。感谢 @whitphx!f94db6b73
- 带有可访问文件名文本的文件表格样式。感谢 @whitphx!63f466882
- 修复 base.py 中的拼写错误。感谢 @eltociear!46f13f496
- chore(deps):更新所有非主要依赖项。感谢 @renovate!901f3eebd
- 允许在值以编程方式更改后,重新选择 gr.Dropdown
中的原始选项。感谢 @abidlabs!147926196
- 对 ImageEditor
的一些调整。感谢 @abidlabs!d4e3a5189
- 允许设置 gr.ChatInterface
的 Accordion
的参数。感谢 @abidlabs!f53b01cbf
- 修复已部署主题空间中的主题下拉菜单。感谢 @freddyaboulton!a424fdbb2
- 确保音频波形 autoplay
更新。感谢 @hannahblair!1bbd6cab3
- 修复 Blocks 中未定义的 data
TypeError。感谢 @hannahblair!830b6c0e6
- 在 Image
中处理和转换 .svg 文件。感谢 @hannahblair!ImageEditor
组件 (#6169 9caddc17b
)一个全新的组件,完全独立于 Image
,提供简单的编辑功能。
1:1
等)
def fn(im):
im["composite"] # the full canvas
im["background"] # the background image
im["layers"] # a list of individual layers
im = gr.ImageEditor(
# decide which sources you'd like to accept
sources=["upload", "webcam", "clipboard"],
# set a cropsize constraint, can either be a ratio or a concrete [width, height]
crop_size="1:1",
# enable crop (or disable it)
transforms=["crop"],
# customise the brush
brush=Brush(
default_size="25", # or leave it as 'auto'
color_mode="fixed", # 'fixed' hides the user swatches and colorpicker, 'defaults' shows it
default_color="hotpink", # html names are supported
colors=[
"rgba(0, 150, 150, 1)", # rgb(a)
"#fff", # hex rgb
"hsl(360, 120, 120)" # in fact any valid colorstring
]
),
brush=Eraser(default_size="25")
)
感谢 @pngwn!
1baed201b
- 修复 SourceFileReloader 以监视具有限定名称的模块,以避免从不同路径导入同名模块。感谢 @whitphx!070f71c93
- 确保图像编辑器裁剪和绘制光标在滚动位置更改时按预期工作。感谢 @pngwn!739e3a5a0
- 修复开发模式。感谢 @freddyaboulton!ac4ca59c9
- 从 URL 中正确提取视频文件名。感谢 @112292454!6b53330a5
- UploadButton 测试。感谢 @freddyaboulton!a1e3c61f4
- 允许设置除 1 之外的 default_concurrency_limit
。感谢 @abidlabs!179f5bcde
- 将 py.typed 添加到 gradio 后端。感谢 @aleneum!58e3ca826
- 自定义组件 CLI 改进。感谢 @freddyaboulton!2761b6d19
- 捕获保存 PIL 图像时的 ValueError、KeyError。感谢 @freddyaboulton!62d35c3d1
- Issue 2085:添加 Transformers 对象检测管道。感谢 @cswamy!3953a1467
- 在后端处理中保留原始图像扩展名。感谢 @freddyaboulton!e0fc14659
- 允许 google analytics 在 Spaces(和其他 iframe 情况)上工作。感谢 @abidlabs!1959471a8
- 为音频/视频添加下载测试。感谢 @freddyaboulton!2727f45fb
- 重命名 api_names 时不显示警告。感谢 @abidlabs!727ae2597
- chore:将 api_key 重命名为 hf_token。感谢 @NickCrews!2f805a7dd
- gr.Image 的小但重要的错误修复:上传事件根本没有触发。从剪贴板粘贴未触发上传事件。清除按钮未触发更改事件。更改事件无限触发。上传的图像未保留其原始名称。上传新图像应清除之前的图像。感谢 @freddyaboulton!2777f326e
- 确保 Audio 输出事件被分派。感谢 @hannahblair!f816136a0
- 为 Audio 添加音量控制。感谢 @hannahblair!d00fcf89d
- Gradio 自定义组件开发模式现在可以检测到 Example.svelte 文件的更改。感谢 @freddyaboulton!bce6ca109
- 发送多条心跳消息。感谢 @freddyaboulton!b3ba17dd1
- 当值以编程方式更改时,更新 Dropdown
中的选定索引。感谢 @abidlabs!8ef48f852
- 使带有 every
选项的异步函数和异步生成器函数正常工作。感谢 @whitphx!9cfeb4f17
- 移除 websockets 依赖项。感谢 @freddyaboulton!0401c77f3
- 将 ffmpeg 移动到 Video
依赖项。感谢 @hannahblair!d84209703
- Lite:SharedWorker 模式。感谢 @whitphx!649f3ceb6
- 添加了关于 gr.Examples 的文档。感谢 @abidlabs!d31d8c6ad
- 允许 sources
为 gr.Image
的字符串。感谢 @abidlabs!2090aad73
- 将 wavesurfer 依赖项移动到 js/audio。感谢 @freddyaboulton!324867f63
- 修复事件目标。感谢 @aliabid94!03491ef49
- 修复 api_name
的文档字符串和默认值。感谢 @abidlabs!e76a9e8fc
- 修复 Chatbot 待处理消息问题。感谢 @dawoodkhan82!da1e31832
- 修复 Model3D 下载按钮和其他问题。感谢 @freddyaboulton!de998b281
- 正确处理 gr.Chatbot
的 avatar_images
和 gr.Button
的 icon
,以便将相应的文件移动到缓存。感谢 @abidlabs!42f76aeeb
- 将 AsyncGenerator 添加到 dependencies.types.generator
的检查列表中。感谢 @whitphx!d64787b88
- 修复主题空间 readme 中的 colorFrom
。感谢 @abidlabs!4d3aad33a
- 修复图像上传。感谢 @freddyaboulton!854b482f5
- 重新设计文件上传。感谢 @hannahblair!37dd335e5
- 修复 4.0 中的音频流输出问题。感谢 @aliabid94!f1409f95e
- 提供文件上传的状态更新。感谢 @freddyaboulton!8a3f45c26
- 修复组件更新错误。感谢 @freddyaboulton!6204ccac5
- 修复 gr.load()
,使其可以与 Images 和 Examples 正确配合使用。感谢 @abidlabs!55fda81fa
- Textbox 和 Code 组件的 Blur/Focus 修复。感谢 @dawoodkhan82!d3b53a457
- 修复样式化的 DataFrame。感谢 @abidlabs!ed546f2e1
- 修复 Model3D 模板。感谢 @freddyaboulton!dfdaf1092
- 修复 gr.DataFrame
的数据模型。感谢 @abidlabs!4b1011bab
- 在 Chatbot
按钮元素中保持文本选择。感谢 @hannahblair!bca6c2c80
- 恢复请求中的查询参数。感谢 @aliabid94!19af2806a
- 为 waveform_settings
添加自动播放。感谢 @hannahblair!7ab73df48
- 修复关于可调用函数错误的错误。感谢 @SrijanSahaySrivastava!3cdeabc68
- 确保源选择不会在溢出中被隐藏。感谢 @hannahblair!176c4d140
- 能够从 Hub 加载主题的临时修复。感谢 @abidlabs!fad92c29d
- 改进 Audio 中的默认源行为。感谢 @hannahblair!570866a3b
- 在 gradio lite 中隐藏显示 API 链接。感谢 @hannahblair!c56128781
- 修复更新 gr.Dropdown
中的 choices 以及与其他组件相关的更新。感谢 @abidlabs!92278729e
- Gallery 预览修复,并可选择跳过 postprcess 中 URL 的下载。感谢 @freddyaboulton!5668036ee
- 修复 windows 上的文件上传。感谢 @freddyaboulton!e8216be94
- 确保 gr.Dataframe
按预期更新。感谢 @pngwn!8bbeca0e7
- 改进 Embed 和 CDN 处理,并修复一些相关错误。感谢 @pngwn!61c155e9b
- 如果浏览器在移动设备上关闭,则移除会话。感谢 @aliabid94!4840b4bc2
- 将 API 路由自动命名添加到 CHANGELOG。感谢 @freddyaboulton!dd901c1b0
- Model3D 平移,改进的 UX。感谢 @dylanebert!12d8e90a1
- 修复带有 streaming=True
的输入 Image
组件。感谢 @abidlabs!de36820ef
- 修复网站上演示的各种问题。感谢 @aliabd!ac4f2bcde
- 从队列中移除 **kwargs。感谢 @freddyaboulton!e3ede2ff7
- 确保 Model 3D 在属性更改时更新。感谢 @hannahblair!e32bac894
- 修复更新 interactive 属性。感谢 @abidlabs!27194a987
- 确保 gr.Image
的状态跟踪器在静态模式下显示。感谢 @pngwn!aaa55ce85
- 视频/音频修复。感谢 @freddyaboulton!6bce259c5
- 确保 gr.CheckboxGroup
按预期更新。感谢 @pngwn!afb72bd19
- 修复 radio.select 将先前的值传递给函数而不是选定值的问题。感谢 @freddyaboulton!3e31c1752
- 为 Chatbot 的配置添加 likeable 属性。感谢 @freddyaboulton!2cffcf3c3
- 确保 radios 具有不同的名称。感谢 @pngwn!5cddd6588
- 修复:初始消息在聊天界面中被覆盖。感谢 @dawoodkhan82!5fe091367
- 处理 gallery 的 selected_index 属性更改。感谢 @pngwn!a4a931dd3
- 修复FileExplorer
预处理。感谢 @pngwn!d7a1a6559
- 修复文件溢出并为 FileExplorer
添加键盘导航。感谢 @hannahblair!4.0 是一个重大版本,以下是主要亮点
1. 自定义组件:我们引入了创建和发布您自己的自定义 gradio
组件的功能。自定义 Gradio 组件是 Python 和 JavaScript(特别是 Svelte)的组合,您可以编写它来完全自定义 Gradio 组件。自定义组件可以像常规 Gradio 组件一样使用(使用 gr.Interface
、gr.Blocks
等),并且可以发布,以便其他用户可以在他们的应用程序中使用它。要开始使用自定义组件,请阅读我们的快速入门指南。
2. 重新设计的媒体组件和可访问性:
我们从头开始重新设计了我们的媒体组件(gr.Audio
、gr.Image
和 gr.Video
),并全面改进了可访问性。所有组件现在都可通过键盘导航,并包含更好的颜色,以便更广泛的受众可以使用。
3. 服务器端事件:
Gradio 的内置排队系统现在是每个 Gradio 应用程序的默认设置。我们现在使用服务器端事件而不是 Websockets 进行排队。SSE 意味着一切都通过 HTTP 提供,并且比 websockets 具有更好的设备支持和更好的扩展性。
4. 自定义共享服务器:
Gradio 共享链接现在可以在自定义域上运行。您现在可以设置自己的服务器来提供 Gradio 共享链接。要开始使用,请阅读我们的指南。
我们现在支持使用 Blocks 中的 js
参数向您的应用程序添加任意 JS,以及使用 Blocks 中的 head
参数对您的应用程序进行任意修改
当您发布 Gradio 应用程序时,默认情况下我们不再公开用户的工作目录。在安全性方面也有一些其他改进。
以前,Gradio 应用程序的 API 端点是公开的,允许您绕过队列。作为 Gradio 开发人员,您需要设置 api_open=False
以防止这种滥用。我们现在已将其设为默认设置。
您现在可以控制用户是否应该能够多次触发同一事件(通过使用每个事件的 trigger_mode
参数)
您现在可以精细控制每个事件可以在后端同时运行多少次(使用每个事件的 concurrency_limit
参数)
我们不再在将图像发送到服务器或返回时将图像序列化为 base64。这应该使任何包含 gr.Image
组件的 Gradio 应用程序更快。
Gradio 4.0 是一个新的主要版本,并且包含与 3.x 的重大更改。以下是所有重大更改的列表,以及适当的迁移步骤。
组件:
**kwarg
,这意味着组件不能接受任意(未使用)的参数。以前,会抛出警告。gr.Button
类中的 variant
参数,plain
不再是 secondary
的别名Carousel
类和 StatusTracker
类以及 Box
布局类Variable
别名,使用 State
代替.style()
方法.update()
方法get_interpretation_neighbors()
和 get_interpretation_scores()
deprecation.py
— 这是为内部使用而设计的,因此不太可能破坏 gradio 应用程序gr.Audio
和 gr.Video
中的 source
参数重命名为 sources
gr.Audio
中移除 show_edit_button
参数gr.Image()
中的 tool=
参数已被移除。从 gradio==4.5.0
开始,我们有一个新的 gr.ImageEditor
组件来代替它。ImageEditor
组件是一个简化的组件,允许您对图像进行基本操作。它支持设置背景图像(可以通过网络摄像头上传、粘贴或录制),以及“编辑”背景图像的能力,方法是使用画笔创建笔画,并使用橡皮擦擦除背景图像顶层图层中的笔画。请参阅下面的迁移到 Gradio 4.0 部分。与 gradio
库相关的其他更改:
status_tracker
参数HuggingFaceDatasetJSONSaver
类Blocks.load()
只能用作实例方法来附加在页面加载时运行的事件。要使用类方法,请改用 gr.load()
Interface.load()
已被移除gr.load
正在运行 Gradio 3.x 的 Space。但是,您仍然可以使用客户端库(请参阅下面客户端库的更改)。launch()
中的 enable_queue
launch()
中的许多位置参数现在仅为关键字参数,并且已移除 show_tipsgr.Series
和 gr.Parallel
api_name=None
,则 api 名称是 python 函数的名称。与客户端库相关的更改:
gr.Chatbot
、gr.Label
和 gr.JSON
)时,数据将被保存到文件中,并返回文件路径。同样,您必须将输入 JSON 作为文件路径传递。现在,JSON 数据直接传递和返回,使得使用客户端处理这些组件更加容易。以下是一些帮助您迁移到 Gradio 4.0 的具体技巧
allowed_paths
由于工作目录现在默认不提供服务,如果您在使用 /file=
路由的 CSS 或 gr.HTML
组件中引用本地文件,您将需要使用 launch()
中的 allowed_paths
参数显式允许访问这些文件(或其父目录)
例如,如果您的代码如下所示
import gradio as gr
with gr.Blocks() as demo:
gr.HTML("<img src='/file=image.png' alt='image One'>")
demo.launch()
为了使 HTML 组件能够提供 image.png
,您需要像这样在 allowed_paths
中添加 image.png
import gradio as gr
with gr.Blocks() as demo:
gr.HTML("<img src='/file=image.png' alt='image One'>")
demo.launch(allowed_paths=["image.png"])
或者,如果您想像 Gradio 3.x 中那样公开工作目录中的所有文件(如果您计划与他人共享您的应用程序,则不建议这样做),您可以这样做
import gradio as gr
with gr.Blocks() as demo:
gr.HTML("<img src='/file=image.png' alt='image One'>")
demo.launch(allowed_paths=["."])
concurrency_limit
而不是 concurrency_count
以前,在 Gradio 3.x 中,有一个全局的 concurrency_count
参数,用于控制可以同时执行队列中任务的线程数。默认情况下,concurrency_count
为 1,这意味着一次只能执行一个事件(以避免在使用使用大量内存或 GPU 使用率的预测函数时出现 OOM 错误)。您可以通过设置 queue=False
来绕过队列。
在 Gradio 4.0 中,concurrency_count
参数已被移除。您仍然可以使用 max_threads
参数控制总线程数。此参数的默认值为 40
,但是您不必(像以前那样)担心 OOM 错误,因为即使有 40 个线程,我们仍然使用单工作进程单事件模型,这意味着每个工作线程仅执行一个特定函数。因此,实际上,每个函数都有其自己的“并发计数”为 1。如果您想更改此行为,可以通过设置参数 concurrency_limit
来完成,现在 concurrency_limit
是每个事件的参数,而不是全局参数。默认情况下,每个事件的并发限制为 1
,但是您可以将其设置为更高的值,或者设置为 None
(如果您想允许同时执行此事件的任意次数)。事件也可以使用 concurrency_id
参数分组在一起,以便它们共享相同的限制,并且默认情况下,调用同一函数的事件共享相同的 concurrency_id
。
最后,应该注意的是,可以使用 Blocks.queue()
中的 default_concurrency_limit
参数更改 Blocks 中所有事件的 concurrency_limit
的默认值(通常为 1)。您可以将其设置为更高的整数或 None
。这反过来又设置了所有没有明确指定 conurrency_limit
的事件的 concurrency_limit
。
迁移总结
concurrency_limit=None
。(以前您会设置 queue=False
。)X
次,您应该在事件触发器中设置 concurrency_limit=X
参数。(以前您会设置全局 concurrency_count=X
。)新的 ImageEditor
组件
在 Gradio 4.0 中,移除了 gr.Image()
中的 tool=
参数。从 Gradio 4.5.0 开始,它已被新的 gr.ImageEditor()
组件取代。ImageEditor
组件是一个简化的组件,允许您对图像进行基本操作。它支持设置背景图像(可以上传、粘贴或通过网络摄像头录制),以及“编辑”背景的能力,即使用画笔创建笔触,并使用橡皮擦擦除背景图像顶层图层上的笔触。
ImageEditor
组件性能更高,并且在自定义组件方面也提供了更大的灵活性,特别是通过新的 brush
和 eraser
参数,它们分别接受 Brush
和 Eraser
对象。
以下是一些关于如何从 Image(tool=...)
迁移到 gr.ImageEditor()
的示例。
gr.Image(source="canvas", tools="sketch")
现在,您应该这样写:
gr.ImageEditor(sources=(), brush=gr.Brush(colors=["#000000"]))
注意:您可以在 gr.Brush
中提供支持的笔划颜色列表,以及通过将 gr.Brush
的 color_mode
参数设置为 "fixed"
或 "defaults"
来控制用户是否可以选择自己的颜色。
brush
参数。换句话说,以前,您会这样做:gr.Image(source="canvas", tools="color-sketch")
现在,您应该这样写:
gr.ImageEditor(sources=())
gr.Image(source="upload", tools="color-sketch")
现在,这是 ImageEditor
组件的默认行为,因此您只需编写:
gr.ImageEditor()
与 Image
组件不同,后者将输入图像作为单个值传递到预测函数中,ImageEditor
传递一个由三个键值对组成的字典:
"background"
,其值为背景图像"layers"
,它包含一个值列表,其中每个图层中的笔触对应一个列表元素。"composite"
,其值是由背景图像和所有笔触组成的完整图像。每个值的类型可以通过 type
参数设置("filepath"
、"pil"
或 "numpy"
,默认为 "numpy"
),就像在 Image
组件中一样。
请参阅 gr.ImageEditor
组件的文档以获取更多详细信息: https://gradio.org.cn/docs/imageeditor
86edc0199
- 移除 gr.mix。感谢 @abidlabs!287fe6782
- 修复客户端 + 上传的循环依赖。感谢 @pngwn!59f5a4e30
- 第一部分:移除 serializes。感谢 @abidlabs!287fe6782
- 默认情况下不提供工作目录中的文件。感谢 @pngwn!287fe6782
- 小改动,使 api_open=False
成为默认值。感谢 @pngwn!287fe6782
- 添加 json schema 单元测试。感谢 @pngwn!287fe6782
- 从组件中移除重复的 elem_ids
。感谢 @pngwn!911829ac2
- 允许队列加入时的数据。感谢 @aliabid94!287fe6782
- 将 gradio_cached_folder
移动到 gradio 临时目录中。感谢 @pngwn!287fe6782
- V4:修复 constructor_args。感谢 @pngwn!287fe6782
- 彻底移除 interpretation。感谢 @pngwn!287fe6782
- 改进音频组件。感谢 @pngwn!287fe6782
- 将 props 传递给示例组件和示例输出。感谢 @pngwn!287fe6782
- 清理根 URL。感谢 @pngwn!287fe6782
- 增加构建自定义组件前端和后端的 ability,为使用 gradio_component build
发布到 pypi 做准备。感谢 @pngwn!287fe6782
- 修复后端的 selectable prop。感谢 @pngwn!287fe6782
- 为取消事件设置 api=False。感谢 @pngwn!287fe6782
- 改进视频组件。感谢 @pngwn!287fe6782
- 尝试触发主要的 beta 版本发布。感谢 @pngwn!79c8156eb
- 队列并发计数。感谢 @aliabid94!287fe6782
- Image v4。感谢 @pngwn!287fe6782
- 将所有组件发布到 npm。感谢 @pngwn!287fe6782
- 开源 FRP 服务器并允许 gradio
连接到自定义共享服务器。感谢 @pngwn!287fe6782
- 文件上传优化。感谢 @pngwn!287fe6782
- 自定义组件。感谢 @pngwn!287fe6782
- 移除 v4 中已弃用的参数和形参。感谢 @pngwn!287fe6782
- V4:在上传路由中使用 shutil 的异步版本。感谢 @pngwn!287fe6782
- V4:为某些组件测试设置缓存目录。感谢 @pngwn!287fe6782
- 提议:自定义组件的示例演示应该是 gr.Interface
。感谢 @pngwn!287fe6782
- 修复 cc 构建。感谢 @pngwn!287fe6782
- —overwrite 删除以前的内容。感谢 @pngwn!28322422c
- 去除悬空的 svelte 导入。感谢 @pngwn!287fe6782
- 将 websockets 替换为 SSE。感谢 @pngwn!1162ed621
- 移除音频中的 show_edit_button
参数。感谢 @hannahblair!a7435ba9e
- 修复 v4 上 Lite 的静态问题。感谢 @aliabd!e4f7b4b40
- 修复客户端 + 上传的循环依赖。感谢 @pngwn!667802a6c
- JS 组件文档。感谢 @freddyaboulton!103416d17
- 文档上的 JS README 和 Storybook。感谢 @aliabd!c476bd5a5
- Image v4。感谢 @pngwn!90318b1dd
- 将前端的 mode
交换为 interactive
以匹配后端。感谢 @pngwn!9c3bf3175
- 默认情况下不提供工作目录中的文件。感谢 @abidlabs!d2dfc1b9a
- 小改动,使 api_open=False
成为默认值。感谢 @abidlabs!982bff2fd
- 从组件中移除重复的 elem_ids
。感谢 @hannahblair!f71ea09ae
- 将 gradio_cached_folder
移动到 gradio 临时目录中。感谢 @abidlabs!a8ef6d5dc
- 彻底移除 interpretation。感谢 @abidlabs!bce37ac74
- 修复后端的 selectable prop。感谢 @freddyaboulton!88bccfdba
- 改进视频组件。感谢 @hannahblair!865a22d5c
- 重构 Blocks.load()
,使其风格与其他监听器相同。感谢 @abidlabs!c3bc515bf
- Gradio 自定义组件发布。感谢 @freddyaboulton!db143bdd1
- 使输出组件在更新时不可编辑。感谢 @dawoodkhan82!d5d29c947
- 开源 FRP 服务器并允许 gradio
连接到自定义共享服务器。感谢 @abidlabs!0d261c6ec
- 修复回退演示应用模板代码。感谢 @freddyaboulton!71bf2702c
- 修复视频。感谢 @abidlabs!bf127e124
- 将 websockets 替换为 SSE。感谢 @aliabid94!037e5af33
- WIP:修复文档。感谢 @freddyaboulton!f08da1a6f
- 修复示例中的 markdown 渲染。感谢 @abidlabs!0c571c044
- 添加 json schema 单元测试。感谢 @freddyaboulton!83e947676
- 格式化 v4 分支中的 js。感谢 @freddyaboulton!fadc057bb
- V4:修复 constructor_args。感谢 @freddyaboulton!9cad2127b
- 改进音频组件。感谢 @hannahblair!cad537aac
- 将 props 传递给示例组件和示例输出。感谢 @pngwn!825c9cddc
- 修复开发模式 model3D。感谢 @freddyaboulton!9a40de7bf
- 修复:移动到 init 后处理中的缓存 + 回退修复。感谢 @freddyaboulton!184834d02
- 添加一个 cli 命令来列出可用的模板。感谢 @freddyaboulton!11d67ae75
- 添加一个独立的安装命令并整理回退模板。感谢 @freddyaboulton!338969af2
- V4:表单组件的单文件实现。感谢 @freddyaboulton!39227b6fa
- 尝试触发主要的 beta 版本发布。感谢 @freddyaboulton!447dfe06b
- 清理 File
和 UploadButton
的后端,并将 preprocess()
的返回类型从 TemporaryFIle 更改为字符串文件路径。感谢 @abidlabs!abff6fb75
- 修复后端中剩余的 xfail 测试。感谢 @freddyaboulton!cd8146ba0
- 更新 v4 的徽标。感谢 @abidlabs!be2ed5e13
- 文件上传优化。感谢 @freddyaboulton!6b0bb5e6a
- 移除 v4 中已弃用的参数和形参。感谢 @abidlabs!de18102b8
- V4:修复组件更新错误。感谢 @freddyaboulton!9cf40f76f
- V4:简单下拉菜单。感谢 @freddyaboulton!85056de5c
- V4:简单文本框。感谢 @freddyaboulton!9053c95a1
- 简化文件组件。感谢 @freddyaboulton!35a227fbf
- 提议:自定义组件的示例演示应该是 gr.Interface
。感谢 @abidlabs!3b2d9eaa3
- 修复 cc 构建。感谢 @pngwn!287fe6782
- 待处理事件行为。感谢 @pngwn!287fe6782
- 恢复在 #5832 中错误移除的类型。感谢 @pngwn!287fe6782
- 修复:滑块栏在 FireFox 上太细。感谢 @pngwn!40a171ea6
- 修复图像双重更改错误。感谢 @pngwn!0000a1916
- 修复下拉箭头大小。感谢 @pngwn!bf38e5f06
- 移除重复组件。感谢 @pngwn!7d07001e8
- 修复 storybook。感谢 @pngwn!ce036c5d4
- 待处理事件行为。感谢 @dawoodkhan82!dbb7de5e0
- 修复测试。感谢 @pngwn!e27997fe6
- 修复用户未通过身份验证时的 root
,以便登录页面正确显示。感谢 @abidlabs!f3f98f923
- Lite 错误处理程序。感谢 @whitphx!66549d8d2
- 修复:滑块栏在 FireFox 上太细。感谢 @dawoodkhan82!85ba6de13
- V4:一些其他修复。感谢 @pngwn!319c30f3f
- 重新重构前端文件。感谢 @pngwn!85ba6de13
- 为 vite 的开发模式添加 host。感谢 @pngwn!d2314e53b
- BugFix:使 FileExplorer 组件可模板化。感谢 @pngwn!85ba6de13
- 使用标签识别自定义组件目录并忽略未安装的组件。感谢 @pngwn!f769876e0
- 将格式化程序(和小重构)应用于 Lite 相关的前端代码。感谢 @whitphx!13ed8a485
- V4:为 ‘@gradio’ 包使用 beta 发布版本。感谢 @freddyaboulton!85ba6de13
- 增加了构建自定义组件的前端和后端的能力,为使用 gradio_component build
发布到 pypi 做准备。感谢 @pngwn!85ba6de13
- 修复了 v4 分支上部署的演示。感谢 @pngwn!85ba6de13
- 为取消事件设置 api=False。感谢 @pngwn!85ba6de13
- 在 CLI 中使用可执行文件的完整路径。感谢 @pngwn!1c390f101
- 再次合并 main 分支。感谢 @pngwn!85ba6de13
- 简化了 4.0 版本中组件处理文件的方式。感谢 @pngwn!85ba6de13
- 如果 api_name 为 None,则命名端点。感谢 @pngwn!dcf13d750
- V4: 更新 Component pyi 文件。感谢 @freddyaboulton!85ba6de13
- 将 gradio_component 重命名为 gradio component。感谢 @pngwn!85ba6de13
- V4: 在上传路由中使用 shutil 的异步版本。感谢 @pngwn!85ba6de13
- V4: 为一些组件测试设置缓存目录。感谢 @pngwn!fee3d527e
- 为 gr.Dataframe
添加了 column_widths
属性,并在 wrap=False
时隐藏溢出的文本。感谢 @abidlabs!85ba6de13
- 改进了开发模式下的日志。感谢 @pngwn!d0cc6b136
- 修复。感谢 @pngwn!465f58957
- 当 value
为 null
时显示空的 JSON 图标。感谢 @hannahblair!85ba6de13
- 恢复了在 #5832 中错误移除的类型。感谢 @pngwn!b67115e8e
- Lite: 使 Examples 组件使用伪 HTTP 请求向 Wasm 服务器显示媒体文件。感谢 @whitphx!1aa186220
- Lite: 修复 Examples.create() 为普通函数,以便可以在 Wasm 环境中调用。感谢 @whitphx!121f25b2d
- Lite: 修复 is_self_host() 以检测 127.0.0.1
也作为 localhost。感谢 @whitphx!e24163e15
- 添加了维度检查,以避免错误的数组维度。感谢 @THEGAMECHANGER416!46334780d
- 在文档中提到音频在转换为 wav 时会被标准化。感谢 @aileenvl!a55b80942
- 通过 pd.Styler
对象为 gr.DataFrame
添加样式(例如字体颜色和背景颜色)支持。感谢 @abidlabs!5f1cbc436
- 为 gr.ChatInterface 添加 gr.Request 支持。感谢 @DarhkVoyd!c4e3a9274
- 修复了文档字符串中的花括号。感谢 @whitphx!8d909624f
- 修复了 Audio、Image 和 Video 组件的样式问题。感谢 @aliabd!e70805d54
- 将 BlockLabel
元素更改为使用 <label>
。感谢 @aileenvl!c07207e0b
- 从 Interface 内部移除已弃用的 .update()
用法。感谢 @abidlabs!b450cef15
- 修复了 Code 组件的文档字符串中的类型。感谢 @whitphx!4e62b8493
- 确保在已设置 global.Webocket
属性的情况下,websocket polyfill 不会加载。感谢 @Jay2theWhy!b83064da0
- 修复了滚动条滚动下拉菜单时出现的错误。感谢 @Kit-p!7b63db271
- 将 Examples 类中的异步方法转换为普通的同步方法。感谢 @whitphx!891d42e9b
- 定义 Font.repr() 以可读格式在文档中打印。感谢 @whitphx!1d5b15a2d
- external.py 中的断言重构。感谢 @harry-urek!48e09ee88
- 快速修复:Chatbot change 事件。感谢 @dawoodkhan82!c4ba832b3
- 从 gr.update
中移除弃用警告,并清理相关的代码。感谢 @abidlabs!0592c301d
- 修复 Dataframe line_breaks
。感谢 @dawoodkhan82!fbce277e5
- 将 Markdown 渲染列表保留在数据表格单元格内。感谢 @abidlabs!361823896
- 修复数据表格 line_breaks
。感谢 @dawoodkhan82!FileExplorer
组件 (#5672 e4a307ed6
)得益于一项允许组件直接与服务器通信,而无需通过值传递数据的新功能,我们创建了一个新的 FileExplorer
组件。
此组件允许您通过传递 glob 来填充资源管理器,但在您的预测函数中仅提供选定的文件。
用户可以随后导航虚拟文件系统并选择文件,这些文件将在您的预测函数中可用。此组件将允许开发者构建更复杂的 Spaces,并具有更灵活的输入选项。
有关更多信息,请查看 FileExplorer
文档。
感谢 @aliabid94!
ed0f9a21b
- 为 gr.Gallery
添加了 change()
事件。感谢 @abidlabs!4567788bd
- 添加了在 gr.Gallery
中设置 selected_index
的功能。感谢 @abidlabs!caeee8bf7
- 确保客户端在 node 环境中运行时不依赖于 window
。感谢 @gibiee!a0d3cc45c
- 修复 gr.SelectData
,以便正确附加 target 属性,并将 filedata 包含在 gr.Gallery
的 data 属性中。感谢 @abidlabs!957ba5cfd
- 防止 bokeh 多次注入 bokeh js。感谢 @abidlabs!37e70842d
- 在 state.py
中添加了 try except 代码块。感谢 @SrijanSahaySrivastava!f096c3ae1
- 当未找到媒体设备时抛出有用的错误。感谢 @hannahblair!c0fef4454
- 还原副本代理逻辑,而是使用 root
变量实现。感谢 @freddyaboulton!e2874bc3c
- 修复了待处理的 chatbot 消息样式,并确保不渲染值为 None
的消息。感谢 @hannahblair!8f0fed857
- 改进了 chatbot 的可访问性和用户体验。感谢 @hannahblair!2a5b9e03b
- 为 gr.DataFrame
添加了 pandas Styler
对象支持(最初仅设置 display_value
)。感谢 @abidlabs!abb5e9df4
- 确保图库中没有标题的图像可以下载。感谢 @hannahblair!502054848
- 修复 Gallery columns
和 rows
参数。感谢 @abidlabs!e842a561a
- 修复了 chatbot 中的换行符问题。感谢 @dawoodkhan82!c9af4f794
- 为 frpc 隧道添加了超时和错误处理。感谢 @cansik!ef96d3512
- 当在字典中返回更新的组件时,不再引发警告。感谢 @abidlabs!caf6d9c0e
- 默认情况下,为 Colab 中的所有 Gradio 应用程序设置 share=True。感谢 @abidlabs!dba651904
- 修复了在 Spaces 上运行与副本相关的逻辑时出现的深拷贝错误。感谢 @abidlabs!84e03fe50
- 为网站添加复制按钮,并为 API 文档添加更好的描述。感谢 @aliabd!a0fc5a296
- 使 Tab 和 Tabs 可更新。感谢 @abidlabs!c10dabd6b
- 修复了 gr.select() 方法在数据表格单元格中出现的问题。感谢 @dawoodkhan82!c2b31c396
- 基于上下文的进度跟踪器。感谢 @cbensimon!78e7cf516
- 确保内部数据已更新,然后再分派 success
或 then
事件。感谢 @pngwn!d626c21e9
- 在具有多个副本的 Hugging Face Spaces 上运行时,完全解析生成的文件路径。感谢 @abidlabs!aefb556ac
- 防止来自 /api/predict
的内部 log_message 错误。感谢 @cbensimon!96c4b97c7
- 调整翻译。感谢 @ylhsieh!3a48490bc
- 为 gr.load()
的 inputs
和 outputs
的可接受类型列表添加了一个裸 Component
类型。感谢 @whitphx!b619e6f6e
- 重新组织文档导航栏并填补空白。感谢 @aliabd!c5e969559
- 修复了文档和指南中的小问题。感谢 @aliabd!c57f1b75e
- 修复了功能测试。感谢 @abidlabs!40de3d217
- 通过 query_params
属性将查询参数添加到 gr.Request
对象。感谢 @DarhkVoyd!ea0e00b20
- 阻止客户端访问设置了 api_name=False
的 API 端点。感谢 @abidlabs!e1874aff8
- 添加 gr.on
监听器方法。感谢 @aliabid94!2e25d4305
- 如果用户在 gr.Textbox
中向上滚动,则暂停自动滚动,如果用户一直向下滚动,则恢复自动滚动。感谢 @abidlabs!21c7225bd
- 改进了绘图渲染。感谢 @aliabid94!9f9af327c
- [重构] 将不包含 await
语句的异步函数转换为普通函数。感谢 @whitphx!d76555a12
- 修复了 gr.themes.builder() 中的辅助色调错误。感谢 @hellofreckles!f4e4f82b5
- 增加了 Slider 的可点击区域。感谢 @dawoodkhan82!6a36c3b78
- chore(deps): 更新依赖 @types/prismjs 到 v1.26.1。感谢 @renovate!da05e59a5
- 清理了每个组件的 .update 和 .get_config。感谢 @aliabid94!/n 移除 get_config,使用的配置只是 Block 中与构造函数参数之一同名的任何属性。/n 为了向后兼容性,update 没有被移除,但已被弃用。而是返回组件本身。创建了一个 updateable 装饰器,它只是检查我们是否在更新中,如果是,则跳过构造函数并将 args 和 kwargs 包装在一个更新字典中。很简单。38fafb9e2
- 修复了 Gallery 文档中的错别字。感谢 @atesgoral!d1ad1f671
- 将 elem_classes
选择器附加到布局元素,并将 id 附加到 Tab 按钮(用于通过 CSS/JS 定位)。感谢 @abidlabs!75ddeb390
- 辅助功能改进。感谢 @hannahblair!6b1714386
- 将 Pyodide 升级到 0.24.0 并安装原生 orjson 包。感谢 @whitphx!9ccc4794a
- 使用 ContextVar 而不是 threading.local()。感谢 @cbensimon!54d21d3f1
- 确保 HighlightedText
与 merge_elements
在没有值的情况下加载。感谢 @hannahblair!fb5964fb8
- 修复了示例缓存加载事件中的错误。感谢 @freddyaboulton!341402337
- 允许包含 gr.Radio()
、gr.Checkboxgroup()
或 gr.Dropdown()
的 Gradio 应用程序通过 gr.load()
加载。感谢 @abidlabs!7c34b434a
- 修复了 gr.DataFrame
中会截断内容的宽度和高度问题。感谢 @abidlabs!faad01f8e
- 为 chatbot 添加 render_markdown
参数。感谢 @dawoodkhan82!88d43bd12
- 修复了 chatbot 中头像图像被挤压的问题。感谢 @dawoodkhan82!6b8c8afd9
- 修复了 gr.load()
与 gr.Examples
的不正确行为。感谢 @abidlabs!e51fcd5d5
- 在 Spaces 或 wasm 上设置 share=True 应该发出警告而不是引发错误。感谢 @abidlabs!52f783175
- refactor: 使用 package.json 进行版本管理。感谢 @DarhkVoyd!d29b1ab74
- 使滑块在所有浏览器中保持一致。感谢 @dawoodkhan82!e0d61b8ba
- 修复了音频和图像的 .clear()
事件。感谢 @dawoodkhan82!d9e9ae43f
- 指南修复,特别是流式音频。感谢 @aliabid94!acdeff57e
- 允许具有身份验证的 Gradio 的多个实例在不同的端口上运行。感谢 @abidlabs!50d9747d0
- chore(deps): 更新依赖 iframe-resizer 到 v4.3.7。感谢 @renovate!4ed5902e7
- 添加巴斯克语。感谢 @EkhiAzur!290f51871
- UploadButton 的文档字符串中的错别字。感谢 @chaeheum3!d1bf23cd2
- 修改 Image 示例文档字符串。感谢 @freddyaboulton!ba64082ed
- 当 type=‘index’ 时,为组件进行预处理。感谢 @abidlabs!301c7878
- 允许 gr.Image() 示例接受网址。感谢 @abidlabs!a0cc9ac9
- 修复了用户在下拉菜单中输入无效值并按下回车键时导致崩溃的问题。感谢 @abidlabs!c5fe8eba
- 修复了下拉菜单的文档字符串。感谢 @hysts!81c9ca9a
- 修复了 gr.Dropdown()
中的 .update()
方法以处理 choices
。感谢 @abidlabs!dc86e4a7
- 懒加载所有图像。感谢 @aliabid94!21f1db40
- 确保输入值在下拉菜单失去焦点时保存。感谢 @hannahblair!9ee20f49
- 使用 ISO-639x 验证 i18n 文件名。感谢 @hannahblair!c60b89b0
- 添加中库尔德语。感谢 @Hrazhan!d112e261
- 允许在 gr.HighlightedText
中进行交互式输入。感谢 @hannahblair!8909e42a
- 为 gr.Textbox()
添加了 autoscroll
参数。感谢 @dawoodkhan82!ddc02268
- 允许 gr.Dropdown
具有单独的名称和值,并为多选下拉菜单启用 allow_custom_value
。感谢 @abidlabs!b271e738
- 移除 except asyncio.CancelledError,由于 53d7025,这已不再必要。感谢 @whitphx!041560f9
- 修复 queueing.call_prediction 以检索与 FastAPI 实现相同方式的默认响应类。感谢 @whitphx!afcf3c48
- 不暴露工作目录之外的文件的存在。感谢 @abidlabs!bd2fda77
- 在 Audio 中分派 stop_recording
事件。感谢 @hannahblair!05715f55
- 为 gr.Dropdown
添加了 filterable
参数,用于控制用户是否可以输入以过滤选项。感谢 @abidlabs!a4e010a9
- 修复了分享按钮的位置。感谢 @dawoodkhan82!82ec4d26
- 允许在 Blocks 内部运行具有组件的界面。感谢 @abidlabs!c77f05ab
- 修复队列以调用 API 端点,而无需内部 HTTP 路由。感谢 @whitphx!aad7acd7
- 为条形图添加排序功能。感谢 @Chaitanya134!afac0006
- 显著提升了大型数据集下 gr.Dataframe
的性能。感谢 @pngwn!d14d63e3
- 文本框自动滚动到底部。感谢 @dawoodkhan82!26fef8c7
- 当启用身份验证时,在 js 客户端中跳过 view_api 请求。感谢 @freddyaboulton!7ab4b70f
- api_open 不会优先于 show_api。感谢 @freddyaboulton!abf1c57d
)感谢 @dawoodkhan82!
55fed04f
)例如:
with gr.Blocks() as demo:
name = gr.Textbox(label="Name")
output = gr.Textbox(label="Output Box")
greet_btn = gr.Button("Greet")
@greet_btn.click(inputs=name, outputs=output)
def greet(name):
return "Hello " + name + "!"
感谢 @aliabid94!
c5bf9138
- 添加聊天气泡宽度参数。感谢 @dawoodkhan82!119c8343
- 更快的重新加载模式。感谢 @freddyaboulton!79d8f9d8
- 为 Model3D
组件添加了 height
和 zoom_speed
参数,以及一个重置相机位置的按钮。感谢 @abidlabs!61803c65
- chore(deps): 更新依赖 extendable-media-recorder 到 v9。感谢 @renovate!4ccb9a86
- 使得可以为 Model3D
组件设置初始相机位置,格式为 (alpha, beta, radius) 的元组。感谢 @mbahri!97c3c7b1
- 将脚本从旧网站移至 CI。感谢 @aliabd!b8968898
- 修复 utils.py 中的拼写错误。感谢 @eltociear!05892302
- 为 gr.Chatbot()
添加了禁用 html 转义的 kwarg。感谢 @dawoodkhan82!0cc7e2dc
- 当消息为空时隐藏头像。感谢 @dawoodkhan82!e4e7a431
- 在 gr.Markdown
、gr.Chatbot
和 gr.DataFrame
中渲染添加到页面的 LaTeX。感谢 @abidlabs!4d94ea0a
- 为 gr.Markdown
中溢出的内容添加水平滚动条。感谢 @abidlabs!b27f7583
- 更改 markdown 渲染以将 breaks 设置为 false。感谢 @abidlabs!64666525
- 取消下拉菜单过滤器。感谢 @deckar01!5f25eb68
- 修复了一些小的错误。感谢 @aliabid94!/n - 我们对 exit 的使用捕获了错误,并破坏了任何无法实例化的组件的回溯信息(尝试在 main 分支之外运行 blocks_kitchen_sink 以查看示例)。现在,如果出现异常,exit 会立即退出,以便可以清晰地打印原始异常。/n - HighlightedText 的渲染效果很奇怪,已清理。3341148c
- 修复:将头像图像包裹在 div 中以裁剪其形状。感谢 @Keldos-Li!df090e89
- 修复复选框选择分发。感谢 @freddyaboulton!fe057300
)我们现在在 gr.Markdown
和 gr.Dataframe
中更好地支持了 markdown。包括语法高亮和 Github Flavored Markdown。我们还拥有更一致的 markdown 行为和样式。
这些改进将对大型应用程序特别有益。
事件现在被委托而不是手动附加,从而显着提高了性能,并解决了最近 Gradio 版本中引入的性能衰退问题。大型应用程序的启动速度现在快了大约两倍。
优化了各个组件的挂载,从而在启动期间实现了适度的性能提升(约 30%)。
修复了导致 markdown 无限次重新渲染的问题。
确保 gr.3DModel
不会过早重新渲染。
感谢 @pngwn!
390624d8
)gradio_client
现在支持流式文件输出 🌊
没有新的语法!连接到支持流式文件输出的 gradio 演示,并像往常一样调用 predict
或 submit
。
import gradio_client as grc
client = grc.Client("gradio/stream_audio_out")
# Get the entire generated audio as a local file
client.predict("/Users/freddy/Pictures/bark_demo.mp4", api_name="/predict")
job = client.submit("/Users/freddy/Pictures/bark_demo.mp4", api_name="/predict")
# Get the entire generated audio as a local file
job.result()
# Each individual chunk
job.outputs()
感谢 @freddyaboulton!
<gradio-app>
添加 render
函数 (#5158 804fcc05
)我们现在在render
事件,该事件在嵌入式 space 完成渲染后触发。
<script>
function handleLoadComplete() {
console.log("Embedded space has finished rendering");
}
const gradioApp = document.querySelector("gradio-app");
gradioApp.addEventListener("render", handleLoadComplete);
</script>
感谢 @hannahblair!
f49028cf
- 将 markdown 和 latex 处理移至前端,用于 gr.Markdown 和 gr.DataFrame 组件。感谢 @abidlabs!fbdad78a
- 单独懒加载组件的交互式或静态变体,而不是加载所有变体。此更改将提高许多应用程序的性能。感谢 @pngwn!4b58ea6d
- 更新 i18n 令牌和语言环境文件。感谢 @hannahblair!a7460557
- 为 gr.Dataframe
添加 height 参数和滚动条。感谢 @abidlabs!c57d4c23
- gr.Radio
和 gr.CheckboxGroup
现在可以接受不同的名称和值。感谢 @abidlabs!e8fd4e4e
- 为 gr.Interface
添加 api_name
参数。此外,如果 show_api=False,则完全隐藏 api 页面。感谢 @freddyaboulton!a2f42e28
- 允许更新 gr.UpdateButton
的标签。感谢 @abidlabs!1cefee7f
- chore(deps): 更新依赖 marked 到 v7。感谢 @renovate!a773eaf7
- 停止在迭代器上传递输入和预处理。感谢 @aliabid94!947d615d
- 使用 Hugging Face 登录(OAuth 支持)。感谢 @Wauplin!cf167cd1
- 为文档中的组件创建事件监听器表格。感谢 @aliabd!730f0c1d
- 确保 gradio 客户端对于返回空值的函数也能正常工作。感谢 @raymondtri!b22e1888
- 修复主题构建器中的图像以使用永久 URI。感谢 @abidlabs!f344592a
- 允许为 gr.File
设置高度,并改进了组件的 UI。感谢 @abidlabs!06982212
- 当不需要时,从文件预览中移除滚动条。感谢 @abidlabs!15075241
- 旋转 LinePlot、BarPlot 和 ScatterPlot 上的轴标签。感谢 @Faiga91!92282cea
- 聊天机器人头像图片。感谢 @dawoodkhan82!b3e50db9
- 移除 aiohttp 依赖项。感谢 @freddyaboulton!46a2b600
- 确保音频的翻译工作正常。感谢 @hannahblair!933db53e
- 更好地处理 gr.DataFrame
中的空数据帧。感谢 @abidlabs!2b397791
- 修复 gr.Chatbot
中消息文本溢出到复制按钮上的问题。感谢 @hannahblair!ddac7e4d
- 确保 File 组件将文件上传到服务器。感谢 @pngwn!6fb92b48
- 修复音频流式传输问题。感谢 @aliabid94!7b8fa8aa
- 允许缓存具有流式输出的示例。感谢 @aliabid94!cdfd4217
- 调整 gr.Button()
中 icon
参数。感谢 @abidlabs!3b805346
- 允许聊天机器人中的代码块水平滚动。感谢 @dawoodkhan82!f769cb67
- 仅在组件挂载后才开始监听事件。感谢 @pngwn!c39f06e1
- 修复 gr.Radio()
和 gr.CheckboxGroup()
的 .update()
方法。感谢 @abidlabs!87f1c2b4
- 允许 gr.Interface.from_pipeline()
和 gr.load()
在 gr.Blocks()
中工作。感谢 @abidlabs!de23e9f7
- 改进音频流式传输。感谢 @aliabid94!/n - 使用 WAV 文件进行正确的音频流式传输。我们现在进行适当的处理,以将 wav 文件作为单个音频流流式传输,而接缝处没有任何裂缝。/n - 使用字节进行音频流式传输。通过产生字节来流式传输任何音频类型,它应该可以完美地工作。54bcb724
- 恢复文件组件底部边框的缺失部分。感谢 @abidlabs!1ecf88ac
- 修复 #5229。感谢 @breengles!502f1015
- 确保 Blocks
翻译副本正确渲染。感谢 @hannahblair!a0f22626
- make_waveform()
推特视频分辨率修复。感谢 @dawoodkhan82!35856f8b
)以前,Client.predict
只会返回流式传输结果的端点的第一个输出。这给想要通过客户端调用这些流式演示的开发人员造成了困惑。
我们意识到使用客户端的开发人员不知道演示是否流式传输的内部机制,因此我们正在更改 predict 的行为以符合开发人员的期望。
现在使用 Client.predict
将返回流式端点的最终输出。这将使通过客户端使用 gradio 应用程序更加容易。
感谢 @freddyaboulton!
允许用户使用生成器流式传输音频输出,产生连续的音频块。需要在输出音频上设置 streaming=True
。
import gradio as gr
from pydub import AudioSegment
def stream_audio(audio_file):
audio = AudioSegment.from_mp3(audio_file)
i = 0
chunk_size = 3000
while chunk_size*i < len(audio):
chunk = audio[chunk_size*i:chunk_size*(i+1)]
i += 1
if chunk:
file = f"/tmp/{i}.mp3"
chunk.export(file, format="mp3")
yield file
demo = gr.Interface(
fn=stream_audio,
inputs=gr.Audio(type="filepath", label="Audio file to stream"),
outputs=gr.Audio(autoplay=True, streaming=True),
)
demo.queue().launch()
从后端,流式输出从 /stream/
端点而不是 /file/
端点提供服务。目前仅用于服务音频流式输出。输出 JSON 将具有 is_stream
: true
,而不是文件数据对象中的 is_file
: true
。感谢 @aliabid94!
d7f83823
- 解决如何动态配置 root_path?#4968。感谢 @eastonsuo!6693660a
- 为 Gallery
中选定的图像添加下载按钮。感谢 @hannahblair!61129052
- 更新依赖 esbuild 到 ^0.19.0。感谢 @renovate!80be7a1c
- 聊天机器人对话节点可以包含复制按钮。感谢 @fazpu!0b74a159
- 使用 importlib
代替已弃用的 pkg_resources
。感谢 @jayceslesar!3b9494f5
- Lite: 修复分析模块以使用 asyncio 在 Wasm 环境中工作。感谢 @whitphx!5244c587
- 允许在 HighlightedText
中使用 /n
换行并保留空格。感谢 @hannahblair!2745075a
- 将 deploy_discord 添加到文档。感谢 @freddyaboulton!0dc49b4c
- 为 gr.ChatInterface
添加对异步函数和异步生成器的支持。感谢 @abidlabs!883ac364
- 为 Number
添加 step
参数。感谢 @hannahblair!22aa5eba
- 为 Chatbot 消息中的 <code>
使用字体大小 --text-md
。感谢 @jaywonchung!f5539c76
- 增强功能:为文本框和数字组件添加焦点事件。感谢 @JodyZ0203!34f6b22e
- 从登录路由中的用户名中去除前导和尾随空格。感谢 @sweep-ai!144df459
- 为 gr.Audio
添加 show_edit_button
参数。感谢 @hannahblair!eaa1ce14
- 增强泰米尔语翻译:语言改进 🌟。感谢 @sanjaiyan-dev!8b4eb8ca
- JS 客户端:修复无法读取 null 属性(读取“is_file”)的问题。感谢 @raymondtri!e6317d77
- 更新依赖 extendable-media-recorder 到 v8。感谢 @renovate!13e47835
- chore(deps): 更新依赖 extendable-media-recorder 到 v8。感谢 @renovate!37caa2e0
- 为 gr.Button
添加 icon 和 link 参数。感谢 @hannahblair!7d897165
- gr.Dropdown
现在在静态模式以及选择选项时都具有正确的行为。感谢 @abidlabs!667875b2
- 实时音频流式输出1b017e68
- 为 gr.ColorPicker
添加 interactive
参数。感谢 @hannahblair!56d2609d
- 当值为 None 时,将文本框值重置为空字符串。感谢 @hannahblair!67265a58
- 允许在 gr.File()
和 gr.UploadButton()
中支持 >1000 个文件。感谢 @abidlabs!80727bbe
- 修复 HuggingFaceDatasetSaver 的数据集功能和数据集预览。感谢 @freddyaboulton!620e4645
- gr.Dropdown()
现在支持具有任意字符的值,并且在重新聚焦时不会清除值。感谢 @abidlabs!136adc9c
- 确保 gradio_client
向后兼容 gradio==3.24.1
。感谢 @abidlabs!97d804c7
- [Spaces] ZeroGPU 队列修复。感谢 @cbensimon!cd1353fa
- 修复了视频播放器中分钟的显示。感谢 @abidlabs!b84a35b7
- 为 DuplicateButton 添加 icon 和 link。感谢 @aliabd!f6c491b0
- highlightedtext 基于模型抛出错误。感谢 @rajeunoia!46e4ef67
)我们很高兴地宣布,Gradio 现在可以从任何 gr.ChatInterface
应用程序自动创建 discord 机器人。
就像导入 gradio_client
,连接到应用程序,然后调用 deploy_discord
一样简单!
🦙 将 Llama 2 70b 变成 discord 机器人 🦙
import gradio_client as grc
grc.Client("ysharma/Explore_llamav2_with_TGI").deploy_discord(to_id="llama2-70b-discord-bot")
为了帮助您入门,我们在 Hugging Face 上创建了一个名为 gradio-discord-bots 的组织,其中包含模板 spaces,您可以使用这些模板 spaces 将由 Gradio 提供支持的最先进的 LLM 变成 discord 机器人。
目前,我们有以下模板 spaces:
但再一次,您可以部署互联网上公开的任何 gr.ChatInterface
应用程序!所以不要犹豫,在您自己的聊天机器人上尝试一下。
❗️ 附加说明 ❗️:从技术上讲,任何公开 api 路由的 gradio 应用程序,只要该路由接受单个字符串并输出单个字符串,都可以部署到 discord。但是 gr.ChatInterface
应用程序自然适合 discord 的聊天功能,因此我们建议您从这些应用程序开始。
感谢 @freddyaboulton!
3f8c210b
- 在 Gallery
组件中实现鼠标左右键点击,并在 Gallery
网格中显示隐式图像。感谢 @hannahblair!dc07a9f9
- 恢复了 @leuryr 的“为音频添加下载按钮” PR。感谢 @abidlabs!44ac8ad0
- 允许设置草图颜色默认值。感谢 @aliabid94!b74f8453
- 为 gr.ChatInterface
添加 additional_inputs
。感谢 @abidlabs!41c83070
- 添加 CSS 重置和说明符,以便与 HF 博客友好协作。感谢 @aliabid94!gr.make_waveform()
中提供参数 animate
(默认为 False
),该参数通过 @dawoodkhan82 在 PR 4918 中动画化叠加的波形show_download_button
参数以允许隐藏静态图像组件中的下载按钮,由 @hannahblair 在 PR 4959 中完成gr.ChatInterface
UI 现在在流式传输时将“提交”按钮转换为“停止”按钮,该按钮可用于暂停生成。由 @abidlabs 在 PR 4971 中完成。border_color_accent_subdued
主题变量,为强调的项目添加柔和的边框颜色。聊天机器人用户消息使用此变量。在 Default
主题中将此变量的值设置为 *primary_200
。由 @freddyaboulton 在 PR 4989 中完成brush_color
。此外,现在在图像上绘制的蒙版略微半透明(蒙版颜色也可以通过 brush_color 设置)。由 @aliabid94 在 PR 4979 中完成cancels
,以便如果在生成器完成之前取消,则事件的后续运行不会从之前的迭代继续,而是从头开始。由 @abidlabs 在 PR 4969 中完成。gr.ChatInterface
中使用 gr.State
以减少延迟,由 @freddyaboulton 在 PR 4976 中完成gr.Interface
的一个 bug,该 bug 导致从处理程序参数推断出的组件标签包含特殊参数,如 gr.Request
或 gr.EventData
。由 @cbensimon 在 PR 4956 中完成components
目录,由 @freddyaboulton 在 PR 4948 中完成引入了新的 gr.ChatInterface
抽象,它允许 Gradio 用户非常轻松地构建功能齐全的聊天界面。唯一必需的参数是聊天函数 fn
,它接受(字符串)用户输入 message
和(列表列表)聊天 history
,并返回(字符串)响应。这是一个玩具示例
import gradio as gr
def echo(message, history):
return message
demo = gr.ChatInterface(fn=echo, examples=["hello", "hola", "merhaba"], title="Echo Bot")
demo.launch()
产生:
以及 /chat
上相应的易于使用的 API
gr.ChatInterface
抽象与各种 LLM 库(如 langchain
)配合良好。有关使用 gr.ChatInterface
的更多示例,请参阅专用指南。团队共同努力,在 PR 4869 中完成
gr.Chatbot()
的文件的超链接,由 @dawoodkhan82 在 PR 4848 中完成gr.Markdown
、gr.Chatbot
、gr.Textbox
(通过 rtl
布尔参数)添加 RTL 支持,并为 gr.Textbox
添加文本对齐(通过字符串 text_align
参数),由 @abidlabs 在 PR 4933 中完成用法示例
with gr.Blocks() as demo:
gr.Textbox(interactive=True, text_align="right")
demo.launch()
with gr.Blocks() as demo:
gr.Markdown("سلام", rtl=True)
demo.launch()
Blocks
的 get_api_info
方法现在支持布局输出组件 @freddyaboulton,在 PR 4871 中完成
添加了对新命令 gradio environment
的支持,以便在如果我们发布一个简单的命令来列出操作系统、gradio 版本以及 gradio/gradio-client 依赖项的版本时,人们可以更轻松地提交错误报告。由 @varshneydevansh 在 PR 4915 中完成。
.change()
事件已在 Video
和 Image
组件中修复,现在仅触发一次,由 @abidlabs 在 PR 4793 中完成。.change()
事件已在 Audio
组件中修复,现在当组件值通过编程方式更新时触发,由 @abidlabs 在 PR 4793 中完成。Row
组件添加了缺失的 display: flex
属性,以便 flex 样式应用于子元素,由 [@hannahblair] 在 PR 4896 中完成。gr.Video
无法预处理 URL 的错误,由 @freddyaboulton 在 PR 4904 中完成。gr.Group
和 container=False
的问题。container
参数仅适用于 Textbox
、Number
和 Dropdown
组件,因为仅在这些元素上有意义。由 @aliabid94 在 PR 4916 中完成。ThemeClass.push_to_hub
自动生成的 app.py
文件中损坏的图片链接,由 @deepkyu 在 PR 4944 中完成。gradio
损坏的可能性,由 @abidlabs 在 PR 4885 中完成。max_size
默认设置为父 Blocks 的 max_thread
。由 @cbensimon 在 PR 4937 中完成。受到 pydantic==2.0
发布的推动,该版本包含破坏性更改,导致大量 Gradio 应用崩溃,我们已锁定许多 gradio 依赖项。请注意,锁定的依赖项可能会导致下游冲突,因此这可能是一个破坏性更改。尽管如此,我们保持了相当宽松的锁定,并且我们期望这种改变能够更好地长期稳定 Gradio 应用。
gr.File
组件的值被另一个事件更改时,change
事件未触发的错误,由 @freddyaboulton 在 PR 4811 中完成。gr.Video
、gr.Audio
、gr.Image
、gr.Chatbot
和 gr.Gallery
组件现在在 Spaces 上部署时包含共享图标。可以通过在组件类中设置 show_share_button
参数来修改此行为。由 @aliabid94 在 PR 4651 中完成。space
、src
和 host
属性,由 @pngwn 在 PR 4461 中完成。api_name
参数现在接受 False
作为值,这意味着它不会显示在命名或未命名的端点中。由 @abidlabs 在 PR 4683 中完成。gr.Video
、gr.Gallery
和 gr.Chatbot
中添加了对 pathlib.Path
的支持,由 sunilkumardash9 在 PR 4581 中完成。info
属性的组件,以便在对其调用 update()
时进行更新。由 @jebarpg 在 PR 4715 中完成。Image
组件的撤消按钮在模式为 mask
或 color-sketch
时正常工作,由 @amyorz 在 PR 4692 中完成。gr.components
中缺失的导入,由 @abidlabs 在 PR 4566 中完成。gr.Gallery
中,如果 height
设置为较大值且 allow_preview=False
,则 select
事件未触发的错误,由 @freddyaboulton 在 PR 4551 中完成。gr.Group
事件中设置 visible=False
不起作用的错误,由 @abidlabs 在 PR 4567 中完成。make_waveform
以使其能够处理包含空格的路径 @akx 在 PR 4570 和 PR 4578 中完成。gr.Audio
和 gr.Video
组件的 stop_recording
事件中发送捕获的数据,由 @freddyaboulton 在 PR 4554 中完成。gr.Gallery
中 height
和 object_fit
参数被忽略的错误,由 @freddyaboulton 在 PR 4576 中完成。AnnotatedImage
的 CSS 样式导致注释蒙版无法正确显示的错误,由 @freddyaboulton 在 PR 4628 中完成。tqdm
构造函数中未指定 iterable
,Progress
组件现在也会显示,由 @itrushkin 在 PR 4475 中完成。plot
参数的弃用警告现在应该仅针对 Image
组件发出,由 @freddyaboulton 在 PR 4709 中完成。type
弃用警告,由 @freddyaboulton 在 PR 4709 中完成。autoplay=True
且视频源动态更新时,Audio 组件的自动播放功能正常工作 @pngwn 在 PR 4705 中完成。gr.Dropdown
组件底部被截断的问题,由 @abidlabs 在 PR 4691 中完成。show_label
导致 gr.Label
组件整个隐藏的错误,由 @freddyaboulton 在 PR 4713 中完成。.git-blame-ignore-revs
,由 @akx 在 PR 4586 中完成。typing.Literal
,由 @freddyaboulton 在 PR 4608 中完成。cleared_value
,因为它在内部不再使用,由 @freddyaboulton 在 PR 4685 中完成。PR 4683 移除了在 PR 4456 中引入的 gr.Interface 中显式命名的端点 “load_examples”。
示例用法
import gradio as gr
with gr.Blocks() as demo:
chatbot = gr.Chatbot([("Hello", "How are you?")])
with gr.Row():
textbox = gr.Textbox(scale=3, interactive=True)
gr.ClearButton([textbox, chatbot], scale=1)
demo.launch()
Video
和 Audio
组件添加了 start_recording
和 stop_recording
事件,由 @pngwn 在 PR 4422 中完成。Video
和 Audio
组件添加了 autoplay
kwarg 参数,由 @pngwn 在 PR 4453 中完成。Gallery
组件添加了 allow_preview
参数,用于控制单击时是否显示详细预览,由 @freddyaboulton 在 PR 4470 中完成。Chatbot
组件添加了 latex_delimiters
参数,用于控制 LaTeX 使用的分隔符,并允许在 Chatbot
中禁用 LaTeX,由 @dawoodkhan82 在 PR 4516 中完成。gr.Warning
和 gr.Info
模态框。只需在您的函数中添加代码 gr.Warning("您的警告消息")
或 gr.Info("您的信息消息")
作为独立行即可。由 @aliabid94 在 PR 4518 中完成。示例
def start_process(name):
gr.Info("Starting process")
if name is None:
gr.Warning("Name is empty")
...
if success == False:
raise gr.Error("Process failed")
<a>
元素中存在相对 URL 时不再崩溃,由 @akx 在 PR 4449 中完成。format='mp4'
会导致上传的视频不可播放时函数出错的错误,由 @freddyaboulton 在 PR 4467 中完成。_js
参数即使在没有后端函数的情况下也能工作的问题,由 @aliabid94 在 PR 4486 中完成。gr.Chatbot()
的换行问题,由 @dawoodkhan82 在 PR 4491 中完成。Label
组件上不起作用的问题,由 @abidlabs 在 PR 4456 中完成。show_label
将不再在 gr.BarPlot.update
中自动设置为 True
,由 @freddyaboulton 在 PR 4531 中完成。gr.BarPlot
的组文本现在支持暗黑模式,由 @freddyaboulton 在 PR 4531 中完成。new Promise()
,由 @akx 在 PR 4442 中完成。mount_gradio_app
时配置 FastAPI 应用,由 @charlesfrye 在 PR4519 中完成。Slider
、CheckboxGroup
、Radio
、Dropdown
组件中 Clear
按钮的行为,由 @abidlabs 在 PR 4456 中完成。Clear 按钮现在将这些组件的值设置为空,而不是开发者设置的原始默认值。这是为了使它们与其余 Gradio 组件保持一致。$
作为 Chatbot
的默认 LaTeX 分隔符,由 @dawoodkhan82 在 PR 4516 中完成。可以使用 Chatbot
中的新参数 latex_delimiters
设置特定的 LaTeX 分隔符。gr.File(file_count='multiple')
无法作为输出缓存的错误,由 @freddyaboulton 在 PR 4421 中完成。/proxy
路由代理的域名,由 @abidlabs 在 PR 4406 中完成。gr.UploadButton
无法用于上传同一文件两次的问题,由 @dawoodkhan82 在 PR 4437 中完成。/proxy
路由的错误,由 @abidlabs 在 PR 4430 中完成。import spaces; spaces.disable_gradio_auto_wrap()
,由 @cbensimon 在 PR 4389 中完成。.style
参数,并将参数移动到构造函数中。为最初在 style 中的所有参数添加了对 .update()
的支持。为每个组件添加了 scale
和 min_width
支持。由 @aliabid94 在 PR 4374 中完成。every
与生成器一起使用,由 @dkjshk 在 PR 4434 中完成。validate_url
以检查 403 错误,并使用 GET 请求代替 HEAD 请求,由 @alvindaiyan 在 PR 4388 中完成。gradio deploy
,可以直接从您的终端将 Gradio 应用部署到 Spaces。由 @aliabid94 在 PR 4033 中完成。show_progress='corner'
参数,该参数不会用进度动画覆盖输出组件,而是在组件的角落显示进度。由 @aliabid94 在 PR 4396 中完成。Blocks.load
的行为类似于其他事件监听器(允许在其后链接 then
),由 @anentropic 在 PR 4304 中完成。gr.Interface
的输出组件中遵守 interactive=True
,由 @abidlabs 在 PR 4356 中完成。/file
路由中的路径遍历漏洞,由 @abidlabs 在 PR 4370 中完成。/proxy
路由将 HF token 发送到其他域,由 @abidlabs 在 PR 4368 中完成。gr.Chatbot()
的默认 markedjs
清理函数替换为 DOMPurify 清理器,由 @dawoodkhan82 在 PR 4360 中完成。Interface.launch()
和 Blocks.launch()
现在接受 app_kwargs
参数,以允许自定义底层 FastAPI 应用的配置,由 @akx 在 PR 4282 中完成。gr.Examples
中 run_on_click
参数的行为,由 @abidlabs 在 PR 4258 中完成。initial_height
属性,由 @whitphx 在 PR 4223 中完成。mount_css
函数以移除循环依赖,由 @whitphx 在 PR 4222 中完成。gr.Chatbot()
中添加前端 LaTeX 支持,使用 KaTeX
库,由 @dawoodkhan82 在 PR 4285 中完成。gradio app.py
) 现在可以接受命令行参数,由 @micky2be 在 PR 4119 中完成。Audio
组件添加了 format
参数,由 @freddyaboulton 在 PR 4178 中完成。chatbot_dialogpt
演示,由 @dawoodkhan82 在 PR 4238 中完成。gr.Chatbot()
的 Markdown 解析更改为使用 marked
库和 prism
的前端解析,由 @dawoodkhan82 在 PR 4150 中完成。Image
组件生成的 numpy 数组形状的文档,由 @der3318 在 PR 4204 中完成。launch()
添加了 root_path
参数,允许在代理后面的子路径(例如 www.example.com/app)上运行 Gradio 应用程序,由 @abidlabs 在 PR 4133 中完成。.input
事件监听器,该监听器仅在用户更改组件值时触发(与 .change
相比,.change
也在组件因函数触发而更新时触发),由 @aliabid94 在 PR 4157 中完成。gr.File(file_count='multiple')
输出组件的语言无关类型信息,由 @freddyaboulton 在 PR 4153 中完成。/info
路由中返回语言无关类型,由 @freddyaboulton 在 PR 4039 中完成。gr.Slider
release
事件的错误,由 @space-nuko 在 PR 4098 中完成/info
路由中移除多余的 State
组件信息,由 @abidlabs 在 PR 4107 中完成zh-cn.json
重命名为 zh-CN.json
,由 @abidlabs 在 PR 4086 中完成gr.Code()
组件中的缩进问题,由 @dawoodkhan82 在 PR 4043 中完成visual-question-answering
、document-question-answering
和 image-to-text
的支持,使用 gr.Interface.load("models/...")
和 gr.Interface.from_pipeline
,由 @osanseviero 在 PR 3887 中完成gr.Chatbot()
中添加了代码块支持,由 @dawoodkhan82 在 PR 4048 中完成Agg
时 matplotlib
无法正确渲染的问题,由 @abidlabs 在 PR 4029 中完成gr.State
时不起作用的错误,由 @abidlabs 在 PR 4030 中完成gr.HuggingFaceDatasetSaver
行为在内部发生了变化。使用时,flagging/
文件夹不再是 .git/
文件夹。现在忽略 organization
参数,而支持将完整的 dataset id 作为 dataset_name
传递(例如 "username/my-dataset"
)。\n
) 不再自动转换为 <br>
在 gr.Markdown()
或 gr.Chatbot()
中。对于多个换行符,开发人员必须添加多个 <br>
标签。gr.Image
草图模式中添加了“清除蒙版”按钮,由 @space-nuko 在 PR 3615 中完成gr.Video()
无法在 gr.Tab()
内工作的问题,由 @dawoodkhan82 在 PR 3891 中完成gr.Gallery()
中设置高度导致图像纵横比崩溃的问题,由 @dawoodkhan82 在 PR 3830 中完成[PR 3895](https://github.com/gradio-app/gradio/pull/3895)
中完成。[PR 3895](https://github.com/gradio-app/gradio/pull/3895)
中完成。Status
枚举中的类型错误,由 @10zinten 在 PR 3931 中完成gr.ChatBot
处理图像 URL 的问题,tye-singwa 在 PR 3953 中完成gr
的使用保持一致,由 @duerrsimon 在 PR 3901 中完成gr.themes.builder()
时的错误,由 @deepkyu 在 PR 3869 中完成gradio.Blocks()
中使用 _js
加载自定义 JS 并将 outputs
设置为 None
时出现的 JavaScript TypeError,由 @DavG25 在 PR 3883 中完成新的 AnnotatedImage 组件允许用户高亮图像区域,可以通过提供边界框或 0-1 像素蒙版来实现。此组件对于图像分割、对象检测和图像描述等任务非常有用。
示例用法
with gr.Blocks() as demo:
img = gr.Image()
img_section = gr.AnnotatedImage()
def mask(img):
top_left_corner = [0, 0, 20, 20]
random_mask = np.random.randint(0, 2, img.shape[:2])
return (img, [(top_left_corner, "left corner"), (random_mask, "random")])
img.change(mask, img, img_section)
有关完整示例,请参阅 image_segmentation 演示。由 @aliabid94 在 PR 3836 中完成
Video
组件支持字幕(path_to_video, path_to_subtitles)
的元组。支持 .srt
和 .vtt
格式with gr.Blocks() as demo:
gr.Video(("video.mp4", "captions.srt"))
gr.Chatbot()
组件中的代码 Markdown 支持,由 @dawoodkhan82 在 PR 3816 中完成更新了 Gradio 应用中的“查看 API”页面,以使用 gradio_client
库,由 @aliabd 在 PR 3765 中完成
在此处阅读更多关于如何使用 gradio_client
库的信息:https://gradio.app/getting-started-with-the-python-client/
改进了事件处理程序的输入/输出数量不匹配时的错误消息,由 @space-nuko 在 PR 3519 中完成
为 Images 添加了 select
监听器,允许用户点击图像的任何部分并获取点击的坐标,由 @aliabid94 在 PR 3786 中完成。
with gr.Blocks() as demo:
img = gr.Image()
textbox = gr.Textbox()
def select_handler(img, evt: gr.SelectData):
selected_pixel = img[evt.index[1], evt.index[0]]
return f"Selected pixel: {selected_pixel}"
img.select(select_handler, img, textbox)
gr.Gallery()
组件的 style()
中添加了指定 rows
、columns
和 object-fit
的功能,由 @dawoodkhan82 在 PR 3586 中完成file_count='multiple'
情况的错误,由 @freddyaboulton 在 PR 3782 中完成select
事件的问题。由 @yiyuezhuo 在 PR 3861 中完成在 Slider 数字输入被释放或失去焦点时触发 release 事件,由 @freddyaboulton 在 PR 3589 中完成
创建了主题构建器,允许用户在不编写任何代码的情况下创建主题,由 @aliabid94 在 PR 3664 中完成。通过以下方式启动
import gradio as gr
gr.themes.builder()
Dropdown
组件现在有一个 allow_custom_value
参数,允许用户键入不在原始选项列表中的自定义值。
Colorpicker
组件现在有一个 .blur()
事件
由 @freddyaboulton 在 PR 3581 中完成。
Chatbot
和 Image
组件,以便在处理期间传递的文件被添加到可以从中提供服务的目录中,由 @abidlabs 在 PR 3523 中完成huggingface_hub
发送遥测数据,@dawoodkhan82 在 PR 3488 中完成gr.load()
加载并应用上游主题,由 @abidlabs 在 PR 3641 中完成lines
设置为大于 20 时文本框收缩的错误,由 @dawoodkhan82 在 PR 3637 中完成gr.Dataframe
值,由 @space-nuko 在 PR 3646 中完成gr.Image
未填充整个元素大小的问题,由 @space-nuko 在 PR 3649 中完成gr.Code
支持 lines
属性,由 @space-nuko 在 PR 3651 中完成_js
返回值被双重包装在数组中的问题,由 @space-nuko 在 PR 3594 中完成gr.File
组件的文档,声明其预处理方法将上传的文件转换为临时文件,由 @RussellLuo 在 PR 3660 中完成gr.Progress
的问题,由 @space-nuko 在 PR 3671 中完成gr.Dropdown
单选模式下隐藏“移除全部”按钮,由 @space-nuko 在 PR 3678 中完成gr.Dropdown
中除了选定项之外的项目也收到复选标记的问题,由 @space-nuko 在 PR 3644 中完成gr.Dropdown
的多个问题并提高了可用性,由 @space-nuko 在 PR 3705 中完成HuggingFaceDatasetJSONSaver
的文档,由 @osanseviero 在 PR 3604 中完成Audio
和 State
组件的文档进行了一些添加,并修复了 pictionary
演示,由 @abidlabs 在 PR 3611 中完成ruff
,由 @akx 在 PR 3710 中完成orig_name
,以便前端可以为下载的视频文件设置正确的名称,由 @freddyaboulton 在 PR 3700 中完成创建主题后,您可以将其上传到 HuggingFace Hub,让其他人查看、使用和在其基础上构建!您还可以下载、重用和混搭其他人的主题。有关更多详细信息,请参阅 https://gradio.app/theming-guide/。
由 @freddyaboulton 在 PR 3428 中完成
gr.Code()
组件中所有代码行的前导空格。由 @abidlabs 在 PR 3556 中完成Gradio 现在支持新的主题系统,允许您自定义应用的外观和感觉。您现在可以使用 theme=
kwarg 传入预构建的主题,或自定义您自己的主题!有关更多详细信息,请参阅 https://gradio.app/theming-guide/。由 @aliabid94 在 PR 3470 和 PR 3497 中完成
elem_classes
向组件添加了关键字参数 elem_classes
,以控制组件的类名,方式与现有的 elem_id
相同。由 @aliabid94 在 PR 3466 中完成
gr.Request
对象在嵌套键无法转换为变量名时无法处理字典的问题 #3454,由 @radames 在 PR 3459 中完成pyright==1.1.298
固定,由 @abidlabs 在 PR 3475 中完成IOComponent.add_interactive_to_config()
,由 @space-nuko 在 PR 3476 中完成IOComponent.generate_sample()
,由 @space-nuko 在 PR 3475 中完成您现在可以与世界分享您的 gradio 主题!
创建主题后,您可以将其上传到 HuggingFace Hub,让其他人查看、使用和在其基础上构建!
有两种方法可以上传主题:通过主题类实例或命令行。
my_theme.push_to_hub(repo_name="my_theme",
version="0.2.0",
hf_token="...")
首先将主题保存到磁盘
my_theme.dump(filename="my_theme.json")
然后使用 upload_theme
命令
upload_theme\
"my_theme.json"\
"my_theme"\
"0.2.0"\
"<hf-token>"
version
必须是有效的 语义版本 字符串。
这将在 huggingface hub 上创建一个空间来托管主题文件,并向潜在用户展示您的主题预览。
示例主题空间在这里:https://hugging-face.cn/spaces/freddyaboulton/dracula_revamped
要使用 hub 中的主题,请在 ThemeClass
上使用 from_hub
方法并将其传递给您的应用
my_theme = gr.Theme.from_hub("freddyaboulton/my_theme")
with gr.Blocks(theme=my_theme) as demo:
....
您也可以将主题字符串直接传递给 Blocks
或 Interface
(gr.Blocks(theme="freddyaboulton/my_theme")
)
您可以使用语义版本控制表达式将您的应用固定到上游主题版本。
例如,以下代码将确保我们从 my_theme
仓库加载的主题版本介于 0.1.0
和 0.2.0
之间
with gr.Blocks(theme="freddyaboulton/my_theme@>=0.1.0,<0.2.0") as demo:
....
由 @freddyaboulton 在 PR 3428 中完成
新的代码组件允许您输入、编辑和显示代码,并具有完整的语法高亮显示,由 @pngwn 在 PR 3421 中完成
Chatbot
组件现在支持音频、视频和图像Chatbot
组件现在支持音频、视频和图像,语法简单:只需传入一个包含 URL 或文件路径的元组(元组的第二个可选元素是 alt 文本),图像/音频/视频将显示
gr.Chatbot([
(("driving.mp4",), "cool video"),
(("cantina.wav",), "cool audio"),
(("lion.jpg", "A lion"), "cool pic"),
]).style(height=800)
注意:以前通过 Markdown 语法支持图像,为了向后兼容,仍然支持该语法。由 @dawoodkhan82 在 PR 3413 中完成
允许使用 .then
和 .success
进行连续函数触发,由 @aliabid94 在 PR 3430 中完成
.select()
事件监听器,其中还包括事件数据,这些数据可以作为类型提示为 gr.SelectData
的函数的参数传递。以下组件支持 .select()
事件监听器:Chatbot、CheckboxGroup、Dataframe、Dropdown、File、Gallery、HighlightedText、Label、Radio、TabItem、Tab、Textbox。用法示例import gradio as gr
with gr.Blocks() as demo:
gallery = gr.Gallery(["images/1.jpg", "images/2.jpg", "images/3.jpg"])
selected_index = gr.Textbox()
def on_select(evt: gr.SelectData):
return evt.index
gallery.select(on_select, None, selected_index)
由 @aliabid94 在 PR 3399 中完成
huggingface_hub
发送关于 interface
和 blocks
的遥测数据;最终取代 segment,由 @dawoodkhan82 在 PR 3342 中完成generic_update
的就地更新,由 @gitgithan 在 PR 3405 中完成,以修复 #3282utils.py
中导入 BlockContext
导致的错误,由 @freddyaboulton 在 PR 3424 中完成generic_update
的就地更新,由 @gitgithan 在 PR 3405 中完成,以修复 #3282JSON
组件进行了一些修复(show_label 参数、图标),在 @abidlabs 在 PR 3451 中完成gr.Chatbot()
组件的样式中添加了 height
kwarg,由 @dawoodkhan82 在 PR 3369 中完成chatbot = gr.Chatbot().style(height=500)
现在,您可以在滑块释放时而不是每次滑块值更改时触发 Python 函数运行!
只需在滑块上使用 release
方法即可
slider.release(function, inputs=[...], outputs=[...], api_name="predict")
由 @freddyaboulton 在 PR 3353 中完成
标准下拉菜单组件现在支持搜索选项。此外,当 multiselect
为 True
时,您可以指定 max_choices
来设置用户可以从下拉菜单组件中选择的最大选项数。
gr.Dropdown(label="Choose your favorite colors", choices=["red", "blue", "green", "yellow", "orange"], multiselect=True, max_choices=2)
由 @dawoodkhan82 在 PR 3211 中完成
输出图像现在将自动显示下载按钮,以便更轻松地保存和分享机器学习艺术模型的结果。
由 @freddyaboulton 在 PR 3297 中完成
interactive=False
,为 gr.Button
组件添加了禁用模式,由 @abidlabs 在 PR 3266 和 PR 3288 中完成flagging_options
显示文本和保存标记的功能,由 @abidlabs 在 PR 3289 中完成Image
组件设置 brush_radius
,既可以作为默认值,也可以通过 Image.update()
设置,由 @pngwn 在 PR 3277 中完成info=
参数,以便为用户提供额外的上下文,由 @aliabid94 在 PR 3291 中完成.username
属性从 gr.Request()
对象访问已登录用户的用户名,由 @abidlabs 在 PR 3296 中完成Gallery.style
添加了 preview
选项,以便在首次加载时以预览模式启动画廊,由 @freddyaboulton 在 PR 3345 中完成mirror_webcam
始终被遵守,由 @pngwn 在 PR 3245 中完成initial_height
,在加载完成后,以便嵌入在其加载后找到其自然高度,@pngwn 在 PR 3292 中完成shape
参数,由 @pngwn 在 PR 3277 中完成Dropdown
的值设置为 []
并在下拉菜单上添加 change 事件导致无限循环的错误,由 @freddyaboulton 在 PR 3295 中完成Gallery.style
中设置的 height
未被前端遵守的错误,由 @freddyaboulton 在 PR 3343 中完成gr.Dropdown(Multiselect=True)
的初始空值为一个空列表,而 gr.Dropdown(Multiselect=False)
的初始值为空字符串,由 @pngwn 在 PR 3338 中完成analytics_enabled=True
创建 gradio 应用时,Google Analytics 工作正常,由 @abidlabs 在 PR 3349 中完成types
字段,由 @freddyaboulton 在 PR 3315 中完成gr.BarPlot
组件从 Supabase 数据设置仪表板的指南,由 @abidlabs 在 PR 3275 中完成chatbot.style(color_map=)
设置,由 [@aliabid94] 在 PR 3370 中完成当将 spaces 托管的 gradio 应用作为 Web 组件嵌入时,您现在可以获得改进的 UI,链接回原始 space,更好的错误处理和更智能的加载性能。您的代码无需任何更改即可从这种增强的体验中受益;只需将您的 gradio SDK 升级到最新版本即可。
此行为是可配置的。您可以通过传递 info="false"
来禁用底部的信息面板。您可以通过传递 container="false"
来完全禁用容器。
错误状态在 UI 中报告,最终用户可以通过该 Hugginface space 的社区选项卡轻松地向原始 space 作者报告问题
默认情况下,gradio 应用是延迟加载的,大大提高了页面上有多个演示程序时的性能。元数据会提前加载,但 space 只会在可见时加载和渲染。
此行为是可配置的。您可以传递 eager="true"
来加载和渲染 space,无论它当前是否在屏幕上。
gr.BarPlot
组件! 📊使用 gr.BarPlot
从高级界面创建交互式条形图。不再需要记住 matplotlib 语法了!
示例用法
import gradio as gr
import pandas as pd
simple = pd.DataFrame({
'a': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],
'b': [28, 55, 43, 91, 81, 53, 19, 87, 52]
})
with gr.Blocks() as demo:
gr.BarPlot(
simple,
x="a",
y="b",
title="Simple Bar Plot with made up data",
tooltip=['a', 'b'],
)
demo.launch()
由 @freddyaboulton 在 PR 3157 中完成
修复了阻止 bokeh 图表在前台显示的问题,并扩展了对 bokeh 2.x 和 3.x 版本的支持!
由 @freddyaboulton 在 PR 3212 中完成
None
指定为第二个值,以从 “机器人” 侧在聊天机器人中添加单个消息。gr.Chatbot([("Hi, I'm DialoGPT. Try asking me a question.", None)])
由 @dawoodkhan82 在 PR 3165 中完成
gr.utils.delete_none
,使其仅从配置中删除值是 None
的属性,由 @abidlabs 在 PR 3188 中完成change
事件,由 @freddyaboulton 在 PR 3195 中完成clear
事件,由 @freddyaboulton 在 PR 3218 中完成File
组件或 UploadButton
组件包含 file_types
参数以及 file_count=="dir"
时),由 @abidlabs 在 PR 3194 中完成gr.Interface.load()
加载模型并且查询 HF API 时出现错误时,会引发 gr.Error
而不是常规 Python 错误,由 @abidlabs 在 PR 3194 中完成如果您的 Interface 函数是一个生成器,则在 “提交” 按钮旁边会显示一个单独的 “停止” 按钮。
我们改进了 “提交” 按钮,使其在生成过程中变成 “停止” 按钮。单击 “停止” 按钮将取消生成并将其变回 “提交” 按钮。如果您不使用 “停止” 按钮,它将在生成结束时自动变回 “提交” 按钮!
由 @freddyaboulton 在 PR 3124 中完成
您现在可以在 if __name__ == "__main__"
块之外在您的 demo
上调用 queue
,并使用 gradio
命令在重新加载模式下运行脚本。
对 app.py
文件的任何更改都将自动反映在网页中,并且队列将正常工作!
由 @freddyaboulton 在 PR 3089 中完成
demo = gr.Interface(...)
demo.launch(
file_directories=["/var/lib/demo/path/to/resources"]
)
由 @maxaudron 在 PR 3075 中完成
Column
)一起使用,由 @abidlabs 在 PR 3123 中完成%%blocks
jupyter notebook magic 命令启动 Interface
时,添加了警告,由 @freddyaboulton 在 PR 3126 中完成launch
中的参数将不会被遵守,例如 gradio
命令,由 @freddyaboulton 在 PR 3089 中完成equal_height
参数应传递给 gr.Row()
的 .style()
方法,由 @freddyaboulton 在 PR 3125 中完成fake_diffusion
演示程序的最终图像的 URL,由 @freddyaboulton 在 PR 3120 中完成以前通过 iOS 上传的照片在处理后会被旋转。这个问题已由 @freddyaboulton 在 PR 3089 中修复
######### 之前
######### 之后
在 Kaggle kernels(notebooks)上运行时,将自动创建共享链接,以便正确显示前端。
由 @freddyaboulton 在 PR 3101 中完成
Gallery.style(grid=...)
,由 @aliabd 在 PR 3107 中完成markdown-it-py
版本设置为 2.0.0
,以便 dollar math 插件兼容,由 @freddyaboulton 在 PR 3102 中完成您现在可以从 hub 加载 image-to-text
和 conversational
pipelines!
io = gr.Interface.load("models/nlpconnect/vit-gpt2-image-captioning",
api_key="<optional-api-key>")
io.launch()
chatbot = gr.Interface.load("models/microsoft/DialoGPT-medium",
api_key="<optional-api-key>")
chatbot.launch()
由 @freddyaboulton 在 PR 3011 中完成
不再需要额外的文件输出组件来启用 model3d 文件下载。我们现在在 model3d 组件本身中添加了一个下载按钮。
由 @dawoodkhan82 在 PR 3014 中完成
Spaces 上的身份验证现在可以工作了!您的浏览器必须启用第三方 Cookie 才能登录。某些浏览器默认禁用第三方 Cookie(Safari、Chrome 隐身模式)。
/file/
路由huggingface_hub
中已弃用参数相关的错误,在 PR 3025 中完成closed
应用后队列未正确重启的错误,由 @freddyaboulton 在 PR 3022 中完成gr.File
或 gr.UploadButton
的 file_types
参数不是列表,应用会崩溃的错误,由 @freddyaboulton 在 PR 3048 中完成UploadButton
的输入组件在前台未隐藏的错误,由 @freddyaboulton 在 PR 3053 中完成blocks_kinematics
演示程序使用了 gr.LinePlot
,由 @freddyaboulton 在 PR 2998 中完成interface_series_load
以包含一些内联 markdown 代码,由 @abidlabs 在 PR 3051 中完成mount_gradio_app
将无法启动的错误,由 @freddyaboulton 在 PR 2939 中完成blocks_plug
演示中阻止使用 python 以编程方式切换选项卡的 bug,由 @TashaSkyUp 在 PR 2971 中修复。gr.Progress
参数来发送自定义进度更新。示例def reverse(word, progress=gr.Progress()):
progress(0, desc="Starting")
time.sleep(1)
new_string = ""
for letter in progress.tqdm(word, desc="Reversing"):
time.sleep(0.25)
new_string = letter + new_string
return new_string
demo = gr.Interface(reverse, gr.Text(), gr.Text())
进度指示器条,由 @aliabid94 在 PR 2750 中添加。
TabbedInterface
添加了 title
参数,由 @MohamedAliRashad 在 #2888 中添加gr.File
和 gr.UploadButton
指定文件扩展名的支持,使用 file_types
参数(例如 gr.File(file_count="multiple", file_types=["text", ".json", ".csv"])
),由 @dawoodkhan82 在 #2901 中添加Dropdown
添加了 multiselect
选项,由 @dawoodkhan82 在 #2871 中添加multiselect
设置为 true
时,用户现在可以从 gr.Dropdown
组件中选择多个选项。gr.Dropdown(["angola", "pakistan", "canada"], multiselect=True, value=["angola"])
default_enabled=False
导致整个队列无法启动的 bug,由 @freddyaboulton 在 PR 2876 中修复。blocks_style
演示中阻止其启动的 bug,由 @freddyaboulton 在 PR 2890 中修复。DataFrame
和 LinePlot
组件的实时仪表板的指南,由 @abidlabs 在 PR 2816 中添加。Blocks.queue
方法的 default_enabled
参数无效,由 @freddyaboulton 在 PR 2876 中修复。Gradio 最新的绘图组件 gr.LinePlot
!📈
使用此组件,您可以轻松地为您的演示和仪表板创建具有可自定义外观的时间序列可视化…所有这些都无需了解外部绘图库。
有关 api 的示例,请参见下文
gr.LinePlot(stocks,
x="date",
y="price",
color="symbol",
color_legend_position="bottom",
width=600, height=400, title="Stock Prices")
由 @freddyaboulton 在 PR 2807 中添加。
Examples
组件的 examples_per_page
参数未传递到内部 Dataset
组件的 bug,由 @freddyaboulton 在 PR 2861 中修复。gr.Interface()
中 allow_flagging="auto"
时的标记问题,由 @abidlabs 在 PR 2695 中修复。gr.CheckboxGroup
会导致整个应用程序崩溃的 bug,由 @freddyaboulton 在 PR 2866 中修复。[@aliencaocao](https://github.com/aliencaocao)
在 [PR 2846](https://github.com/gradio-app/gradio/pull/2846)
中修复gr.ScatterPlot
设置 x_lim
、y_lim
和图例位置的功能,由 @freddyaboulton 在 PR 2807 中添加。添加了 gr.make_waveform()
函数,该函数通过组合音频和可选的背景图像来创建波形视频,由 @dawoodkhan82 和 @aliabid94 在 [PR 2706](https://github.com/gradio-app/gradio/pull/2706) 中添加。有助于使音频输出更易于共享。
every
参数当组件的初始值是一个函数时,every
参数每 every
秒重新运行该函数。由 @abidlabs 在 PR 2806 中添加。这是一个代码示例
import gradio as gr
with gr.Blocks() as demo:
df = gr.DataFrame(run_query, every=60*60)
demo.queue().launch()
*无突出显示更改。
将基于 ssh 端口转发的隧道逻辑替换为基于 frp
的隧道逻辑,由 XciD 和 Wauplin 在 PR 2509 中完成。
您无需进行任何不同的操作,但是当您在 launch()
中设置 share=True
时,您将收到此消息和一个看起来略有不同的公共链接
Setting up a public link... we have recently upgraded the way public links are generated. If you encounter any problems, please downgrade to gradio version 3.13.0
.
Running on public URL: https://bec81a83-5b5c-471e.gradio.live
这些链接是创建可共享演示的更安全和可扩展的方式!
gr.Dataframe()
接受包含 numpy 数组和其他类型的 pandas.DataFrame
作为其初始值,由 @abidlabs 在 PR 2804 中添加。altair
添加到 requirements.txt,由 @freddyaboulton 在 PR 2811 中添加。templates.py
类中参数 visible
的拼写错误,由 @abidlabs 在 PR 2805 中修复。https://api.ipify.org
切换到 https://checkip.amazonaws.com/
,由 @abidlabs 在 PR 2810 中完成。templates.py
类中参数 visible
的拼写错误,由 @abidlabs 在 PR 2805 中修复。https://api.ipify.org
切换到 https://checkip.amazonaws.com/
,由 @abidlabs 在 PR 2810 中完成。现在可以在 Gradio 中原生创建散点图了!
gr.ScatterPlot
组件接受 pandas dataframe 和一些可选的配置参数,并将自动为您创建图表!
这是 Gradio 中许多原生绘图组件中的第一个!
有关如何使用 gr.ScatterPlot
的示例,请参见下文
import gradio as gr
from vega_datasets import data
cars = data.cars()
with gr.Blocks() as demo:
gr.ScatterPlot(show_label=False,
value=cars,
x="Horsepower",
y="Miles_per_Gallon",
color="Origin",
tooltip="Name",
title="Car Data",
y_title="Miles per Gallon",
color_legend_title="Origin of Car").style(container=False)
demo.launch()
由 @freddyaboulton 在 PR 2764 中添加。
Plot
组件现在可以接受 altair 图表作为值!只需从您的事件侦听器返回 altair 图表,gradio 将在前端显示它。请参见下面的示例
import gradio as gr
import altair as alt
from vega_datasets import data
cars = data.cars()
chart = (
alt.Chart(cars)
.mark_point()
.encode(
x="Horsepower",
y="Miles_per_Gallon",
color="Origin",
)
)
with gr.Blocks() as demo:
gr.Plot(value=chart)
demo.launch()
由 @freddyaboulton 在 PR 2741 中添加。
Label
组件现在接受 color
参数,由 @freddyaboulton 在 PR 2736 中添加。 color
参数应该是有效的 css 颜色名称或十六进制字符串。您可以使用 gr.Label.update
更新颜色!
这使您可以使用 Label
组件创建 Alert 和 Warning 框。请参见下文
import gradio as gr
import random
def update_color(value):
if value < 0:
# This is bad so use red
return "#FF0000"
elif 0 <= value <= 20:
# Ok but pay attention (use orange)
return "#ff9966"
else:
# Nothing to worry about
return None
def update_value():
choice = random.choice(['good', 'bad', 'so-so'])
color = update_color(choice)
return gr.Label.update(value=choice, color=color)
with gr.Blocks() as demo:
label = gr.Label(value=-10)
demo.load(lambda: update_value(), inputs=None, outputs=[label], every=1)
demo.queue().launch()
添加巴西葡萄牙语翻译 (pt-BR.json),由 @pstwh 在 PR 2753 中添加。
gr.Blocks().load()
,由 @abidlabs 在 PR 2755 中添加。Chatbot
组件现在支持 Markdown 的子集(包括粗体、斜体、代码、图像)您现在可以将一些 Markdown 传递到 Chatbot 组件,它将显示出来,这意味着您也可以传入图像!由 @abidlabs 在 PR 2731 中添加
这是一个简单的示例,引用了与 Python 脚本在同一文件夹中的本地图像 lion.jpg
import gradio as gr
with gr.Blocks() as demo:
gr.Chatbot([("hi", "hello **abubakar**"), ("", "cool pic")])
demo.launch()
要查看更实际的示例,请参见新的演示 /demo/chatbot_multimodal/run.py
。
为 gr.Markdown 添加了 mathtext(latex 的子集)支持。由 @kashif 和 @aliabid94 在 PR 2696 中添加。
如何使用的示例
gr.Markdown(
r"""
# Hello World! $\frac{\sqrt{x + y}}{4}$ is today's lesson.
""")
您现在可以使用 gr.Accordion.update
更新 Accordion 的 label
和 open
状态,由 @freddyaboulton 在 PR 2690 中添加
import gradio as gr
with gr.Blocks() as demo:
with gr.Accordion(label="Open for greeting", open=False) as accordion:
gr.Textbox("Hello!")
open_btn = gr.Button(value="Open Accordion")
close_btn = gr.Button(value="Close Accordion")
open_btn.click(
lambda: gr.Accordion.update(open=True, label="Open Accordion"),
inputs=None,
outputs=[accordion],
)
close_btn.click(
lambda: gr.Accordion.update(open=False, label="Closed Accordion"),
inputs=None,
outputs=[accordion],
)
demo.launch()
File
组件可以正确地将文件预处理为“binary”字节字符串格式的 bug,由 CoffeeVampir3 在 PR 2727 中修复。include_audio
选项。当 True
时,对于 source="webcam"
,这将记录音频和视频,对于 source="upload"
,这将保留上传视频中的音频,由 @mandargogate 在 PR 2721 中添加现在有一个名为 UploadButton
的新组件,它是一个按钮形式的文件上传组件!您还可以列表的形式指定它应接受的文件类型(例如:image
、video
、audio
、text
或通用 file
)。由 @dawoodkhan82 在 PR 2591 中添加。
如何使用的示例
import gradio as gr
def upload_file(files):
file_paths = [file.name for file in files]
return file_paths
with gr.Blocks() as demo:
file_output = gr.File()
upload_button = gr.UploadButton("Click to Upload a File", file_types=["image", "video"], file_count="multiple")
upload_button.upload(upload_file, upload_button, file_output)
demo.launch()
新的 API 文档页面,带有浏览器内 playground 和更新的美观性。@gary149 在 PR 2652 中完成
以前我们的登录页面有自己的 CSS,没有暗黑模式,并且在凭据错误时有一个难看的 json 消息。使页面在美观上更一致,添加了暗黑模式支持,以及更友好的错误消息。@aliabid94 在 PR 2684 中完成
您现在可以直接在您的 Python 函数中访问 Request 对象,由 @abidlabs 在 PR 2641 中添加。这意味着您可以访问请求标头、客户端 IP 地址等等。为了使用它,请向您的函数添加一个参数并将其类型提示设置为 gr.Request
。这是一个简单的例子
import gradio as gr
def echo(name, request: gr.Request):
if request:
print("Request headers dictionary:", request.headers)
print("IP address:", request.client.host)
return name
io = gr.Interface(echo, "textbox", "textbox").launch()
https://user-images.githubusercontent.com/9021060/202878400-cb16ed47-f4dd-4cb0-b2f0-102a9ff64135.mov
gr.Interface.load()
的警告和错误消息,由 @abidlabs 在 PR 2694 中完成。Textbox
添加了对 'password'
和 'email'
类型的支持。@pngwn 在 PR 2653 中添加type
不是 “text”、“email” 或 “password”,gr.Textbox
组件现在将引发异常。@pngwn 在 PR 2653 中添加。这将导致使用已弃用的 gr.Textbox(type="number")
的演示引发异常。gr.Interface.load
加载的 bug,由 @freddyaboulton PR 2640 中修复interactive
属性无法更新的 bug,由 @freddyaboulton 在 PR 2639 中修复。pd.read_sql
而不是低级 postgres 连接器,由 @freddyaboulton 在 PR 2604 中完成。gr.Templates
接受参数以覆盖默认值,由 @abidlabs 在 PR 2600 中添加。type
或 source
的无效参数(对于接受这些参数的组件)构造组件,则组件现在会抛出 ValueError()
,在 PR 2610 中添加当您使用 gr.Blocks.load
加载上游应用程序时,您现在可以使用 api_name
参数指定要调用的 fn。
import gradio as gr
english_translator = gr.Blocks.load(name="spaces/gradio/english-translator")
german = english_translator("My name is Freddy", api_name='translate-to-german')
api_name
参数将优先于 fn_index
参数。
gr.Blocks.load()
现在可以正确加载来自 Spaces 的示例文件 @abidlabs 在 PR 2594 中完成api_name
添加到 Blocks.__call__
,由 @freddyaboulton 在 PR 2593 中添加。Gradio 现在支持在固定的时间表上连续运行事件的功能。要使用此功能,请将 every=# of seconds
传递给事件定义。这将每给定的秒数运行一次事件!
这可以用于
这是一个每半秒刷新一次的实时图表的示例
import math
import gradio as gr
import plotly.express as px
import numpy as np
plot_end = 2 * math.pi
def get_plot(period=1):
global plot_end
x = np.arange(plot_end - 2 * math.pi, plot_end, 0.02)
y = np.sin(2*math.pi*period * x)
fig = px.line(x=x, y=y)
plot_end += 2 * math.pi
return fig
with gr.Blocks() as demo:
with gr.Row():
with gr.Column():
gr.Markdown("Change the value of the slider to automatically update the plot")
period = gr.Slider(label="Period of plot", value=1, minimum=0, maximum=10, step=1)
plot = gr.Plot(label="Plot (updates every half second)")
dep = demo.load(get_plot, None, plot, every=0.5)
period.change(get_plot, period, plot, every=0.5, cancels=[dep])
demo.queue().launch()
queue
和 auth
,由 @freddyaboulton 在 PR 3089 中完成every
关键字,该关键字按固定的时间表运行事件,由 @freddyaboulton 在 PR 2512 中添加。Gradio 现在支持传递批处理函数的功能。批处理函数只是接受输入列表并返回预测列表的函数。
例如,这是一个批处理函数,它接受两个输入列表(单词列表和整数列表),并返回修剪后的单词列表作为输出
import time
def trim_words(words, lens):
trimmed_words = []
time.sleep(5)
for w, l in zip(words, lens):
trimmed_words.append(w[:l])
return [trimmed_words]
使用批处理函数的优点是,如果您启用队列,Gradio 服务器可以自动批处理传入的请求并并行处理它们,从而可能加快您的演示速度。这是 Gradio 代码的样子(请注意 batch=True
和 max_batch_size=16
— 这两个参数都可以传递到事件触发器或 Interface
类中)
import gradio as gr
with gr.Blocks() as demo:
with gr.Row():
word = gr.Textbox(label="word", value="abc")
leng = gr.Number(label="leng", precision=0, value=1)
output = gr.Textbox(label="Output")
with gr.Row():
run = gr.Button()
event = run.click(trim_words, [word, leng], output, batch=True, max_batch_size=16)
demo.queue()
demo.launch()
在上面的示例中,可以并行处理 16 个请求(总推断时间为 5 秒),而不是单独处理每个请求(总推断时间为 80 秒)。
Video
、Audio
、Image
和 File
组件现在支持 upload()
事件,该事件在用户将文件上传到这些组件中的任何一个时触发。
示例用法
import gradio as gr
with gr.Blocks() as demo:
with gr.Row():
input_video = gr.Video()
output_video = gr.Video()
# Clears the output video when an input video is uploaded
input_video.upload(lambda : None, None, output_video)
/api
端点的请求跳过队列(如果为该事件启用了队列),由 @freddyaboulton 在 PR 2493 中完成。cancels
的 bug,以便在渲染多个 Blocks 时可以正常工作,由 @abidlabs 在 PR 2530 中修复。share=True
时出现的错误消息,由 @abidlabs 在 PR 2502 中修复。Video
、Audio
、Image
和 File
组件添加 upload
事件 @dawoodkhan82 在 PR 2448 中添加Series
或 Parallel
与 Blocks
一起使用时发出警告,由 @abidlabs 在 PR 2543 中添加。float64
、float16
或 uint16
格式的音频样本的支持,由 @abidlabs 在 PR 2545 中添加。当触发其他事件时,可以取消正在运行的事件!要测试此功能,请将 cancels
参数传递给事件侦听器。要使此功能正常工作,必须启用队列。
代码
import time
import gradio as gr
def fake_diffusion(steps):
for i in range(steps):
time.sleep(1)
yield str(i)
def long_prediction(*args, **kwargs):
time.sleep(10)
return 42
with gr.Blocks() as demo:
with gr.Row():
with gr.Column():
n = gr.Slider(1, 10, value=9, step=1, label="Number Steps")
run = gr.Button()
output = gr.Textbox(label="Iterative Output")
stop = gr.Button(value="Stop Iterating")
with gr.Column():
prediction = gr.Number(label="Expensive Calculation")
run_pred = gr.Button(value="Run Expensive Calculation")
with gr.Column():
cancel_on_change = gr.Textbox(label="Cancel Iteration and Expensive Calculation on Change")
click_event = run.click(fake_diffusion, n, output)
stop.click(fn=None, inputs=None, outputs=None, cancels=[click_event])
pred_event = run_pred.click(fn=long_prediction, inputs=None, outputs=prediction)
cancel_on_change.change(None, None, None, cancels=[click_event, pred_event])
demo.queue(concurrency_count=1, max_size=20).launch()
对于接口,如果函数使用 yield
语句,将自动添加一个停止按钮。
import gradio as gr
import time
def iteration(steps):
for i in range(steps):
time.sleep(0.5)
yield i
gr.Interface(iteration,
inputs=gr.Slider(minimum=1, maximum=10, step=1, value=5),
outputs=gr.Number()).queue().launch()
确保当将 gradio 应用程序作为 web 组件嵌入时,Gradio 不会控制 HTML 页面标题,此行为通过向 webcomponent 添加 control_page_title="true"
来翻转。@pngwn 在 PR 2400 中添加
通过使迭代异步来减少迭代输出演示中的延迟 @freddyaboulton 在 PR 2409 中完成
修复了在高负载下队列卡住的问题,由 @freddyaboulton 在 PR 2374 中修复。
确保当以下条件为真时,组件始终表现得好像设置了 interactive=True
interactive
kwarg。Image
组件设置为 source="upload"
时,现在可以通过拖放图像来替换先前上传的图像,此功能由 @pngwn 在 PR 1711 中实现。gr.Dataset
组件现在接受 HTML
和 Markdown
组件,此功能由 @abidlabs 在 PR 2437 中实现。Carousel
组件已正式弃用。自 Gradio 3.0 起,包含 Carousel
组件的代码会抛出警告。在下一个版本中,Carousel
组件将引发异常。Image
组件设置为 source="upload"
时,现在可以通过拖放图像来替换先前上传的图像,此功能由 @pngwn 在 PR 2400 中实现。Blocks.load()
事件的文档,此改进由 @abidlabs 在 PR 2413 中完成。gr.Plot()
组件创建地图演示的指南,此指南由 @dawoodkhan82 在 PR 2402 中添加。Textbox
和 Number
组件添加了 blur 事件,此功能由 @dawoodkhan82 在 PR 2448 中添加。您现在可以直接在网站上查看 gradio 的发布历史记录,并跟踪即将到来的更改。只需访问 此处。
gr.Row(variant="compact")
修复了相邻组件之间没有间隙的组合,此修复由 @aliabid94 在 PR 2291 中完成。 这伴随着对 Component.style
的以下参数的弃用:round
、margin
、border
。新指南:连接到数据库 🗄️
由 @freddyaboulton 编写的新指南,解释了如何使用 Gradio 将您的应用程序连接到数据库。阅读更多 此处。
新指南:运行后台任务 🥷
由 @freddyaboulton 编写的新指南,解释了如何从您的 gradio 应用程序运行后台任务。阅读更多 此处。
analytics
依赖项,此移除由 @abidlabs 在 PR 2347 中完成。Image
组件的文档进行了小的修复,此修复由 @abidlabs 在 PR 2372 中完成。gr.update()
字典,即使后处理被禁用,此功能由 @abidlabs 在 PR 2385 中实现。您现在可以为 Gallery 组件中的图像传递标题。为此,您需要传递一个 {List} (图像, {str} 标题) 元组列表。这是可选的,该组件也接受仅包含图像的列表。
这是一个示例
import gradio as gr
images_with_captions = [
("https://images.unsplash.com/photo-1551969014-7d2c4cddf0b6", "Cheetah by David Groves"),
("https://images.unsplash.com/photo-1546182990-dffeafbe841d", "Lion by Francesco"),
("https://images.unsplash.com/photo-1561731216-c3a4d99437d5", "Tiger by Mike Marrah")
]
with gr.Blocks() as demo:
gr.Gallery(value=images_with_captions)
demo.launch()
您现在可以直接在 Slider 组件上键入值!这是它的样子
我们对 Image 组件进行了许多更改,以便它可以更好地支持草图和图像修复。
现在支持
import gradio as gr
demo = gr.Interface(lambda x: x, gr.Sketchpad(), gr.Image())
demo.launch()
import gradio as gr
demo = gr.Interface(lambda x: x, gr.Paint(), gr.Image())
demo.launch()
import gradio as gr
demo = gr.Interface(lambda x: x, gr.Image(source='upload', tool='color-sketch'), gr.Image()) # for black and white, tool = 'sketch'
demo.launch()
import gradio as gr
demo = gr.Interface(lambda x: x, gr.Image(source='webcam', tool='color-sketch'), gr.Image()) # for black and white, tool = 'sketch'
demo.launch()
以及其他修复
gr.update()
,此功能由 @abidlabs 在 PR 2309 中实现。postprocess
和 preprocess
提升为已记录的参数,此功能由 @abidlabs 在 PR 2293 中实现。postprocess
和 preprocess
提升为已记录的参数,此功能由 @abidlabs 在 PR 2293 中实现。gr.update()
,此功能由 @abidlabs 在 PR 2309 中实现。您现在可以通过让您的函数返回一个生成器来创建迭代输出!
这是一个(部分)示例,用于生成下面的界面。 查看完整代码。
def predict(steps, seed):
generator = torch.manual_seed(seed)
for i in range(1,steps):
yield pipeline(generator=generator, num_inference_steps=i)["sample"][0]
此版本的 Gradio 为 Blocks 引入了一个新的布局组件:Accordion(手风琴)。将您的元素包裹在一个整洁的、可扩展的布局中,允许用户根据需要切换它们。
用法:(阅读文档)
with gr.Accordion("open up"):
# components here
我们与 skops 的新集成允许您直接从 hub 加载表格分类和回归模型。
这是一个分类示例,展示了为 模型 设置界面的速度有多快。
import gradio as gr
gr.Interface.load("models/scikit-learn/tabular-playground").launch()
我们基于 web sockets 而不是 HTTP 长轮询实现了一个全新的队列系统。 除此之外,这使我们能够更好地管理 Hugging Face Spaces 上的队列大小。 您还可以添加其他与队列相关的参数
demo = gr.Interface(...)
demo.queue(concurrency_count=3)
demo.launch()
demo = gr.Interface(...)
demo.queue(max_size=100)
demo.launch()
components.Image().style(height=260, width=300)
Slider
输入的值。 或者您可能想要显示带有当前日期的 Textbox
。 我们现在支持将函数作为输入组件中的默认值传递。 当您传入一个函数时,它会在每次有人加载演示时被重新评估,从而允许您为不同的用户重新加载/更改数据。这是一个将当前日期时间加载到输入 Textbox 中的示例
import gradio as gr
import datetime
with gr.Blocks() as demo:
gr.Textbox(datetime.datetime.now)
demo.launch()
请注意,我们不评估函数 — datetime.datetime.now()
— 我们传入函数本身以获得此行为 — datetime.datetime.now
由于随机化 Slider
的初始值是一个常见的用例,因此我们添加了一个 randomize
关键字参数,您可以使用它来随机化其初始值
import gradio as gr
demo = gr.Interface(lambda x:x, gr.Slider(0, 10, randomize=True), "number")
demo.launch()
Label
组件现在接受 .json
文件的文件路径,此功能由 @abidlabs 在 PR 2083 中实现。file
路由,此功能由 @abidlabs 在 PR 2099 中实现。State
的改进,此改进由 @abidlabs 在 PR 2100 中完成。gr.Examples
的一些增强,此增强由 @abidlabs 在 PR 2131 中完成。通过 PR #1444,Gradio 现在作为 web 组件分发。 这意味着演示可以原生嵌入到网站上。 您只需添加两行代码:一行用于加载 gradio javascript,另一行用于链接到演示后端。
这是一个简单的示例,用于嵌入来自 Hugging Face space 的演示
<script
type="module"
src="https://#/3.0.18/gradio.js"
></script>
<gradio-app space="abidlabs/pytorch-image-classifier"></gradio-app>
但是您也可以嵌入在任何地方运行的演示,您只需要将演示链接到 src
而不是 space
。 实际上,gradio 网站上的所有演示都是以这种方式嵌入的
在 嵌入 Gradio 演示 指南中阅读更多内容。
重新加载模式通过在代码更改时自动重新加载演示来帮助开发人员更快地创建 gradio 演示。 它可以支持在 Python IDE(VS Code、PyCharm 等)、终端以及 Jupyter notebooks 上进行开发。
如果您的演示代码在一个名为 app.py
的脚本中,那么现在您可以运行 gradio app.py
而不是运行 python app.py
,这将以重新加载模式启动演示
Launching in reload mode on: http://127.0.0.1:7860 (Press CTRL+C to quit)
Watching...
WARNING: The --reload flag should not be used in production on Windows.
如果您正在从 Jupyter 或 Colab Notebook 工作,请改用这些 magic 命令:在导入 gradio 时使用 %load_ext gradio
,并在包含演示代码的单元格顶部使用 %%blocks
。 这是一个示例,展示了开发速度会提高多少
gr.Image()
上的图像修复支持 🎨我们更新了 Image 组件,以添加对图像修复演示的支持。 它通过添加 tool="sketch"
作为参数来工作,该参数将图像和可草绘的蒙版都传递给您的预测函数。
这是一个来自 LAMA space 的示例
我们在 PR #1684 中升级了 Dataframe 组件,以支持在单元格内渲染 Markdown 和 HTML。
这意味着您可以构建如下所示的 Dataframe
gr.Examples()
🧱我们添加了 gr.Examples
组件助手,允许您向任何 Blocks 演示添加示例。 此类是 gr.Dataset
组件的包装器。
gr.Examples 接受两个必需的参数
examples
接受嵌套列表inputs
接受组件或组件列表您可以在 Examples 文档 或 向您的演示添加示例指南 中阅读更多内容。
通过 PR 1828,我们现在隐藏了状态加载动画,并消除了流式传输中的回声。 查看 stream_audio 演示以了解更多信息,或阅读我们的 实时语音识别 指南。
integrate()
方法已移动到 Blocks
,此移动由 @abidlabs 在 PR 1776 中完成。Blocks 是一个新的、低级别的 API,允许您完全控制应用程序的数据流和布局。 它允许您构建非常复杂的、多步骤的应用程序。 例如,您可能想要
这是一个简单的示例,用于创建下面的演示
import gradio as gr
def update(name):
return f"Welcome to Gradio, {name}!"
demo = gr.Blocks()
with demo:
gr.Markdown(
"""
# Hello World!
Start typing below to see the output.
""")
inp = gr.Textbox(placeholder="What is your name?")
out = gr.Textbox()
inp.change(fn=update,
inputs=inp,
outputs=out)
demo.launch()
阅读我们的 Blocks 简介 指南以了解更多信息,并加入 🎈 Gradio Blocks 派对!
我们升级了整个库的设计:从组件和布局一直到暗黑模式。
我们升级了 gradio.app,使其更简洁、更快且更易于使用。 我们的文档现在附带直接嵌入在页面上的组件和演示。 因此,您可以快速了解您正在寻找的内容。
我们在 3.0
中引入了许多新组件,包括 Model3D
、Dataset
、Markdown
、Button
和 Gallery
。 您可以找到所有组件并在此处试用 此处。
gradio.components
语法,此更新由 @abidlabs 在 PR 848 中完成。blocks-dev
上通过,此功能由 @abidlabs 在 PR 861 中实现。Blocks
实例像 Block
一样在其他 Blocks
中使用,由 @abidlabs 在 PR 919 中完成Launchable()
,由 @abidlabs 在 PR 968 中完成