拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Openscoring REST API完全指南:8个端点掌控模型部署、查询与预测全流程

Openscoring REST API完全指南8个端点掌控模型部署、查询与预测全流程【免费下载链接】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 是一款轻量级、高性能的 REST Web 服务专为 Scikit-Learn、R、Apache Spark 等机器学习模型提供毫秒级1 ms实时打分能力。它把模型封装成统一的 PMML 格式再通过 8 个简洁的 REST API 端点让你轻松完成模型部署、查询、预测、下线的完整生命周期。无论你是数据工程师还是应用开发者掌握这套接口后就能把任何模型快速接入生产系统 Openscoring 是什么3秒看懂毫秒级模型打分服务可以把 Openscoring 理解为一台模型打分机模型统一接入支持 PMML 3.04.4 规范底层由 JPMML-Evaluator 库驱动评估⚡极致性能单次预测响应时间低于 1 毫秒支持 gzip/deflate 压缩线程安全、高吞吐️安全可控内置 user只读/ admin读写两套角色便于集成企业级权限体系开放可扩展基于标准 REST JSON/CSVJava、Python、R 客户端开箱即用。项目采用 Maven 多模块结构核心代码分布如下模块职责关键源码路径openscoring-serviceREST 服务端8 个端点实现openscoring-service/src/main/java/org/openscoring/service/ModelResource.javaopenscoring-common请求/响应 JSON 模型openscoring-common/src/main/java/org/openscoring/common/openscoring-client命令行客户端工具openscoring-client/src/main/java/org/openscoring/client/openscoring-server服务启动入口openscoring-server/src/main/java/org/openscoring/server/Main.java5分钟快速启动启动 Openscoring 打分服务只需 Java 11 或更高版本。克隆源码仓库如需要git clone https://gitcode.com/gh_mirrors/op/openscoring然后执行三步即可体验完整流程构建在项目根目录运行mvn clean install产出客户端与服务端可执行 JAR启动服务运行java -jar openscoring-server-executable-${version}.jar服务默认监听http://localhost:8080/openscoring部署示例模型用 curl 把自带的鸢尾花决策树模型示例文件见openscoring-service/src/etc/DecisionTreeIris.pmml上传curl -X PUT --data-binary DecisionTreeIris.pmml -H Content-type: text/xml \ http://localhost:8080/openscoring/model/DecisionTreeIris上传成功后一个能预测花卉品种的分类模型就已上线随时可以打分 ✅8个 REST API 端点总览一张表看懂全流程Openscoring 的全部能力浓缩在 8 个端点上实现位于ModelResource.java按功能分为三类HTTP 方法端点所需角色功能说明PUT/model/{id}admin 部署创建或更新模型GET/model任意用户 查询全部模型摘要GET/model/{id}任意用户 查询单个模型详情GET/model/{id}/pmmladmin⬇️ 下载模型的 PMML 文档POST/model/{id}任意用户⚡ 单条预测POST/model/{id}/batch任意用户 批量预测POST/model/{id}/csv任意用户 CSV 表格预测DELETE/model/{id}admin️ 下线删除模型 默认情况下来自本地网络的请求自动获得 admin 角色角色定义见openscoring-service/src/main/java/org/openscoring/service/Roles.java。模型部署端点详解PUT /model/{id} 一键上传 PMML部署是生命周期起点。将 PMML 文档作为请求体Content-Type 为text/xml或application/xml发送即可也支持 gzip 压缩上传以节省带宽。常见响应状态码200模型已更新同名模型覆盖部署201新模型创建成功400PMML 文档无效或不支持403当前用户没有 admin 角色500部署暂时失败如并发冲突。进阶技巧除了手动部署还可以使用DirectoryDeployer工具openscoring-client/src/main/java/org/openscoring/client/DirectoryDeployer.java监控一个本地目录PMML 文件一放进去就自动部署、一删除就自动下线实现丢文件即上线的自动化体验。模型查询端点详解查列表、看详情、下载 PMML1️⃣ GET /model —— 查询全部模型返回所有模型的摘要列表按模型 ID 排序包含 ID、挖掘函数类型、摘要和元数据适合做模型资产面板。2️⃣ GET /model/{id} —— 查询单个模型详情比摘要更详细额外返回完整schema包括inputFields模型需要的输入字段如 Sepal_Length 及其取值范围targetFields预测目标字段如 SpeciesoutputFields输出字段如各类别概率。拿到 schema 后调用方就知道该传什么、会返回什么是编写预测调用前的关键一步 3️⃣ GET /model/{id}/pmml —— 下载模型文档以 XML 形式返回原始 PMML便于备份、审计或多环境迁移。模型预测端点详解单条、批量、CSV 三种模式这是 Openscoring 的核心价值所在提供三种粒度的预测接口⚡ 1. 单条预测POST /model/{id}请求体是一个 JSON 对象结构定义见openscoring-common/src/main/java/org/openscoring/common/EvaluationRequest.java示例{ id: record-001, arguments: { Sepal_Length: 5.1, Sepal_Width: 3.5, Petal_Length: 1.4, Petal_Width: 0.2 } }响应同样返回 JSON包含预测结果results如品种 各类别概率。单条预测最适合实时风控、在线推荐等低延迟场景。 2. 批量预测POST /model/{id}/batch请求体是requests数组一次提交多条记录完整示例见openscoring-service/src/etc/BatchEvaluationRequest.json。采用记录级隔离某条记录失败不会拖垮整批失败记录会在对应响应中用message字段说明原因。 3. CSV 表格预测POST /model/{id}/csv直接上传 CSV 文件Content-Type 为text/plain返回预测结果 CSV示例数据见openscoring-service/src/etc/input.csv列名按名称映射到模型字段列顺序无所谓分隔符自动探测,;Tab也可用delimiterChar查询参数手动指定首列若名为Id会原样带回响应中方便对账采用全有或全无隔离任意一行失败则整个文件报错。三种模式怎么选实时请求用单条应用内攒批用 batch数据分析/文件导入用 CSV 模型下线端点详解DELETE /model/{id} 安全移除用完的模型及时下线释放资源curl -X DELETE http://localhost:8080/openscoring/model/DecisionTreeIris成功返回200模型不存在返回404无 admin 权限返回403。⚙️ 如果网关只放行 POST 请求可用X-HTTP-Method-Override: DELETE请求头或?_methodDELETE查询参数把 PUT/DELETE伪装成 POST。权限与错误处理user/admin 角色和统一响应约定双角色模型角色权限可访问端点user只读查询类GET 预测类POSTadmin读写全部 8 个端点统一错误响应约定任何 4XX/5XX 错误响应体都是同一个 JSON 结构SimpleResponse定义在openscoring-common/src/main/java/org/openscoring/common/SimpleResponse.java其中只有message字段有值其余字段为空。因此客户端判断成功/失败非常简单只要message不为空就是出错把它当成异常信息抛出即可一行逻辑搞定 ️常见问题速查FAQQ1为什么部署返回 403当前请求来源没有 admin 角色。默认只有本地网络请求是 admin可通过配置文件application.conf中的networkSecurityContextFilter.adminAddresses调整可信地址配置模板见openscoring-server/application.conf.sample。Q2预测时 400 Bad Request 是什么原因输入数据缺失或非法字段名写错、类型不符等。先用GET /model/{id}查看 schema对照inputFields检查字段名和数据类型。Q3如何自动化模型上线/下线使用DirectoryDeployer目录监听工具把 PMML 文件放入指定目录即可自动部署源码openscoring-client/src/main/java/org/openscoring/client/DirectoryDeployer.java。Q4除了 JavaPython / R 怎么调用任何能发 HTTP 请求的语言都可以直接调用 REST 接口官方也提供了 Openscoring-Python 与 Openscoring-R 客户端项目。总结一站式掌控模型上线打分全流程Openscoring 用 8 个 REST API 端点覆盖了模型服务的完整生命周期阶段端点一句话价值部署PUT/model/{id}上传 PMML 即上线查询GET/model、/model/{id}、/model/{id}/pmml摸清模型资产与输入输出预测POST/model/{id}、/batch、/csv单条 1ms批量、文件全支持下线DELETE/model/{id}安全移除释放资源配合内置的 user/admin 权限体系和统一的错误响应约定Openscoring 是一个开箱即用、易于嵌入企业架构的实时模型打分服务。掌握这 8 个端点你就拥有了从模型文件到线上预测的完整钥匙 【免费下载链接】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),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门