Gradio Agents & MCP 黑客松
获奖者Gradio Agents & MCP 黑客松
获奖者在之前的指南中,我们讨论了如何为你的演示提供示例输入,以便用户更容易尝试。在这里,我们将深入探讨更多细节。
向 Interface 添加示例非常简单,只需向 `examples` 关键字参数提供一个列表的列表即可。每个子列表都是一个数据样本,其中每个元素对应于预测函数的一个输入。输入必须按照预测函数预期的顺序排列。
如果你的 Interface 只有一个输入组件,那么你可以将示例作为常规列表提供,而不是列表的列表。
你还可以指定一个包含示例的目录路径。如果你的 Interface 只接受单一文件类型输入(例如图像分类器),你可以简单地将目录文件路径传递给 `examples=` 参数,Interface 将加载目录中的图像作为示例。对于多个输入的情况,此目录必须包含一个 `log.csv` 文件,其中包含示例值。在计算器演示中,我们可以设置 `examples='/demo/calculator/examples'`,并且在该目录中包含以下 `log.csv` 文件:
num,operation,num2
5,"add",3
4,"divide",2
5,"multiply",3
这在浏览已标记数据时很有帮助。只需指向已标记的目录,Interface 就会从已标记的数据中加载示例。
有时你的应用程序有许多输入组件,但你只希望为其中一部分提供示例。为了将某些输入排除在示例之外,请将对应于这些特定组件的所有数据样本设置为 `None`。
你可能希望为用户提供一些模型缓存示例,以便他们能够快速尝试,以防你的模型正常运行需要一段时间。如果 `cache_examples=True`,你的 Gradio 应用程序将在你调用 `launch()` 方法时运行所有示例并保存输出。默认情况下,这些数据将保存在你的工作目录中名为 `gradio_cached_examples` 的目录中。你也可以通过 `GRADIO_EXAMPLES_CACHE` 环境变量设置此目录,该变量可以是绝对路径,也可以是相对于你工作目录的相对路径。
每当用户点击一个示例时,输出将自动填充到应用程序中,此时使用的是缓存目录中的数据,而不是实际运行函数。这对于用户快速尝试你的模型而无需增加任何负载非常有用!
或者,你可以设置 `cache_examples="lazy"`。这意味着每个特定的示例只会在它第一次被(任何用户)在 Gradio 应用程序中使用后才会被缓存。如果你的预测函数运行时间较长,并且你不希望等待很长时间才能启动 Gradio 应用程序,这将很有帮助。
请记住,一旦生成缓存,它在未来的启动中不会自动更新。如果示例或函数逻辑发生变化,请删除缓存文件夹以清除缓存,并通过另一次 `launch()` 重建它。