-record(provider, { name :: binary(), model_id :: binary(), generate :: fun((glean@provider:generate_request()) -> {ok, glean@provider:generate_result()} | {error, glean@error:glean_error()}), stream :: fun((glean@provider:generate_request(), fun((glean@stream:stream_event()) -> nil)) -> {ok, glean@provider:generate_result()} | {error, glean@error:glean_error()}) }).