博主原文链接:https://www.yourmetaverse.cn/nlp/356/
探索Gradio的CheckboxGroup模块:交互式多选框组件
在现代的数据科学和机器学习应用中,用户交互性成为了重要的一环。Gradio是一个功能强大的开源库,它提供了一种简单的方式来构建和部署自定义的机器学习和数据科学接口。Gradio的CheckboxGroup模块是其中一个强大的组件,它可以创建一个多选框组,允许用户从一组选项中选择一个子集。
CheckboxGroup组件可以通过列表中的选中选项的字符串或索引作为List[str]或List[int]传递给函数,具体取决于type
参数的设置。
作为输出,CheckboxGroup组件期望一个List[str],其中的每个元素都会成为一个选中的复选框。
接下来,我们将探索CheckboxGroup组件的使用方法,以及它的change、input和select方法。
使用示例:
以下是一个使用CheckboxGroup组件的例子:
import gradio as gr
def sentence_builder(quantity, animal, countries, place, activity_list, morning):
return f"""The {quantity} {animal}s from {" and ".join(countries)} went to the {place} where they {" and ".join(activity_list)} until the {"morning" if morning else "night"}"""
demo = gr.Interface(
sentence_builder,
[
gr.Slider(2, 20, value=4, label="Count", info="Choose between 2 and 20"),
gr.Dropdown(
["cat", "dog", "bird"], label="Animal", info="Will add more animals later!"
),
gr.CheckboxGroup(["USA", "Japan", "Pakistan"], label="Countries", info="Where are they from?"),
gr.Radio(["park", "zoo", "road"], label="Location", info="Where did they go?"),
gr.Dropdown(
["ran", "swam", "ate", "slept"], value=["swam", "slept"], multiselect=True, label="Activity", info="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed auctor, nisl eget ultricies aliquam, nunc nisl aliquet nunc, eget aliquam nisl nunc vel nisl."
),
gr.Checkbox(label="Morning", info="Did they do it in the morning?"),
],
"text",
examples=[
[2, "cat", ["Japan", "Pakistan"], "park", ["ate", "swam"], True],
[4, "dog", ["Japan"], "zoo", ["ate", "swam"], False],
[10, "bird", ["USA", "Pakistan"], "road", ["ran"], False],
[8, "cat", ["Pakistan"], "zoo", ["ate"], True],
]
)
if __name__ == "__main__":
demo.launch()
在这个例子中,我们使用了一个函数sentence_builder
作为模型的预测函数,接受多个输入参数。CheckboxGroup组件被用作其中一个输入组件,用于选择一个或多个国家。
方法介绍:
1. change方法
该方法用于监听组件值的变化,无论是因为用户输入还是函数更新触发的。可以在Gradio Blocks中使用该方法。以下是change方法的参数:
-
fn:回调函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,并且函数应返回单个值或一个与输出组件相对应的元组。
-
inputs:输入组件的列表,用于将其作为输入。如果函数不接受任何输入,应传入一个空列表。
-
outputs:输出组件的列表,用于将其作为输出。如果函数不返回任何输出,应传入一个空列表。
-
其他参数:用于指定API名称、状态跟踪、滚动到输出组件、显示进度动画等。
2. input方法
该方法用于监听用户对组件值的更改。可以在Gradio Blocks中使用该方法。以下是input方法的参数:
-
fn:回调函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,并且函数应返回单个值或一个与输出组件相对应的元组。
-
inputs:输入组件的列表,用于将其作为输入。如果函数不接受任何输入,应传入一个空列表。
-
outputs:输出组件的列表,用于将其作为输出。如果函数不返回任何输出,应传入一个空列表。
-
其他参数:用于指定API名称、状态跟踪、滚动到输出组件、显示进度动画等。
3. select方法
该方法用于监听用户在CheckboxGroup组件中的选择和取消选择。使用事件数据gradio.SelectData来传递所选复选框的标签、索引和状态。以下是select方法的参数:
-
fn:回调函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,并且函数应返回单个值或一个与输出组件相对应的元组。
-
inputs:输入组件的列表,用于将其作为输入。如果函数不接受任何输入,应传入一个空列表。
-
outputs:输出组件的列表,用于将其作为输出。如果函数不返回任何输出,应传入一个空列表。
-
其他参数:用于指定API名称、状态跟踪、滚动到输出组件、显示进度动画等。
这些方法为开发人员提供了在用户交互时触发相应的操作的灵活性,从而实现了动态和交互式的应用程序。
结论
通过Gradio的CheckboxGroup组件,我们可以方便地创建一个多选框组,允许用户从一组选项中进行选择。借助change、input和select等方法,我们可以监听组件值的变化,并触发相应的操作。这使得开发人员能够构建出动态、交互式的机器学习和数据科学应用程序。