干货:显式映射 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)

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

一句话

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


相关推荐
MasonYyp36 分钟前
声音转文字的模型
python
信誓旦旦的程序猿8 小时前
【Python量化实战宝典 #08】可转债与债券接口手册:转股价·溢价率·纯债价值(Python 可跑)
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
砚底藏山河8 小时前
python量化:行情数据回溯
java·开发语言·python·金融·maven
今年下半年8 小时前
AI智能体项目实战记录(02):初始化 Python 项目
开发语言·人工智能·python·fastapi
Williamtym8 小时前
PickGo Lab实践:用浏览器、Python和MCP串起机器人搬运仿真
开发语言·python·机器人
CS创新实验室9 小时前
Python 对象“死“了之后去了哪?——引用计数与分代垃圾回收
开发语言·jvm·python
CCblandy9 小时前
雪花 ID 四个边界实测:时钟回拨重号 500 个,前端 JSON.parse 直接丢精度
后端·python·算法·性能优化·架构
quantdash_cc9 小时前
Pandas 处理分钟级股票行情:从原始数据清洗到 K 线聚合
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
把我格子衫拿来9 小时前
VTK 9.5 与 Qt 6 联合开发:从嵌入三维窗口到可维护的桌面架构
c++·python·qt·vtk·三维可视化
cpolar技术支持10 小时前
把配置发出去怕带出密钥?先把含凭据配置转成脱敏只读快照,用 cpolar 给同事核对差异
运维·python·内网穿透·cpolar·配置脱敏