收藏文章 楼主

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

版块:AIGC   类型:普通   作者:AI绘图   查看:102   回复:0   获赞:0   时间:2023-11-01 11:00:03

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

👉有问题欢迎大家加关注私戳或者评论(包括但不限于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学习相关,读研读博相关......)👈

 
回复列表
默认   热门   正序   倒序

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

Powered by 7.12.10

©2015 - 2025 90Link

90link品牌推广 网站地图

您的IP:10.3.167.80,2025-06-23 22:26:37,Processed in 0.23232 second(s).

豫ICP备2023005541号

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息
免责声明
  • 1、本网站所刊载的文章,不代表本网站赞同其观点和对其真实性负责,仅供参考和借鉴。
  • 2、文章中的图片和文字版权归原作者所有,如有侵权请及时联系我们,我们将尽快处理。
  • 3、文章中提到的任何产品或服务,本网站不对其性能、质量、适用性、可靠性、安全性、法律合规性等方面做出任何保证或承诺,仅供读者参考,使用者自行承担风险。
  • 4、本网站不承担任何因使用本站提供的信息、服务或产品而产生的直接、间接、附带或衍生的损失或责任,使用者应自行承担一切风险。

侵权删除请致信 E-Mail:3454251265@qq.com