huangjianwu
|
261c95cf12
|
fix(transcriber): whisper 模型下载/加载统一走 HF cache 布局
此前用 modelscope 下到自定义目录 whisper-{size}/ 再把该路径传给
WhisperModel。但 faster-whisper 1.1.1 只要 path 含 '/' 就当成 HF
repo_id 处理,没有「本地目录直接返回」分支 → 在线请求失败后 fallback
local_files_only,又因 modelscope 布局命不中 HF cache → LocalEntryNotFound,
误导用户以为是「离线模式」。
改为下载与加载路径对齐:
- 下载:huggingface_hub.snapshot_download(cache_dir=model_dir),落到 HF
cache 布局 models--Systran--faster-whisper-{size}/snapshots/<hash>/
- 加载:WhisperModel(model_size_or_path=size, download_root=model_dir),
让 faster-whisper 自己映射到 Systran/faster-whisper-* 并命中同一 cache
- 完整性检测 / 损坏自愈(_purge_cache) 同步按 HF cache 布局,并兼容老
modelscope 目录(向后兼容已下载的老用户)
HF_ENDPOINT 已在 Dockerfile 指向 hf-mirror.com,国内可用。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-22 11:27:03 +08:00 |
|
huangjianwu
|
41f17592c2
|
fix(backend): 部署韧性——模型自愈/就绪门禁/全局代理/启动诊断
- whisper: model.bin 截断/损坏时删目录重下重试一次,修「Unable to
open file model.bin」死循环;mlx 同样按 config.json 判完整性
- /generate_note 加就绪门禁:本地转写引擎模型没下好直接拦截,返回
reason=transcriber_model_not_ready,不让任务静默卡在首次下载
- 全局代理:新增 ProxyConfigManager(JSON 配置 + HTTP_PROXY env 兜底)
+ build_openai_client,统一注入代理到 LLM/Groq 客户端;yt-dlp 与
youtube-transcript-api 也走代理
- build_openai_client 校验 api_key 非空,空 key 给「xxx 的 API Key
未配置」而不是天书般的 Illegal header value b'Bearer '
- universal_gpt: 模型拒绝自定义 temperature(o1/o3/gpt-5 系列)时
就地去掉参数重试,不消耗重试预算
- connect_test 改用真实 chat completion 而非 /v1/models 探测
- main.py: lifespan 拆 [startup 1/5..5/5] 分段日志 + 异常清晰定位
- /sys_health 重构为结构化返回 {backend,ffmpeg,db,whisper_model}
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-14 19:01:14 +08:00 |
|
Jianwu Huang
|
c4abaf4e60
|
Revert "Fix/backend deploy resilience"
|
2026-05-09 14:25:37 +08:00 |
|
huangjianwu
|
2bb69d1581
|
fix(backend): 部署友好性——whisper 半成品目录与 deploy_status 硬依赖 torch
两处部署反馈来的问题:
1. WhisperTranscriber 反复抛 'Unable to open file model.bin in
model whisper-base'
· 原因:__init__ 只看目录是否存在判定模型已下载(Path(model_path).exists()),
但首次下载若中断 / 网络异常会留下空 / 半成品目录,下次启动绕过下载分支直接
进 WhisperModel 加载,于是死循环报错
· 修:判定条件换成 'model.bin' 落盘存在;目录在但 model.bin 缺失时打 warn
并触发重新下载
· routers/config.py 的 _check_whisper_model_exists 同步改用 model.bin 判定,
避免「已下载」状态在监控页误报
2. /api/deploy_status 在没装 torch 的部署上 500
ModuleNotFoundError: No module named 'torch'
· 原因:endpoint 顶部直接 import torch,仅 fast-whisper 才用得到的依赖被强制为
全局必需。轻量部署 / 用户切到 Groq / 必剪 / 快手 在线引擎时无 torch 也合理
· 修:torch 改为 try/except,未装或 cuda 检测异常时返回
{available: false, torch_installed: false};同时把 transcriber 配置 +
ffmpeg 都包在 try 里,保证整个监控 endpoint 不会被任一子项打死
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-09 13:57:34 +08:00 |
|
Jianwu Huang
|
f667e9460b
|
fix:修复 cpu 核心锁死问题
fix cpu 核心锁死问题
|
2025-07-03 10:28:33 +08:00 |
|
JefferyHcool
|
e40c97b3fd
|
fix:修复windows 日志格式问题
|
2025-06-23 09:18:31 +08:00 |
|
JefferyHcool
|
f23ed6ec6c
|
feat(system): 添加后端初始化和健康检查功能
- 新增后端初始化对话框组件
- 实现后端健康检查和初始化逻辑
- 在 App 组件中集成后端初始化和健康检查
- 新增系统健康检查 API 和相关服务
|
2025-06-20 13:05:42 +08:00 |
|
黄建武
|
51fb59e3e1
|
feat(transcriber): 使用 ModelScope 替代 Hugging Face 下载模型
- 在 requirements.txt 中添加 modelscope 依赖
- 修改 whisper.py 中的模型下载逻辑,使用 ModelScope 的 snapshot_download 函数- 更新 MODEL_MAP 字典,映射不同大小的模型到对应的 ModelScope 仓库
- 调整模型路径,直接使用 ModelScope 下载的路径
|
2025-05-08 14:42:43 +08:00 |
|
思诺特
|
171dea5e0d
|
feat: 新增模型管理和供应商配置功能
### v1.1.0
- #### Added
- 新增 AI 笔记风格选择
- 新增 AI 笔记返回格式选择
- 添加 AI 自定义笔记备注 Prompt
- 添加任务失败重试
- 添加全局设置页,可在设置页进行模型设置
- #### Optimize
- 优化前端样式,优化用户体验
- 增加生成中间产物,可用于失败后加快生成速度
- #### Fix
- 修复视频截图视频过早删除错误
|
2025-04-26 23:40:17 +08:00 |
|
Jefferyhcool
|
bb974b0b89
|
:feat 新增模型配置页面和相关功能
- 新增模型配置页面组件和路由
- 实现模型配置表单和相关逻辑- 添加全局配置入口和功能- 优化首页布局和样式- 新增 404 页面组件
- 更新部分组件样式和结构
|
2025-04-22 17:01:02 +08:00 |
|
思诺特
|
4f199144ba
|
feat(transcriber): 更新 whisper模型加载方式
- 添加模型下载功能,如果本地不存在则自动下载
- 优化模型路径处理,使用更灵活的目录结构- 增加日志记录,提高程序可读性
- 更新 requirements.txt,添加新依赖项
|
2025-04-15 10:26:34 +08:00 |
|
Jefferyhcool
|
43b88c85fa
|
feat(events): 实现转写完成后的文件清理功能
- 新增 events 模块,包括 handlers 和 signals 子模块
- 在 handlers 中实现 cleanup_temp_files 函数,用于清理转写临时文件
- 在 signals 中定义 transcription_finished 信号
- 修改 main.py,添加 startup_event 函数以注册事件处理器- 更新 WhisperTranscriber 类,增加 on_finish 方法并发送转写完成信号
- 在 base.py 中添加 TranscriberBase 类的 on_finish 方法占位符
|
2025-04-13 23:29:33 +08:00 |
|
Jefferyhcool
|
0e0b8da317
|
first commit
|
2025-04-13 17:44:54 +08:00 |
|