Yummy Feature Server
The yummy feature server is based on the rust implementation wrapped by pyo3 thus you don’t need to install rust environment and you can simply run it using command line:
pip3 install yummy[features]
and then:
yummy features serve -h 0.0.0.0 -p 6566 -f feature_store.yaml
Rust feature server have been implemented using Actix server. The server is fully compatible with feast feature server and is blazing fast (~1ms - full benchmark will delivered soon). You can use it with the features materialized with Feast to online store. Currently Redis
online store implementation is available and http
protocol is supported.
The payload is fully compatible with Feast server:
Example request/response:
Request with features list:
{
"features": [
"driver_hourly_stats:conv_rate",
"driver_hourly_stats:acc_rate",
"driver_hourly_stats:avg_daily_trips",
],
"entities": {"driver_id": [1001,1002,1003,1004,1005]},
"full_feature_names": true,
"
Request with feature service:
{
"feature_service": "driver_activity_basic",
"entities": {"driver_id": [1001,1002,1003,1004,1005]},
"full_feature_names": true,
}
Example response:
{"metadata": {"feature_names": ["driver_id",
"driver_hourly_stats__conv_rate",
"driver_hourly_stats__acc_rate",
"driver_hourly_stats__avg_daily_trips"]},
"results": [{"values": [1001, 1002, 1003, 1004, 1005],
"statuses": ["PRESENT", "PRESENT", "PRESENT", "PRESENT", "PRESENT"],
"event_timestamps": ["2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16"]},
{"values": [0.44467267, null, 0.775576, 0.719485, null],
"statuses": ["PRESENT", "PRESENT", "PRESENT", "PRESENT", "PRESENT"],
"event_timestamps": ["2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16"]},
{"values": [0.36920926, null, 0.8855987, 0.09924329, null],
"statuses": ["PRESENT", "PRESENT", "PRESENT", "PRESENT", "PRESENT"],
"event_timestamps": ["2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16"]},
{"values": [821, null, 381, 587, null],
"statuses": ["PRESENT", "PRESENT", "PRESENT", "PRESENT", "PRESENT"],
"event_timestamps": ["2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16"]}]}