ExBifrost.Api.BedrockIntegration (ex_bifrost v0.1.0)

Copy Markdown View Source

API calls for all endpoints tagged BedrockIntegration.

Summary

Functions

Cancel batch inference job (Bedrock format) Stops a batch inference job using AWS Bedrock format.

Converse with model (Bedrock format) Sends messages to a model using AWS Bedrock Converse API format.

Stream converse with model (Bedrock format) Streams messages from a model using AWS Bedrock Converse API format.

Count tokens (Bedrock format) Counts tokens for a Converse-style request using AWS Bedrock format. The request body must include input.converse with a complete Converse payload; only Converse-shaped input is supported.

Create batch inference job (Bedrock format) Creates a batch inference job using AWS Bedrock format. Routes to native Bedrock by default; set x-model-provider to route the job to another provider (openai, gemini, etc.).

Invoke model (Bedrock format) Invokes a model using AWS Bedrock InvokeModel API format. Accepts raw model-specific request body.

Invoke model with streaming (Bedrock format) Invokes a model with streaming using AWS Bedrock InvokeModelWithResponseStream API format.

List batch inference jobs (Bedrock format) Lists batch inference jobs using AWS Bedrock format.

Retrieve batch inference job (Bedrock format) Retrieves a batch inference job using AWS Bedrock format.

S3-compatible DeleteObject Deletes an object from the Bifrost file store.

S3-compatible GetObject Retrieves raw object bytes from the Bifrost file store.

S3-compatible HeadObject Returns S3 metadata headers (ETag, Content-Length, etc.) without a body.

S3-compatible ListObjectsV2 Lists objects in a bucket using S3 ListObjectsV2 semantics. Supports the prefix and max-keys query parameters used by boto3.

S3-compatible PutObject Uploads an object to the Bifrost file store using S3 PutObject semantics. The response is empty with an ETag header, mirroring native S3.

Functions

bedrock_cancel_batch_job(connection, job_arn, opts \\ [])

@spec bedrock_cancel_batch_job(Tesla.Env.client(), String.t(), keyword()) ::
  {:ok, ExBifrost.Model.BedrockError.t()}
  | {:ok, ExBifrost.Model.BedrockCancelBatchJob200Response.t()}
  | {:error, Tesla.Env.t()}

Cancel batch inference job (Bedrock format) Stops a batch inference job using AWS Bedrock format.

Parameters

  • connection (ExBifrost.Connection): Connection to server
  • job_arn (String.t): Bedrock job ARN to stop (URL-encoded). For non-Bedrock providers, the arn:aws:bedrock:us-east-1:444444444444:batch: prefix is stripped automatically before routing.
  • opts (keyword): Optional parameters
    • :"x-model-provider" (String.t): Optional provider override for cross-provider batch routing.

Returns

  • {:ok, ExBifrost.Model.BedrockCancelBatchJob200Response.t} on success
  • {:error, Tesla.Env.t} on failure

bedrock_converse(connection, model_id, bedrock_converse_request, opts \\ [])

Converse with model (Bedrock format) Sends messages to a model using AWS Bedrock Converse API format.

Parameters

  • connection (ExBifrost.Connection): Connection to server
  • model_id (String.t): Model ID (e.g., anthropic.claude-3-sonnet-20240229-v1:0)
  • bedrock_converse_request (BedrockConverseRequest):
  • opts (keyword): Optional parameters

Returns

  • {:ok, ExBifrost.Model.BedrockConverseResponse.t} on success
  • {:error, Tesla.Env.t} on failure

bedrock_converse_stream(connection, model_id, bedrock_converse_request, opts \\ [])

Stream converse with model (Bedrock format) Streams messages from a model using AWS Bedrock Converse API format.

Parameters

  • connection (ExBifrost.Connection): Connection to server
  • model_id (String.t): Model ID (e.g., anthropic.claude-3-sonnet-20240229-v1:0)
  • bedrock_converse_request (BedrockConverseRequest):
  • opts (keyword): Optional parameters

Returns

  • {:ok, ExBifrost.Model.BedrockConverseStream200Response.t} on success
  • {:error, Tesla.Env.t} on failure

bedrock_count_tokens(connection, model_id, bedrock_count_tokens_request, opts \\ [])

Count tokens (Bedrock format) Counts tokens for a Converse-style request using AWS Bedrock format. The request body must include input.converse with a complete Converse payload; only Converse-shaped input is supported.

Parameters

  • connection (ExBifrost.Connection): Connection to server
  • model_id (String.t): Bedrock model identifier (e.g. anthropic.claude-3-5-sonnet-20240620-v1:0).
  • bedrock_count_tokens_request (BedrockCountTokensRequest):
  • opts (keyword): Optional parameters

Returns

  • {:ok, ExBifrost.Model.BedrockCountTokens200Response.t} on success
  • {:error, Tesla.Env.t} on failure

bedrock_create_batch_job(connection, bedrock_batch_job_request, opts \\ [])

Create batch inference job (Bedrock format) Creates a batch inference job using AWS Bedrock format. Routes to native Bedrock by default; set x-model-provider to route the job to another provider (openai, gemini, etc.).

Parameters

  • connection (ExBifrost.Connection): Connection to server
  • bedrock_batch_job_request (BedrockBatchJobRequest):
  • opts (keyword): Optional parameters
    • :"x-model-provider" (String.t): Optional provider override for cross-provider batch routing.

Returns

  • {:ok, ExBifrost.Model.BedrockBatchJobResponse.t} on success
  • {:error, Tesla.Env.t} on failure

bedrock_invoke_model(connection, model_id, bedrock_invoke_request, opts \\ [])

@spec bedrock_invoke_model(
  Tesla.Env.client(),
  String.t(),
  ExBifrost.Model.BedrockInvokeRequest.t(),
  keyword()
) ::
  {:ok, ExBifrost.Model.BedrockError.t()}
  | {:ok, %{optional(String.t()) => any()}}
  | {:error, Tesla.Env.t()}

Invoke model (Bedrock format) Invokes a model using AWS Bedrock InvokeModel API format. Accepts raw model-specific request body.

Parameters

  • connection (ExBifrost.Connection): Connection to server
  • model_id (String.t): Model ID (e.g., anthropic.claude-3-sonnet-20240229-v1:0)
  • bedrock_invoke_request (BedrockInvokeRequest):
  • opts (keyword): Optional parameters

Returns

  • {:ok, %{}} on success
  • {:error, Tesla.Env.t} on failure

bedrock_invoke_model_stream(connection, model_id, bedrock_invoke_request, opts \\ [])

@spec bedrock_invoke_model_stream(
  Tesla.Env.client(),
  String.t(),
  ExBifrost.Model.BedrockInvokeRequest.t(),
  keyword()
) ::
  {:ok, map()}
  | {:ok, ExBifrost.Model.BedrockError.t()}
  | {:error, Tesla.Env.t()}

Invoke model with streaming (Bedrock format) Invokes a model with streaming using AWS Bedrock InvokeModelWithResponseStream API format.

Parameters

  • connection (ExBifrost.Connection): Connection to server
  • model_id (String.t): Model ID (e.g., anthropic.claude-3-sonnet-20240229-v1:0)
  • bedrock_invoke_request (BedrockInvokeRequest):
  • opts (keyword): Optional parameters

Returns

  • {:ok, map()} on success
  • {:error, Tesla.Env.t} on failure

bedrock_list_batch_jobs(connection, opts \\ [])

@spec bedrock_list_batch_jobs(
  Tesla.Env.client(),
  keyword()
) ::
  {:ok, ExBifrost.Model.BedrockListBatchJobs200Response.t()}
  | {:ok, ExBifrost.Model.BedrockError.t()}
  | {:error, Tesla.Env.t()}

List batch inference jobs (Bedrock format) Lists batch inference jobs using AWS Bedrock format.

Parameters

  • connection (ExBifrost.Connection): Connection to server
  • opts (keyword): Optional parameters
    • :maxResults (integer()): Maximum number of results to return
    • :nextToken (String.t): Token for pagination
    • :statusEquals (String.t): Filter by status
    • :nameContains (String.t): Filter by job name containing this string
    • :"x-model-provider" (String.t): Optional provider override for cross-provider batch routing.

Returns

  • {:ok, ExBifrost.Model.BedrockListBatchJobs200Response.t} on success
  • {:error, Tesla.Env.t} on failure

bedrock_retrieve_batch_job(connection, job_arn, opts \\ [])

@spec bedrock_retrieve_batch_job(Tesla.Env.client(), String.t(), keyword()) ::
  {:ok, ExBifrost.Model.BedrockError.t()}
  | {:ok, ExBifrost.Model.BedrockBatchJobResponse.t()}
  | {:error, Tesla.Env.t()}

Retrieve batch inference job (Bedrock format) Retrieves a batch inference job using AWS Bedrock format.

Parameters

  • connection (ExBifrost.Connection): Connection to server
  • job_arn (String.t): Bedrock job ARN (URL-encoded). For non-Bedrock providers, the arn:aws:bedrock:us-east-1:444444444444:batch: prefix is stripped automatically before routing.
  • opts (keyword): Optional parameters
    • :"x-model-provider" (String.t): Optional provider override for cross-provider batch routing.

Returns

  • {:ok, ExBifrost.Model.BedrockBatchJobResponse.t} on success
  • {:error, Tesla.Env.t} on failure

bedrock_s3_delete_object(connection, bucket, key, opts \\ [])

@spec bedrock_s3_delete_object(Tesla.Env.client(), String.t(), String.t(), keyword()) ::
  {:ok, nil} | {:ok, String.t()} | {:error, Tesla.Env.t()}

S3-compatible DeleteObject Deletes an object from the Bifrost file store.

Parameters

  • connection (ExBifrost.Connection): Connection to server
  • bucket (String.t): Bucket name.
  • key (String.t): Object key ({key:*} wildcard).
  • opts (keyword): Optional parameters
    • :"x-model-provider" (String.t): Optional provider override; defaults to bedrock.

Returns

  • {:ok, nil} on success
  • {:error, Tesla.Env.t} on failure

bedrock_s3_get_object(connection, bucket, key, opts \\ [])

@spec bedrock_s3_get_object(Tesla.Env.client(), String.t(), String.t(), keyword()) ::
  {:ok, String.t()} | {:error, Tesla.Env.t()}

S3-compatible GetObject Retrieves raw object bytes from the Bifrost file store.

Parameters

  • connection (ExBifrost.Connection): Connection to server
  • bucket (String.t): Bucket name.
  • key (String.t): Object key ({key:*} wildcard).
  • opts (keyword): Optional parameters
    • :"x-model-provider" (String.t): Optional provider override; defaults to bedrock.

Returns

  • {:ok, String.t} on success
  • {:error, Tesla.Env.t} on failure

bedrock_s3_head_object(connection, bucket, key, opts \\ [])

@spec bedrock_s3_head_object(Tesla.Env.client(), String.t(), String.t(), keyword()) ::
  {:ok, nil} | {:error, Tesla.Env.t()}

S3-compatible HeadObject Returns S3 metadata headers (ETag, Content-Length, etc.) without a body.

Parameters

  • connection (ExBifrost.Connection): Connection to server
  • bucket (String.t): Bucket name.
  • key (String.t): Object key ({key:*} wildcard).
  • opts (keyword): Optional parameters
    • :"x-model-provider" (String.t): Optional provider override; defaults to bedrock.

Returns

  • {:ok, nil} on success
  • {:error, Tesla.Env.t} on failure

bedrock_s3_list_objects(connection, bucket, opts \\ [])

@spec bedrock_s3_list_objects(Tesla.Env.client(), String.t(), keyword()) ::
  {:ok, String.t()} | {:error, Tesla.Env.t()}

S3-compatible ListObjectsV2 Lists objects in a bucket using S3 ListObjectsV2 semantics. Supports the prefix and max-keys query parameters used by boto3.

Parameters

  • connection (ExBifrost.Connection): Connection to server
  • bucket (String.t): Bucket name.
  • opts (keyword): Optional parameters
    • :prefix (String.t): Filter keys by prefix.
    • :"max-keys" (integer()): Maximum number of keys to return.
    • :"x-model-provider" (String.t): Optional provider override; defaults to bedrock.

Returns

  • {:ok, String.t} on success
  • {:error, Tesla.Env.t} on failure

bedrock_s3_put_object(connection, bucket, key, body, opts \\ [])

@spec bedrock_s3_put_object(
  Tesla.Env.client(),
  String.t(),
  String.t(),
  String.t(),
  keyword()
) ::
  {:ok, nil} | {:ok, String.t()} | {:error, Tesla.Env.t()}

S3-compatible PutObject Uploads an object to the Bifrost file store using S3 PutObject semantics. The response is empty with an ETag header, mirroring native S3.

Parameters

  • connection (ExBifrost.Connection): Connection to server
  • bucket (String.t): Bucket name.
  • key (String.t): Object key. Supports /-separated nested keys ({key:*} wildcard).
  • body (String.t):
  • opts (keyword): Optional parameters
    • :"x-model-provider" (String.t): Optional provider override; defaults to bedrock.

Returns

  • {:ok, nil} on success
  • {:error, Tesla.Env.t} on failure