Deploying a Webhook

Webhooks are used for deploying functions that run asyncronously on Beam.

You can add webhook triggers to the file with your Beam app definition.

Input fields are serialized and validated by the Beam.Types module.

app.Trigger.Webhook(
    inputs={"prompt": beam.Types.String()},
    handler="run.py:my_async_function",
)
NameTypeDescription
inputsdictA dictionary specifying the interface for the API
handlerstringThe function that will be run when the API is invoked

Invoking Webhooks

Calling a webhook will return a Task ID.

You can view the status of each invocation in the dashboard, by clicking on your deployment and navigating to the latest task.

If any files were generated during the execution of your task, you can download them by clicking on the task, and clicking Download.

Beam Types

The beam library includes several basic data types that can be used to validate your inputs against.

TypeDescription
beam.types.Json()A JSON object
beam.types.String(max_length=None)A string field, with an optional max_length parameter
beam.types.Float()Standard floating point value
beam.types.Boolean()Standard boolean value
beam.types.Tensor(shape=None, dtype=None)A torch tensor object, with optional shape and dtype parameters
beam.types.Dataframe()A pandas dataframe object
beam.types.NumpyArray(shape=None, dtype=None)A numpy array, with optional shape and dtype parameters
beam.types.Binary()A binary object, for example a video file or anything that doesn’t fit into the other types listed
beam.types.Image(raw=False)A generic image, automatically serialized into a PIL object for use in the handler

Types can be labeled optional by passing in required=false

beam.types.Boolean(required=false)

beam.types.Dataframe(required=false)