干货:业务标识 vs 自动判据

可选 template 参数:业务标识 vs 自动判据的绑定

一个参数,决定走哪条解析路

上传时可以带一个可选的 template。它是个业务标识:明确告诉引擎"这份文件用哪个模板插件解析"。不带,就退回自动判据去猜。

python 复制代码
item = {"p_FolderPath": folder, "p_TaskId": ...}
if template:
    item["template"] = template

引擎那侧:

python 复制代码
template = (json_data.get("p_template") or "").strip()
if not template:
    template = (item.get("template") or "").strip()   # HTTP 传的
if template:
    plugin = manager.by_id(template)   # 显式锁定
else:
    plugin = manager.auto_route(pdf)   # 自动识别

什么时候该带,什么时候不该

  • 业务方自己知道是什么格式 → 带 template,指哪打哪,最稳。
  • 业务方不知道 、靠系统猜 → 不带,让 recognizes 挨个试。

一个隐患:标识传了但不存在

如果 template 传了一个不在映射表里/没有对应插件的标识,怎么办?我们的规则是直接报错,不静默回退:

python 复制代码
# 显式指定了 template,却找不到插件 → 报 400,不猜
if template and manager.by_id(template) is None:
    raise HTTPException(status_code=400, detail="未知的业务标识,请检查")

宁可提示业务方改参数,也别让它当成"没指定"悄悄走了通用流程------那会解析出错还难查。

优先级要讲清楚

config.json 里的 p_template 优先于 HTTP 传的 template。也就是说:如果目录配置已经指定了模板,HTTP 参数就不生效。配置为准,参数是兜底。

一句话:template 是"业务语言到解析器"的绑定,显式传给最稳;传了却不知 → 报错,别猜。


相关推荐
zwd20051 小时前
Manim move_to 和 shift 用法详解:相对位移、绝对落点与 aligned_edge(0.21.0 实测)
python·动画·可视化·shift·manim·数学动画·move_to
“AI国潮设计-小江”1 小时前
《Python+SDXL实战:用ControlNet精准控制“英歌舞戚风蛋糕”质感,附批量生成脚本》
开发语言·人工智能·python·prompt·aigc
jayhgq2 小时前
新一代Python包与项目管理工具——UV
开发语言·python·uv
for_ever_love__2 小时前
文件与异常——open、json、with 与 try-except 的工程写法
python·异常处理·文件操作·大模型开发
XLYcmy2 小时前
PDF 论文处理器 — 技术报告文档
数据库·python·网络安全·pdf·embedding·dify·rag
weixin_440401692 小时前
质朴的可视化绘图+pyecharts
开发语言·python·信息可视化·pyecharts
计算机毕业编程指导师2 小时前
【Python毕设选题推荐】基于Spark的国内主要农作物产量趋势分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·python·数据分析·spark·毕业设计·课程设计·农作物产量
计算机毕业编程指导师2 小时前
【Python毕设选题推荐】基于Spark的宫颈癌变光谱特征数据分析可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·spark·毕业设计·宫颈癌变
ss2732 小时前
AI全栈实战 | 3.3-01 Python OOP:__init__ 真的是构造函数吗,元类怎么让 Django Model 变魔法
开发语言·python·django