Jianwu Huang
0e10a3d906
Merge pull request #304 from JefferyHcool/master
...
修复打包错误
2026-03-23 18:13:24 +08:00
huangjianwu
6d5d1ad373
fix(ci): 修复 GitHub Actions 构建错误
...
移除 setup-node 中的 pnpm 缓存配置以修复 macOS 构建失败,修改 Dockerfile 不再依赖 pnpm-lock.yaml 以修复 Docker 构建失败
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-23 18:11:55 +08:00
huangjianwu
3582e65dc5
feat(ci): 桌面端构建自动创建 GitHub Release 并附带安装包
...
- 新增 release job:等所有平台构建完成后自动创建 Release
- 收集各平台产物(dmg/msi/exe/deb/AppImage)到统一目录
- 使用 softprops/action-gh-release 创建 Release 并上传产物
- 自动生成 SHA256 校验和文件
- 自动根据 commits 生成 Release Notes
- 仅在推送 tag 时触发 Release 创建
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
v2.0.0
2026-03-23 17:58:57 +08:00
Jianwu Huang
3010690d2e
Merge pull request #303 from JefferyHcool/feature/update-readme-v2
...
docs: 更新 README 至 v2.0.0,补充新功能说明和 Docker 部署方式
2026-03-23 17:56:15 +08:00
Jianwu Huang
a40bb19743
Merge branch 'master' into feature/update-readme-v2
2026-03-23 17:56:07 +08:00
huangjianwu
6090982261
docs: 更新 README 至 v2.0.0,补充新功能说明和 Docker 部署方式
...
- 版本号升级为 2.0.0(README、tauri.conf.json、about 页面)
- 新增 v2.0.0 功能说明:RAG 问答、Function Calling、封面 Banner、面板折叠等
- Docker 部署改为推荐方式,支持 docker pull 预构建镜像
- 补充源码部署为方式二,修正前端访问端口为 3015
- 更新功能特性列表,补充快手、AI 问答等新功能
- TODO 标记 RAG 问答为已完成
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 17:52:30 +08:00
Jianwu Huang
90aeb22853
Merge pull request #302 from JefferyHcool/feature/optimize-build
...
feat(build): 全面优化打包流程,Docker 镜像自动发布到 GHCR
2026-03-23 17:49:25 +08:00
huangjianwu
f6a3438079
feat(build): 全面优化打包流程,Docker 镜像自动发布到 GHCR
...
Docker 优化:
- Dockerfile 层缓存(requirements/lockfile 先复制再安装)
- ARG 可配置镜像源,国际用户可覆盖为默认源
- 前端 Dockerfile 改用 corepack + frozen-lockfile
- 精简 .dockerignore,排除 .git 和 Tauri 构建产物
CI/CD 优化:
- docker-build 自动推送到 GHCR,支持 amd64/arm64 双架构
- 桌面端 CI 增加 pip/pnpm/cargo 缓存,升级 actions 版本
- Python 版本对齐为 3.11,增加 Linux 构建矩阵
- build.sh 加 -y 覆盖标志
文档更新:
- README Docker 部署简化为 docker pull + docker run
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 17:48:34 +08:00
Jianwu Huang
c553fd898f
Merge pull request #301 from JefferyHcool/feature/youtube-subtitle-innertube
...
feat(youtube): 使用 youtube-transcript-api 优先获取字幕,有字幕时跳过音频下载
2026-03-23 17:32:48 +08:00
huangjianwu
f4801d5be7
feat(youtube): 使用 youtube-transcript-api 优先获取字幕,有字幕时跳过音频下载
...
- 新增 YouTubeSubtitleFetcher 模块,通过 youtube-transcript-api 获取字幕
- 重构笔记生成流程:缓存 → 平台字幕 → 按需下载 → 转写 fallback
- 有字幕时仅提取视频元信息,不下载音视频文件
- 添加 youtube-transcript-api 依赖
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 17:31:30 +08:00
Jianwu Huang
5861ef4168
Merge pull request #300 from JefferyHcool/feature/ui-optimize
...
feat(ui): 工作区和生成历史面板支持折叠/展开
2026-03-23 16:12:32 +08:00
huangjianwu
27758f95dd
feat(ui): 工作区和生成历史面板支持折叠/展开
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 16:09:57 +08:00
Jianwu Huang
a2ab457f75
Merge pull request #299 from JefferyHcool/feature/note-qa-chat-optimize
...
Feature/note qa chat optimize
2026-03-23 16:00:15 +08:00
huangjianwu
795615f0f7
fix(ui): 修复 Banner 封面图不显示
...
MarkdownViewer 的 baseURL 去掉了 /api 前缀,导致
image_proxy 请求路径错误。改为组件内部直接读取
VITE_API_BASE_URL,与 NoteHistory 保持一致。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:59:02 +08:00
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
05877a2197
feat(chat): 支持 function calling,模型可主动查询原文数据
...
新增三个工具供 LLM 调用:
- lookup_transcript: 查询转录原文(按时间范围、关键词、位置筛选)
- get_video_info: 获取视频元信息(标题、作者、简介、标签等)
- get_note_content: 获取完整笔记 Markdown 内容
实现 tool calling 循环(最多 3 轮),LLM 可根据问题
主动调用工具获取所需信息,不再完全依赖 RAG 检索。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:48:23 +08:00
huangjianwu
3e9f908d7b
fix(chat): 按固定配额检索,确保三种来源均被召回
...
之前各来源各取 n_results 条再按距离排序取 top-n,
markdown 距离普遍更近导致 transcript 被挤掉。
改为固定配额:meta 1 条、markdown 2 条、transcript 3 条。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:44:25 +08:00
huangjianwu
8a8e448e22
feat(chat): 索引视频元信息(标题、作者、简介、标签等)
...
- 新增 _build_meta_chunk,将 audio_meta 中的标题、UP主、
简介、标签、时长、平台、链接等构建为可检索的 chunk
- query 时同时从 meta/markdown/transcript 三种来源检索
- is_indexed 检测旧索引缺少 meta 时返回 false,自动触发重建
- system prompt 新增 [视频信息] 来源说明
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:41:07 +08:00
huangjianwu
a92c779dd6
fix(chat): RAG 检索同时召回笔记和转录内容
...
之前 query 只做一次全局检索,embedding 模型倾向匹配笔记,
导致转录原文几乎不会被召回。
- 改为分别对 markdown 和 transcript 各检索 n_results 条,
合并后按距离排序取 top-n
- 更新 system prompt,明确区分笔记和转录两种来源,
引导 LLM 根据问题类型选择合适的来源回答
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:35:31 +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
fdc888512a
fix(chat): 修复 ChromaDB 1.x 兼容性问题导致索引失败
...
- ChromaDB 1.x delete/get 不存在的 collection 抛 NotFoundError
而非 ValueError,统一改为 except Exception
- 简化 _collection_name,UUID 格式本身就是合法的 collection name
- requirements.txt 放宽 chromadb 版本约束
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 14:43:57 +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
63b8ac7e2b
Merge pull request #298 from JefferyHcool/bugfix/performance-and-transcriber-config
...
fix: 性能优化、前端转写器配置、任务进度丢失及 MLX Whisper 回退问题修复
2026-03-23 14:23:03 +08:00
huangjianwu
c105342ded
fix: 性能优化、前端转写器配置、任务进度丢失及 MLX Whisper 回退问题修复
...
### 性能优化
- 后端任务执行从串行锁改为 ThreadPoolExecutor 并发执行(默认3线程)
- 添加 GZipMiddleware 响应压缩 + Nginx gzip 配置
- 数据库连接池参数优化(pool_size=10, max_overflow=20)
- 视频帧提取并行化(ThreadPoolExecutor)
- LLM 重试配置缓存到实例,避免每次请求读 env var
- 前端路由级代码拆分(React.lazy + Suspense)
- Vite manualChunks 拆分 markdown/markmap/vendor
- MarkdownViewer 用 React.memo + useMemo 减少不必要渲染
- NoteHistory Fuse.js 实例 useMemo 缓存
- useTaskPolling 无待处理任务时跳过轮询
- 移除 antd 依赖(NoteForm Alert、modelForm Tag),改用 shadcn/ui
### 前端转写器配置(新功能)
- 新增 TranscriberConfigManager(JSON 文件存储,替代环境变量)
- 新增 GET/POST /transcriber_config API 端点
- 新增 GET /transcriber_models_status 模型下载状态查询
- 新增 POST /transcriber_download 后台模型下载触发
- 前端转写器设置页面:引擎选择、模型大小选择、模型下载管理
- deploy_status 端点同步从配置文件读取
### Bug 修复
- 修复任务进行中切换页面后进度丢失:Home.tsx status 派生逻辑补全中间状态
- 修复 MLX Whisper 静默回退 fast-whisper:移除环境变量门控,macOS 下自动尝试导入
- MLX Whisper 不可用时抛出 RuntimeError 而非静默回退
- 前端展示 MLX Whisper 可用性状态,不可用时禁用保存
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 14:09:34 +08:00
huangjianwu
1cd8c33983
feat(note): 在笔记开头添加来源链接功能
2026-03-23 13:18:40 +08:00
Jianwu Huang
dd73e56c30
Merge pull request #273 from Sjshi763/Sjshi763/issue259
...
添加 Docker 构建工作流
2026-03-20 16:51:16 +08:00
Jianwu Huang
4a53b6aa32
Merge pull request #279 from CyanAutumn/master
...
🐞 fix: 增加错误之后对已解析段落的缓存功能,再次重试时不再重头开始
2026-03-20 16:50:52 +08:00
Jianwu Huang
15d851f0d0
Merge branch 'master' into master
2026-03-20 16:50:43 +08:00
Jianwu Huang
8172e64510
Merge pull request #275 from sibuchen/feature/deployment-monitor-clean
...
feat: 新增部署监控页面 (Deployment Monitor)
2026-03-20 16:49:46 +08:00
Jianwu Huang
7969d9a75c
Merge pull request #283 from wanderer99176/fix-timestamp-format
...
再次优化 B站时间戳跳转格式
2026-03-20 16:49:13 +08:00
wanderer99176
7fb4fcba77
fix: update bilibili timestamp link format to - [MM:SS](URL#t=MM:SS)
2026-02-25 11:57:16 +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
圣达生物多
769aca10db
添加 Docker 构建工作流和完整应用镜像的 Dockerfile
2026-02-05 21:34:57 +08:00
Jianwu Huang
7b45db2f59
Update README.md
2026-02-05 16:50:51 +08:00
Jianwu Huang
a5f0211fcb
Merge pull request #262 from Sjshi763/Sjshi763/issue232
...
[BUG] 已经把ffmpeg加入到系统变量path了 还是检测不出来 ?
2026-02-05 16:05:03 +08:00
Jianwu Huang
658d29e72f
Merge pull request #268 from nbzcy/feature/subtitle-priority-and-export-enhancements
...
feat: Add subtitle priority fetching and enhance mindmap export
2026-02-05 16:04:38 +08:00
Jianwu Huang
2b3f850478
Merge pull request #271 from kxuer/master
...
修复哔哩哔哩视频原片url问题
2026-02-05 16:04:23 +08:00
xuerk
caa4619aab
修复哔哩哔哩视频原片url问题
2026-02-05 15:41:04 +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
Sjshi763
844e1a102a
[BUG] 已经把ffmpeg加入到系统变量path了 还是检测不出来 ?
...
Fixes #232
2026-01-03 14:57:42 +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