mlserve——通过自动生成的ui将python模型转换为restful api。

mlserve的Python项目详细描述


mlserve

https://travis-ci.com/jettify/mlserve.svg?branch=masterhttps://codecov.io/gh/jettify/mlserve/branch/master/graph/badge.svgMaintainabilityhttps://img.shields.io/pypi/v/mlserve.svg

mlserve将您的python模型转换为restful api,为web页面提供 生成与输入数据匹配的表单。

如果一个人想演示创建的预测模型和 快速集成到现有应用程序中。此外,还为 输入数据(基于培训数据框架)和简单的仪表板。

项目尚未完成,但已可用,因此对api或ui没有任何保证 向后兼容。

在线演示

几个使用heroku.com/free免费dynos在线部署的模型。 免费应用程序在30分钟不活动后自动休眠,因此首先请求 可能需要一些时间。

mlserve modelsone model

想法

mlsserve基于以下想法使用以下设计是很小的:

  • 简单易用是首要目标。
  • 应用程序由两个进程组成:运行http服务器的io进程 负责数据的获取和发送,以及为用户界面、其他 进程(工作进程)正在执行与预测相关的CPU密集型工作 计算。

功能

  • 通过restful api端点服务的模型预测。
  • 通过生成的ui提供模型预测。
  • 简化模型使用的网页。
  • 自动生成与输入数据匹配的用户界面。
  • 用于监视的简单仪表板。

安装

安装过程很简单,只要:

$ pip install git+https://github.com/jettify/mlserve.git

示例

要部署模型,只需遵循以下简单步骤:

将模型保存到pickle文件中:

with open('boston_gbr.pkl', 'wb') as f:
    pickle.dump(clf, f)

使用build_schema函数构建pandas数据帧的ui表示, 并将其保存为json文件:

import mlserve

data_schema = mlserve.build_schema(df)
with open('boston.json', 'wb') as f:
    json.dump(data_schema, f)

创建以下格式的配置文件:

models:
  - name: "boston_regressor"  # url friendly name
    description: "Boston GBR"  # optional model description
    model_path: "boston_gbr.pkl"  # path to your saved model
    data_schema_path: "boston.json"  # path to data representation
    target: "target"  # name of the target column

服务模式:

$ mlserve -c models.yaml

就是这样,模型是可用的throw rest api,您可以用curl命令进行测试:

$ curl --header "Content-Type: application/json" --request POST
--data '[{"feature1": 1, "feature2": 2}]'
http://127.0.0.1:9000/api/v1/models/boston_gradient_boosting_regressor/predict

用户界面可通过http://127.0.0.1:9000

支持的框架

  • SCIKIT学习
  • Keras(规划)
  • Pythorch(规划)

要求

更改

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用JNA创建同一库的多个实例?   java在将Graphql查询作为JSON字符串传递时收到意外的令牌错误   OAuth2 oltu的java问题   java桌面应用程序使用的好的嵌入式数据库是什么?   java Firebase数据库高级查询选项   java正在使磁盘上的EhCache元素过期   java 安卓还原处于backstack中的片段的实例状态   XMemcached中的java异步集   java TimescaleDB是否使用与Postgresql完全相同的JDBC驱动程序?   java从网站c读取信息#   检查java Android中的字符串是否只包含数字和空格   c#如何向web服务发送特殊字符?   grails无法调用需要java的方法。lang.类参数?   java我在组合框中调用的方法不会运行所有代码,它只运行部分代码   java发送带有标头的HTTP GET请求