得分请求发送到服务端点
在本文中,您将了解如何格式评分要求你的服务模型,以及如何将这些请求发送到模型服务端点。看到模型服务与砖。
取得一个部署模型,你可以发送一个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_records
json序列化熊猫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)比t1
和t3
,所以它代表的输入是不可能的实例
格式。{“输入”:{“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]]]}}
发送得分与UI的请求
发送请求使用UI是最简单快捷的方法来测试模型。
从服务端点页面,选择查询端点。
插入模型以JSON格式输入数据并单击发送请求。
如果模型记录了一个输入,点击显示的例子加载输入示例。
把得分与API请求
你可以发送一个请求通过REST API使用得分标准砖的身份验证。下面的例子演示使用个人身份验证访问令牌。
给定一个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(数据,pd。DataFrame)其他的create_tf_serving_json(数据)响应=请求。请求(方法=“职位”,头=头,url=model_uri,json=data_json)如果响应。status_code! =200年:提高异常(f“请求失败状态{响应。status_code},{响应。文本}”)返回响应。json()#接受大熊猫DataFrames评分模型数据=pd。DataFrame([{“sepal_length”:5.1,“sepal_width”:3.5,“petal_length”:1.4,“petal_width”:0.2}))score_model(MODEL_VERSION_URI,DATABRICKS_API_TOKEN,数据)#得分一个接受张量的模型数据=np。asarray([[5.1,3.5,1.4,0.2]])score_model(MODEL_VERSION_URI,DATABRICKS_API_TOKEN,数据)
可以得分数据集掌权BI桌面使用以下步骤:
打开数据集你想得分。
去转换数据。
在左边面板中右键单击并选择创建新的查询。
去视图>高级编辑器。
用下面的代码片段,替换查询身体后填入一个适当的
DATABRICKS_API_TOKEN
和MODEL_VERSION_URI
。(数据集作为表)作为表= >让call_predict=(数据集作为表)作为列表= >让apiToken=DATABRICKS_API_TOKEN,modelUri=MODEL_VERSION_URI,responseList=Json。文档(网络。内容(modelUri,(头=(#“内容类型”=“application / json”,#“授权”=文本。格式(无记名# {0},{apiToken})),内容={“dataframe_records”:Json。FromValue(数据集)}]))在responseList,predictionList=列表。结合(列表。变换(表。分裂(数据集,256年),(x)= >call_predict(x))),predictionsTable=表。FromList(predictionList,(x)= >{x},{“预测”}),datasetWithPrediction=表。加入(表。AddIndexColumn(predictionsTable,“指数”),“指数”,表。AddIndexColumn(数据集,“指数”),“指数”)在datasetWithPrediction
名称查询你想要的模型名称。
打开高级查询编辑器为你的数据集和应用模型的功能。