跳转至

2.0 接口与 1.x 迁移

连接前置条件

桌面 Tauri 通过私有管道取得随机端口与凭据,再通过 IPC 交给工作区。HTTP 使用 Authorization: Bearer <token>;WebSocket /api/v2/events 在 5 秒内先发送 {"type":"auth","token":"<token>"},后续客户端只发送 ping。不要把 token 放入 URL 或日志。

GET /api/health 只返回版本和健康状态,不需要 token。其他接口要求本机认证;本机浏览器 Origin 仍需在允许列表内。手机不使用这些管理接口,而是独立的加密命令协议。

核心 API

下表路径均以 /api/v2 为前缀。

方法与路径 用途
GET /status 当前桌面课堂与输入源
GET /sessions 分页历史课堂
POST /sessions 创建课堂;course_namesource、可选 material_id
GET /sessions/{id}/entries 原文分页;after_idlimit
POST /sessions/{id}/entries text(最多 8,000 字符)与 source_id(幂等标识)
POST /sessions/{id}/pauseresumestop 课堂生命周期
GET /sessions/{id}/export 完整原文导出
POST /sessions/{id}/assistant kindrescuecatchupsummaryfollowup,返回 202 和任务
GET /assistant/{id}DELETE /assistant/{id} 任务快照、取消
POST /assistant/test 固定短文本连接测试,报告首字和总耗时
GET /sessions/{id}/summaries 课堂笔记
GET /summaries/{id}/export Markdown 笔记
GET /materialsPOST /materials 资料列表、multipart file 上传
GET /audio/devices 输入设备
POST /sessions/{id}/audio multipart file + source_id,30 秒以内 PCM WAV
GET /settingsPUT /settings 类型化非秘密配置
GET /credentials 各类凭据是否已配置
PUT /credentials/{name}DELETE /credentials/{name} 更新或删除凭据;不会回传 Key
GET /models 安装状态与固定模型清单
POST /models/{id}/installDELETE /models/{id}/install 开始或取消安装
POST /models/{id}/startGET /models/runtime 预热和实际就绪状态
POST /import 显式旧数据导入,字段 directory
POST /import-config 显式旧配置导入,字段 path

事件是同步提示,持久数据以 HTTP 和 SQLite 为准。收到 resync_required 或重新连接时重新读取状态、原文和助手快照。任务取消/失败不会保存为成功笔记。完整字段与约束以类型化源码和行为测试为准,不将任意 Python 异常正文暴露给客户端。

迁移原则

旧的 /api/start_monitor/api/settings/api/emergency_rescue 等无鉴权接口已移除。兼容无鉴权写配置会保留旧安全问题,因此本次按 2.0 主版本边界迁移;旧桌面和新后端不能混用。服务端不再依赖固定 8765 端口,也不返回完整 .env

第三方工具应创建自己的明确授权 API-only 实例,或由受信的本机宿主提供连接信息,不扫描端口、读取其他进程凭据或复用手机身份访问管理接口。错误响应为 error / message 或 FastAPI 校验详情,调用方必须判断 HTTP 状态和任务最终状态。