得分请求发送到服务端点

在本文中,您将了解如何格式评分要求你的服务模型,以及如何将这些请求发送到模型服务端点。看到模型服务与砖

取得一个部署模型,你可以发送一个REST API请求URL或使用UI模型。

你可以叫一个模型通过调用API和使用这个URI得分:

帖子/ serving-endpoints /{端点名称}/调用

看到查询单个模型背后的一个端点如何发送请求为一个特定的模型背后的一个端点。

请求格式

请求应该被发送通过构造一个JSON支持的密钥和一个JSON对象对应的输入格式。以下是推荐的格式。

dataframe_split格式是一个json序列化熊猫Dataframe分裂取向。

{“dataframe_split”:[{“指数”:(0,1),“列”:(“花萼长度(厘米)”,“花萼宽(cm)”,“花瓣长度(厘米)”,“花瓣宽度(cm)”),“数据”:[[5.1,3.5,1.4,0.2),(4.9,3.0,1.4,0.2]]})}

dataframe_recordsjson序列化熊猫Dataframe在吗记录取向。虽然支持的格式,这个用例不常见。

. .注意::这种格式不能保证保存列排序,和分裂格式是首选的记录格式。

{“dataframe_records”:({“花萼长度(厘米)”:5.1,“花萼宽(cm)”:3.5,“花瓣长度(厘米)”:1.4,“花瓣宽度(cm)”:0.2},{“花萼长度(厘米)”:4.9,“花萼宽(cm)”:3,“花瓣长度(厘米)”:1.4,“花瓣宽度(cm)”:0.2},{“花萼长度(厘米)”:4.7,“花萼宽(cm)”:3.2,“花瓣长度(厘米)”:1.3,“花瓣宽度(cm)”:0.2}]}

张量的形式

当你的张量模型预计,像Tensorflow或者Pytorch模型中,有两个支持格式发送请求的选项:实例输入

如果你有多个命名为张量每一行,那么你必须有一个张量为每一行。

  • 实例张量是一种tensors-based格式,接受行格式。使用此格式如果所有输入张量有相同的六月十维度。从概念上讲,每个实例列表中的张量可以与其他同名的张量列表的其余部分来构建完整的输入张量模型,这只会是可能的如果所有的张量有相同的六月十维度。

    {“实例”:(1,2,3]}

    下面的例子显示了如何指定多个命名为张量。

    {“实例”:({“t1”:“一个”,“t2”:(1,2,3,4,5),“t3”:[[1,2),(3,4),(5,6]]},{“t1”:“b”,“t2”:(6,7,8,9,10),“t3”:[[7,8),(9,10),(11,12]]}]}
  • 输入发送查询与张量柱状格式。这实际上要求是不同的,因为有一个不同数量的张量的实例t2(3)比t1t3,所以它代表的输入是不可能的实例格式。

    {“输入”:{“t1”:(“一个”,“b”),“t2”:[[1,2,3,4,5),(6,7,8,9,10]],“t3”:[[[1,2),(3,4),(5,6]],[[7,8),(9,10),(11,12]]]}}

响应格式

端点的响应是在以下格式。你的模型的输出是裹着预测关键。具体地说,几乎总是一个列表,和频繁的数字列表。

{“预测”:(0,1,1,1,0]}

发送得分与UI的请求

发送请求使用UI是最简单快捷的方法来测试模型。

  1. 服务端点页面,选择查询端点

    1. 插入模型以JSON格式输入数据并单击发送请求

      1. 如果模型记录了一个输入,点击显示的例子加载输入示例。

把得分与API请求

你可以发送一个请求通过REST API使用得分标准砖的身份验证。下面的例子演示使用个人身份验证访问令牌。

请注意

作为一个安全最佳实践进行身份验证时使用自动化工具,系统、脚本和应用程序,砖建议您使用OAuth令牌或个人访问令牌属于服务主体而不是用户工作区。为服务主体,创建令牌服务主体的管理令牌

给定一个MODEL_VERSION_URI就像https:// < databricks-instance > /模型/ iris-classifier /生产/调用,在那里< databricks-instance >砖实例的名称和砖REST API的令牌DATABRICKS_API_TOKEN,下面是例子的片段如何评分模型。

评分模型接受dataframe记录输入格式。

curl - x POST - u令牌:DATABRICKS_API_TOKEN美元MODEL_VERSION_URI美元\- h“application / json内容类型:\- d{“dataframe_records”:({“sepal_length”: 5.1,“sepal_width”: 3.5,“petal_length”: 1.4,“petal_width”: 0.2}]}’

评分模型接受张量输入。张量的输入应格式化中描述TensorFlow服务的API文档

curl - x POST - u令牌:DATABRICKS_API_TOKEN美元MODEL_VERSION_URI美元\- h“application / json内容类型:\- d{“输入”:[[5.1,3.5,1.4,0.2]]}”
进口numpy作为np进口熊猫作为pd进口请求defcreate_tf_serving_json(数据):返回{“输入”:{的名字:数据(的名字]tolist()的名字数据()}如果isinstance(数据,dict)其他的数据tolist()}defscore_model(model_uri,databricks_token,数据):={“授权”:f“不记名{databricks_token},“内容类型”:“application / json”,}data_json=json转储({“dataframe_records”:数据to_dict(东方=“记录”)})如果isinstance(数据,pdDataFrame)其他的create_tf_serving_json(数据)响应=请求请求(方法=“职位”,=,url=model_uri,json=data_json)如果响应status_code! =200年:提高异常(f“请求失败状态{响应status_code},{响应文本})返回响应json()#接受大熊猫DataFrames评分模型数据=pdDataFrame([{“sepal_length”:5.1,“sepal_width”:3.5,“petal_length”:1.4,“petal_width”:0.2}))score_model(MODEL_VERSION_URI,DATABRICKS_API_TOKEN,数据)#得分一个接受张量的模型数据=npasarray([[5.1,3.5,1.4,0.2]])score_model(MODEL_VERSION_URI,DATABRICKS_API_TOKEN,数据)

可以得分数据集掌权BI桌面使用以下步骤:

  1. 打开数据集你想得分。

  2. 去转换数据。

  3. 在左边面板中右键单击并选择创建新的查询

  4. 视图>高级编辑器

  5. 用下面的代码片段,替换查询身体后填入一个适当的DATABRICKS_API_TOKENMODEL_VERSION_URI

    (数据集作为)作为= >call_predict=(数据集作为)作为列表= >apiToken=DATABRICKS_API_TOKEN,modelUri=MODEL_VERSION_URI,responseList=Json文档(网络内容(modelUri,(=(#“内容类型”=“application / json”,#“授权”=文本。格式(无记名# {0},{apiToken})),内容={“dataframe_records”:JsonFromValue(数据集)}]))responseList,predictionList=列表结合(列表变换(分裂(数据集,256年),(x)= >call_predict(x))),predictionsTable=FromList(predictionList,(x)= >{x},{“预测”}),datasetWithPrediction=加入(AddIndexColumn(predictionsTable,“指数”),“指数”,AddIndexColumn(数据集,“指数”),“指数”)datasetWithPrediction
  6. 名称查询你想要的模型名称。

  7. 打开高级查询编辑器为你的数据集和应用模型的功能。

笔记本的例子

看到以下笔记本为例如何测试你的模型服务端点的Python模型:

测试模型服务端点的笔记本