Skip to content

Commit 33736a9

Browse files
authored
[Serving] Update request (#309)
1 parent 84193a9 commit 33736a9

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

libserving/request.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,20 @@ def parse_args():
1212
parser.add_argument("--user", type=str, help="user id")
1313
parser.add_argument("--n_rec", type=int, help="num of recommendations")
1414
parser.add_argument("--algo", type=str, help="type of serving algorithm")
15+
parser.add_argument("--user_feats", help="user features, type: dict")
16+
parser.add_argument("--seq", help="user behavior sequence, type: list")
1517
return parser.parse_args()
1618

1719

1820
def main():
1921
args = parse_args()
2022
url = f"http://{args.host}:{args.port}/{args.algo}/recommend"
2123
data = {"user": args.user, "n_rec": args.n_rec}
24+
if args.user_feats:
25+
data["user_feats"] = json.loads(args.user_feats)
26+
if args.seq:
27+
data["seq"] = json.loads(args.seq)
28+
2229
response = requests.post(url, json=data, timeout=1)
2330
if response.status_code != 200:
2431
print(f"Failed to get recommendation: {url}")

libserving/sanic_serving/online_deploy.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -241,15 +241,16 @@ async def update_user_sparse_feats(
241241

242242

243243
async def update_user_dense_feats(
244-
user_dense_vals: List[float],
245-
user_dense_feats: Dict[str, float],
244+
user_dense_vals: List[Union[float, int]],
245+
user_dense_feats: Dict[str, Union[float, int]],
246246
r: redis.Redis,
247247
) -> List[List[float]]:
248248
for col, val in user_dense_feats.items():
249249
field_index = int(await r.hget("user_dense_fields", col))
250250
# if not isinstance(val, (int, float)):
251251
# logger.warning(f"Possible invalid val `{val}`: `{type(val)}` in dense feature `{col}`")
252-
user_dense_vals[field_index] = float(val)
252+
type_fn = type(user_dense_vals[0])
253+
user_dense_vals[field_index] = type_fn(val)
253254
return user_dense_vals
254255

255256

@@ -374,7 +375,7 @@ async def get_seq(
374375
else:
375376
seq = np.full(max_seq_len, n_items, dtype=np.int32)
376377
if item_id_seq:
377-
seq[-seq_len:] = item_id_seq[-seq_len:]
378+
seq[:seq_len] = item_id_seq[-seq_len:]
378379

379380
if model_name in CROSS_FEAT_MODELS:
380381
seq = np.tile(seq, (n_items, 1)).tolist()

0 commit comments

Comments
 (0)