在之前的指南中,我们讨论了如何为您的演示提供示例输入,以便用户更容易尝试。在这里,我们将深入探讨更多细节。
向接口添加示例就像向examples关键字参数提供一个列表的列表一样简单。
每个子列表都是一个数据样本,其中每个元素对应于预测函数的一个输入。
输入必须按照预测函数期望的顺序排列。
如果你的界面只有一个输入组件,那么你可以将示例作为常规列表提供,而不是列表的列表。
您还可以指定包含示例的目录路径。如果您的界面仅接受单一文件类型的输入,例如图像分类器,您可以简单地将目录文件路径传递给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,当您调用launch()方法时,您的Gradio应用程序将运行所有示例并保存输出。默认情况下,这些数据将保存在您工作目录中名为gradio_cached_examples的目录中。您还可以使用GRADIO_EXAMPLES_CACHE环境变量设置此目录,该变量可以是绝对路径或相对于您工作目录的相对路径。
每当用户点击一个示例时,输出将自动填充到应用程序中,使用来自此缓存目录的数据,而不是实际运行函数。这非常有用,因此用户可以快速尝试您的模型,而不会增加任何负载!
或者,你可以设置cache_examples="lazy"。这意味着每个特定的示例只有在Gradio应用中首次使用(由任何用户)后才会被缓存。如果你的预测函数运行时间较长,并且你不想等待很长时间让Gradio应用启动,这将非常有用。
请记住,一旦缓存生成,它在未来的启动中不会自动更新。如果示例或函数逻辑发生变化,请删除缓存文件夹以清除缓存,并使用另一个launch()重新构建它。