Skip to main content
Version: 2.17.1

快速开始-离线使用你的模型

REST API 端点

平台提供了对外的REST API调用服务,此接口链接可以在发布模型>操作>复制REST API找到

输入数据格式

  • JSON序列化后的Panda DataFrame结构。格式化为split。如: data = pandas_df.to_json(orient='split') 使用请求标头 Content-Type: application/json

  • JSON序列化后的Panda DataFrame结构。格式化为records。我们不建议使用此格式,因为不能保证保留数据列的顺序。使用请求标头 Content-Type: application/json; format=pandas-records

  • Csv序列化后的Panda DataFrame结构。如 data = pandas_df.to_csv() 使用请求标头 Content-Type: text/csv

[注] DataFrame是Python中Pandas库中的一种数据结构,它含有不同的列,每列可以是不同的数据类型。它类似excel,是一种二维表。更多说明信息,请参考 pandas.DataFrame.to_json

最佳实践

CURL调用示例

# split-oriented
curl http://<hostname>/api/rest/model/predict/<service_key> -H 'Content-Type: application/json' -d '{"data":{
"columns": ["a", "b", "c"],
"data": [[1, 2, 3], [4, 5, 6]]
}}'

# record-oriented (fine for vector rows, loses ordering for JSON records)
curl http://<hostname>/api/rest/model/predict/<service_key> -H 'Content-Type: application/json; format=pandas-records' -d '"data":{[
{"a": 1,"b": 2,"c": 3},
{"a": 4,"b": 5,"c": 6}
]}'

Postman调用示例

请求链接: http://<hostname>/api/rest/model/predict/<service_key>/

请求数据:

{"data": {
"columns": [
"x"
],
"data": [
[199],
[12]
]
}}

请求表头:Content-Type:application/json

postman

Python调用示例

    url = "http://<hostname>/api/rest/model/predict/<service_key>/"
data = {"data": {
"columns": [
"x_value"
],
"data": [
[199], [12]
]
}}
model_input = pd.DataFrame(data)
res = requests.post(url=url, data=model_input.to_json(), headers={"Content-Type": "application/json"}, timeout=12)
print(res.json())

返回

{'code': 200, 'data': [[399.0], [25.0]], 'message': ''}

图片转base64调用

import base64
import requests
import pandas as pd


pic = open("img.jpg", "rb")
img = base64.b64encode(pic.read())

data = {"data": {
"columns": [
"1"
],
"data": [
[img]
]
}}

model_input = pd.DataFrame(data)
res = requests.post(url=url, data=model_input.to_json(), headers={"Content-Type": "application/json"}, timeout=12)