用途与实际影响
这项功能怎样使用
为什么需要它
看懂一张图和精确读出表格不是同一件事;同时启动 OCR(光学字符识别) 与大模型还可能争用一张显卡。这里明确分工并串行释放资源。
举个实际例子
这是一张扫描表格,数字必须准确。先交 LocalOCR 读字,再由模型归纳;如果只是解释照片内容,可选择原生视觉。指定录音则交 ChineseASR 转写。
最后我会得到什么
照片解释、扫描表格的文字或录音转写各拿自己的原结果,再由模型整理本次答案。数字和人名若识别不确定,会连同来源和疑点一起交回。
正常时
选中的图片或录音得到对应专项结果,随后用于本次任务。
发现问题时
识别不清时标出具体字段和需要回原件核对的地方,不猜关键数字。
入口不可用或证据不足时
所需识别入口、视觉能力或显卡暂不可用时停这一阶段,不偷换另一种处理方式。
从哪里开始
在已接入 Toolkit 的主 AI 对话中交给指定图片、扫描件或录音,并说清是解释内容还是精确提取。
需要准备什么
- 明确的媒体文件
- 精度和本地处理要求
- 希望得到文字、转写或归纳
从开始到拿到结果
- 1
根据需要的准确程度选路线
系统区分“解释照片”“读准扫描表格”和“转写录音”,把文件交给真正能处理那类材料的入口。
- 2
先调用合适专项
精确文字交 LocalOCR,中文录音交 ChineseASR,场景理解才选原生视觉;重型显卡工作按实际资格协调。
- 3
再整理结果
交回专项原结果和模型归纳,保留识别不确定性;适配器存在不证明任意私人材料准确。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
适配行为回归通过关键规则与设计选择
native 走模型视觉,specialist 走专项工具;auto 对一般图优先视觉,对精确文字/表格/公式优先 OCR(光学字符识别),音频走 ASR(自动语音识别)。
OCR(光学字符识别) 使用 -StopAfter,ASR(自动语音识别) 结束释放 Broker(代理服务) 租约,再进入本地模型阶段。
云端媒体与识别后文本同样需要明确允许传输。
本模块用到的名词
- 专项识别
- 由 LocalOCR / ChineseASR 完成文字或语音任务,而非让一般模型猜测。
专业定义
一般看图、精确读字、听录音各走合适的已有工具
解决什么
专项失败或模型不支持该输入时返回原因,不把文件路径当成模型已经看过文件。
当前怎样实现
- media.py 通过 LLM_TOOLKIT_LOCALOCR_ENTRY / LLM_TOOLKIT_CHINESEASR_ENTRY 调用既有 owner 工具,模型只连接 Broker(代理服务) 127.0.0.1:32100,不绕过它直连内部 Ollama。
- 视觉能力由当前所选backend(模型后端)一路传给provider、预检和媒体处理;实际runner支持附件才传原生图像,不支持则明确拒绝。Profile写着images=true或模型会看图,都不能替代当前machine接口是否接受附件的事实。
- 专项 owner 拥有原始识别数据与状态;Toolkit 记录本次工作阶段,观察事件不包含原始媒体、识别正文或凭据。不能把这一公开事件限制写成整个产品绝不保存本地结果。
执行流程
- 1
明确媒体与精度要求
- 2
选择原生或专项路线
- 3
专项结束释放 GPU
- 4
交给指定后端
- 5
返回媒体与结果依据
边界
- 本次未处理私人扫描件或录音,也未做新的 GPU 实机识别。
- 适配测试不证明任意输入的识别准确率。
失败与恢复
- 工具或 GPU 不可用
- 返回该阶段错误,不并发抢占或绕开 Broker(代理服务)。
真实入口
src/llm_backend_toolkit/media.py媒体选择和专项适配
tests/test_media.py适配行为
如何验证
- 媒体路由与串行调用的离线回归通过;专项本身的当前实机能力由各自项目说明。
与其他模块的关系
与文本一样受输入校验、云端边界和任务生命周期约束。
