当前位置: 首页 > news >正文

Gradio 中如何让 Chatbot 自动滚动

在 Gradio 中, Chatbot 是对话组件,接受 history 参数,在目前版本中 (gradio==4.44.0),不支持自动滚动,用起来很不方便,该功能在社区中已经提出了,目前该功能还没有发布。本文将通过自定义 JS 来实现滚动事件。

在这里插入图片描述
Gradio 中支持自定义 JS,通过 JS 添加滚动事件,启动时间传入 JS 代码,JS代码如下

js = """
function createScrollListener() {const target = document.querySelector('.chatbot .bubble-wrap');// Function to scroll to the bottomfunction scrollToBottom() {if (target) {target.scrollTop = target.scrollHeight;}}// Function to scroll if neededfunction scrollToBottomIfNeeded() {if (target) {target.scrollTop = target.scrollHeight;}}// Mutation Observer with Debouncelet timeout;function debounce(func, delay) {clearTimeout(timeout);timeout = setTimeout(func, delay);}if (target) {const observer = new MutationObserver((mutations) => {debounce(scrollToBottomIfNeeded, 100);});observer.observe(target, { childList: true, subtree: true });// Initial scroll to bottomscrollToBottom();// Scroll on window resizewindow.addEventListener('resize', scrollToBottom);}console.log(target)
}
"""
with gr.Blocks(js=js) as demo:chatbot = gr.Chatbot(elem_classes="chatbot")msg = gr.Textbox()clear = gr.Button("Clear")

总结

Gradio 中使用自定义 JS 是通过原生的 JS 进行元素选择,并在元素绑定事件来进行事件控制的。写起来还是比较费劲,如果是比较复杂的效果还是通过自定义组件来实现,希望社区提供这个功能。


http://www.mrgr.cn/news/28336.html

相关文章:

  • 0 -vscode搭建python环境教程参考(windows)
  • vue2项目中在线预览csv文件
  • R语言贝叶斯分析:INLA 、MCMC混合模型、生存分析肿瘤临床试验、间歇泉喷发时间数据应用|附数据代码...
  • 蓝桥杯——数组
  • 下一代以区域为导向的电子/电气架构
  • F5全新报告揭示AI时代API安全面临严峻挑战
  • 来重庆工作2年,想念广东了
  • AI替代插画师跟设计师?不用焦虑!
  • MOE论文汇总
  • 【最新华为OD机试E卷-支持在线评测】最长连续子序列(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)
  • 公路数据集、桥梁数据集、隧道数据集、地铁数据集、水坝数据集、挡土墙数据集
  • 达芬奇竖屏导出有黑屏解决方案
  • cad2015以上默认设置
  • JAVA算法数据结构第一节稀疏矩阵
  • Python数据分析-世界上最富有的1000人
  • re题(21)BUUCTF—findit
  • 除了C# 、C++,C++ cli 、还有一个Java版的 db
  • 面试官问:请描述一次你成功解决问题的经历?
  • c++ #include <cmath>介绍
  • centos更改静态ip
  • 面试官问:你在团队中的角色是什么?
  • Vue3+Element Plus:使用el-dialog,对话框可拖动,且对话框弹出时仍然能够在背景页(对话框外部的页面部分)上进行滚动以及输入框输入信息
  • 一个有趣的“苦无”测试探针笔的设计
  • Python Pyvis库创建交互式网络图 高级功能详解
  • 【Python基础】Python 装饰器(优雅的代码增强工具)
  • STM32之FMC—扩展外部 SDRAM