同一个 bank,放在不同句子里可能是不同意思。词典卡片可以列出解释,但不能假装已经选对了当前这一条。
要解决什么
让用户理解一句话,同时保留原文和回放位置。词汇标注不应该因为翻译慢,就一直出不来。
有哪些方案
一种是逐词拼接词典释义,成本低但容易误导。另一种是每次转写都生成全文翻译。我先选按需翻译:用户展开某段时再处理,已有结果直接读取。
第一版只接一个能实际使用的模型后端。接口预留替换能力,不同时维护多个还没测好的模型。
我准备怎样做
拟新增的输入是 transcript_revision、segment_id、目标语言。服务端据此取原文,可以附带前后各一段上下文,但要求模型只翻译目标段。
返回目标段 ID、原文、译文、模型和提示词版本。词典面板继续展示“词典释义”,翻译面板展示“本段译文”;语境义项解释以后再加,不能混成同一个确定答案。
缓存键包含租户、原文 revision、段落与上下文内容摘要、目标语言、模型及提示词版本。相同请求并发到达时,用唯一键复用同一个待处理步骤,别重复付费或重复占 GPU。
新接口挂在任务服务的身份校验后面。即使客户端知道其他人的 segment_id,也必须先验证它能访问对应任务。前端切换段落时允许忽略旧请求的返回,但后台是否继续处理要有明确规则。
输入文本只作为待翻译内容,不授予模型调用工具的权限。返回按约定结构校验,页面当普通文本渲染。文本里夹着“忽略前面的要求”,不应改变处理目标。
实现顺序是:先写一个假翻译器跑通请求、去重和缓存;再接真实模型;最后连接“显示译文”按钮。这里的新接口和字段都是设计,现有后端还没有。
怎么验收
准备十组例句:一词多义、否定、数字、专有名词、混合语言各占一些。人工核对意思,不能只看返回成功。
同一段连续请求两次,第二次应命中缓存;改正文后生成新 revision,旧译文不能继续当成新结果显示。再模拟超时,原文、词典卡片和播放器仍然可用。
先把这一小段交互做顺,再决定是否需要全文翻译批处理。