Gradio 智能体 & MCP 黑客马拉松
获奖者Gradio 智能体 & MCP 黑客马拉松
获奖者9082647
- 使获取 asyncio
事件循环的方法更加健壮。感谢 @abidlabs!8bb7776
- 解决 gr.Progress
示例缓存问题。感谢 @abidlabs!4757302
- 关于文档字符串和文档的杂项修复。感谢 @abidlabs!8245afc
- 在前端定义根 URL。感谢 @aliabid94!5a7790d
- 添加从字节检测音频格式功能。感谢 @yahiro-code!92aa905
- 如果 show_progress="hidden"
,则从 gr.Chatbot
隐藏待处理消息指示器(“...”)。感谢 @abidlabs!3ec4a7c
- 在 Chatbot 中添加 Model3D 支持。感谢 @dawoodkhan82!bed858b
- 修复 DataFrame 滚动分歧。感谢 @deckar01!0e6fae0
- 修复 gr.ImageSlider 中的透明背景问题。感谢 @hannahblair!3a9a002
- 向屏幕阅读器隐藏原生 Dataframe。感谢 @hannahblair!5ff539e
- 修复 @gr.render
中的缓存示例。感谢 @abidlabs!7282c9e
- 图表重新渲染修复。感谢 @aliabid94!0b2b6cb
- 截断文本框示例至 70 个字符。感谢 @hannahblair!6aed692
- 在 colab 中运行 gradio 时的小错误。感谢 @abidlabs!5e3ec9c
- 重新设计 gr.Datetime
组件并确保其在 iframe 中(例如在 Spaces 上)正常工作。感谢 @abidlabs!3f53679
- 修复聊天机器人不支持的组件。感谢 @dawoodkhan82!467de5d
- 在 @gr.render 上调用加载事件。感谢 @freddyaboulton!1b88339
- 修复图库缩略图溢出。感谢 @freddyaboulton!546008c
- 修复开发重载中硬编码的 HTTP 协议。感谢 @mtojek!1eb4e2e
- 在 MCP 工具调用中注入 Request
信息。感谢 @abidlabs!a6f6b40
- 增强 gr.Dataframe
中的布尔单元格类型。感谢 @hannahblair!9af8fc1
- 能够在 FastAPI 应用中挂载时启动 MCP 服务器。感谢 @freddyaboulton!b961441
- 修复默认标签页标签。感谢 @dawoodkhan82!250ae7a
- fix(mcp): 将 SVG 输出打包为 MCP 客户端的正确 ImageContent。感谢 @DavidLMS!2b571e1
- 修复图像流 - 等待 ws 打开。感谢 @freddyaboulton!fdce3a0
- 修复 gr.api()
以支持更多类型,包括可选参数。感谢 @abidlabs!b31c3ed
- 修复使用 gr.render 时的重载模式。感谢 @freddyaboulton!6cd608d
- 改进重新渲染中的图表和事件监听器。感谢 @aliabid94!7b06b61
- 当示例被缓存时,为 gr.Interface
预加载第一个示例。感谢 @abidlabs!ff39d56
- 更新 mcp 模式以包含函数的返回类型信息。感谢 @abidlabs!d6649e5
- 修复 JS Chatbot 的文档标题。感谢 @aymeric-roucher!5770fd0
- 抑制 create_or_modify_pyi 中的错误。感谢 @freddyaboulton!3e40af3
- 修复标签页中文本框自动滚动问题。感谢 @dawoodkhan82!477730e
- 修复流式聊天机器人差异逻辑。感谢 @freddyaboulton!bdbc210
- 修复自定义组件的构建和开发模式与某些基本组件(至少是 Image 和 Audio)的问题。感谢 @pngwn!bc299f1
- 当用户在聊天机器人中向上滚动时显示滚动到底部按钮。感谢 @dawoodkhan82!9a6a6f5
- 修复 DataFrame 组闪烁。感谢 @deckar01!6ec91bf
- 为 mcp 在空间名称和工具名称之间添加 _
。感谢 @abidlabs!1b6bd1e
- 在 MCP 文档中包含默认值。感谢 @abidlabs!6780f69
- MCP 服务器的可流式 HTTP 传输。感谢 @freddyaboulton!0a26311
- 在 Gradio MCP 服务器中使用函数名作为工具名。感谢 @abidlabs!5bfc57e
- 修复 ChatInterface 视图 API 页面中的参数名称。感谢 @freddyaboulton!636be09
- gr.Sidebar
的一些前端/UI 修复。感谢 @abidlabs!8ae434c
- 确保错误文本按预期溢出。感谢 @hannahblair!8177b01
- 修复流式传输一块音频或视频时无法播放的错误。感谢 @freddyaboulton!2186ae3
- 允许 httpx_kwargs 包含 cookies。感谢 @santibreo!ab25fb9
- 确保渲染时 i18n 设置完成。感谢 @hannahblair!56d82d7
- 为 gr.Number
添加缺失的 blur
事件。感谢 @ExcellentAmericanEagle!35afa21
- 仅当有效的 endpoint_info
存在时才显示参数警告。感谢 @hannahblair!c16dff0
- 允许 gr.Progress
接受小数步长和小数总步数。感谢 @abidlabs!ac2bcea
- 在移动设备上为滑块输入添加间隙。感谢 @hannahblair!f54f81b
- 修复视频流中只有第一个片段播放音频的错误。感谢 @freddyaboulton!231ccfe
- 聊天机器人自动滚动修复。感谢 @dawoodkhan82!834e92c
- 修复将值设置为 None 时使用 key 重新渲染的问题。感谢 @aliabid94!d457438
- 屏幕录制。感谢 @dawoodkhan82!3a7750c
- 为 gr.Markdown 添加 padding 参数。感谢 @hannahblair!13c8510
- 修复 DeepLink 查询参数。感谢 @freddyaboulton!0b7f753
- 改进滑块对齐。感谢 @hannahblair!4099700
- 即使 preprocess=False 也检查文件有效性。感谢 @freddyaboulton!62a8d97
- 修复 Model3D camera_position
参数。感谢 @dawoodkhan82!78a3854
- 修复 MCP 服务器挂载路径。感谢 @abidlabs!ed97e39
- 确保 show_indices
在 gr.JSON 中按预期工作。感谢 @hannahblair!8ea7ce7
- 为具有 gr.State
组件的端点提供 MCP 集成的一个变通方案。感谢 @abidlabs!bfb9bcf
- 从 API 页面移除 Deep Link 事件。感谢 @freddyaboulton!3068196
- 改进的、更流畅的组件全屏模式。感谢 @aliabid94!30a1d9e
- MCP 页面改进。感谢 @abidlabs!a03736f
- 为 ImageEditor
组件添加撤销和重做功能。感谢 @pngwn!6d4b8a7
- 实现自定义 i18n。感谢 @hannahblair!5f3e84d
- 确保清除排序按预期工作。感谢 @hannahblair!9b976b7
- 如果视频无法在浏览器中播放,则引发 UI 错误。感谢 @freddyaboulton!b2a93e1
- 将 xethub 桥添加到主机白名单。感谢 @abidlabs!53688a2
- 修复 Deep Link 问题。感谢 @freddyaboulton!c196ac2
- 渲染 key 修复。感谢 @aliabid94!2f1c9d5
- 对于 Interface,默认禁用 DeepLink,然后在首次提交后启用。感谢 @freddyaboulton!e64b83b
- 在参数描述中评估索引变量。感谢 @emmanuel-ferdman!d023b2e
- 添加了之前网站中缺失的 gr.api()
文档。感谢 @abidlabs!cb9f21b
- chore: 支持 favicon 的 Path 类型。感谢 @wdroz!ab0fbb3
- 绘图笔刷阻止图表刷新。感谢 @aliabid94!a1d436f
- 在 native_plot.py 中延迟导入 pandas。感谢 @whitphx!d5ddd85
- 海洋主题快速修复。感谢 @aliabid94!f11a26a
- 删除 gr.File 中关于 file_count 为目录时指定 file_types 的警告。感谢 @freddyaboulton!88f06c7
- 确保 visible=False
的标签页不会出现在溢出菜单中。感谢 @abidlabs!ee7f17e
- 修复 gr.Dataset
在表格布局中的 .select()
事件。感谢 @abidlabs!0595238
- 重构 gr.State
、gr.BrowserState
和 gr.Timer
以继承自 FormComponent
。感谢 @abidlabs!0571f83
- 修复在重载模式下以字典形式返回组件时无法工作的问题。感谢 @freddyaboulton!caf46c7
- 修复 .unrender()
。感谢 @abidlabs!bc0d0e0
- 修复 JS 客户端中的“删除”差异指令。感谢 @freddyaboulton!470a41f
- #11056 避免在 ImageEditor::preprocess
中从 blob_storage
缓存中未经检查的弹出。感谢 @doraeneko!85cfa82
- 修复传递 gradio 组件时 save_history
不起作用的问题。感谢 @dawoodkhan82!f1a1c50
- 为 JSON 添加示例组件。感谢 @freddyaboulton!1bc680d
- 修复 /file= 路由中的 500 错误。感谢 @freddyaboulton!0497068
- 修复 gr.State 值的内置函数。感谢 @freddyaboulton!56ab579
- gr.Chatbot: 样式修复以移除多个滚动条。感谢 @aymeric-roucher!b618571
- 修复 Python 客户端 SSE 解码问题。感谢 @freddyaboulton!8cd4e53
- 修复文件上传进度。感谢 @freddyaboulton!49ad594
- 修复 #10281: 拖动图像会替换现有图像而不是打开新标签页。感谢 @Martim-Rito!c32f8de
- 修复 markdown 更改事件。感谢 @freddyaboulton!49e7a0d
- 更新 STDIO 说明以指定仅 SSE 传输。感谢 @evalstate!15d6297
- 修复 gradio cc environment。感谢 @freddyaboulton!0e5a75e
- 修复将 datetime.datetime 实例传递给 gr.Datetime 的问题。感谢 @freddyaboulton!bb2c744
- 替换 MCP 工具名称中的无效字符。感谢 @abidlabs!cb322df
- 更新 client.py 以始终发送文件数据,即使是无扩展名的文件。感谢 @edmcman!e3d80e3
- 修复 Image 组件中设置高度时的缩放问题。感谢 @freddyaboulton!a5105cc
- 修复:确保所有翻译文件按预期工作。感谢 @Col0ring!fd46e48
- 能够从组件分派信息消息。感谢 @freddyaboulton!0355ef6
- 确保在将图像上传到 ImageEditor 后可以进行绘制。感谢 @pngwn!aaba2c6
- 修复聊天界面图标错误。感谢 @freddyaboulton!bb1b74c
- 图像编辑器清除事件。感谢 @freddyaboulton!0dbc14f
- 允许在 gr.Dataframe
的 display_value
中设置空值。感谢 @abidlabs!3d3c701
- 即使是非流式聊天功能,也要在 gr.ChatInterface
中显示停止按钮。感谢 @abidlabs!2750d48
- 修复在 Blocks 中创建界面时 Spaces 中的重复 ID 问题。感谢 @freddyaboulton!c57a7ff
- 确保在多页 Gradio 应用中登录和登出被重定向到正确的页面。感谢 @abidlabs!d24f8fd
- 修复通知消息中的 ssr_mode
参数名称。感谢 @oxkitsune!a4a3a03
- 修复 gr.ChatInterface
中点击示例时的流式传输/停止按钮。感谢 @abidlabs!734b309
- 在流请求中包含 HF 令牌。感谢 @nostalgebraist!3615a45
- 在 Sagemaker 笔记本中自动创建分享链接。感谢 @abidlabs!9219e62
- 修复: 当 allow_tags=True
时为 markdown 添加 svg 标签。感谢 @Col0ring!3def0ed
- 确保 gr.DataFrame
中的 .select()
事件带有 .row_value
和 .col_value
。感谢 @abidlabs!370b3e2
- 为聊天机器人交互添加 i18n。感谢 @freddyaboulton!bb45441
- 修复:gr.Audio 接受签名 URL。感谢 @jerpint!a80b312
- 为代码组件语言添加 latex。感谢 @ginazhouhuiwu!0db230f
- 允许用户更改图像编辑器中图层的可见性。感谢 @pngwn!1918baa
- 更新 babylon.js 并确保 Model3D 组件在加载时自动播放。感谢 @CedricGuillemet!238702a
- 修复默认元社交标签 + 添加覆盖现有元标签的功能。感谢 @dawoodkhan82!8c70819
- 为 ImageEditor 实现下载按钮。感谢 @pngwn!45d5840
- 当为 ImageEditor 提供自定义图层时,始终默认为第一个图层。感谢 @pngwn!975feee
- 改进 ImageEditor 的网络摄像头选项。感谢 @pngwn!fc59815
- 确保图像编辑器背景尊重主题模式。感谢 @pngwn!714015a
- 确保上传到 ImageEditor 的图像正确初始化画布尺寸。感谢 @pngwn!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
- model3D 的 Babylon 更新。感谢 @CedricGuillemet!01b88c7
- 改进 JS 客户端中的 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
- 修复 MultimodalTextbox
中 interactive=False
时按钮禁用问题。感谢 @lara-gfaria!cd7f486
- 修复 gradio 挂载应用中的根目录。感谢 @aliabid94!b19e8ad
- 在 get_api_call_path()
中从 root_url
切换到 request.url
。感谢 @abidlabs!3ba9e4f
- 修复请求 URL。感谢 @abidlabs!e30348b
- Gradio 草图: 移除 HF 推理健康检查。感谢 @aliabid94!c05610c
- 添加深层链接。感谢 @freddyaboulton!a06c7e4
- 允许在 gradio 草图中进行迭代编码。感谢 @aliabid94!243942e
- 修复 gr.on 事件监听器的类型。感谢 @JackismyShephard!a1862f5
- 修复加载事件监听器中的类型。感谢 @JackismyShephard!1649b00
- 为 Markdown
组件(以及使用 Markdown 的 gr.Chatbot
等组件)添加 mermaid.js
支持。感谢 @abidlabs!6384bcc
- 基于 Jedi 的 gr.Code
Python 代码补全。感谢 @whitphx!f40e008
- 将 gr.DeepLinkButton
的默认变体更改为 secondary。感谢 @abidlabs!8ff0a5e
- 修复 bash API 返回文件的路径生成。感谢 @cansik!fb4c3da
- 错误修复:如果 launch 中有 root_path,则退出登录。感谢 @azharizz!4d78710
- 草图代码生成器。感谢 @aliabid94!b42e461
- 为 gr.Chatbot
添加了一个水印参数,该参数会添加到复制的文本中。感谢 @abidlabs!4fa8e00
- 更新 markupsafe
依赖版本。感谢 @abidlabs!e0ab4f0
- 修复 gr.load_chat。感谢 @aliabid94!ac075ad
- 修复不可编辑数据框中未显示单元格菜单的问题。感谢 @hannahblair!6812544
- 在 Windows 操作系统上,隐藏 gr.Dataframe
滚动条同时保留滚动功能。感谢 @abidlabs!9ec8898
- 修复数据框中过多的滚动 bug。感谢 @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 草图中的事件监听器。感谢 @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
聊天界面行为更改为流式传输。感谢 @abidlabs!16d419b
- 允许仅更新组件属性的函数通过设置 js=True
在前端运行。感谢 @abidlabs!b43200d
- 数据框的自定义样式。感谢 @abidlabs!374b762
- 支持 gr.load()
的 gr.LoginButton
。感谢 @abidlabs!cb3c762
- 添加泰语翻译。感谢 @haihandsome!249eccd
- 修复 Dataframe 标题类型以允许整数值。感谢 @abidlabs!36309ea
- 自动恢复多选下拉菜单中的最后滚动位置。感谢 @XcantloadX!367fe14
- 修复聊天机器人分享按钮有效负载过大问题。感谢 @dawoodkhan82!f0a920c
- 为 gr.Code() 添加了 show_line_numbers 以切换行号。感谢 @lalitx17!0b1f729
- 允许 websocket version 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
- 修复移动设备侧边栏。感谢 @dawoodkhan82!1299267
- 更改侧边栏位置。感谢 @dawoodkhan82!c4aa886
- 游乐场中的语义搜索。感谢 @aliabd!c354f5f
- 添加空数据框功能。感谢 @hannahblair!a8bde76
- 修复 gr.Dataframe
在没有标题时上方的间距问题。感谢 @abidlabs!b8fada8
- [ZeroGPU] 基于握手的 postMessage 部分.2 (非 SSR 模式)。感谢 @cbensimon!12669f4
- 行比例更改。感谢 @aliabid94!26494ce
- 允许在 gr.Dataframe
中冻结列。感谢 @hannahblair!b8ff5d6
- 在 gr.Dataframe
的工具栏中添加可选的搜索栏。感谢 @hannahblair!196b600
- 在数据框中选择整行或整列。感谢 @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
- 修复认证。感谢 @freddyaboulton!8e2cf2f
- 修复 micropip.install 的包装函数,抛出原始错误以获得更好的调试体验。感谢 @whitphx!bcbb7b6
- 修复元组的 DF 后处理。感谢 @freddyaboulton!27155cf
- 原生 Plot 尊重高度参数。感谢 @freddyaboulton!855d870
- 页脚对齐修复。感谢 @aliabid94!d909868
- 确保 max_height
应用于 gr.Dataframe
。感谢 @hannahblair!083d68b
- quick_fix_client。感谢 @aliabid94!79937fd
- 更改数据框标题中的 word-break 属性。感谢 @hannahblair!2a1fc2a
- 确保数据框中的链接按预期工作。感谢 @hannahblair!ccf590c
- 默认展开行中的标签页。感谢 @aliabid94!a18ac9c
- 修复提供初始值时图表无法加载的错误。感谢 @freddyaboulton!39f0c23
- 允许图像上传到 gr.load_chat。感谢 @aliabid94!8e40c15
- 实现多单元格选择。感谢 @hannahblair!90f90b7
- 为文档添加侧边栏。感谢 @aliabd!35fda36
- 为 gr.ParamViewer
添加 anchor_links
参数,允许链接到特定参数。感谢 @abidlabs!2e8dc74
- 允许构建多页 Gradio 应用。感谢 @aliabid94!a9bfbc3
- 在 gr.load()
中添加对推理 providers
的支持。感谢 @abidlabs!ed7a091
- 展开和折叠数据框单元格。感谢 @hannahblair!afb96c6
- 改进数据框的上传辅助功能。感谢 @hannahblair!ff5f976
- 允许 gr.Dataframe 中的多行标题。感谢 @hannahblair!10932a2
- 确保当 interactive
为 False 时数据框不可编辑。感谢 @hannahblair!6401d32
- chore: 更新 dropdown.py。感谢 @eltociear!2cf449a
- 添加更多 ImageEditor js 测试。感谢 @freddyaboulton!3750082
- 侧边栏修复。感谢 @dawoodkhan82!ca7c47e
- 为数据框工具栏添加复制按钮。感谢 @hannahblair!a69b8e8
- 支持在 gr.DataFrame
中删除列/行。感谢 @abidlabs!3465fdb
- 使用最新的 ruff
格式化后端。感谢 @abidlabs!62d0669
- 仅在 gr.Audio()
中点击录制按钮后才请求麦克风权限。感谢 @abidlabs!ef66fe5
- 侧边栏组件。感谢 @dawoodkhan82!324383f
- 修复因 huggingface_hub 更新导致的类型检查错误。感谢 @freddyaboulton!dd178f3
- 对示例数据框进行微调。感谢 @hannahblair!2167f58
- 将 Pyodide 更新到 0.27.2。感谢 @whitphx!337b522
- 对 gr.ChatMessage
和聊天机器人消息间距进行微调。感谢 @abidlabs!71c8b8a
- 使用 None 清除 Image Editor 值。感谢 @freddyaboulton!3c2e12b
- 修复 ImageEditor 裁剪问题 - 现在裁剪背景图像而不是图像 + 画布。感谢 @freddyaboulton!92dda15
- 如果 show_recording_waveform
为 False
,则在播放录制音频时隐藏波形。感谢 @abidlabs!90e0b47
- 更新所有 md5 哈希到 sha256。感谢 @LArkema!b7a7e59
- 支持带有 gr.Video, gr.Model3D 和其他组件的预签名 URL。感谢 @abidlabs!c44da25
- 允许直接在 gr.ChatInterface
中修改聊天机器人值。感谢 @abidlabs!5881296
- 改进组件文档字符串和杂项文档。感谢 @abidlabs!feb1e81
- 为 gr.Dataframe
添加带全屏按钮的工具栏。感谢 @hannahblair!b0cf92f
- PWA 图标定制。感谢 @whitphx!4d47e4b
- 为 Chatbot 元数据添加 log
参数,允许在思考标题旁显示 str
内容。感谢 @abidlabs!6a7cfc4
- 客户端和 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
- 修复当输入值手动更改时数据框 value
属性未更新的错误。感谢 @abidlabs!eb85edf
- 快速修复:0 被忽略滑块/数字问题。感谢 @dawoodkhan82!43e7cce
- 修复 ImageEditor 尺寸问题。感谢 @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
- 允许 fill_height
通过行和选项卡传播,通过缩放实现。感谢 @aliabid94!391a4d0
- 为 gr.EditData
添加 .previous_value
。感谢 @abidlabs!bb11a2a
- [ZeroGPU] 基于握手的 postMessage。感谢 @cbensimon!be40307
- 添加对直接在 gr.ChatInterface
中思考 LLM 的支持。感谢 @abidlabs!58b8391
- 改进工具 UI 并支持嵌套思考。感谢 @hannahblair!e0cb47f
- 修复网络摄像头。感谢 @Col0ring!3543418
- ImageEditor:即使未定义 change 事件,也触发 input 事件。感谢 @freddyaboulton!d2691e7
- 快速修复:多模态麦克风音频未清除。感谢 @dawoodkhan82!decb594
- 更新 gr.load_chat
的指南并允许 **kwargs
。感谢 @abidlabs!e742dcc
- 允许用户添加自定义 API 路由。感谢 @aliabid94!343503d
- 支持使用 Blocks.load()
事件加载 Gradio 应用。感谢 @abidlabs!6b63fde
- 阻塞路径修复。感谢 @freddyaboulton!f19ca89
- 为 Gallery 添加 preview_open 和 preview_close 事件。感谢 @freddyaboulton!84e72e4
- 恢复聊天界面全高。感谢 @aliabid94!9fc988e
- 修复 ImageEditor 总是向后端发送空图层列表的错误。感谢 @freddyaboulton!1e253ff
- 修复 numpy==2.x 的 test_subclass_conversion。感谢 @abidlabs!c3a9e64
- 允许编辑聊天机器人消息。感谢 @aliabid94!a1f2649
- 聊天界面标记和聊天机器人反馈。感谢 @aliabid94!f0cf3b7
- Chatbot 中的数据框支持。感谢 @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 贡献文档。感谢 @not-lain!da07707
- 为页脚添加 settings
链接,包含国际化选项和 PWA 说明。感谢 @abidlabs!45df1b1
- Lite: 从主线程捕获 stdout 和 stderr。感谢 @whitphx!13a83e5
- 允许在 gr.File 中重新排序文件。感谢 @hannahblair!506bd28
- 更新有关将 Gradio 聊天机器人部署到 Discord、Slack 和网站小部件的指南。感谢 @abidlabs!1be31c1
- 允许可编辑的 ChatInterface。感谢 @aliabid94!3e4e0de
- 添加 gr.BrowserState
更改事件。感谢 @abidlabs!9c6d83d
- gr.load_chat: 允许将任何 OpenAI 兼容服务器立即加载为 ChatInterface。感谢 @aliabid94!501adef
- 某些代理的简单问题。感谢 @freddyaboulton!99123e7
- 修复了关于某些模式下无法找到应用的警告。感谢 @YanSte!890eaa3
- 允许在 gr.Image
和 gr.Gallery
组件中安全显示 SVG 图像。感谢 @abidlabs!2700d18
- 确保 gr.File
中的 height
参数按预期工作。感谢 @hannahblair!9285dd9
- 修复 gr.Interface
中组件的类型和 image.py
中的文档字符串。感谢 @abidlabs!314a8b5
- 修复:确保 comp.instance
存在。感谢 @Col0ring!3f19210
- 为类型检查在 all 中声明导出。感谢 @dustalov!c9ba9a4
- 在 API 类型信息中使用现代的小写 Python 类型。感谢 @abidlabs!9cd291b
- 可调整大小的聊天机器人。感谢 @aliabid94!48e4aa9
- 为 gr.ChatInterface
添加 run_examples_on_click
参数,与 gr.Examples
中的 run_on_click
参数对应。感谢 @abidlabs!3e93740
- 改进 Multimodaltextbox
中粘贴文本的行为。感谢 @hannahblair!9a6ce6f
- 重构全屏逻辑以实现可重用性。感谢 @hannahblair!3665e81
- 允许聊天机器人示例显示多张图像。感谢 @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
- 客户端中的 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
- 快速修复:修复 Chatbot 中 Audio/Video 的 autoplay 参数。感谢 @dawoodkhan82!b4004e3
- 支持 gr.render 触发器中的事件 + 请求数据。感谢 @aliabid94!5e6e234
- 重新渲染中的自定义组件。感谢 @aliabid94!3a053cc
- 修复聊天机器人 visible
属性不响应更改的问题。感谢 @freddyaboulton!43d88c3
- 修复:在 mount_gradio_app 中添加了对 show_api 的支持。感谢 @HongweiRuan!b2a21c6
- 为 paramviewer 描述添加 HTML 支持。感谢 @aliabd!ec10aa3
- 修复 paramviewer 描述仅渲染 Markdown 链接的问题。感谢 @aliabd!ebe25bc
- 修复聊天机器人/聊天界面类型不匹配问题。感谢 @abidlabs!01b919f
- 支持 gr.ChatInterface
中的 additional_outputs
。感谢 @abidlabs!b94f010
- 将 Zero GPU 应用于 gr.ChatInterface
。感谢 @abidlabs!8530b6e
- 重新设计 Chatbot 中的待处理气泡。感谢 @hannahblair!e450674
- 添加 webcam_height
和 webcam_width
来指定网络摄像头的分辨率。感谢 @yinsumirage!36e9597
- 修复流式聊天机器人情况下的选项。感谢 @abidlabs!97d647e
- 修复 gr.render 内的状态更改。感谢 @aliabid94!98dd668
- 为 url_ok
添加 http 代码 303 和 307。感谢 @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
- 允许 datetime 值为空。感谢 @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 payloads 中强制要求 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
- 修复行中的 Tabs。感谢 @aliabid94!3b9ed29
- 修复 Chatbot 中的头像图像位置。感谢 @hannahblair!f971ca6
- 添加 audioop-lts 模块以支持 python3.13+ 的 pydub。感谢 @samy-FERGUI!1163a37
- 修复组件信息字体大小。感谢 @dawoodkhan82!6505d42
- 支持在子路径上提供的 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
- Chatbot 组件中的流式 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 图标无法在 Buttons/Chatbots 中使用的问题。感谢 @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 中的 重试
和 撤销
响应性。感谢 @hannahblair!1f3ee97
- 修复功能测试。感谢 @dawoodkhan82!c3d93be
- 为 Gradio 5.0 添加新主题。感谢 @allisonwhilden!cc61fe7
- 更多聊天机器人修复。感谢 @dawoodkhan82!b92a762
- 当文本为空时,禁用提交按钮和回车键提交。感谢 @whitphx!e853c41
- SSR 端到端测试 + 修复。感谢 @pngwn!139152f
- 默认情况下行高不相等。感谢 @aliabid94!477f45c
- 仅将具有元数据键的文件移动到缓存。感谢 @freddyaboulton!6f8fa54
- 聊天界面多模态修复 & 回退到 gr.Examples()
。感谢 @dawoodkhan82!bd6c5f2
- 修复 main/5.0 中的自定义组件 CLI。感谢 @freddyaboulton!c078892
- 调整 gr.Dataframe 菜单用户体验。感谢 @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 用户界面。感谢 @hannahblair!8dc7c12
- 如果可能,通过 Websocket 发送流数据。还支持图像的 base64 输出格式。感谢 @freddyaboulton!06ef22e
- 允许 info=
渲染 markdown。感谢 @dawoodkhan82!148345d
- 修复 ChatInterface 嵌入高度问题。感谢 @aliabid94!7c367b6
- 修复 gr.ImageEditor 中的截断问题。感谢 @hannahblair!3b71ed2
- API 信息修复。感谢 @freddyaboulton!b260389
- 将缓存改为在 Blocks 实际启动时发生,而不是在创建 gr.Examples()
时发生。感谢 @aliabid94!cf39640
- 添加 css_paths
和 head_paths
参数。感谢 @abidlabs!b82aa6f
- 暂时禁用 sagemaker_check()。感谢 @vmatt!098a009
- 为 Code 组件添加 Jinja2 语言。感谢 @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
- 修复:自定义 Chatbot 的 Chatbot 示例 + 重命名 suggestions
-> examples
。感谢 @dawoodkhan82!861f5e9
- 修复 Node 进程以正确的服务器名称运行。感谢 @abidlabs!c307a0c
- 文档和演示的小修复。感谢 @abidlabs!0ab6ac5
- 修复下拉菜单和单选按钮的更改触发器。感谢 @dawoodkhan82!b406139
- 为 gr.load
添加第三方提供商支持,并为会话模型提供更好的用户体验。感谢 @abidlabs!30d13ac
- 预/后处理下载请求。感谢 @aliabid94!3ac5d9c
- 修复图表。感谢 @pngwn!018c140
- 从后端开始/停止录制。添加会话式聊天机器人的指南。感谢 @freddyaboulton!56dbf77
- Chatbot 错误修复。感谢 @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
和 chatbot 文档的小问题。感谢 @abidlabs!c2c2fd9
- 修复 Spaces 上的 SSR 应用。感谢 @pngwn!50c3a7f
- 微调 gr.Chatbot
中显示思考的方式。感谢 @abidlabs!06babda
- 默认禁用 Chatbot 中用户消息的点赞功能,但可配置。感谢 @freddyaboulton!8e52b6a
- Chatbot 示例。感谢 @dawoodkhan82!73647a0
- 将图标移动到 IconButtonWrapper
中。感谢 @hannahblair!4338f29
- 9227 ChatInterface 重试错误。感谢 @freddyaboulton!1fef9d9
- 统一组件高度,并在适当位置添加 max_height
和 min_height
参数。感谢 @abidlabs!4c8c6f2
- SSR 第二部分。感谢 @pngwn!350b0a5
- 改进图标按钮一致性。感谢 @hannahblair!e05f568
- 修复 5.0 开发版中的重新加载模式和流式传输。感谢 @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
- 从网络摄像头流中进行对象检测指南。感谢 @freddyaboulton!6309a48
- 引发 ChecksumMismatchError。感谢 @abidlabs!6443062
- 修复流式媒体的缓存示例。感谢 @freddyaboulton!1c94328
- 添加本地字体并更新主题。感谢 @hannahblair!b543465
- 将 lite/theme.css 从 Git 管理的文件树中移除。感谢 @whitphx!16c0485
- 微调 gr.Chatbot
中 “tuples”/“messages” 参数的 DX。感谢 @abidlabs!34f46b0
- 在 Chatbot 后处理中不要自动将文件移动到缓存。感谢 @freddyaboulton!3ad28c7
- 防止 HTML 和 Markdown 在状态隐藏时高度发生变化。感谢 @hannahblair!d47dd1f
- 修复 Chatbot 中 Markdown 溢出问题。感谢 @hannahblair!98cbcae
- 杂项:修复文档样式。感谢 @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
- 将按钮从 ChatInterface 移到 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 上使用 multiprocessing
在 flagging.CSVLogger
中。感谢 @whitphx!e137b30
- 减小组件圆角并移除输入阴影。感谢 @hannahblair!2e179d3
- 前缀 API 路由。感谢 @pngwn!f9f84bf
- gr.load()
默认不传递 token。感谢 @abidlabs!8f5a895
- 修复原生绘图 lite 演示。感谢 @aliabd!6773c4d
- 重新设计 gr.Slider()
。感谢 @hannahblair!c054ec8
- 停止支持 Python 3.8 和 3.9。感谢 @abidlabs!fe9d1cb
- 改进文件对象的 URL 下载。感谢 @aliabid94!4cf8af9
- 防止无效值提交到下拉菜单等。感谢 @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
- 为 gr.render 创建的组件添加 root_url。感谢 @freddyaboulton!8f5a895
- 修复原生绘图 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 问题。感谢 @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 添加高度参数。感谢 @hannahblair!5350f1f
- 为 Chatbot 添加复制所有消息按钮。感谢 @hannahblair!e1c404d
- 设置所有包的 npm 预览。感谢 @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
- 改进绘图指南,为绘图添加双击功能。感谢 @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
- 恢复绘图标签角度。感谢 @aliabid94!f7fbd2c
- 为 gradio-client 提高 websockets 版本上限。感谢 @evanscho!9b42ba8
- 更新指南,特别是绘图。感谢 @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
- 添加空间头部。感谢 @pngwn!1d09925
- 修复 Lite 的a238af4
- 重构绘图以放弃 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
- 允许警报模态框中包含 HTML。感谢 @abidlabs!e1a4040
- 确保所有上传组件具有一致的上传区域。感谢 @pngwn!cea3bf9
- 修复 statustracker 和 markdown 的依赖循环。感谢 @aliabd!2d179f6
- 将 Wasm 模式下 gr.Plot 的默认格式设置为 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,该 API 与 Hugging Face Text Generation Inference、OpenAI 的聊天完成 API 和 Llama.cpp 服务器等 LLM API 提供商完全兼容。
围绕这些 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 Chatbot 现在可以本地显示 Agent 和思维链工作流中常见的工具使用和中间思考!
如果您使用新的“messages”格式,只需添加一个带有包含 title
键和 value
的字典的 metadata
键。这将在可展开的消息框中显示助手消息,以显示工具或中间步骤的结果。
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
- 警告虚假凭证。感谢 @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
- 添加消息格式和 LLM 代理指南。感谢 @freddyaboulton!bc1d45d
- Model3D 点云和线框显示模式。感谢 @dawoodkhan82!012da05
- 确保 JS 客户端的 status_callback
功能正常工作并改进状态消息。感谢 @hannahblair!c1ecfde
- 8394 df 隐藏项。感谢 @pngwn!2943d6d
- 添加 Timer 组件。感谢 @aliabid94!a6b3c6c
- 确保 @gradio/client
的 submit
迭代器按预期释放。感谢 @pngwn!26cdd0f
- 恢复聊天机器人样式。感谢 @pngwn!0482453
- Chatbot LaTeX 崩溃修复。感谢 @dawoodkhan82!e834d30
- 确保 @gradio/client
始终返回正确的数据。感谢 @pngwn!31a876d
- 修复图像的“分享到社区”按钮。感谢 @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
- 确保聊天机器人上的复制按钮在适当时候显示。感谢 @pngwn!9933e53
- 更新 file_explorer.py 以支持 str 类型的 height
。感谢 @magical-l!c12f82a
- Bugfix: 为 gr.MultimodalTextbox
添加 file_count
参数。通过将 file_count
设置为 "multiple"
可以上传多个文件。默认为 "single"
以保留之前的行为。感谢 @freddyaboulton!9b8840a
- 确保聊天机器人消息对屏幕阅读器可见。感谢 @hannahblair!c348392
- 多模态文本框按钮对齐。感谢 @dawoodkhan82!bb504b4
- gr.Chatbot()
中的 Gradio 组件。感谢 @dawoodkhan82!c2a0d05
- 控制错误、信息、警告的显示。感谢 @freddyaboulton!a77877f
- 首次加载性能优化。感谢 @baojianting!c7cd0a0
- 确保聊天机器人背景与其他组件一致。感谢 @pngwn!7fc7455
- 支持聊天机器人中的 HTML。感谢 @pngwn!65afffd
- 修复多模态聊天界面外观。感谢 @aliabid94!affce4c
- 修复 altair 上的调整器。感谢 @aliabid94!797621b
- 改进了绘图渲染以在主题上匹配。感谢 @aliabid94!/n 亮点: gr.Plot、gr.BarPlot、gr.LinePlot、gr.ScatterPlot 将有视觉变化,包括颜色和宽度尺寸的更改。595ecf3
- 为自定义组件 gradio.config.js
文件添加构建目标选项。感谢 @pngwn!d35c290
- 添加了更多关于在聊天机器人中使用组件的文档。感谢 @abidlabs!36b2af9
- 将 gradio 版本检查从打印语句更改为警告。感谢 @gdevakumar!7289c4b
- 添加凭证:包含和 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
- 为文档添加辅助类。感谢 @aliabd!bdaa678
- 添加 handle_file 文档。感谢 @pngwn!ca125b7
- 修复 Jupyter Notebook 和有状态演示的重新加载模式。感谢 @freddyaboulton!900cf25
- 确保前端函数在不返回值时也能工作。感谢 @pngwn!530f8a0
- 聊天机器人组件调整。感谢 @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
参数的预期行为更一致。同时将 show_progress
添加到 gr.Interface
和 gr.ChatInterface
。感谢 @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
- 修复渲染和 on 的类型提示。感谢 @freddyaboulton!341844f
- 点击预览聊天机器人中的图片。感谢 @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 客户端与经过身份验证的空间协作 🍪。感谢 @hannahblair!e738e26
- 包含如何从他人自定义组件仓库开始的说明。感谢 @freddyaboulton!94a1143
- 在预检头中添加 allow-credentials。感谢 @abidlabs!5efd35c
- 可编辑文档。感谢 @aliabd!33e8bab
- 通过 show_inline_category
参数启用在 HighlightedText 中隐藏内联类别。感谢 @xu-song!8028c33
- 渲染装饰器文档。感谢 @aliabid94!3fbf2e8
- chore: 更新 docs.py。感谢 @eltociear!e86dd01
- 如果状态在渲染中创建,则连接心跳。同时修复配置清理bug #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
- 修复重新加载模式相等性检查中的 bug。更好的状态变量相等性转换。感谢 @freddyaboulton!89d6a17
- 更改状态跟踪器的 z-index。感谢 @hannahblair!4dc7fa7
- 修复 Chatbot、Dataframe、Markdown 自定义组件。感谢 @freddyaboulton!f138b41
- 如果无法导入 JsonValue,则使用 Any。感谢 @freddyaboulton!0236b1a
- 修复:防止在删除时触发 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,则始终创建 jwt。感谢 @pngwn!0bf3d1a
- 修复客户端无法连接到具有自签名证书的应用程序的 bug。感谢 @freddyaboulton!7e976fd
- 作业取消时发送 ProcessCompleted 消息。感谢 @freddyaboulton!719d596
- 修复状态跟踪器是指针事件目标的问题。感谢 @freddyaboulton!fbf4edd
- 确保客户端适用于私人空间。感谢 @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()
的空间被 gr.load
-ed。感谢 @abidlabs!22df61a
- 客户端节点修复。感谢 @pngwn!9ece050
- 修复在重新加载模式下更新组件值不会在 UI 中显示的 bug。感谢 @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 管道。感谢 @whitphx!68dcae5
- 使用 _website 中代码的工作区版本。感谢 @aliabd!6a218b4
- 重构上传为类方法 + 将客户端传递到每个组件中。感谢 @pngwn!cf52ca6
- 确保通过 SSE 协议连接到私有 HF 空间。感谢 @hannahblair!3a6f1a5
- 仅在需要时连接心跳。感谢 @freddyaboulton!7aca673
- 为 Node.js 和浏览器环境添加 eventsource polyfill。感谢 @hannahblair!5671ff1
- 修复:在 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 版本以避免 Pyodide 尚不支持的 ujson 安装。感谢 @whitphx!2afca65
)我们添加了 max_file_size
参数到 launch()
,用于限制上传到服务器的文件大小。此限制适用于每个单独的文件。此参数可以指定为字符串或整数(对应于以字节为单位的大小)。
以下代码片段将最大文件大小设置为 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
样式和可访问性标记。感谢 @whitphx!006fa3c
- 改进 Blocks
、Interface
、ChatInterface
中 js
参数的文档。感谢 @abidlabs!176a8a4
- 修复 Label 组件的值更改检测,以避免无限循环调度更改事件。感谢 @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 开发工具作为本地依赖项,而不是打包。感谢 @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
- 恢复聊天机器人、MarkdownCode 的 Markdown 格式。感谢 @aliabid94!a4782f7
- 如果值是元组,允许按文件名显示 gr.Code 示例。感谢 @freddyaboulton!8250a1a
- 处理构建根 URL 时存在多个 header 的情况。感谢 @abidlabs!b78129d
- 使用 asyncio.Event 在心跳路由中停止流。感谢 @freddyaboulton!eae97c2
- 修复 python 3.9 中的任务 bug。感谢 @freddyaboulton!1a7851c
- 修复主题中单个字体名称的处理。感谢 @sd109!1eb4c20
- 确保 kwargs 在整个应用程序中始终同步。感谢 @pngwn!7c9a964
- 修复程序化标签选择。感谢 @aliabid94!057d171
- 正确处理 Image
和 ImageEditor
中的设备选择。感谢 @hannahblair!b729f10
- Bug修复:修复主题构建器应用中的颜色和大小键。感谢 @shubhamofbce!be46ab1
- 确保整个下拉菜单可点击。感谢 @dawoodkhan82!bad3836
- 为示例参数添加提示 list[list]
。感谢 @WH-Yoshi!867ff16
- 触发 Image Editor 的“clear”事件。感谢 @uebian!919afff
- 添加了使用 Docker 部署 Gradio 应用程序的指南。感谢 @abidlabs!efd9524
- 修复 gr.CheckboxGroup 更改事件。感谢 @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 设置为 true 时,抑制打印“Running on local URL:”。感谢 @dnoliver!b9dbcf7
- 使 gr.ChatInterface
中的按钮更适合移动设备。感谢 @abidlabs!e6d051d
- 将图像粘贴到 MultimodalTextbox 中。感谢 @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 中在 #6261 中错误引入的 minify 设置。感谢 @whitphx!1a7c8d3
- 在 Wasm 模式下停止导入 gradio.ipython_ext。感谢 @whitphx!75a2bf7
- 添加客户端状态指南并修复组件的默认值。感谢 @abidlabs!e0a8b7f
- 将 typer
从 Wasm 环境的 requirements 列表中排除,并修复不导入 gradio.cli
的问题。感谢 @whitphx!e3b1236
- 惰性导入 pandas。感谢 @whitphx!ecf5c52
- 修复 gradio/components/dataframe.py 不导入 pandas.io
的问题。感谢 @whitphx!05db0c4
- 重构 CORS 中间件以大大提高速度。感谢 @abidlabs!425fd1c
- 基准测试修复。感谢 @aliabid94!1c257f5
- Bug修复:文件名中的 ..
在输出加载时抛出错误。感谢 @shubhamofbce!0e125d7
- 即使没有文件,也从 gr.DownloadButton
触发点击事件。感谢 @abidlabs!8d7b3ca
- 多模态文本框加载 + 其他修复。感谢 @dawoodkhan82!2c8cd0a
- 惰性导入 altair。感谢 @whitphx!b0a3ea9
- 客户端 client.view_api() 在默认文件值情况下的微小修复。感谢 @abidlabs!755157f
- 不在 gr.NO_RELOAD 上下文内重新加载代码。感谢 @freddyaboulton!dd3e363
- 如果 lint 或类型检查失败,则 CI 失败。感谢 @abidlabs!aad209f
- 减少延迟:不在线程池中运行预处理和后处理。感谢 @freddyaboulton!d831040
- 在 Wasm 环境中移除 Ruff 和 Uvicorn。感谢 @whitphx!2efb05e
- 添加了对 python 客户端中的 kwargs 和默认参数的支持,并改进了“查看 API”页面中参数信息的显示方式。感谢 @abidlabs!c62a57e
- 将文档演示转换为 Lite。感谢 @aliabd!f7df92f
- 改进非交互式滑块的用户体验。感谢 @Pythongor!ff6bf3e
- 移除 Wasm worker 中的 aiohttp mock,因为它在 https://github.com/gradio-app/gradio/pull/5244 中已移除。感谢 @whitphx!43ae23f
- 修复意外 bug,该 bug 阻止自定义文本框传递给聊天界面。感谢 @freddyaboulton!e78bca4
- 即使 Radio 是输出组件,也触发 Radio 的输入事件。感谢 @freddyaboulton!781678b
- 修复从 x_forwarded_host
headers 解析根 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
- 将 Playground 添加到 Lite Custom Element。感谢 @aliabd!0a3870d
- 即使 window.__gradio_mode__ === "website"
,也调用 handle_darkmode(),但强制使用浅色主题。感谢 @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
- 修复状态更新和加载状态更新之间的竞争条件。感谢 @aliabid94!f67759d
- 修复 wasm_proxied_mount_css 不重用现有样式元素的问题。感谢 @whitphx!598ad7b
- 修复开发模式。感谢 @pngwn!28342a2
- 修复 httpx 超时问题。感谢 @freddyaboulton!7c66a29
- 修复 Lite 自定义元素,使其在 connected 回调中初始化应用程序,并在 disconnected 回调中释放应用程序。感谢 @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
- 文件现在应在客户端中以 file(...)
形式提供,并修复了 gr.load()
的一些问题。感谢 @abidlabs!a22f3e0
- 修复根路径问题,避免子路径重复。感谢 @abidlabs!b3b0ea3
- 添加 --python-path、--pip-path、--gradio-path CLI 参数,让自定义组件开发者控制使用哪个可执行文件。感谢 @freddyaboulton!0ae1e44
- 通过 gr.set_static_paths 控制哪些文件移动到缓存。感谢 @freddyaboulton!cb3999e
- 使用 x-forwarded-host
header 来确定根 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 以便在 Wasm 环境中使用打补丁的 BaseModel 类。感谢 @aliabid94!3645da5
- 修复 Gallery
预览覆盖层不正确的相对鼠标坐标。感谢 @MMP0!eda33b3
- 重构 get_fetchable_url_or_file()
以将其从前端移除。感谢 @abidlabs!4b0d589
- chore(deps): 更新所有非主要依赖。感谢 @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 上可能暴露凭据的 /file=
文件路径的修复更通用。感谢 @abidlabs!c88290d
- WIP: 优化 /file 路由。感谢 @freddyaboulton!e329f1f
- 防止时间攻击猜测 Gradio 密码。感谢 @abidlabs!3e4e680
- 修复 .key_up()
方法,使其可用于动态下拉自动完成。感谢 @abidlabs!4faf8a7
- 阻止可能在 Windows 上暴露凭据的 /file=
文件路径。感谢 @abidlabs!f52cab6
- 为文件浏览器分派更改事件。感谢 @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的端到端测试。感谢 @whitphx!a7fa47a
- 确保后台标签页中的Dataframes在标签页被选中时可见。感谢 @pngwn!2244059
- 确保CSS .dark
规则选择器被应用。感谢 @hannahblair!4dc9ffb
- 存储gr.Accordion
的open
值。感谢 @hannahblair!7f19ba2
- 停止缓存根URL。感谢 @abidlabs!7302a6e
- 修复文件型Spaces的gr.load
。感谢 @abidlabs!ccdaec4
- 为自定义组件添加simpleimage
模板。感谢 @abidlabs!edfd05d
- 将聊天界面扩展到全窗口高度。感谢 @aliabid94!aa97a5e
- API文档改进。感谢 @abidlabs!e418edd
- 修复SimpleImage包json。感谢 @abidlabs!5181957
- 添加移动端Chromatic测试。感谢 @hannahblair!e5344ba
- chore(deps): 更新依赖项marked到v12。感谢 @renovate!572e360
- 上传调整。感谢 @pngwn!0fddd0f
- 自动确定文档组。感谢 @akx!68a54a7
- 通过差异改进聊天机器人流媒体性能。感谢 @aliabid94!请注意,此PR更改了生成器函数的API格式,这对于直接读取EventStream的任何客户端来说将是一个破坏性更改。efacc7d
- 确保Accordion中的open
响应性。感谢 @hannahblair!2e6672c
- 允许启动/暂停流式图像输入。仅在需要时访问网络摄像头。感谢 @freddyaboulton!dec6a71
- 修复PIL导入。感谢 @akx!fdd1521
- chore: 更改时间格式(感谢@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
- 允许在数据框单元格中选择文本。感谢 @shubhamofbce!05d8a3c
- 将ruff更新到0.1.13,启用更多规则,修复问题。感谢 @akx!b3a9c83
- Lite: Wasm兼容的Model3D。感谢 @whitphx!7ea8336
- 从read_from_flag()中移除flag_dir。感谢 @akx!6a7e98b
- 修复gradio cc publish中的连字符bug。感谢 @freddyaboulton!60078df
- 修复测试要求,使其与python 3.11兼容。感谢 @abidlabs!09257ef
- 修复CI缓存。感谢 @pngwn!1893756
- Code
组件的小型清理。感谢 @abidlabs!aea14c4
- 重构推理API并将其重命名为无服务器推理端点。感谢 @abidlabs!24157a3
- 根据操作系统模式添加背景颜色。感谢 @aileenvl!8dd6f4b
- 处理所有组件的examples为null
的情况。感谢 @abidlabs!757dba6
- 为gr.Dataframe
添加show_label
检查。感谢 @hannahblair!2d51a9d
- 为gr.TabbedInterface
添加缺失的参数和文档字符串。感谢 @abidlabs!9f23b0b
- 优化客户端view_api方法。感谢 @freddyaboulton!ded5256
- 修复音频录制事件未分派的问题。感谢 @hannahblair!733ca26
- 确保示例图像按预期显示。感谢 @hannahblair!a3aa22f
- 调整值以修复.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
接收空数据框相关的问题。感谢 @cswamy!21a16c6
- 为gr.Interface
和gr.ChatInterface
添加参数。感谢 @abidlabs!6abad53
- 添加了polars数据框支持及演示。感谢 @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
- 修复:聊天机器人在给定http://或https://后跟空URL时崩溃。感谢 @dawoodkhan82!cb90b3d
- 以编程方式确定要推送到空间的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
- publish: 简化twine_files代码。感谢 @akx!64c65d8
- 在deploy_discord函数中为打开/写入文件添加编码。感谢 @WilliamHarer!f2d69fc
- 修复画廊缩略图设计回归。感谢 @hannahblair!ec28b4e
- 为gr.Tab()
添加visible
和interactive
参数。感谢 @hannahblair!aaecfe5
- 主题:修复错误的头部图片URL。感谢 @akx!a336508
- 修复布局组件无法用作自定义组件的bug。感谢 @freddyaboulton!3c3cf86
- 修复快速生成器上的UI冻结。感谢 @aliabid94!9201f86
- 如果未安装自定义组件包,则在构建步骤中引发错误。感谢 @freddyaboulton!9cefd2e
- 重构示例,使其接受与函数返回格式相同的数据,将.as_example()
重命名为.process_example()
。感谢 @abidlabs!523b6bc
- gr.File()
的gr.update(value=[])
会清除它。感谢 @dawoodkhan82!6be3c2c
- 修复聊天机器人自定义组件模板。感谢 @freddyaboulton!3f139c7
- 修复特定文件类型的File拖放。感谢 @dawoodkhan82!623bc1a
- 切换gr.Video
的默认源顺序,使上传成为默认。感谢 @abidlabs!5d00dd3
- 使`gr.Video` Wasm兼容。感谢 @whitphx!ccf317f
- 为gr.Interface
添加additional_inputs
、additional_inputs_accordion
参数。感谢 @abidlabs!8dfabee
- 修正了拼写错误。感谢 @Cassini-chris!793bf8f
- 在等待上传请求时,在<Upload />
中显示待处理文件。感谢 @hannahblair!640b7fe
- 修复网络摄像头录制问题。感谢 @dawoodkhan82!5e00162
- 使`gr.JSON` Wasm兼容。感谢 @whitphx!6e285be
- 修复重新加载器。感谢 @aliabid94!0f0498b
- 确保聊天机器人主题文本大小设置正确。感谢 @hannahblair!f742d0e
- Lite: 在Wasm上支持AnnotatedImage。感谢 @whitphx!8a093e2
- 为SharedWorker模式下的lite添加开发说明。感谢 @whitphx!6c863af
- 修复功能测试。感谢 @aliabid94!fb9c6ca
- Lite: 聊天机器人。感谢 @whitphx!4511d57
- 修复gr.Chatbot()
中的aria-label属性。感谢 @whitphx!649cd4d
- 在Wasm的open_stream()
中使用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
- 移除聊天机器人组件中音频元素的样式。感谢 @whitphx!d361a0f
- 确保Model3D中的相机设置仅在必要时更新。感谢 @hannahblair!459c5dc
- 将distutils.StrictVersion依赖项替换为Python 3.12。感谢 @velaia!7bab755
- 已修复(这个这个)。感谢 @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
- 重写README的部分内容和4.0的入门指南。感谢 @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
- 改进源选择用户体验。感谢 @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 token支持。感谢 @Wauplin!f3c4d78
- CSS更改时重新加载 + 修复CSS特异性。感谢 @pngwn!299f5e2
- 更新CI测试中使用的HF token。感谢 @abidlabs!cfd5700
- 使gr.ClearButton
重置gr.State
的值。感谢 @abidlabs!6b1401c
- chore(deps): 更新依赖项marked到v11。感谢 @renovate!30c9fbb
- 从env设置gradio api服务器。感谢 @aisensiy!51b54b3
- 调整了我们的bug问题模板。感谢 @abidlabs!7cbf96e
- 问题5245:整合requests和httpx的使用。感谢 @cswamy!24e0481
- 热修复:更新huggingface_hub
依赖版本。感谢 @abidlabs!bdf81fe
- Lite: 在每个运行时按appId设置主目录路径。感谢 @whitphx!4d1cbbc
- 允许在Blocks.svelte
中将高度和宽度作为字符串传递。感谢 @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
- 修复添加多个脚本标签时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接受图标。感谢 @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客户端与私有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
- 为gradio后端添加py.typed。感谢 @aleneum!58e3ca826
- 自定义组件CLI改进。感谢 @freddyaboulton!2761b6d19
- 保存PIL图像时捕获ValueError、KeyError。感谢 @freddyaboulton!62d35c3d1
- 问题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 的一些重要小bug修复:上传事件根本未触发。从剪贴板粘贴未触发上传事件。清除按钮未触发更改事件。更改事件无限次触发。上传的图片未保留其原始名称。上传新图片应清除旧图片。感谢@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
- 允许 gr.Image
的 sources
为字符串。感谢@abidlabs!2090aad73
- 将 wavesurfer 依赖项移至 js/audio。感谢@freddyaboulton!324867f63
- 修复事件目标。感谢@aliabid94!03491ef49
- 修复 api_name
的 docstrings 和默认值。感谢@abidlabs!e76a9e8fc
- 修复 Chatbot 待处理消息问题。感谢@dawoodkhan82!da1e31832
- 修复 Model3D 下载按钮及其他问题。感谢@freddyaboulton!de998b281
- 正确处理 gr.Chatbot
的 avatar_images
和 gr.Button
的 icon
,以便将相应文件移动到缓存。感谢@abidlabs!42f76aeeb
- 将 AsyncGenerator 添加到 dependencies.types.generator
的检查列表。感谢@whitphx!d64787b88
- 修复主题空间 readmes 中的 colorFrom
。感谢@abidlabs!4d3aad33a
- 修复图片上传。感谢@freddyaboulton!854b482f5
- 重新设计文件上传。感谢@hannahblair!37dd335e5
- 修复 4.0 中的音频流输出问题。感谢@aliabid94!f1409f95e
- 提供文件上传的状态更新。感谢@freddyaboulton!8a3f45c26
- 修复组件更新 bug。感谢@freddyaboulton!6204ccac5
- 修复 gr.load()
,使其能与 Images 和 Examples 正常工作。感谢@abidlabs!55fda81fa
- Textbox 和 Code 组件的模糊/聚焦修复。感谢@dawoodkhan82!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
中选项的更新以及与其他组件相关的更新。感谢@abidlabs!92278729e
- 画廊预览修复,并可选择跳过后处理中 URL 的下载。感谢@freddyaboulton!5668036ee
- 修复 Windows 上的文件上传。感谢@freddyaboulton!e8216be94
- 确保 gr.Dataframe
按预期更新。感谢@pngwn!8bbeca0e7
- 改进 Embed 和 CDN 处理,并修复一些相关 bug。感谢@pngwn!61c155e9b
- 如果浏览器在移动设备上关闭,则移除会话。感谢@aliabid94!4840b4bc2
- 将 API 路由自动命名添加到 CHANGELOG。感谢@freddyaboulton!dd901c1b0
- Model3D 平移,改进用户体验。感谢@dylanebert!12d8e90a1
- 修复 streaming=True
的输入 Image
组件。感谢@abidlabs!de36820ef
- 修复网站演示中的各种问题。感谢@aliabd!ac4f2bcde
- 从队列中移除 **kwargs。感谢@freddyaboulton!e3ede2ff7
- 确保 Model 3D 在属性更改时更新。感谢@hannahblair!e32bac894
- 修复更新 interactive 属性的问题。感谢@abidlabs!27194a987
- 确保 gr.Image
的 statustracker 在静态模式下显示。感谢@pngwn!aaa55ce85
- 视频/音频修复。感谢@freddyaboulton!6bce259c5
- 确保 gr.CheckboxGroup
按预期更新。感谢@pngwn!afb72bd19
- 修复 radio.select 将前一个值而不是选中值传递给函数的 bug。感谢@freddyaboulton!3e31c1752
- 将 likeable 添加到 Chatbot 的配置中。感谢@freddyaboulton!2cffcf3c3
- 确保 radio 具有不同的名称。感谢@pngwn!5cddd6588
- 修复:聊天界面中的初始消息被覆盖。感谢@dawoodkhan82!5fe091367
- 处理画廊的 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
,这意味着组件不能接受任意(未使用的)参数。以前会抛出警告。plain
不再是 gr.Button
类中 variant
参数的 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 的空间。但是,您仍然可以使用客户端库(请参阅下面的客户端库更改)。launch()
中的 enable_queue
launch()
中的许多位置参数现在仅支持关键字,并且 show_tips
已移除gr.Series
和 gr.Parallel
api_name=None
,则 API 名称为 python 函数的名称。与客户端库相关的更改:
gr.Chatbot
、gr.Label
和 gr.JSON
)都会将数据保存到文件并返回文件路径。同样,您必须将输入 JSON 作为文件路径传递。现在,JSON 数据直接传递和返回,使得使用这些组件与客户端一起工作更容易。以下是一些帮助迁移到 Gradio 4.0 的具体提示
allowed_paths
由于工作目录现在默认不提供服务,如果您在 CSS 或 gr.HTML
组件中通过 /file=
路由引用本地文件,您将需要使用 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
,您需要将 image.png
添加到 allowed_paths
中,如下所示
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
来实现,该参数现在是每个事件的参数,而不是全局参数。默认情况下,每个事件的此值为 1
,但您可以将其设置为更高值,或者设置为 None
以允许任意数量的此事件同时执行。事件还可以使用 concurrency_id
参数进行分组,以便它们共享相同的限制,默认情况下,调用相同函数的事件共享相同的 concurrency_id
。
最后,需要注意的是,Blocks 中所有事件的 concurrency_limit
的默认值(通常为 1)可以使用 Blocks.queue()
中的 default_concurrency_limit
参数进行更改。您可以将其设置为更高的整数或 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
- 第一部分:移除序列化器。感谢@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
- 永久移除解释。感谢@pngwn!287fe6782
- 改进 Audio 组件。感谢@pngwn!287fe6782
- 将 props 传递给示例组件和示例输出。感谢@pngwn!287fe6782
- 清理根 URL。感谢@pngwn!287fe6782
- 添加了使用 gradio_component build
构建自定义组件的前后端以准备发布到 pypi 的功能。感谢@pngwn!287fe6782
- 修复后端的 selectable 属性。感谢@pngwn!287fe6782
- 将取消事件的 api=False 设置。感谢@pngwn!287fe6782
- 改进 Video 组件。感谢@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
- 移除 Audio 中的 show_edit_button
参数。感谢@hannahblair!a7435ba9e
- 修复 Lite 在 v4 上的静态问题。感谢@aliabd!e4f7b4b40
- 修复客户端与上传的循环依赖。感谢@pngwn!667802a6c
- JS 组件文档。感谢@freddyaboulton!103416d17
- JS README 和 Docs 上的 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
- 永久移除解释。感谢@abidlabs!bce37ac74
- 修复后端的 selectable 属性。感谢@freddyaboulton!88bccfdba
- 改进 Video 组件。感谢@hannahblair!865a22d5c
- 重构 Blocks.load()
,使其与其他监听器保持相同风格。感谢@abidlabs!c3bc515bf
- Gradio 自定义组件发布。感谢@freddyaboulton!db143bdd1
- 如果正在更新,则使输出组件不可编辑。感谢@dawoodkhan82!d5d29c947
- 开源 FRP 服务器并允许 gradio
连接到自定义共享服务器。感谢@abidlabs!0d261c6ec
- 修复 fallback demo 应用程序模板代码。感谢@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
- 改进 Audio 组件。感谢@hannahblair!cad537aac
- 将 props 传递给示例组件和示例输出。感谢@pngwn!825c9cddc
- 修复 dev 模式 Model3D。感谢@freddyaboulton!9a40de7bf
- 修复:在初始化后处理中移动到缓存 + 回退修复。感谢@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: 修复组件更新 bug。感谢@freddyaboulton!9cf40f76f
- V4: 简单下拉菜单。感谢@freddyaboulton!85056de5c
- V4: 简单文本框。感谢@freddyaboulton!9053c95a1
- 简化 File 组件。感谢@freddyaboulton!35a227fbf
- 提案:自定义组件的示例演示应该是 gr.Interface
。感谢@abidlabs!3b2d9eaa3
- 修复 cc 构建。感谢@pngwn!287fe6782
- 待定事件行为。感谢@pngwn!287fe6782
- 恢复在 #5832 中错误移除的类型。感谢@pngwn!287fe6782
- 修复:Firefox 上的滑块条太细。感谢@pngwn!40a171ea6
- 修复图像双重更改 bug。感谢@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 添加开发模式主机。感谢@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
- 再次合并主分支。感谢@pngwn!85ba6de13
- 简化 4.0 中文件在组件中的处理方式。感谢@pngwn!85ba6de13
- 如果 api_name 为 None,则命名端点。感谢@pngwn!dcf13d750
- V4: 更新组件 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 组件使用对 Wasm 服务器的伪 HTTP 请求显示媒体文件。感谢@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
- 修复 docstrings 中的花括号。感谢@whitphx!8d909624f
- 修复 Audio、Image 和 Video 组件的样式问题。感谢@aliabd!e70805d54
- 将 BlockLabel
元素更改为使用 <label>
。感谢@aileenvl!c07207e0b
- 移除 Interface 内部已弃用的 .update()
用法。感谢@abidlabs!b450cef15
- 修复 Code 组件 docstring 的类型。感谢@whitphx!4e62b8493
- 确保 websocket polyfill 在已设置 global.Webocket
属性时不会加载。感谢@Jay2theWhy!b83064da0
- 修复带滚动条的下拉菜单滚动错误。感谢@Kit-p!7b63db271
- 将 Examples 类中的异步方法转换为正常的同步方法。感谢@whitphx!891d42e9b
- 定义 Font.repr() 以可读格式在文档中打印。感谢@whitphx!1d5b15a2d
- external.py 中的断言重构。感谢@harry-urek!48e09ee88
- 快速修复:Chatbot 更改事件。感谢@dawoodkhan82!c4ba832b3
- 移除 gr.update
的弃用警告并清理相关代码。感谢@abidlabs!0592c301d
- 修复 Dataframe line_breaks
。感谢@dawoodkhan82!fbce277e5
- 在 dataframe 单元格中保留 Markdown 渲染的列表。感谢@abidlabs!361823896
- 修复 dataframe line_breaks
。感谢@dawoodkhan82!FileExplorer
组件 (#5672 e4a307ed6
)得益于一项新功能,允许组件直接与服务器通信,而无需通过值传递数据,我们创建了一个新的 FileExplorer
组件。
此组件允许您通过传递 glob 来填充资源管理器,但只在您的预测函数中提供所选文件。
用户可以导航虚拟文件系统并选择文件,这些文件将在您的预测函数中可访问。此组件将允许开发人员构建更复杂的空间,具有更灵活的输入选项。
有关更多信息,请查阅 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
- 修复待处理聊天机器人消息样式并确保值为None
的消息不渲染。感谢 @hannahblair!8f0fed857
- 改进聊天机器人的可访问性和用户体验。感谢 @hannahblair!2a5b9e03b
- 为gr.DataFrame
添加了对pandas Styler
对象的支持(最初只设置display_value
)。感谢 @abidlabs!abb5e9df4
- 确保图库中无标题的图像能够下载。感谢 @hannahblair!502054848
- 修复图库columns
和rows
参数。感谢 @abidlabs!e842a561a
- 修复聊天机器人中的换行问题。感谢 @dawoodkhan82!c9af4f794
- 为frpc隧道添加了超时和错误处理。感谢 @cansik!ef96d3512
- 在字典中返回更新的组件时,不发出警告。感谢 @abidlabs!caf6d9c0e
- 默认情况下,将Colab中所有Gradio应用的share=True。感谢 @abidlabs!dba651904
- 修复在Spaces上运行副本相关逻辑时的deepcopy错误。感谢 @abidlabs!84e03fe50
- 为网站添加复制按钮,并为API文档提供更好的描述。感谢 @aliabd!a0fc5a296
- 使Tab和Tabs可更新。感谢 @abidlabs!c10dabd6b
- 修复Dataframe单元格的gr.select()方法问题。感谢 @dawoodkhan82!c2b31c396
- 基于上下文的进度跟踪器。感谢 @cbensimon!78e7cf516
- 确保内部数据已更新,然后才分派success
或then
事件。感谢 @pngwn!d626c21e9
- 在运行于具有多个副本的Hugging Face Spaces上时,完全解析生成的filepaths。感谢 @abidlabs!aefb556ac
- 防止来自/api/predict
的内部log_message错误。感谢 @cbensimon!96c4b97c7
- 调整翻译。感谢 @ylhsieh!3a48490bc
- 在gr.load()
的inputs
和outputs
可接受类型列表中添加裸Component
类型。感谢 @whitphx!b619e6f6e
- 重组Docs导航栏并填补空白。感谢 @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
- 增加滑块可点击区域。感谢 @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
选择器附加到布局元素,并为Tab按钮添加一个id(用于通过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
- 为聊天机器人添加render_markdown
参数。感谢 @dawoodkhan82!88d43bd12
- 修复聊天机器人中头像图像被挤压的问题。感谢 @dawoodkhan82!6b8c8afd9
- 修复gr.load()
与gr.Examples
的不正确行为。感谢 @abidlabs!e51fcd5d5
- 在Spaces或wasm上设置share=True时应警告而不是抛出错误。感谢 @abidlabs!52f783175
- 重构: 使用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()示例接受URL。感谢 @abidlabs!a0cc9ac9
- 修复用户输入无效值并按回车时下拉菜单崩溃的问题。感谢 @abidlabs!c5fe8eba
- 修复下拉菜单的docstring。感谢 @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
- 移除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 sanitization的kwarg。感谢 @dawoodkhan82!0cc7e2dc
- 消息为None时隐藏头像。感谢 @dawoodkhan82!e4e7a431
- 在gr.Markdown
、gr.Chatbot
和gr.DataFrame
中渲染添加到页面上的LaTeX。感谢 @abidlabs!4d94ea0a
- 为gr.Markdown
中溢出的内容添加水平滚动。感谢 @abidlabs!b27f7583
- 更改markdown渲染以将换行符设置为false。感谢 @abidlabs!64666525
- 取消下拉菜单过滤。感谢 @deckar01!5f25eb68
- 小错误修复。感谢 @aliabid94!/n - 我们对__exit__
的使用会捕获错误并破坏任何未能实例化的组件的堆栈跟踪(例如尝试在主分支上运行blocks_kitchen_sink)。现在,如果发生异常,__exit__
会立即退出,以便可以干净地打印原始异常/n - HighlightedText渲染异常,已清理3341148c
- 修复:将头像图片包裹在一个div中以裁剪其形状。感谢 @Keldos-Li!df090e89
- 修复Checkbox选择分派。感谢 @freddyaboulton!fe057300
)我们现在对gr.Markdown
和gr.Dataframe
中的Markdown有了更好的支持,包括语法高亮和Github Flavoured 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
)我们现在在web组件上有一个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
- 将gr.Markdown和gr.DataFrame组件的markdown和latex处理移至前端。感谢 @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
- 在docs上为组件创建事件监听器表格。感谢 @aliabd!730f0c1d
- 确保gradio客户端在函数不返回任何内容时按预期工作。感谢 @raymondtri!b22e1888
- 修复主题构建器中的图像以使用永久URI。感谢 @abidlabs!f344592a
- 允许为gr.File
设置高度并改进组件的用户界面。感谢 @abidlabs!06982212
- 在不需要时移除文件预览中的滚动条。感谢 @abidlabs!15075241
- 旋转LinePlot、BarPlot和ScatterPlot的坐标轴标签。感谢 @Faiga91!92282cea
- 聊天机器人头像图片。感谢 @dawoodkhan82!b3e50db9
- 移除aiohttp依赖。感谢 @freddyaboulton!46a2b600
- 确保音频翻译正常工作。感谢 @hannahblair!933db53e
- 更好地处理gr.DataFrame
中的空数据框。感谢 @abidlabs!2b397791
- 修复gr.Chatbot
中消息文本溢出到复制按钮上的问题。感谢 @hannahblair!ddac7e4d
- 确保文件组件将文件上传到服务器。感谢 @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()
twitter视频分辨率修复。感谢 @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: 修复analytics模块,使其在Wasm环境中可以使用asyncio。感谢 @whitphx!5244c587
- 允许HighlightedText
中的新行使用/n
并保留空格。感谢 @hannahblair!2745075a
- 将deploy_discord添加到文档中。感谢 @freddyaboulton!0dc49b4c
- 为gr.ChatInterface
添加对异步函数和异步生成器的支持。感谢 @abidlabs!883ac364
- 为Number
添加step
参数。感谢 @hannahblair!22aa5eba
- 在聊天机器人消息中,<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添加图标和链接。感谢 @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的组织,其中包含可用于将由Gradio提供支持的最先进LLM转换为Discord机器人的模板空间。
目前,我们有以下模板空间:
但再次强调,您可以部署任何通过互联网公开的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
参数,允许隐藏静态Image组件中的下载按钮,由@hannahblair在PR 4959中实现。gr.ChatInterface
UI现在在流式传输时将“Submit”按钮转换为“Stop”按钮,可用于暂停生成。由@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,即从处理程序参数推断的组件标签包含特殊参数,如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()
产生
以及相应的易于使用的API,位于/chat
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中实现。
Video
和Image
中的.change()
事件已修复,现在只触发一次,由@abidlabs在PR 4793中实现。Audio
中的.change()
事件已修复,当组件值被另一个事件以编程方式更新时会触发,由@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事件未触发的bug,由@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
事件未触发的bug,由@freddyaboulton在PR 4551中实现。gr.Group
中设置visible=False
事件不工作的bug,由@abidlabs在PR 4567中实现。make_waveform
以处理包含空格的路径,由@akx在PR 4570和PR 4578中实现。gr.Audio
和gr.Video
组件的stop_recording
事件中发送捕获的数据,由@freddyaboulton在PR 4554中实现。gr.Gallery
中height
和object_fit
参数被忽略的bug,由@freddyaboulton在PR 4576中实现。AnnotatedImage
CSS样式导致注释蒙版无法正确显示的bug,由@freddyaboulton在PR 4628中实现。tqdm
构造函数中未指定iterable
,Progress
组件也会出现,由@itrushkin在PR 4475中实现。plot
参数的弃用警告现在只应针对Image
组件发出,由@freddyaboulton在PR 4709中实现。type
弃用警告,由@freddyaboulton在PR 4709中实现。autoplay=True
且视频源动态更新时,音频自动播放功能正常工作,由 @pngwn 在 PR 4705 中完成。gr.Dropdown
底部被截断的问题。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("Your warning message")
或 gr.Info("Your info message")
作为独立行放入您的函数中即可。由 @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 中完成。清除按钮现在将这些组件的值设置为空,而不是开发者设置的原始默认值。这是为了使其与 Gradio 的其他组件保持一致。$
作为 Chatbot
的默认 LaTeX 分隔符,由 @dawoodkhan82 在 PR 4516 中完成。具体的 LaTeX 分隔符可以使用 Chatbot
中的新参数 latex_delimiters
进行设置。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
参数,并将参数移至构造函数。添加了对 .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 令牌发送到其他域,由 @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
参数,允许 Gradio 应用程序在代理后的子路径(例如 www.example.com/app)上运行,由 @abidlabs 在 PR 4133 中完成。.input
事件监听器,该监听器仅在用户更改组件值时触发(与 .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
参数现在被忽略,转而将完整数据集 ID 作为 dataset_name
传递(例如 "username/my-dataset"
)。\n
)不会在 gr.Markdown()
或 gr.Chatbot()
中自动转换为 <br>
。对于多行,开发者必须添加多个 <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 中完成。_js
加载自定义 JS 并将 outputs
设置为 None
在 gradio.Blocks()
中时出现的 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
单选模式下隐藏 Remove All
按钮,由 @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 中完成。现在您可以与世界分享您的 Gradio 主题了!
创建主题后,您可以将其上传到 HuggingFace Hub,让其他人查看、使用和在此基础上构建!您还可以下载、重用和混搭其他人的主题。更多详情请参见 https://gradio.app/theming-guide/。
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 中完成。gr.Error
,由 @aliabd 在 PR 3465 中完成。pyright==1.1.298
固定,由 @abidlabs 在 PR 3475 中完成。IOComponent.add_interactive_to_config()
,由 @space-nuko 在 PR 3476 中完成。IOComponent.generate_sample()
,由 @space-nuko 在 PR 3475 中完成。主题分享 🎨 🤝
现在您可以与世界分享您的 Gradio 主题了!
上传
my_theme.push_to_hub(repo_name="my_theme",
version="0.2.0",
hf_token="...")
通过命令行
my_theme.dump(filename="my_theme.json")
首先将主题保存到磁盘
upload_theme\
"my_theme.json"\
"my_theme"\
"0.2.0"\
"<hf-token>"
然后使用 upload_theme
命令
version
必须是有效的 语义版本 字符串。
这会在 huggingface hub 上创建一个空间来托管主题文件,并向潜在用户展示您的主题预览。
下载
my_theme = gr.Theme.from_hub("freddyaboulton/my_theme")
with gr.Blocks(theme=my_theme) as demo:
....
要从 Hub 使用主题,请在 ThemeClass
上使用 from_hub
方法并将其传递给您的应用程序。
您也可以将主题字符串直接传递给 Blocks
或 Interface
(gr.Blocks(theme="freddyaboulton/my_theme")
)
您可以使用语义版本表达式将应用程序固定到上游主题版本。
with gr.Blocks(theme="freddyaboulton/my_theme@>=0.1.0,<0.2.0") as demo:
....
例如,以下将确保我们从 my_theme
仓库加载的主题版本在 0.1.0
和 0.2.0
之间。
代码组件 🦾
Chatbot
组件现在支持音频、视频和图像。
gr.Chatbot([
(("driving.mp4",), "cool video"),
(("cantina.wav",), "cool audio"),
(("lion.jpg", "A lion"), "cool pic"),
]).style(height=800)
Chatbot
组件现在支持音频、视频和图像,语法简单:只需传入一个包含 URL 或文件路径的元组(元组的第二个可选元素是替代文本),图像/音频/视频就会显示出来。
注意:图像以前通过 Markdown 语法支持,为了向后兼容,现在仍然支持。由 @dawoodkhan82 在 PR 3413 中完成。
代码组件 🦾
.then
和 .success
连续触发函数,由 @aliabid94 在 PR 3430 中完成。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)
添加了 .select()
事件监听器,其中还包含可作为 gr.SelectData
类型提示的参数传递给函数的事件数据。以下组件支持 .select()
事件监听器:Chatbot, CheckboxGroup, Dataframe, Dropdown, File, Gallery, HighlightedText, Label, Radio, TabItem, Tab, Textbox。示例用法:
Textbox
组件现在包含一个复制按钮,由 @abidlabs 在 PR 3452 中完成。huggingface_hub
发送 interface
和 blocks
的遥测数据;最终取代 segment,由 @dawoodkhan82 在 PR 3342 中完成。every
,由 @freddyaboulton 在 PR 3391 中完成。generic_update
的就地更新,由 @gitgithan 在 PR 3405 中完成,以修复 #3282。utils.py
中未导入 BlockContext
导致的错误,由 @freddyaboulton 在 PR 3424 中完成。every
,由 @freddyaboulton 在 PR 3391 中完成。chatbot = gr.Chatbot().style(height=500)
gr.Chatbot()
组件在样式中添加 height
kwarg,由 @dawoodkhan82 在 PR 3369 中完成。Slider 的释放事件
现在,您可以让您的 Python 函数在滑块释放时运行,而不是每次滑块值更改时!
slider.release(function, inputs=[...], outputs=[...], api_name="predict")
只需使用滑块上的 release
方法即可。
下拉组件更新
gr.Dropdown(label="Choose your favorite colors", choices=["red", "blue", "green", "yellow", "orange"], multiselect=True, max_choices=2)
标准下拉组件现在支持搜索选项。此外,当 multiselect
为 True
时,您可以指定 max_choices
来设置用户可以从下拉组件中选择的最大选项数。
图像下载按钮 🖼️
输出图像现在将自动显示下载按钮,以便更轻松地保存和分享机器学习艺术模型的结果。
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 中完成。shape
参数,由 @pngwn 在 PR 3277 中实现Dropdown
的值设置为 []
并向下拉菜单添加更改事件时导致的无限循环问题,由 @freddyaboulton 在 PR 3295 中修复Gallery.style
中设置的 height
在前端不生效的错误,由 @freddyaboulton 在 PR 3343 中修复gr.Dropdown(Multiselect=True)
的初始空值为一个空列表,以及 gr.Dropdown(Multiselect=False)
的初始值为空字符串,由 @pngwn 在 PR 3338 中实现analytics_enabled=True
时 Google Analytics 正常工作,由 @abidlabs 在 PR 3349 中实现backen_fn
和自定义 js 时发生的错误,由 @jialeicui 在 PR 3358 中修复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 中报告,并提供一种简单的方式让终端用户通过 Hugging Face 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 中实现如果您的接口函数是生成器,以前在“提交”按钮旁边会显示一个单独的“停止”按钮。
我们改进了“提交”按钮,使其在生成过程中变为“停止”按钮。点击“停止”按钮将取消生成并将其变回“提交”按钮。如果您不使用“停止”按钮,它将在生成结束时自动变回“提交”按钮!
由 @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 魔术命令启动 Interface
时发出警告的功能,由 @freddyaboulton 在 PR 3126 中实现gradio
命令)时,launch
中的参数将不被遵守,由 @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
管道!
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/
路由,在 PR 3010 中修复huggingface_hub
中弃用参数相关的错误,针对 HuggingFaceDatasetSaver,在 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 进行编程切换标签 @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
导致整个队列无法启动的错误,由 @freddyaboulton 在 PR 2876 中修复blocks_style
演示启动的错误,由 @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
组件的错误,由 @freddyaboulton 在 PR 2861 中修复gr.Interface()
中 allow_flagging="auto"
时的标记问题,由 @abidlabs 在 PR 2695 中修复gr.CheckboxGroup
传递非列表值会导致整个应用崩溃的错误,由 @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
组件创建警报和警告框。见下文
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()
utils.version_check()
中缺少请求超时的问题,由 @yujiehecs 在 PR 2729 中修复File
组件无法正确将文件预处理为“二进制”字节字符串格式的错误,由 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 中实现Textbox
组件的 type
不是“text”、“email”或“password”,则 gr.Textbox
组件现在会抛出异常 @pngwn 在 PR 2653 中实现。这将导致使用已弃用的 gr.Textbox(type="number")
的演示抛出异常。gr.Interface.load
加载的错误,由 @freddyaboulton PR 2640 中修复interactive
属性无法更新的错误,由 @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
参数指定要调用的函数。
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 中实现Blocks.__call__
添加 api_name
,由 @freddyaboulton 在 PR 2593 中实现Gradio 现在支持在固定时间表上持续运行事件的功能。要使用此功能,请将 every=# 秒
传递给事件定义。这将每给定秒数运行一次事件!
这可以用于
这是一个每半秒刷新一次的实时图表示例
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
的错误,使其在渲染多个 Blocks 时正常工作,由 @abidlabs 在 PR 2530 中修复share=True
时的错误消息,由 @abidlabs 在 PR 2502 中修复render()
函数返回自身,由 @Raul9595 在 PR 2514 中实现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()
确保通过 web 组件嵌入 Gradio 应用时,Gradio 不会控制 HTML 页面标题,此行为通过将 control_page_title="true"
添加到 web 组件中进行翻转。 @pngwn 在 PR 2400 中实现
通过异步迭代减少了迭代输出演示中的延迟 @freddyaboulton 在 PR 2409 中实现
修复了在极高负载下队列卡住的错误,由 @freddyaboulton 在 PR 2374 中修复
在以下条件为真时,确保组件始终表现得如同设置了 interactive=True
:
interactive
关键字参数。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 组件中的图像添加标题。为此,您需要传入 (图像, {字符串} 标题) 元组的 {列表}。这是可选的,组件也接受仅包含图像的列表。
这是一个示例:
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 套接字而非 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 Notebook 中进行开发。
如果您的演示代码在一个名为 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,请改用这些魔术命令:导入 gradio 时使用 %load_ext gradio
,在包含演示代码的单元格顶部使用 %%blocks
。这是一个示例,展示了开发速度如何加快:
gr.Image()
上的图像修复支持 🎨我们更新了 Image 组件,以增加对图像修复演示的支持。它通过添加 tool="sketch"
作为参数来实现,该参数将图像和可绘制的蒙版都传递给您的预测函数。
这是来自 LAMA space 的一个示例:
我们在 PR #1684 中升级了 Dataframe 组件,以支持在单元格中渲染 Markdown 和 HTML。
这意味着您可以构建如下所示的 Dataframes:
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 Party!
我们已将整个库的设计进行了升级:从组件和布局到暗模式。
我们升级了 gradio.app,使其更简洁、更快速、更易于使用。我们的文档现在直接在页面中嵌入了组件和演示。因此,您可以快速找到所需内容。
我们在 3.0
中引入了许多新组件,包括 Model3D
、Dataset
、Markdown
、Button
和 Gallery
。您可以在 此处 找到所有组件并进行试用。
gradio.components
语法,由 @abidlabs 在 PR 848 中实现。blocks-dev
上通过,由 @abidlabs 在 PR 861 中实现。Blocks
实例在其他 Blocks
中像 Block
一样使用,由 @abidlabs 在 PR 919 中实现。Launchable()
,由 @abidlabs 在 PR 968 中实现。