Skip to content

ookok/QtLLMChatterPlugin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

基于pyqt的大模型对话框插件


✨ 核心特性

🧩 对话体验

  • 流式响应:逐字生成,无闪烁,支持中途停止(“发送” → “停止”按钮切换)
  • 会话分组:每轮对话以卡片形式呈现,自动携带时间戳
  • 思考过程折叠:使用 <think>...</think> 标签包裹思考内容,支持手动展开/收起
  • 历史对话保留:新对话追加至原会话卡片,非新建独立卡片

💻 代码展示(专业级)

  • 语法高亮:基于 Pygments + Dracula 主题,支持 100+ 语言
  • 行号对齐
    • 行号与代码 完美垂直对齐(即使长行自动换行)
    • 行号 不可选中user-select: none
    • 行号宽度 动态计算(1~9999 行自适应)
  • 交互增强
    • 右上角 一键复制 按钮(📋
    • 左上角 语言标识(如 python),不干扰布局
    • 深色主题 + 圆角边框 + 阴影,视觉清晰

🔗 上下文增强

  • 上下文插入:支持 [变量名](key) 格式,点击可触发回调(如定位画布节点)
  • 上下文标签:用户消息下方显示已插入的上下文标签(可双击执行)
  • 多模态支持:可传递 Base64 图像启用视觉识别(需模型支持)

🎨 界面与交互

  • 深色主题:全链路适配 Fluent Design 深色风格
  • 滚动穿透:卡片内滚轮事件传递至外部 QScrollArea,操作流畅
  • 响应式布局:卡片宽度填满容器,高度自适应内容(无固定高度)
  • 操作按钮:每张卡片右上角提供 复制 / 删除 / 重试 按钮

🛠️ 技术架构

模块 技术栈
渲染引擎 QWebEngineView(HTML/CSS/JS)
Markdown 解析 Python-Markdown(支持 fenced_code, tables, nl2br)
代码高亮 Pygments(Dracula 主题) + 动态行号注入(JS)
UI 组件库 qfluentwidgets(Fluent Design for PyQt)
流式更新 防抖 QTimer(80ms 延迟渲染,避免频繁重排)
高度同步 JS scrollHeight + QWebEnginePage.consoleMessage 回调

📦 依赖

pip install pyqt5 pygments markdown qfluentwidgets

About

完全基于pyqt及其webengine实现的大模型对话窗口插件,支持思考过程折叠、代码块识别、代码高亮、添加上下文等功能。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%