直接跳到内容

ChatMessage 聊天消息组件

用于显示聊天消息的组件,支持多种内容类型。该组件提供结构化的消息显示功能,包括:

  • 显示用户头像(可以是文本、emoji或图片)
  • 显示用户名
  • 以自定义格式显示消息时间戳
  • 支持消息反应并映射到图标
  • 渲染各种内容类型,包括文本、图片、音频、视频等

底层实现为panel.chat.ChatMessage,参数基本一致,参考文档:https://panel.holoviz.org/reference/chat/ChatMessage.html

基本用法

基本的消息展示:

ChatMessage可以显示任何Panel可以显示的Python对象,例如Panel组件、数据框和图表:

可以指定自定义用户名和头像:

消息更新

组件的值、用户名和头像都可以动态更新:

将输出流式传输到ChatMessage最简单、最好的方式是通过异步生成器。

样式

如果您想要一个仅显示 value 的普通界面,请将 show_usershow_copy_iconshow_avatarshow_timestamp 设置为 False ,并为 reaction_icons 提供一个空的 dict

可以设置常用的样式和布局参数,如 sizing_modeheightwidthmax_heightmax_widthstyles

代码高亮

支持代码块的语法高亮(需要安装 pygments):

API

核心属性

属性名说明类型默认值
object消息内容(支持字符串/面板/控件/布局等)object None
renderers内容渲染器(可调用对象列表,首个成功执行的将被使用)List[Callable ]None
user发送者用户名str ""
avatar用户头像(支持文字/emoji/图片等,未设置时使用用户名首字母)str|BinaryIO None
default_avatars用户名到默认头像的映射字典(键值不区分大小写和特殊字符)Dict[str, str|BinaryIO ]{}
edited消息编辑触发事件bool False
footer_objects消息底部显示的组件列表List []
header_objects消息头部显示的组件列表List []
avatar_lookup头像查找函数(设置后将忽略default_avatars)Callable None
reactions消息关联的反应列表List []
reaction_icons反应图标映射(未设置时默认{"favorite": "heart"})dict 
timestamp消息时间戳(默认使用实例化时间)datetime 当前时间
timestamp_format时间戳显示格式str -
timestamp_tz时区设置(仅timestamp未设置时生效)str 系统默认时区

显示属性

属性名说明类型默认值
show_avatar是否显示用户头像bool True
show_user是否显示用户名bool True
show_timestamp是否显示时间戳bool True
show_reaction_icons是否显示反应图标bool True
show_copy_icon是否显示复制图标bool False
show_edit_icon是否显示编辑图标bool False
show_activity_dot是否显示活动状态指示点bool False
name消息组件标题str ""

Events

事件名说明类型
change值改变时触发Callable 

Slots

插槽名说明
default消息内容
header消息头部内容
footer消息底部内容

方法

方法名说明参数
serialize将消息序列化为字符串-

Controls

src/examples/panel_vuepy/chat/ChatMessage

ChatMessage 聊天消息组件已经加载完毕