资讯详情

转写片段晚到一步,会议行动项不能被旧摘要覆盖

📅 2026/10/11 1:53:36 | 华诺云谱 👁 阅读
转写片段晚到一步,会议行动项不能被旧摘要覆盖
会议转写通常分批到达。用户刚结束产品评审系统已经基于前 120 个片段生成摘要几秒后最后 8 个片段补齐又触发第二次整理。如果第一次请求更慢它可能在第二次之后返回把新摘要覆盖成缺少结论的旧版本。AI 会议纪要舱的场景页已有三条行动项需求范围确认、原型交付时间和灰度策略复核。界面还显示负责人、优先级和确认状态。我围绕“晚到的结果不能覆盖当前会议版本”补齐控制器让本地演示数据也具备真实工作台需要的状态边界。转写片段使用稳定序号单纯按到达顺序拼接会造成句子错位。每个片段带有服务端序号、开始时间和版本重复上报时保留更新版本。exportinterfaceTranscriptSegment{id:stringsequence:numberspeakerId:stringstartedAt:numberendedAt:numbertext:stringrevision:numberfinal:boolean}exportinterfaceMeetingState{meetingId:stringphase:idle|recording|summarizing|ready|errortranscriptVersion:numbersummaryRequestId:numbersegments:TranscriptSegment[]summary:MeetingSummary|undefinedmessage:string}exportinterfaceMeetingSummary{basedOnVersion:numberabstract:stringdecisions:string[]actions:ActionItem[]}exportinterfaceActionItem{id:stringtitle:stringowner:stringdueAt?:numberpriority:high|normalconfirmed:boolean}transcriptVersion只在转写内容真正变化时递增。页面选中某条行动项不会改变它避免纯界面操作触发重复摘要。合并批次时按片段 ID 去重exportfunctionmergeTranscript(current:TranscriptSegment[],batch:TranscriptSegment[]):TranscriptSegment[]{constmapnewMapstring,TranscriptSegment()current.forEach((item:TranscriptSegment)map.set(item.id,item))batch.forEach((item:TranscriptSegment){constpreviousmap.get(item.id)if(!previous||item.revisionprevious.revision){map.set(item.id,{...item})}})returnArray.from(map.values()).sort((a:TranscriptSegment,b:TranscriptSegment)a.sequence-b.sequence||a.startedAt-b.startedAt)}排序优先使用稳定序号时间戳作为同序号的兜底。临时片段升级为最终片段时ID 不变、revision增加列表不会出现两句几乎相同的转写。每次摘要请求都携带版本控制器生成递增请求 ID同时记录请求对应的转写版本。回调到达时必须同时满足两个条件请求 ID 仍是最新转写版本也没有变化。exportinterfaceSummaryTicket{requestId:numbertranscriptVersion:numbertext:string}exportclassMeetingController{state:MeetingStateconstructor(meetingId:string){this.state{meetingId,phase:idle,transcriptVersion:0,summaryRequestId:0,segments:[],summary:undefined,message:}}acceptBatch(batch:TranscriptSegment[]):void{constmergedmergeTranscript(this.state.segments,batch)constchangedJSON.stringify(merged)!JSON.stringify(this.state.segments)if(!changed){return}this.state.segmentsmergedthis.state.transcriptVersion1this.state.phaserecordingthis.state.message已接收${merged.length}个片段}createSummaryTicket():SummaryTicket{constrequestIdthis.state.summaryRequestId1this.state.summaryRequestIdrequestIdthis.state.phasesummarizingthis.state.message正在整理会议内容return{requestId,transcriptVersion:this.state.transcriptVersion,text:this.state.segments.filter((item:TranscriptSegment)item.final).map((item:TranscriptSegment)${item.speakerId}:${item.text}).join(\n)}}applySummary(ticket:SummaryTicket,summary:MeetingSummary):boolean{if(ticket.requestId!this.state.summaryRequestId||ticket.transcriptVersion!this.state.transcriptVersion){returnfalse}this.state.summary{...summary,basedOnVersion:ticket.transcriptVersion}this.state.phasereadythis.state.message会议纪要已更新returntrue}}示例里用序列化比较内容变化便于说明规则。数据量较大时可以在批次合并过程中维护changed标志避免每次序列化整份转写。行动项确认不重新生成摘要AI 提取的负责人可能不准确所以行动项先进入待确认状态。用户修改负责人或截止时间时只更新当前行动项不触发新的 AI 请求。exportfunctionconfirmAction(summary:MeetingSummary,actionId:string,owner:string,dueAt?:number):MeetingSummary{return{...summary,actions:summary.actions.map((item:ActionItem)item.idactionId?{...item,owner:owner.trim(),dueAt,confirmed:true}:item)}}页面用行动项 ID 作为ForEach键。调整优先级或过滤“待确认”时选中状态不会因为数组位置改变而跳到别的任务。ForEach(this.summary.actions,(item:ActionItem,index:number){Row({space:14}){Text(${index1}).width(54).height(54).textAlign(TextAlign.Center).backgroundColor(#8B7CFF)Column({space:5}){Text(item.title).fontSize(17).fontWeight(FontWeight.Bold)Text(负责人${item.owner}).fontSize(12).fontColor(#8F9AAD)}.layoutWeight(1).alignItems(HorizontalAlign.Start)Text(item.confirmed?已确认:待确认)}.onClick((){this.selectedActionIditem.id})},(item:ActionItem)item.id)错误状态保留上一版可用结果摘要请求失败时不应清空已经确认的行动项。控制器把阶段设为error并保留state.summary页面继续展示旧结果同时给出“基于较早转写版本”的提示。用户可以重试新的请求 ID 会自然淘汰更早的回调。当前工程界面与数据均为本地演示尚未接入真实语音转写或大模型服务。接入时只需让转写适配器产生TranscriptSegment让摘要适配器消费SummaryTicket请求版本、行动项确认和错误恢复仍由本地控制器管理。这样最后几句迟到也不会把刚整理好的会议结论覆盖掉。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑