mirror of
https://github.com/JefferyHcool/BiliNote.git
synced 2026-06-12 19:20:00 +08:00
- useCheckBackend 重写:60s 总超时取代 while(true) 死轮询,订阅 Tauri backend-ready/terminated/startup-timeout 事件,裸 fetch 探测避免 启动期 toast 叠堆 - Tauri lib.rs:spawn 后 HTTP 探针轮询 /api/sys_check 拿 200 才算就绪 (之前 TCP connect 会被孤儿进程误判);RunEvent::Exit 钩子退出前 kill sidecar,修孤儿进程占端口;restart 前发 backend-restarting 让前端忽略主动 kill 引发的 terminated - BackendInitDialog:失败态展示原因 + 最近 stderr + 重启/复制日志按钮 - StartupBanner:收到 restarted/ready 自动清「已退出」横幅 - BackendHealthIndicator:修 /api/api/sys_health 双前缀 404 - Onboarding:step1 后端连通改自动重试 + 事件触发 + 手动按钮;step2 撞预置供应商名时改为更新已存在供应商;errText 统一错误文案 - 全局代理 UI:下载配置页新增代理卡片(services/proxy.ts + ProxyConfig) - request.ts 加 suppressToast 配置位,预期失败不弹全局红 toast - NoteForm/taskStore:捕获就绪门禁错误,引导去音频转写配置页下载 - providerCard:整行可点切换(之前只有 icon 区域响应) - Monitor 页 Whisper 卡显示模型本地下载状态 - tauri/api 升级对齐 2.11,修 vite build 版本不匹配 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
54 lines
1.5 KiB
TypeScript
54 lines
1.5 KiB
TypeScript
import request from '@/utils/request'
|
||
|
||
export interface SysHealth {
|
||
backend: 'ok' | 'error'
|
||
ffmpeg: 'ok' | 'missing'
|
||
db: 'ok' | 'error'
|
||
whisper_model: {
|
||
/** 当前选中的模型 size,例如 'tiny' / 'base' / 'large-v3' */
|
||
size: string | null
|
||
/** 转写器类型 */
|
||
type: string | null
|
||
/** 是否已完整下载到本地(仅本地引擎有意义) */
|
||
downloaded: boolean
|
||
/** 是否实际检查过 —— 在线引擎跳过检查时为 false */
|
||
checked: boolean
|
||
}
|
||
}
|
||
|
||
/** 详细健康状态:用于设置页 / 启动诊断。后端始终返回 200,按字段判断各项。 */
|
||
export const getSysHealth = async (): Promise<SysHealth> => {
|
||
return await request.get('/sys_health')
|
||
}
|
||
|
||
/** 保留旧 systemCheck 函数名(App.tsx 启动时仍调用),返回值同 getSysHealth。 */
|
||
export const systemCheck = getSysHealth
|
||
|
||
export interface DeployStatus {
|
||
backend: {
|
||
status: string
|
||
port: number
|
||
}
|
||
cuda: {
|
||
available: boolean
|
||
/** 新增:torch 是否安装。轻量部署没装 torch 时为 false,避免误判为 CUDA 故障 */
|
||
torch_installed?: boolean
|
||
version: string | null
|
||
gpu_name: string | null
|
||
}
|
||
whisper: {
|
||
model_size: string
|
||
transcriber_type: string
|
||
/** 新增:模型是否已完整下载(fast-whisper 看 model.bin / mlx 看 config.json) */
|
||
downloaded: boolean
|
||
}
|
||
ffmpeg: {
|
||
available: boolean
|
||
}
|
||
}
|
||
|
||
export const getDeployStatus = async (): Promise<DeployStatus> => {
|
||
return await request.get('/deploy_status')
|
||
}
|
||
|