卓卓安Claw项目方案库
展示首页/方案库/架构与实现
架构与实现

卓安Claw 谈案录音上传 V1 实现说明

约 4 分钟·卓安Claw · 2026.11
本页目录
  1. 0. 一句话
  2. 1. 已实现
  3. 1.1 数据表
  4. 1.2 原件层
  5. 1.3 API
  6. 1.4 UI
  7. 1.5 线索/客户/案件关联
  8. 1.6 验证
  9. 2. 未实现
  10. 3. 为什么先停在这里
  11. 4. 下一步

日期:2026-11-13
状态:P0-1 录音上传/原件存证/线索与案件关联/案件时间线已落地;ASR 转写与 AI 质检未接
关联:docs/requirements/卓安Claw-谈案录音与AI质检-V1方案草案-v0.1.md、docs/research/卓安Claw-录音质检-GitHub调研-2026-11-13.md

0. 一句话

先把“人工上传录音、原件不可变、线索时间线可查”跑通;FunASR 转写和五维质检作为下一步接入,不在同一批代码里硬塞。

1. 已实现

1.1 数据表

  • zhuoan_comm_record:沟通记录
  • 线索/客户 intake_id(客户按 client 兜底)
  • 案件 case_id、客户 client_id
  • 沟通类型:电话/面谈/微信语音/线上会议
  • 沟通时间、参与人、上传人、上传人 ID
  • 同意确认 consent_confirmed
  • 原件 blob_id、状态、备注
  • zhuoan_comm_transcript:转写占位(当前 待转写)
  • zhuoan_comm_analysis:质检占位(当前无记录)

1.2 原件层

  • 复用 zhuoan_doc_blob 的 SHA-256 内容寻址存储。
  • 音频流式写入、大小上限 1.5GB、原件不可变。
  • 录音不混入 document 案件材料台账;属于内部沟通数据。

1.3 API

方法 路径 说明
GET /api/zhuoan/communications?lead_id=&status= 录音列表 + 状态汇总
GET /api/zhuoan/communications/<id> 录音详情(含转写/分析占位)
POST /api/zhuoan/communications/upload multipart 上传;lead_id/comm_type/consent_confirmed/file 必填

权限:

  • 查看:case:view 或 customer:view。
  • 上传:case:edit 或 customer:view。
  • 非管理者 V1 只看自己上传的录音(线索负责人模型未落地前的保守策略)。
  • 上传写审计 zhuoan_comm_uploaded。

1.4 UI

侧栏「客户与线索 → 谈案录音」:

  • 指标:全部/待转写/已转写/已分析。
  • 筛选:全部/待转写/已转写/已分析。
  • 列表:沟通类型、线索/客户、沟通时间、上传人、参与人、备注、状态。
  • 上传弹窗:线索/客户、类型、时间、参与人、录音文件、备注、录音同意勾选。
  • 未勾选同意不能上传。

1.5 线索/客户/案件关联

  • 上传时可选择“关联案件(可选)”;选择后校验客户与案件一致。
  • 线索阶段上传的录音 case_id 为空;线索转案件时按 intake_id 自动补绑 case_id/client_id/linked_at。
  • 转案补绑写 linked_to_case 事件,不复制录音。
  • 案件详情新增「沟通录音」卡:显示本案录音、用途、时间、上传人、状态;可上传并默认带当前案件/客户。
  • 新增 purpose(谈案沟通/客户服务/办案沟通/证据性录音)、archive_status、stage_key 字段。
  • zhuoan_comm_event 记录上传、关联等事件,作为后续证据链基础。

1.6 验证

  • 生成 2 秒 WAV,Playwright 1920×1080 管理者上传成功:
  • 12 个线索/客户选项;
  • 上传后列表出现 1 条“电话/待转写”;
  • 0 console error;
  • 截图 C:\tmp\zhuoan-recordings.png。
  • API/DB 验证:zhuoan_comm_record 写入、consent_confirmed=1、blob SHA-256/64,044 bytes、转写占位 待转写。
  • 案件关联:在 ZA-2026-0323 案件内上传,case_id/client_id/purpose/archive_status 正确;案件「沟通录音」卡即时出现;linked_to_case 事件写入。
  • 晚绑定:线索下录音通过 link_recordings_to_case 补绑案件,case_id/client_id/linked_at 与事件正确;测试数据已清理。
  • 测试录音、blob、审计已清理。

2. 未实现

  • ASR 转写:FunASR(VAD + Paraformer/SenseVoice + 标点 + CAM++)尚未安装/接入。
  • 音频时长自动识别、播放器、转写分段、时间点跳转。
  • 五维质检、rubric、人工复核队列。
  • 主管团队视图;当前非管理者只看自己上传。
  • 录音删除/保留期/下载导出权限。
  • 与线索详情页内嵌时间线(当前是独立模块)。

3. 为什么先停在这里

  • 当前演示机 Python 环境没有 torch/funasr;安装 FunASR + 模型是独立环境变更,需确认安装窗口与机器(CPU/GPU)。
  • 先把上传与存证跑通,后续 ASR worker 可以独立替换,不返工对象和页面。
  • 11/27 前不建议把完整转写/质检塞进演示主线;最多用一段短录音做“上传→待转写”能力展示。

4. 下一步

  1. 安装 FunASR CPU 管线并做 3 段中文录音基准(电话/面谈/会议)。
  2. 增加 zhuoan_comm_job 或复用现有 worker 做异步转写。
  3. 录音详情页:播放器 + 转写分段 + 人工说话人映射。
  4. 五维质检 + 证据回链 + 主管复核队列。
  5. 权限升级:主管看团队、承办看案件团队、管理者看全所。