◐ Shell
clean mode source ↗

feat: Adding features field to retrieve_online_features to return mor… by franciscojavierarceo · Pull Request #4869 · feast-dev/feast

What this PR does / why we need it:

This pull request introduces several enhancements and refactorings to the retrieve_online_documents method and related components within the Feast SDK. The primary changes include the addition of support for multiple features to be retrieved from the online document store, along with improvements to the serialization and deserialization of float vectors.

Changes

  1. Feature Store Enhancements

    • Updated retrieve_online_documents to accept an optional list of features (features).
    • Added checks to ensure only a single feature view is used for document retrieval.
    • Modified logic to handle both single and multiple feature retrieval scenarios.
  2. Utility Functions

    • Added _serialize_vector_to_float_list function in feast/utils.py for serializing float vectors to ValueProto.
  3. Key Encoding Utilities

    • Introduced serialize_f32 and deserialize_f32 functions in feast/infra/key_encoding_utils.py for efficient serialization and deserialization of float lists.
  4. Provider and Online Store Changes

    • Updated various provider classes (passthrough_provider.py, faiss_online_store.py, sqlite.py, postgres.py, elasticsearch.py, qdrant.py) to handle the new requested_features parameter.
    • Ensured backward compatibility by keeping the requested_feature parameter optional.
  5. Refactoring

    • Simplified the serve_registry method definition for better readability.

Testing

  • Added unit tests to cover scenarios involving single and multiple feature retrieval.
  • Verified that the existing tests pass to ensure backward compatibility.

Documentation

  • Updated docstrings to reflect the new parameters and their usage.
  • Added comments to explain the new utility functions and their purposes.

Which issue(s) this PR fixes:

Step along the path to ship Milvus (#4364)

Misc

Related to this: #4751