news 2026/8/27 15:22:46

my_ml_service 机器学习 REST API 完整参考清单:7 个接口、参数与响应字段一次讲透

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
my_ml_service 机器学习 REST API 完整参考清单:7 个接口、参数与响应字段一次讲透

my_ml_service 机器学习 REST API 完整参考清单:7 个接口、参数与响应字段一次讲透

【免费下载链接】my_ml_serviceMy Machine Learning Web Service项目地址: https://gitcode.com/gh_mirrors/my/my_ml_service

my_ml_service 是一个基于 Django + Django REST Framework 的机器学习模型 Web 服务,通过 REST API 对外提供模型预测、版本管理、请求审计和 A/B 测试能力。本文是它的完整接口参考清单:所有 URL、查询参数、请求体字段和响应字段一网打尽,帮你快速集成自己的 ML 服务。

一、接口总览:一张表看懂全部 API

所有接口统一挂载在/api/v1/前缀下,路由定义见 urls.py。注意该服务使用了trailing_slash=False,接口路径不带末尾斜杠。

方法路径功能
GET/api/v1/endpoints列出所有 ML 端点
GET/api/v1/endpoints/{id}获取端点详情
GET/api/v1/mlalgorithms列出所有 ML 算法
GET/api/v1/mlalgorithms/{id}获取算法详情
GET / POST/api/v1/mlalgorithmstatuses查询/创建算法状态
GET / PUT / PATCH/api/v1/mlrequests查询请求记录 / 提交反馈
GET / POST / PUT / PATCH/api/v1/abtestsA/B 测试的查询与创建
POST/api/v1/{endpoint_name}/predict⭐ 模型预测(核心接口)
POST/api/v1/stop_ab_test/{ab_test_id}结束 A/B 测试并结算胜者

二、模型预测接口:如何调用 ML 预测 REST API

请求POST /api/v1/income_classifier/predict,请求体为 JSON(实现见 views.py 中的PredictView,约 L74-L115)。

2.1 查询参数一览

参数必填默认值说明
statusproduction算法状态,可选production/testing/staging/ab_testing
version指定算法版本号;当同状态存在多个版本时必须指定

2.2 请求体字段(Adult-Income 数据集,14 个特征)

字段类型示例
age数字37
workclass字符串"Private"
fnlwgt数字34146
education字符串"HS-grad"
education-num数字9
marital-status字符串"Married-civ-spouse"
occupation字符串"Craft-repair"
relationship字符串"Husband"
race字符串"White"
sex字符串"Male"
capital-gain数字0
capital-loss数字0
hours-per-week数字68
native-country字符串"United-States"

2.3 响应字段

成功时(HTTP 200):

字段说明
status固定为"OK"
label预测标签:">50K""<="50K"
probability预测为正类的概率值
request_id本次请求的审计记录 ID(用于后续反馈)

失败时(HTTP 400)返回{"status": "Error", "message": "..."},常见原因有两条:

  • ML algorithm is not available:该端点下没有匹配status且处于激活状态的算法;
  • ML algorithm selection is ambiguous:同状态存在多个版本算法,请在查询参数中指定version

💡 每次预测都会被自动落库为一条MLRequest记录,这是后续审计与 A/B 测试结算的数据基础。

三、端点与算法管理接口:查询参数与响应字段

3.1 列出端点 / 算法(只读)

GET /api/v1/endpointsGET /api/v1/mlalgorithms均为只读列表 + 按 ID 查询接口,无额外查询参数。响应字段(见 serializers.py):

  • Endpointidname(预测 URL 中的端点名)、ownercreated_at
  • MLAlgorithmidnamedescriptioncode(算法源码)、versionownercreated_atparent_endpointcurrent_status(自动计算的当前最新状态)

3.2 创建算法状态:POST /api/v1/mlalgorithmstatuses

请求体字段:statustesting/staging/production/ab_testing)、created_byparent_mlalgorithm(算法 ID)。idactive为只读字段。

🔑 关键行为:创建后新状态自动置为active=True,同算法的旧状态会被批量置为失效(原子事务完成),保证每个算法任一时刻只有一个生效状态。

四、请求审计接口:如何查看与反馈预测记录

GET /api/v1/mlrequests返回所有历史预测记录,字段包括:idinput_data(入参 JSON 字符串)、full_response(完整响应)、response(标签)、feedback(反馈,初始为空)、created_atparent_mlalgorithm

对单条记录执行PUT/PATCH /api/v1/mlrequests/{id}时,唯一可写字段是feedback——把实际结果写回后,A/B 测试即可用它结算准确率。

五、A/B 测试接口:创建实验与自动结算胜者

5.1 创建 A/B 测试:POST /api/v1/abtests

请求体字段:titlecreated_byparent_mlalgorithm_1parent_mlalgorithm_2(两个待对比算法的 ID)。只读字段:idcreated_atended_atsummary

创建时服务会自动把这两个算法的状态切换为ab_testing并激活(事务保证)。

5.2 结束测试并选出胜者:POST /api/v1/stop_ab_test/{ab_test_id}

  • 成功响应:{"message": "AB Test finished.", "summary": "Algorithm #1 accuracy: x, Algorithm #2 accuracy: y"},胜者(准确率高者)自动切回production,败者转为testing
  • 重复调用:返回"AB Test already finished."
  • 异常时返回 HTTP 400 与错误信息。

准确率计算逻辑见 views.py 中StopABTestView(约 L152-L204)。

六、快速上手:3 步完成首次预测调用

  1. 获取端点名GET /api/v1/endpoints,示例项目内置端点为income_classifier
  2. 发起预测:向/api/v1/income_classifier/predict发送上文 14 个字段的 JSON;
  3. 查看记录:拿响应中的request_id/api/v1/mlrequests/{id}核对入参、响应并补交feedback

七、关键源码位置速查 📁

内容文件
路由注册backend/server/apps/endpoints/urls.py
各接口的视图实现backend/server/apps/endpoints/views.py
响应字段(序列化器)backend/server/apps/endpoints/serializers.py
数据模型定义backend/server/apps/endpoints/models.py
算法注册表backend/server/apps/ml/registry.py
内置算法启动加载backend/server/server/wsgi.py
随机森林分类器示例backend/server/apps/ml/income_classifier/random_forest.py

掌握这份清单后,你就能用 my_ml_service 的 REST API 完成从预测调用、版本管理到 A/B 实验结算的完整闭环。

【免费下载链接】my_ml_serviceMy Machine Learning Web Service项目地址: https://gitcode.com/gh_mirrors/my/my_ml_service

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/27 15:15:38

具身智能消费级机器人部署与二次开发实践指南

最近圈子里讨论比较多的一个话题&#xff0c;是“具身智能开始当消费品卖了”。从桌面机械臂到能做简单家务的人形机器人&#xff0c;再到带大模型对话能力的陪伴设备&#xff0c;产品定义越来越像消费电子&#xff0c;而不是科研样机。对普通用户来说&#xff0c;这意味着一台…

作者头像 李华
网站建设 2026/8/27 15:15:18

潮湿与腐蚀环境中的钢铁卫士:防腐货架的“不锈“智慧

在海鲜加工厂的潮湿空气中&#xff0c;在化工车间弥漫的化学蒸汽里&#xff0c;普通金属货架往往难逃锈蚀的命运。但有这样一类货架&#xff0c;它们默默矗立在严苛环境中&#xff0c;守护着每一件货物的安全——这就是防腐货架。它们不仅是仓库里的"钢铁卫士"&#…

作者头像 李华
网站建设 2026/8/27 15:15:12

一文详解AI大模型何为深入理解RAG?看完这一篇你就知道了!!

前言 当你看到大模型应用开发招聘JD中"深入理解RAG"这个要求时&#xff0c;HR和技术面试官到底在考察什么&#xff1f;本文为你拆解RAG技能的各个层级&#xff0c;明确什么才算"深入理解"。一、理解层级&#xff1a;你在哪一层 "深入理解RAG"并不…

作者头像 李华