干货:业务标识 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 是"业务语言到解析器"的绑定,显式传给最稳;传了却不知 → 报错,别猜。


相关推荐
M--Y6 小时前
LangGraph 工作流模式
开发语言·javascript·python·langchain·大模型·llm·langgraph
岁月宁静6 小时前
DeepSeek Harness 实战与架构解析:让 Agent 从“会聊”到“能交付”
人工智能·python·agent
LiaoWL1237 小时前
NumPy 入门实战(二):向量化与余弦相似度——从 ndarray 到 Embedding
python·numpy·embedding
forest_097 小时前
多 Agent 协作第二课:交叉验证≠独立验证
人工智能·python·算法·机器学习·prompt·agi
databook10 小时前
时间序列数据,先拆规律还是先查异常
python·数据挖掘·数据分析
师夷长技以自愈11 小时前
手搓 AI Agent 第 8 篇:从手写循环到画流程图——LangGraph 封装
人工智能·python
aifannihao12 小时前
Rust 1.100 的 DropGuard:用 Python 实测失败回滚与吞异常
python·rust·异常处理·标准库·contextlib
用户0190275816113 小时前
天勤 tqsdk 能做 A 股行情吗?期货强项与股票数据选型
python
2601_9679791215 小时前
pip在Python中的9个必须知道的用法
python·pip·版本控制·包管理工具·requirements.txt
曲径海盗15 小时前
【Python 学习第 58 天】列表方法
python·学习笔记·编程入门