探索Gradio的Chatbot模块:创建交互式聊天机器人


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

博主原文链接:https://www.yourmetaverse.cn/nlp/350/

请添加图片描述

(封面图由文心一格生成)

探索Gradio的Chatbot模块:创建交互式聊天机器人

Chatbot模块概述

Chatbot模块是Gradio中的一个组件,用于展示聊天机器人的输出,包括用户提交的消息和机器人的回复。它支持一些Markdown语法,包括粗体、斜体、代码和图片等。Chatbot模块的输入不接受用户输入,而是通过函数返回的列表来设置聊天内容。返回的列表应包含多个内部列表,每个内部列表包含两个元素:用户消息和机器人回复。消息可以是字符串、元组或None。如果消息是字符串,可以包含Markdown格式的文本。如果消息是元组,应包含文件路径和可选的替代文本。值为None的消息将不会显示在聊天界面上。

Chatbot模块参数

Chatbot模块有一些参数可以用来自定义其行为和外观,下面是一些常用的参数:

参数描述数据类型默认值
valueChatbot的默认值,应为一个列表,其中每个元素为一个内部列表,包含用户消息和机器人回复。可以是可调用对象,在应用程序加载时设置初始值。list[list[str | tuple[str] | tuple[str, str] | None]] | Callable | NoneNone
color_map颜色映射,用于设置不同类型消息的颜色。dict[str, str] | NoneNone
label组件的标签。str | NoneNone
every如果value是一个可调用对象,在客户端连接开启时每隔一段时间运行函数。以秒为单位解释。队列必须启用。float | NoneNone
show_label是否显示标签。boolTrue
container是否将组件放入容器中,提供一些额外的边框填充。boolTrue
scale相对于相邻组件的宽度比例。例如,如果组件A的scale=2,组件B的scale=1,则组件A的宽度是组件B的两倍。应为整数。int | NoneNone
min_width最小像素宽度,如果屏幕空间不足以满足此值,则换行。如果某个scale值导致该组件比min_width更窄,则首先遵守min_width参数。int160
visible组件是否可见。boolTrue
elem_id作为HTML DOM中此组件的id分配的可选字符串。可用于定位CSS样式。str | NoneNone
elem_classes作为HTML DOM中此组件的类分配的可选字符串列表。可用于定位CSS样式。list[str] | str | NoneNone
height组件的高度(以像素为单位)。int | NoneNone
latex_delimiters用于渲染LaTeX表达式的左右分隔符及其显示方式的设置。如果未提供,latex_delimiters默认设置为[{ "left": "$$", "right": "$$", "display": True }],因此只会将用$$分隔的表达式渲染为LaTeX,并在新行上显示。传入空列表以禁用LaTeX渲染。有关更多信息,请参阅KaTeX文档。list[dict[str, str | bool]] | NoneNone

Chatbot模块常用方法

除了参数设置外,Chatbot模块还提供了一些方法用于与其他组件进行交互,下面是其中两个常用方法的介绍:

1. change方法

change方法是一个事件监听器,当组件的值发生变化时触发,无论是由用户输入(例如,用户在文本框中输入)还是由函数更新(例如,图像从事件触发的输出接收到值),都会触发该方法。该方法适用于当Chatbot组件位于Gradio Blocks中时使用。

参数:

  • fn:要封装为接口的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应返回单个值或一个值的元组,元组中的每个元素对应一个输出组件。
  • inputs:要作为输入使用的Gradio组件的列表。如果函数不接受任何输入,应传入一个空列表。
  • outputs:要作为输出使用的Gradio组件的列表。如果函数不返回任何输出,应传入一个空列表。
  • 其他参数用于配置事件的行为,例如是否显示进度动画、是否将请求放入队列等。

2. select方法

select方法是一个事件监听器,当用户从Chatbot中选择消息时触发。它使用gradio.SelectData作为事件数据,其中包含value字段表示所选消息的文本,index字段表示消息的索引(形式为[消息,参与者])。可以使用EventData文档中的方法来处理此事件数据。

参数:

  • fn:要封装为接口的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应返回单个值或一个值的元组,元组中的每个元素对应一个输出组件。
  • inputs:要作为输入使用的Gradio组件的列表。如果函数不接受任何输入,应传入一个空列表。
  • outputs:要作为输出使用的Gradio组件的列表。如果函数不返回任何输出,应传入一个空列表。
  • 其他参数用于配置事件的行为,例如是否显示进度动画、是否将请求放入队列等。

通过使用changeselect方法,我们可以在Chatbot模块中实现更复杂的交互逻辑,使用户能够与聊天机器人进行动态的对话。

总结

Gradio的Chatbot模块为开发人员提供了一个简单而强大的工具,用于创建交互式的聊天机器人。通过合理设置参数和使用相应的方法,我们可以自定义聊天机器人的外观和行为,并实现与用户的交互。无论是构建智能助手、虚拟客服还是开发面向用户的自然语言处理应用,Gradio的Chatbot模块都将是一个强大的工具,为用户提供与聊天机器人的互动体验。


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部