algorithm/eas/easyrec/easyrec_predict.proto (228 lines of code) (raw):

syntax = "proto3"; option go_package = ".;easyrec"; option java_package = "com.alibaba.pairec.processor.proto"; option java_outer_classname = "PredictProtos"; package easyrec; enum ArrayDataType { // Not a legal value for DataType. Used to indicate a DataType field // has not been set. DT_INVALID = 0; // Data types that all computation devices are expected to be // capable to support. DT_FLOAT = 1; DT_DOUBLE = 2; DT_INT32 = 3; DT_UINT8 = 4; DT_INT16 = 5; DT_INT8 = 6; DT_STRING = 7; DT_COMPLEX64 = 8; // Single-precision complex DT_INT64 = 9; DT_BOOL = 10; DT_QINT8 = 11; // Quantized int8 DT_QUINT8 = 12; // Quantized uint8 DT_QINT32 = 13; // Quantized int32 DT_BFLOAT16 = 14; // Float32 truncated to 16 bits. Only for cast ops. DT_QINT16 = 15; // Quantized int16 DT_QUINT16 = 16; // Quantized uint16 DT_UINT16 = 17; DT_COMPLEX128 = 18; // Double-precision complex DT_HALF = 19; DT_RESOURCE = 20; DT_VARIANT = 21; // Arbitrary C++ data types } // Dimensions of an array message ArrayShape { repeated int64 dim = 1 [packed = true]; } // Protocol buffer representing an array message ArrayProto { // Data Type. ArrayDataType dtype = 1; // Shape of the array. ArrayShape array_shape = 2; // DT_FLOAT. repeated float float_val = 3 [packed = true]; // DT_DOUBLE. repeated double double_val = 4 [packed = true]; // DT_INT32, DT_INT16, DT_INT8, DT_UINT8. repeated int32 int_val = 5 [packed = true]; // DT_STRING. repeated bytes string_val = 6; // DT_INT64. repeated int64 int64_val = 7 [packed = true]; // DT_BOOL. repeated bool bool_val = 8 [packed = true]; } // context features message ContextFeatures { repeated PBFeature features = 1; } //long->others message LongStringMap { map<int64, string> map_field = 1; } message LongIntMap { map<int64, int32> map_field = 1; } message LongLongMap { map<int64, int64> map_field = 1; } message LongFloatMap { map<int64, float> map_field = 1; } message LongDoubleMap { map<int64, double> map_field = 1; } //string->others message StringStringMap { map<string, string> map_field = 1; } message StringIntMap { map<string, int32> map_field = 1; } message StringLongMap { map<string, int64> map_field = 1; } message StringFloatMap { map<string, float> map_field = 1; } message StringDoubleMap { map<string, double> map_field = 1; } //int32->others message IntStringMap { map<int32, string> map_field = 1; } message IntIntMap { map<int32, int32> map_field = 1; } message IntLongMap { map<int32, int64> map_field = 1; } message IntFloatMap { map<int32, float> map_field = 1; } message IntDoubleMap { map<int32, double> map_field = 1; } // list message IntList { repeated int32 features = 1; } message LongList { repeated int64 features = 1; } message FloatList { repeated float features = 1; } message DoubleList { repeated double features = 1; } message StringList { repeated string features = 1; } // lists message IntLists { repeated IntList lists = 1; } message LongLists { repeated LongList lists = 1; } message FloatLists { repeated FloatList lists = 1; } message DoubleLists { repeated DoubleList lists = 1; } message StringLists { repeated StringList lists = 1; } message PBFeature { oneof value { int32 int_feature = 1; int64 long_feature = 2; string string_feature = 3; float float_feature = 4; double double_feature=5; LongStringMap long_string_map = 6; LongIntMap long_int_map = 7; LongLongMap long_long_map = 8; LongFloatMap long_float_map = 9; LongDoubleMap long_double_map = 10; StringStringMap string_string_map = 11; StringIntMap string_int_map = 12; StringLongMap string_long_map = 13; StringFloatMap string_float_map = 14; StringDoubleMap string_double_map = 15; IntStringMap int_string_map = 16; IntIntMap int_int_map = 17; IntLongMap int_long_map = 18; IntFloatMap int_float_map = 19; IntDoubleMap int_double_map = 20; IntList int_list = 21; LongList long_list =22; StringList string_list = 23; FloatList float_list = 24; DoubleList double_list = 25; IntLists int_lists = 26; LongLists long_lists =27; StringLists string_lists = 28; FloatLists float_lists = 29; DoubleLists double_lists = 30; } } // PBRequest specifies the request for aggregator message PBRequest { // debug mode int32 debug_level = 1; // user features map<string, PBFeature> user_features = 2; // item ids repeated string item_ids = 3; // context features for each item map<string, ContextFeatures> context_features = 4; // user realtime embedding return num int32 faiss_neigh_num = 5; // item features for each item, key is item input name map<string, ContextFeatures> item_features = 6; } // return results message Results { repeated double scores = 1 [packed = true]; } enum StatusCode { OK = 0; INPUT_EMPTY = 1; EXCEPTION = 2; } // PBResponse specifies the response for aggregator message PBResponse { // results map<string, Results> results = 1; // item features map<string, string> item_features = 2; // generate features map<string, string> generate_features = 3; // context features map<string, ContextFeatures> context_features = 4; string error_msg = 5; StatusCode status_code = 6; // item ids repeated string item_ids = 7; repeated string outputs = 8; // all fg input features map<string, string> raw_features = 9; map<string, ArrayProto> tf_outputs = 10; } // TorchRecPBResponse specifies the response for aggregator message TorchRecPBResponse { // torch output tensors map<string, ArrayProto> map_outputs = 1; // fg ouput features map<string, string> generate_features = 2; // all fg input features map<string, string> raw_features = 3; // item ids repeated string item_ids = 4; }