Skip to main content
Version: Beta 🚧

Read Online Features for Inference using the Python Client

Tecton provides an open-source client library in Python for reading features from the online store. The Python Client API Reference can be found here.

Installing the Python Client library​

The latest version of the Tecton Python Client can be found on PyPi.

For any project, install the client library using pip:

pip install tecton-client

Creating an API key to authenticate to the HTTP API​

To authenticate your requests to the HTTP API, you will need to create a Service Account to obtain an API key, and grant that Service Account the Consumer role for your workspace:

  1. Create a Service Account to obtain your API key.
tecton service-account create \
--name "sample-service-acount" \
--description "An online inference sample"

Output:

Save this API Key - you will not be able to get it again.
API Key: <Your-api-key>
Service Account ID: <Your-Service-Account-Id>
  1. Assign the Consumer role to the Service Account.
tecton access-control assign-role --role consumer \
--workspace <Your-workspace> \
--service-account <Your-Service-Account-Id>

Output:

Successfully updated role.

Save this API key for the next step.

Creating a TectonClient Object​

Create a TectonClient object with your Tecton instance base URL (https://<your Tecton instance prefix>.tecton.ai) and your API key:

tecton_client = TectonClient(url, api_key)

Calling the get-features Endpoint​

To call the get-features endpoint using the client, create objects from the GetFeaturesRequestData and GetFeaturesRequest classes.

get_features_request_data = GetFeaturesRequestData(
join_key_map={"user_id": "123", "merchant": "xyz"}, request_context_map={"amt": 500.00}
)

get_features_request = GetFeaturesRequest(
workspace_name="<Your-workspace>",
feature_service_name="fraud_detection_feature_service",
request_data=get_features_request_data,
)

Now, call the get_features() method in the tecton_client and pass the get_features_request object as a parameter.

This method:

  • Creates an HTTP request using the URL, api_key and the get_features_request object
  • Calls the FeatureService API
  • Receives the response from the API and deserializes it into the get_features_response object
get_features_response = tecton_client.get_features(get_features_request)

The feature vector can be accessed as a dictionary of feature names and their corresponding values using the property feature_values from the get_features_response.

for name, feature in get_features_response.feature_values.items():
print("Feature Name: ", name)
print("Feature Namespace: ", feature.feature_namespace)
print("Feature Name: ", feature.feature_name)
print("Feature Value: ", feature.feature_value)

# Data type of the feature value
print("Feature Value Type: ", feature.data_type)

# These two fields are only available if requested in the metadata options of the test_request
print("Feature Status: ", feature.feature_status)
print("Feature Effective Time: ", feature.effective_time)

For more information on using the client library and other functions like get-features-batch/ refer to the official documentation.

Was this page helpful?

🧠 Hi! Ask me anything about Tecton!

Floating button icon