博主原文链接:https://www.yourmetaverse.cn/nlp/406/
Gradio库:使用Markdown模块创建交互式应用
Gradio是一个用于构建交互式应用程序的Python库。它提供了一个简单而强大的界面,使用户能够通过文本框、滑块、复选框等组件与机器学习模型进行交互。在Gradio中,Markdown模块是一个非常有用的组件,它可以渲染任意的Markdown输出,并且还支持渲染使用美元符号括起来的LaTeX公式。
Markdown模块介绍
Markdown模块是Gradio库中的一个组件,用于渲染Markdown输出。它可以将Markdown文本转换为美观的格式,并显示在应用程序的界面上。Markdown模块的特点如下:
- 输入:Markdown模块不接受输入,因此它不会改变用户的输入数据。
- 输出:Markdown模块期望一个有效的字符串作为输入,并将其渲染为Markdown格式进行展示。
Markdown模块的用法示例
下面是一个使用Markdown模块的示例代码:
import gradio as gr
def welcome(name):
return f"Welcome to Gradio, {name}!"
with gr.Blocks() as 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(welcome, inp, out)
if __name__ == "__main__":
demo.launch()
在上面的示例中,我们创建了一个Gradio应用程序,并使用Markdown模块显示了一个简单的欢迎信息。用户可以在文本框中输入自己的姓名,然后点击按钮查看欢迎消息的输出结果。
Markdown模块的参数和方法
Markdown模块提供了一些参数和方法来自定义其行为和外观。下面是一些常用的参数:
- value:用于设置Markdown组件的初始值。可以是一个字符串或一个可调用对象。
- visible:控制Markdown组件的可见性。
- elem_id:将一个字符串作为Markdown组件在HTML DOM中的id,用于定位和样式设置。
- elem_classes:将一个字符串或一个字符串列表作为Markdown组件在HTML DOM中的类,用于样式设置。
除了这些参数,Markdown模块还提供了一个change方法,用于在组件值发生变化时执行相应的操作。change方法的参数如下:
- fn:一个可调用对象,通常是一个机器学习模型的预测函数。该函数的每个参数对应一个输入组件,函数应返回一个值或一个值的元组,其中元组中的每个元素对应一个输出组件。
- inputs:一个组件或组件列表,用作输入。如果函数不需要输入,可以传入一个空列表。
- outputs:一个组件或组件列表,用作输出。如果函数不返回输出,可以传入一个空列表。
change方法还提供了其他可选参数,如api_name、scroll_to_output、show_progress等,用于进一步定制组件的行为和外观。
总结
Gradio库是一个功能强大的Python库,可以帮助开发人员轻松构建交互式应用程序。Markdown模块是其中一个有用的组件,可以用于渲染Markdown输出并展示在应用程序界面上。通过Markdown模块的参数和方法,我们可以对其进行定制,以满足特定应用的需求。
在本文中,我们介绍了Gradio库中的Markdown模块及其change方法的用法和功能。希望本文对你理解和使用Gradio库有所帮助,让你能够创建出更加丰富和交互的应用程序。
参数详解
下面是Markdown模块参数及其change方法参数的整理表格:
参数名称 | 数据类型 | 默认值 | 描述 |
---|---|---|---|
value | str | Callable | “” | 在Markdown组件中显示的值。如果是可调用的函数,将在应用程序加载时调用该函数以设置组件的初始值。 |
visible | bool | True | 如果为False,组件将被隐藏。 |
elem_id | str | None | None | 可选的字符串,分配给此组件在HTML DOM中的id。可用于定位CSS样式。 |
elem_classes | list[str] | str | None | None | 可选的字符串列表,分配给此组件在HTML DOM中的类。可用于定位CSS样式。 |
fn | Callable | None | 必需 | 包装接口的函数。通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应返回单个值或值的元组,其中元组中的每个元素对应一个输出组件。 |
inputs | Component | list[Component] | set[Component] | None | None | 要用作输入的gradio.components列表。如果函数不接受任何输入,这应该是一个空列表。 |
outputs | Component | list[Component] | None | None | 要用作输出的gradio.components列表。如果函数不返回任何输出,这应该是一个空列表。 |
api_name | str | None | None | 定义此参数会在API文档中公开端点。 |
status_tracker | None | None | 无 |
scroll_to_output | bool | False | 如果为True,将在完成时滚动到输出组件。 |
show_progress | Literal[‘full’] | Literal[‘minimal’] | Literal[‘hidden’] | “full” | 如果为True,将在等待时显示进度动画。 |
queue | bool | None | None | 如果为True,将请求放入队列(如果队列已启用)。如果为False,即使队列已启用,也不会将此事件放入队列中。如果为None,则使用gradio应用程序的队列设置。 |
batch | bool | False | 如果为True,则函数应处理一批输入,这意味着它应接受每个参数的输入值列表。列表应具有相等的长度(并且最多为max_batch_size 的长度)。然后,函数必须返回一个元组的列表(即使只有1个输出组件),其中元组中的每个列表对应一个输出组件。 |
max_batch_size | int | 4 | 如果从队列中调用此方法,则一次性合并的最大输入数量(仅在batch=True时相关) |
preprocess | bool | True | 如果为False,将不会在运行“fn”之前运行组件数据的预处理(例如,留在base64字符串形式,如果使用Image 组件调用此方法)。 |
postprocess | bool | True | 如果为False,将不会在将’fn’的输出返回给浏览器之前运行组件数据的后处理。 |
cancels | dict[str, Any] | list[dict[str, Any]] | None | None | 当此监听器被触发时,取消其他事件的列表。例如,设置cancels=[click_event] 将取消click_event ,其中click_event 是另一个组件的.click 方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但正在运行的函数将被允许完成。 |
every | float | None | None | 在客户端连接打开时,每隔’every’秒运行此事件。以秒为单位解释。队列必须启用。 |