干货:显式映射 vs 自动判据

显式映射 vs 自动判据:template 强制路由与禁用开关的取舍

两条路到同一个插件

用什么插件解析一份 PDF,有两条路:

  1. 自动判据 :遍历所有插件跑 recognizes,谁命中用谁。
  2. 显式映射 :HTTP 请求带 template 业务标识,或配置里写 p_template,直接按 ID 锁死指定插件。

两条路都能到插件,但语义完全不同。

显式映射的代码

python 复制代码
# 优先 config.json 的 p_template,为空回退 HTTP 的 template
template = (json_data.get("p_template") or "").strip()
if not template:
    template = (item.get("template") or "").strip()

if template:
    plugin = manager.by_id(template)   # 显式按ID
else:
    plugin = manager.auto_route(pdf)   # 自动按recognizes

两者的取舍

  • 自动判据:省事,不用配置,但遇到相似格式可能选错。
  • 显式映射:确定,指哪打哪,但要多传一个参数。

关键矛盾:禁用开关在两条路上不同

我们设计的规则:禁用只拦自动判据,不拦显式映射。

python 复制代码
# 自动路由:过滤掉禁用的
plugin = manager.auto_route(pdf, enabled_only=True)
# 显式路由:直接按ID,不过滤禁用
plugin = manager.by_id(template)

为什么?因为禁用是"自动识别时别选它",更偏向"防误判"。而显式指定是用户明确点名,用户的意图不该被一个自动开关挡住。硬挡反而违背用户操作。比如某个模板暂时被禁用防误判,但用户就是要手动解析它,没理由拦。

一句话

自动判据追求省事,显式映射追求确定;禁用只管自动,不管显式,既防误判又不妨碍用户明确意图。


相关推荐
青少儿编程课堂27 分钟前
蓝桥杯青少组图形化省考报名倒计时·全国青少年信息素养大赛·电子学会图形化考级:校园黑白棋人机对战解析
c++·python·算法·bfs·信息学竞赛
tellmewhoisi1 小时前
nlp:知识库检索和dify知识库创建
python·自然语言处理
2601_968793141 小时前
Python Requests 轻量自动化:无需浏览器,实现真人级账号浏览模拟
开发语言·python·自动化
我才是银古5 小时前
视频是算出来的:DeepSeek Harness零素材全代码生成视频插件
ai·视频·插件·deepseek·dsh
段一凡-华北理工大学10 小时前
工业智能体:从Codex/Claude到项目实战~系列文章05:从“AI助手“到“工业智能体“:能力跃迁与落地范式
人工智能·python·claude·codex·工业智能体·高炉炼铁智能化
深蓝AI11 小时前
ContextVar 到线程池就丢了?asyncio.to_thread 和 run_in_executor 实测
python
岁月宁静12 小时前
什么是 Agent:从"会聊天"到"会做事"
人工智能·python
岁月宁静12 小时前
AI 应用开发工程师简历怎么写:HR 初筛、技术复筛、面试追问,三道关卡各看什么?
人工智能·python·面试
来让爷抱一个12 小时前
Python 异步里混用同步库,事件循环被卡住的全过程
开发语言·python
小肝一下14 小时前
3.基础语法(3)
python