得分請求發送到服務端點
在本文中,您將了解如何格式評分要求你的服務模型,以及如何將這些請求發送到模型服務端點。看到模型服務與磚。
取得一個部署模型,你可以發送一個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
名稱查詢你想要的模型名稱。
打開高級查詢編輯器為你的數據集和應用模型的功能。