huangjianwu
c46c971e64
fix(ui): Banner 封面通过后端代理加载,移除来源链接模块
...
- 封面图通过 /image_proxy 代理请求,解决 B 站等 CDN 跨域问题
- 渲染 markdown 时过滤掉开头的「来源链接」行,
该信息已由 VideoBanner 的「原视频」按钮替代
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:56:48 +08:00
huangjianwu
55cc3bcd63
feat(ui): 笔记顶部新增视频封面 Banner
...
- 视频封面做模糊暗色背景,上方叠加视频信息
- 显示视频标题、作者/UP主、平台
- 右侧「原视频」按钮跳转原始链接
- 无封面时降级为渐变背景
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:54:36 +08:00
huangjianwu
ef1dec1e47
feat(chat): AI 回复支持 Markdown 渲染
...
通过 Bubble role 的 contentRender 使用 ReactMarkdown
渲染 AI 回复内容,支持列表、加粗、代码块等格式。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:31:55 +08:00
huangjianwu
fea376d1cb
fix(chat): 修复 avatar 传对象导致 React 渲染报错
...
avatar 属性类型是 ReactNode,不是 props 对象,
改为直接传 JSX 元素作为头像。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:30:15 +08:00
huangjianwu
b18277a3a0
fix(chat): 修复消息气泡左右布局不生效
...
- Bubble.List 的角色配置属性名是 role(单数)而非 roles
- 用户消息:右侧蓝色填充气泡 + 蓝色头像
- AI 回复:左侧描边气泡 + 灰色头像
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:29:09 +08:00
huangjianwu
d8fbceaadf
refactor(chat): 全屏/半屏切换移入 ChatPanel 内部
...
- Header 恢复单个"AI 问答"按钮,点击默认打开半屏模式
- ChatPanel 头部新增全屏/半屏切换按钮(Maximize2/Minimize2 图标)
- 半屏:markdown 与问答并排各占一半
- 全屏:问答占满内容区,隐藏 markdown
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:23:55 +08:00
huangjianwu
dea393e713
feat(chat): 问答面板支持半屏和全屏两种模式
...
- 半屏模式:ChatPanel 与 markdown 各占一半并排显示
- 全屏模式:ChatPanel 占满整个内容区域,隐藏 markdown
- Header 新增两个按钮(问答 / 全屏问答),点击切换,再次点击关闭
- 当前激活的模式按钮高亮显示
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:20:07 +08:00
huangjianwu
ae2bfe4d0a
fix(chat): 修复 ChatPanel 不显示的布局问题
...
- ChatPanel 容器添加 h-full shrink-0 确保有高度且不被压缩
- ScrollArea 从 w-full 改为 flex-1 min-w-0,为 ChatPanel 让出空间
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:15:14 +08:00
huangjianwu
2f2eb646a4
fix(chat): 索引改为后台异步执行,前端轮询状态并展示进度提示
...
后端:
- /chat/index 改为 BackgroundTasks 异步执行,立即返回
- /chat/status 返回细粒度状态(idle/indexing/indexed/failed)
- 内存追踪索引进度,避免重复触发
前端:
- ChatPanel 每 2 秒轮询索引状态,索引完成后自动停止
- 索引中显示"正在索引笔记内容..."及首次下载模型提示
- 索引失败显示重试按钮
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 14:46:37 +08:00
huangjianwu
3cd4c749c1
fix(chat): 修复 ChatPanel 无限重渲染导致的 Maximum update depth exceeded
...
- useTaskStore 选择器内调用 getCurrentTask() 每次返回新对象引用,
改为分别选取 currentTaskId + tasks 后用 useMemo 派生
- chatHistory[taskId] || [] 在选择器内每次创建新空数组引用,
改为选择器返回原始值,外部用 ?? [] 兜底
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 14:40:47 +08:00
huangjianwu
efadbc267d
feat(chat): 基于 RAG 的笔记内容 AI 问答功能
...
实现类似 Google NotebookLM 的效果:笔记生成后自动向量化,
用户可针对笔记内容进行 LLM 问答。
### 后端
- 新增 VectorStoreManager(ChromaDB),按标题/转录分块建立向量索引
- 新增 chat_service.py RAG 问答:检索相关片段 → 构建 prompt → 调用 LLM
- 新增 /chat/index, /chat/ask, /chat/status API 端点
- 笔记生成完成后自动建立向量索引
### 前端
- 使用 @ant-design/x Bubble.List + Sender 组件构建聊天面板
- 新增 chatStore(Zustand + persist)持久化聊天记录
- MarkdownViewer 右侧嵌入 ChatPanel,通过"AI 问答"按钮切换
- 首次打开自动检查/触发索引,支持重新索引
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 14:38:39 +08:00
Jianwu Huang
15d851f0d0
Merge branch 'master' into master
2026-03-20 16:50:43 +08:00
CyanAutumn
d9a7b89e7d
🐞 fix: 增加错误之后对已解析段落的缓存功能,再次重试时不再重头开始
...
解析长视频时,当附件大小过大时不再调用后进行报错,而是将附件进行分批次发送
在每篇笔记开头默认增加地址来源链接,对模糊处可溯源
2026-02-12 18:28:11 +08:00
sibuchen
8cd8c6f7b4
feat: add deployment monitor page
...
- Add /deploy_status API endpoint for system status check
- Create Monitor.tsx component with real-time status display
- Support CUDA, FFmpeg, Whisper model status monitoring
- Auto-refresh every 30 seconds with manual refresh option
2026-02-06 16:15:11 +08:00
sunnyclubcn
85b24dee40
feat: Add subtitle priority fetching and enhance mindmap export
...
## Subtitle Priority (Backend)
- Add download_subtitles() method to base downloader
- Implement Bilibili subtitle fetching with cookies support
- Implement YouTube subtitle fetching
- Support SRT and JSON3 format parsing
- Prioritize platform subtitles over Whisper transcription
## Mindmap Export Enhancements (Frontend)
- Add SVG vector export with proper viewBox handling
- Add XMind format export with Chinese character encoding fix
- Fix PNG/SVG export to capture full content by calling fit() before export
- Add JSZip dependency for XMind export
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-24 17:12:14 +08:00
Jianwu Huang
10311c1438
Merge pull request #192 from HansYeoh/export-mind-map
...
Add an export mind map button to support exporting HTML and PNG.
2025-10-18 10:00:19 +08:00
userName
9ba895fa8d
Fixed the problem of abnormal display of front-end page pictures in docker deployment
2025-09-06 16:10:42 +08:00
Yang Han
b1b0e87d85
Update MarkmapComponent.tsx
...
Add an export mind map button to support exporting HTML and PNG.
2025-07-17 01:27:33 +08:00
Yang Han
7d325517b3
Update MarkdownViewer.tsx
...
Add an export mind map button to support exporting HTML and PNG.
2025-07-17 01:27:09 +08:00
Paper-Dragon
dc29319a3e
Refine form validation and update Docker configuration
2025-07-09 13:34:26 +08:00
Karasukaigan
564eee2682
fix: 隐藏多余错误提示
2025-07-02 04:34:54 +08:00
Karasukaigan
8fecf293bb
fix: 优化Schema校验逻辑
...
修复了以下问题:
1. 当视频链接为空时,原本的校验逻辑会导致首次点击生成笔记时报错“Required”而不是“视频链接不能为空”。
2. 当选择抖音时无法判断URL是否合法,即使填入“123”也能触发后面的逻辑。
2025-07-02 04:05:04 +08:00
Karasukaigan
ce76b78b34
fix: 缓解Ant Design与React版本兼容性问题
...
Ant Design v5与React 19+存在兼容性问题,出现报错:[antd: compatible] antd v5 support React is 16 ~ 18.
## 修复方式
1. 尝试升级antd到5.26.3,但不起作用。
2. 注释掉代码里的`message.error`,可以暂时解决问题。
2025-07-02 03:21:36 +08:00
Karasukaigan
d8768d5d5b
fix: 修复NoteHistory组件中的key警告
...
修复React警告"Each child in a list should have a unique 'key' prop"
2025-07-02 00:44:52 +08:00
JefferyHcool
b20725cb00
fix:修复windows 日志格式问题
2025-06-23 09:20:36 +08:00
JefferyHcool
467deefd28
build:完成打包功能
2025-06-20 12:03:10 +08:00
Jianwu Huang
29c4926306
Merge branch 'master' into feature/1.8.0
2025-06-19 16:24:26 +08:00
JefferyHcool
d92cc4a977
feat(NoteForm): 增加文件上传状态反馈
2025-06-19 14:54:51 +08:00
JefferyHcool
cf512e226f
feat:优化上传体验
2025-06-06 22:03:12 +08:00
JefferyHcool
2dfc1c068f
feat(NoteForm): 增加文件上传状态反馈
...
- 添加上传中和上传成功状态的显示- 优化上传逻辑,增加状态控制
- 提升用户体验,明确上传过程
2025-06-06 22:02:02 +08:00
JefferyHcool
8b1bc54f2d
refactor(backend): 重构后端异常处理和模型管理
...
- 新增自定义异常类 BizException、NoteError 和 ProviderError
- 优化了模型管理相关的逻辑,包括加载、删除和测试连接等功能
- 改进了 Douyin 下载器的错误处理
- 调整了任务重试逻辑和笔记生成的异常处理- 更新了相关组件和页面以适应新的异常处理机制
2025-06-06 21:30:23 +08:00
JefferyHcool
31f42aa26e
feat(model): 增加模型管理和测试功能
...
- 新增模型删除功能
- 实现模型测试连接功能
- 优化模型选择器组件
- 更新模型相关API和数据库操作
2025-05-27 08:52:38 +08:00
JefferyHcool
9b298d3094
feat(model): 增加模型管理和测试功能
...
- 新增模型删除功能
- 实现模型测试连接功能
- 优化模型选择器组件
- 更新模型相关API和数据库操作
2025-05-26 23:16:19 +08:00
黄建武
6ff8b4d90f
feat(backend): 添加 Groq供应商支持并优化笔记生成流程- 在 builtin_providers.json 中添加 Groq 供应商信息
...
- 实现 GroqTranscriber 类以支持 Groq 语音转录服务
- 新增异常处理中间件以提高系统稳定性
- 优化笔记生成流程,增加错误处理和日志记录
- 添加思维导图功能和相关组件
-重构 Markdown 查看器以支持切换视图模式
2025-05-12 14:59:06 +08:00
黄建武
137cf81d29
fix(markdown): 修复 Markdown 组件以提高可读性和维护性
...
- 格式化代码以提高可读性
-优化组件结构以提高维护性- 调整样式和布局以提升用户体验
2025-05-09 16:08:18 +08:00
黄建武
732ea0ba2b
refactor(layout): 优化网页布局和路由设置
...
- 更新 logo显示方式,使用 import 代替直接引用
- 将 BrowserRouter 替换为 HashRouter,以适应前端路由
- 在项目中添加 logo.svg 文件,统一 logo 资源
- 调整 vite.config.ts,设置 base 为 './' 以优化构建
2025-05-09 09:57:13 +08:00
黄建武
21c9d47495
feat(download): 添加快手下载器并优化下载配置功能
...
- 新增快手下载器,支持快手视频下载
- 添加下载配置页面,可设置各平台Cookies
- 优化后端接口,增加获取和更新Cookies的功能
- 前端新增Downloader组件和相关表单组件
- 更新路由配置,增加下载配置相关路由
2025-05-08 18:15:59 +08:00
黄建武
be4c3313d4
feat(deploy): 重构部署方案并添加 nginx 代理
...
- 新增 nginx 服务作为前端和后端的代理
- 重新配置前端和后端服务,不再直接暴露端口
- 更新前端 Dockerfile,简化为静态文件服务器- 在 MarkdownViewer 组件中添加 ExternalLink 图标
2025-05-06 13:56:43 +08:00
黄建武
03c950eb63
chore:更新版本号
2025-05-04 22:18:18 +08:00
黄建武
97f153646f
feat(frontend): 新增多版本笔记功能,并做了向下兼容。
...
- 新增关于页面组件,介绍项目背景、功能和使用方法
- 重构笔记生成逻辑,支持多版本笔记
- 新增笔记版本选择、复制和导出功能
-优化笔记界面布局和交互
- 调整部分组件样式,提升用户体验
2025-05-04 11:00:54 +08:00
黄建武
0e055b34ca
feat(MarkdownViewer):增强 Markdown 解析和渲染能力
...
- 添加对 GFM (GitHub Flavored Markdown) 的支持
- 增加数学公式渲染功能
- 实现加粗编号标题的特殊处理
- 优化代码块样式
- 添加图片缩放功能
2025-05-03 02:24:56 +08:00
黄建武
6e084f720d
feat(note): 添加视频理解功能- 在 GPT 模型中增加 video_img_urls 字段用于存储视频截图
...
- 在笔记生成请求中添加视频理解相关参数
- 实现视频截图功能,支持按指定间隔生成截图
- 更新笔记生成逻辑,支持视频理解功能- 在前端服务中添加视频理解相关参数
2025-05-02 23:47:15 +08:00
黄建武
04dad3b72a
feat(downloaders): 添加抖音视频识别功能
...
- 新增 abogus.py 文件,实现 a_bogus 参数的生成逻辑
- 代码源自 JoeanAmier/TikTokDownloader 项目,并进行了适配和优化
- 功能包括生成用户代理字符串、加密 URL 参数和生成最终的 a_bogus值
- 提供了详细的注释和函数说明,便于理解和维护
2025-05-02 14:00:29 +08:00
思诺特
1e2a2d33a8
fix(noteForm):修复按钮点击无效
2025-05-01 16:50:16 +08:00
黄建武
b66c366a08
refactor(HomePage): 优化笔记表单提交状态显示
...
- 修改 isGenerating 函数逻辑,增加对任务状态的判断
- 在 onSubmit 函数中添加成功提交任务的提示信息
2025-04-29 22:11:44 +08:00
思诺特
c65de4654f
feat(local): 添加本地视频处理功能
...
- 实现本地视频上传和处理功能
- 新增 LocalDownloader 类处理本地视频
- 更新前端界面支持本地视频选择
- 添加视频封面提取和保存功能
- 优化后端路由支持本地视频上传
2025-04-28 13:34:09 +08:00
黄建武
bd68ba35b9
fix(HomePage): 调整生成笔记按钮的位置,解决按钮失效问题
2025-04-27 23:14:50 +08:00
思诺特
246e8a1406
fix(layout): 优化首页布局并添加可调整面板 fixes #123
...
- 使用 react-resizable-panels 实现可调整大小的面板
- 重新布局首页结构,分为左、中、右三个可调整区域
- 更新 NoteForm 和 NoteHistory 组件以适应新布局
- 调整 History 组件样式,优化滚动体验
- 更新项目依赖,添加 react-resizable-panels
2025-04-27 21:55:38 +08:00
思诺特
84cd345b9f
feat(frontend): 重构首页布局并添加生成历史组件
...
- 新增 History 组件用于展示生成历史记录
- 调整 HomeLayout 布局,增加 History 侧边栏
- 优化 NoteHistory 组件样式和布局- 更新首页样式,调整各个组件的位置和样式
2025-04-27 16:57:03 +08:00
思诺特
171dea5e0d
feat: 新增模型管理和供应商配置功能
...
### v1.1.0
- #### Added
- 新增 AI 笔记风格选择
- 新增 AI 笔记返回格式选择
- 添加 AI 自定义笔记备注 Prompt
- 添加任务失败重试
- 添加全局设置页,可在设置页进行模型设置
- #### Optimize
- 优化前端样式,优化用户体验
- 增加生成中间产物,可用于失败后加快生成速度
- #### Fix
- 修复视频截图视频过早删除错误
2025-04-26 23:40:17 +08:00