Caffe and KNN as a service
Caffe Predict:
HTTP Request: POST /v1/caffe_model/predict
Request Body: JSON
{
"url": image_url,
"modelId": model_id
}
Response on Success:
A vector of numbers
Response on Failure:
Failure message and error code
KNN Update:
HTTP Request: POST /v1/knn_model/update
Insert
Request Body: JSON
{
"modelId": model_id,
"operation": "insert",
"dataPointId": data_point_id,
"vector": Array of data points,
"tags": Array of tags
}
Delete
Request Body: JSON
{
"modelId": model_id,
"operation": "delete",
"dataPointId": data_point_id
}
Response on Success:
200 OK
Response on Failure:
Failure message and error code
KNN Predict:
HTTP Request: POST /v1/knn_model/predict
SearchById
Request Body: JSON
{
"modelId": model_id,
"operation": "SearchById",
"dataPointId": data_point_id,
"tags": Array of tags
}
SearchByVector
Request Body: JSON
{
"modelId": model_id,
"operation": "SearchByVector",
"vector": Array of numbers,
"tags": Array of tags
}
Response on Success:
{
status: success
result: Top K nearest neighbours(Data point Ids) with distances
}
Response on Failure:
Error code and failure message
Router Map update:
HTTP Request: POST /v1/model_workers_map
Request Body: JSON
{
"Caffe": {
model_id_1 : [{
"host": host_name,
"port": port_number,
"local_worker_id": local_worker_id
},{
"host": host_name,
"port": port_number,
"local_worker_id": local_worker_id
}]
model_id_2 : [{
"host": host_name,
"port": port_number,
"local_worker_id": local_worker_id
}]
.
.
.
}
"KNN":{
model_id_3 : [{
"host": host_name,
"port": port_number,
"local_worker_id": local_worker_id
}]
model_id_4 : [{
"host": host_name,
"port": port_number,
"local_worker_id": local_worker_id
}]
.
.
.
}
}
Response on Success:
HTTP Response 200 OK.