首页 > 解决方案 > 使用 curl 将 post 请求发送到 mlflow api 到多条记录

问题描述

我提供了一个 mlflow 模型,并以这种格式发送 POST 请求:

curl -X POST -H "Content-Type:application/json; format=pandas-split" 
--data '{"columns":["alcohol", "chlorides", "citric acid", "density", 
"fixed acidity", "free sulfur dioxide", "pH", "residual sugar", "sulphates", 
"total sulfur dioxide", "volatile acidity"],"data":[[12.8, 0.029, 0.48, 0.98, 
6.2, 29, 3.33, 1.2, 0.39, 75, 0.66]]}' 
http://127.0.0.1:1234/invocations

它正在得分。但是,对于我的特定项目,用于评分的 rest api 的输入将始终是 dataframe/csv 格式的多个记录,而不是单个记录。有人可以指出我如何实现这一目标吗?

标签: curlpostdeploymentmlflowserving

解决方案


这有效:

import requests
host = 'localhost'
port = '8001'
url = f'http://{host}:{port}/invocations'
headers = {'Content-Type': 'application/json',}
http_data = test_df.to_json(orient='split')
r = requests.post(url=url, headers=headers, data=http_data)
print(f'Predictions: {r.text}')

推荐阅读