Openscoring客户端CLI工具完全手册:Deployer、Evaluator与CsvEvaluator实战
发布时间:2026/8/22 13:45:03 作者:尧图编辑部 阅读量:1,286

Openscoring客户端CLI工具完全手册Deployer、Evaluator与CsvEvaluator实战【免费下载链接】openscoringREST web service for the true real-time scoring (1 ms) of Scikit-Learn, R and Apache Spark models项目地址: https://gitcode.com/gh_mirrors/op/openscoringOpenscoring是一个用于 Scikit-Learn、R 和 Apache Spark 模型实时评分1 ms的 REST 网络服务而它的命令行客户端CLI是操作该服务的利器。本手册带你快速掌握 Openscoring 客户端的三大核心工具模型部署工具Deployer、单次预测工具Evaluator和 CSV 批量预测工具CsvEvaluator帮助新手从零完成部署模型 → 在线评分 → 批量预测的完整流程。一、认识 Openscoring 客户端Openscoring 采用标准的模型生命周期管理把训练好的模型导出为PMML文档通过 REST API 部署到服务端再对输入数据进行毫秒级实时预测。客户端源码位于openscoring-client模块核心类一览工具类作用对应 REST 操作Deployer部署 PMML 模型PUT /model/${id}Evaluator单条记录预测POST /model/${id}CsvEvaluatorCSV 批量预测POST /model/${id}/csvUndeployer下线删除模型DELETE /model/${id}DirectoryDeployer目录监听自动部署/下线组合调用所有工具都继承自 Application.java因此天然支持--help参数查看全部选项ModelApplication.java 则统一提供--model模型 URI参数和 JAX-RS 客户端逻辑。二、快速上手获取可执行客户端方式一从源码构建git clone https://gitcode.com/gh_mirrors/op/openscoring cd openscoring mvn clean install构建产物为 uber-JAR无需额外依赖即可运行openscoring-client/target/openscoring-client-executable-*.jaropenscoring-server/target/openscoring-server-executable-*.jar打包配置见 openscoring-client/pom.xml使用 maven-shade-plugin 生成可执行 JAR。启动服务端在另一个终端启动评分服务主类见 Main.javajava -jar openscoring-server-executable-*.jar默认服务地址为http://localhost:8080/openscoring。项目自带的鸢尾花决策树示例模型和测试数据都在openscoring-service/src/etc/目录下可直接使用示例模型DecisionTreeIris.pmml示例 CSV 输入input.csv示例 JSON 请求EvaluationRequest.json三、Deployer一条命令部署 PMML 模型 Deployer把本地 PMML 文件上传并部署到 Openscoring 服务端源码见 Deployer.java。java -cp openscoring-client-executable-*.jar org.openscoring.client.Deployer \ --model http://localhost:8080/openscoring/model/DecisionTreeIris \ --file DecisionTreeIris.pmml参数说明参数必填说明--model✅模型 URI决定模型 ID--file✅本地 PMML 文件路径--help-显示帮助信息两个实用细节自动识别 gzipDeployer 会读取文件头部魔术字节若发现是 gzip 压缩文件会自动附加Content-Encoding: gzip请求头因此.pmml.gz压缩文件可以直接部署传输更快。成功/失败判断服务端返回 ModelResponse只要message字段为空即表示部署成功日志中会输出Deployment succeeded。四、Evaluator单条记录实时预测 Evaluator用于单条预测模式——把一条记录的各个特征值作为参数传入返回预测结果源码见 Evaluator.java。java -cp openscoring-client-executable-*.jar org.openscoring.client.Evaluator \ --model http://localhost:8080/openscoring/model/DecisionTreeIris \ -XSepal_Length5.1 -XSepal_Width3.5 \ -XPetal_Length1.4 -XPetal_Width0.2参数说明参数说明--model模型 URI-Xkeyvalue动态参数JCommanderDynamicParameter可重复使用每个对应一个模型输入特征-Xkeyvalue会组装成 EvaluationRequest 的arguments字段发送给服务端。以鸢尾花模型为例成功时日志输出预测类别与概率Evaluation succeeded: {id: null, results: {Species: setosa, Probability_setosa: 1.0, ...}} 提示输入字段名称必须与模型 PMML 中 MiningSchema 定义的字段 ID 完全一致否则会返回 400 错误。可先用curl http://localhost:8080/openscoring/model查看已部署模型的字段清单接口定义见 ModelResource.java。五、CsvEvaluatorCSV 批量预测 当需要一次性对成百上千条数据做预测时CsvEvaluator是最佳选择。它读取本地 CSV 文件发送到服务端/csv端点再把返回的预测结果 CSV 写入输出文件源码见 CsvEvaluator.java。java -cp openscoring-client-executable-*.jar org.openscoring.client.CsvEvaluator \ --model http://localhost:8080/openscoring/model/DecisionTreeIris \ --input input.csv --output output.csv参数说明参数必填说明--model✅模型 URI客户端会自动补上/csv后缀--input✅输入 CSV 文件--output✅输出 CSV 文件--csv-delimiter-指定分隔符跳过服务端自动探测--csv-quote-指定引用字符需与分隔符同时使用几个值得了解的行为列名映射与列顺序无关输入 CSV 只要包含模型每个输入字段对应的列即可。以 input.csv 为例Id,Sepal_Length,Sepal_Width,Petal_Length,Petal_Width record-001,5.1,3.5,1.4,0.2 record-002,7,3.2,4.7,1.4 record-003,6.3,3.3,6,2.5Id 列自动透传若首列列名为Id不区分大小写且行数未变该列会原样复制到输出 CSV方便结果回溯。整体事务CSV 模式采用全部成功或全部失败的隔离级别任意一行数据不合法都会导致整批失败并返回 400。自动探测分隔符服务端会尝试探测,、;、\t三种分隔符格式特殊时可用--csv-delimiter显式指定。六、Undeployer 与 DirectoryDeployer模型下线与目录监听 ️Undeployer删除模型java -cp openscoring-client-executable-*.jar org.openscoring.client.Undeployer \ --model http://localhost:8080/openscoring/model/DecisionTreeIris实现见 Undeployer.java只需--model一个参数即可下线模型。DirectoryDeployerPMML 目录守护进程 DirectoryDeployer是运维场景的神器它会监听一个目录文件新增即自动部署、文件删除即自动下线实现模型热更新。实现见 DirectoryDeployer.java。java -cp openscoring-client-executable-*.jar org.openscoring.client.DirectoryDeployer \ --model-collection http://localhost:8080/openscoring/model \ --dir pmml参数说明参数必填说明--model-collection✅模型集合 URI即/model根路径--dir✅要监听的 PMML 文件目录工作规则启动时先扫描目录内已有文件并全部部署模型 ID 取文件名第一个点号之前的部分例如CreditRisk.pmml部署为模型CreditRisk之后通过 Java NIOWatchService持续监听文件的创建与删除事件自动调用 Deployer / Undeployer。这让你只需把新的 PMML 文件扔进目录即可完成模型上线非常适合 CI/CD 流水线。七、完整生命周期速查表 ⚡以鸢尾花决策树模型为例四条命令跑通全流程步骤命令-cp openscoring-client-executable-*.jar从略1️⃣ 部署模型java ... org.openscoring.client.Deployer --model URI --file DecisionTreeIris.pmml2️⃣ 单条预测java ... org.openscoring.client.Evaluator --model URI -XSepal_Length5.1 -XSepal_Width3.5 -XPetal_Length1.4 -XPetal_Width0.23️⃣ 批量预测java ... org.openscoring.client.CsvEvaluator --model URI --input input.csv --output output.csv4️⃣ 下线模型java ... org.openscoring.client.Undeployer --model URI其中URI形如http://localhost:8080/openscoring/model/DecisionTreeIris。八、常见问题与小贴士 ✅提示参数错误所有工具都支持--help缺失必填参数时也会自动打印用法说明见 Application.java 中的参数解析逻辑。部署报 403部署/下线操作需要admin角色默认仅本地网络地址具备远程部署可通过 NetworkSecurityContextFilter.java 相关配置调整或使用令牌认证。PMML 文件太大先 gzip 压缩为.pmml.gzDeployer 会自动处理编码头显著降低上传耗时。想确认模型输入字段直接访问GET /model/${id}响应中的schema.inputFields即为你需要传入的特征名清单。更多示例完整 REST API 说明含 cURL 调用示例见 README.md。总结Openscoring 客户端 CLI 把模型部署、单次预测、批量预测、模型下线四步操作浓缩为四个开箱即用的命令行工具Deployer负责上线 PMML 模型并自动支持 gzip 传输Evaluator用-Xkeyvalue快速验证单条预测CsvEvaluator胜任大规模 CSV 批量评分再加上Undeployer与DirectoryDeployer从日常开发调试到生产环境模型热更新都能轻松覆盖。配合毫秒级响应速度这套工具链是 Scikit-Learn、R 与 Apache Spark 模型落地实时评分服务的省心之选。【免费下载链接】openscoringREST web service for the true real-time scoring (1 ms) of Scikit-Learn, R and Apache Spark models项目地址: https://gitcode.com/gh_mirrors/op/openscoring创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考