AgentsforBedrock / Client / create_flow
create_flow#
- AgentsforBedrock.Client.create_flow(**kwargs)#
Creates a prompt flow that you can use to send an input through various steps to yield an output. Configure nodes, each of which corresponds to a step of the flow, and create connections between the nodes to create paths to different outputs. For more information, see How it works and Create a flow in Amazon Bedrock in the Amazon Bedrock User Guide.
See also: AWS API Documentation
Request Syntax
response = client.create_flow( clientToken='string', customerEncryptionKeyArn='string', definition={ 'connections': [ { 'configuration': { 'conditional': { 'condition': 'string' }, 'data': { 'sourceOutput': 'string', 'targetInput': 'string' } }, 'name': 'string', 'source': 'string', 'target': 'string', 'type': 'Data'|'Conditional' }, ], 'nodes': [ { 'configuration': { 'agent': { 'agentAliasArn': 'string' }, 'collector': {} , 'condition': { 'conditions': [ { 'expression': 'string', 'name': 'string' }, ] }, 'input': {} , 'iterator': {} , 'knowledgeBase': { 'knowledgeBaseId': 'string', 'modelId': 'string' }, 'lambdaFunction': { 'lambdaArn': 'string' }, 'lex': { 'botAliasArn': 'string', 'localeId': 'string' }, 'output': {} , 'prompt': { 'sourceConfiguration': { 'inline': { 'inferenceConfiguration': { 'text': { 'maxTokens': 123, 'stopSequences': [ 'string', ], 'temperature': ..., 'topK': 123, 'topP': ... } }, 'modelId': 'string', 'templateConfiguration': { 'text': { 'inputVariables': [ { 'name': 'string' }, ], 'text': 'string' } }, 'templateType': 'TEXT' }, 'resource': { 'promptArn': 'string' } } }, 'retrieval': { 'serviceConfiguration': { 's3': { 'bucketName': 'string' } } }, 'storage': { 'serviceConfiguration': { 's3': { 'bucketName': 'string' } } } }, 'inputs': [ { 'expression': 'string', 'name': 'string', 'type': 'String'|'Number'|'Boolean'|'Object'|'Array' }, ], 'name': 'string', 'outputs': [ { 'name': 'string', 'type': 'String'|'Number'|'Boolean'|'Object'|'Array' }, ], 'type': 'Input'|'Output'|'KnowledgeBase'|'Condition'|'Lex'|'Prompt'|'LambdaFunction'|'Storage'|'Agent'|'Retrieval'|'Iterator'|'Collector' }, ] }, description='string', executionRoleArn='string', name='string', tags={ 'string': 'string' } )
- Parameters:
clientToken (string) –
A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency.
This field is autopopulated if not provided.
customerEncryptionKeyArn (string) – The Amazon Resource Name (ARN) of the KMS key to encrypt the flow.
definition (dict) –
A definition of the nodes and connections between nodes in the flow.
connections (list) –
An array of connection definitions in the flow.
(dict) –
Contains information about a connection between two nodes in the flow.
configuration (dict) –
The configuration of the connection.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:
conditional
,data
.conditional (dict) –
The configuration of a connection originating from a Condition node.
condition (string) – [REQUIRED]
The condition that triggers this connection. For more information about how to write conditions, see the Condition node type in the Node types topic in the Amazon Bedrock User Guide.
data (dict) –
The configuration of a connection originating from a node that isn’t a Condition node.
sourceOutput (string) – [REQUIRED]
The name of the output in the source node that the connection begins from.
targetInput (string) – [REQUIRED]
The name of the input in the target node that the connection ends at.
name (string) – [REQUIRED]
A name for the connection that you can reference.
source (string) – [REQUIRED]
The node that the connection starts at.
target (string) – [REQUIRED]
The node that the connection ends at.
type (string) – [REQUIRED]
Whether the source node that the connection begins from is a condition node (
Conditional
) or not (Data
).
nodes (list) –
An array of node definitions in the flow.
(dict) –
Contains configurations about a node in the flow.
configuration (dict) –
Contains configurations for the node.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:
agent
,collector
,condition
,input
,iterator
,knowledgeBase
,lambdaFunction
,lex
,output
,prompt
,retrieval
,storage
.agent (dict) –
Contains configurations for an agent node in your flow. Invokes an alias of an agent and returns the response.
agentAliasArn (string) – [REQUIRED]
The Amazon Resource Name (ARN) of the alias of the agent to invoke.
collector (dict) –
Contains configurations for a collector node in your flow. Collects an iteration of inputs and consolidates them into an array of outputs.
condition (dict) –
Contains configurations for a Condition node in your flow. Defines conditions that lead to different branches of the flow.
conditions (list) – [REQUIRED]
An array of conditions. Each member contains the name of a condition and an expression that defines the condition.
(dict) –
Defines a condition in the condition node.
expression (string) –
Defines the condition. You must refer to at least one of the inputs in the condition. For more information, expand the Condition node section in Node types in prompt flows.
name (string) – [REQUIRED]
A name for the condition that you can reference.
input (dict) –
Contains configurations for an input flow node in your flow. The first node in the flow.
inputs
can’t be specified for this node.iterator (dict) –
Contains configurations for an iterator node in your flow. Takes an input that is an array and iteratively sends each item of the array as an output to the following node. The size of the array is also returned in the output.
The output flow node at the end of the flow iteration will return a response for each member of the array. To return only one response, you can include a collector node downstream from the iterator node.
knowledgeBase (dict) –
Contains configurations for a knowledge base node in your flow. Queries a knowledge base and returns the retrieved results or generated response.
knowledgeBaseId (string) – [REQUIRED]
The unique identifier of the knowledge base to query.
modelId (string) –
The unique identifier of the model to use to generate a response from the query results. Omit this field if you want to return the retrieved results as an array.
lambdaFunction (dict) –
Contains configurations for a Lambda function node in your flow. Invokes an Lambda function.
lambdaArn (string) – [REQUIRED]
The Amazon Resource Name (ARN) of the Lambda function to invoke.
lex (dict) –
Contains configurations for a Lex node in your flow. Invokes an Amazon Lex bot to identify the intent of the input and return the intent as the output.
botAliasArn (string) – [REQUIRED]
The Amazon Resource Name (ARN) of the Amazon Lex bot alias to invoke.
localeId (string) – [REQUIRED]
The Region to invoke the Amazon Lex bot in.
output (dict) –
Contains configurations for an output flow node in your flow. The last node in the flow.
outputs
can’t be specified for this node.prompt (dict) –
Contains configurations for a prompt node in your flow. Runs a prompt and generates the model response as the output. You can use a prompt from Prompt management or you can configure one in this node.
sourceConfiguration (dict) – [REQUIRED]
Specifies whether the prompt is from Prompt management or defined inline.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:
inline
,resource
.inline (dict) –
Contains configurations for a prompt that is defined inline
inferenceConfiguration (dict) –
Contains inference configurations for the prompt.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:
text
.text (dict) –
Contains inference configurations for a text prompt.
maxTokens (integer) –
The maximum number of tokens to return in the response.
stopSequences (list) –
A list of strings that define sequences after which the model will stop generating.
(string) –
temperature (float) –
Controls the randomness of the response. Choose a lower value for more predictable outputs and a higher value for more surprising outputs.
topK (integer) –
The number of most-likely candidates that the model considers for the next token during generation.
topP (float) –
The percentage of most-likely candidates that the model considers for the next token.
modelId (string) – [REQUIRED]
The unique identifier of the model to run inference with.
templateConfiguration (dict) – [REQUIRED]
Contains a prompt and variables in the prompt that can be replaced with values at runtime.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:
text
.text (dict) –
Contains configurations for the text in a message for a prompt.
inputVariables (list) –
An array of the variables in the prompt template.
(dict) –
Contains information about a variable in the prompt.
name (string) –
The name of the variable.
text (string) – [REQUIRED]
The message for the prompt.
templateType (string) – [REQUIRED]
The type of prompt template.
resource (dict) –
Contains configurations for a prompt from Prompt management.
promptArn (string) – [REQUIRED]
The Amazon Resource Name (ARN) of the prompt from Prompt management.
retrieval (dict) –
Contains configurations for a Retrieval node in your flow. Retrieves data from an Amazon S3 location and returns it as the output.
serviceConfiguration (dict) – [REQUIRED]
Contains configurations for the service to use for retrieving data to return as the output from the node.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:
s3
.s3 (dict) –
Contains configurations for the Amazon S3 location from which to retrieve data to return as the output from the node.
bucketName (string) – [REQUIRED]
The name of the Amazon S3 bucket from which to retrieve data.
storage (dict) –
Contains configurations for a Storage node in your flow. Stores an input in an Amazon S3 location.
serviceConfiguration (dict) – [REQUIRED]
Contains configurations for the service to use for storing the input into the node.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:
s3
.s3 (dict) –
Contains configurations for the Amazon S3 location in which to store the input into the node.
bucketName (string) – [REQUIRED]
The name of the Amazon S3 bucket in which to store the input into the node.
inputs (list) –
An array of objects, each of which contains information about an input into the node.
(dict) –
Contains configurations for an input to a node.
expression (string) – [REQUIRED]
An expression that formats the input for the node. For an explanation of how to create expressions, see Expressions in Prompt flows in Amazon Bedrock.
name (string) – [REQUIRED]
A name for the input that you can reference.
type (string) – [REQUIRED]
The data type of the input. If the input doesn’t match this type at runtime, a validation error will be thrown.
name (string) – [REQUIRED]
A name for the node.
outputs (list) –
A list of objects, each of which contains information about an output from the node.
(dict) –
Contains configurations for an output from a node.
name (string) – [REQUIRED]
A name for the output that you can reference.
type (string) – [REQUIRED]
The data type of the output. If the output doesn’t match this type at runtime, a validation error will be thrown.
type (string) – [REQUIRED]
The type of node. This value must match the name of the key that you provide in the configuration you provide in the
FlowNodeConfiguration
field.
description (string) – A description for the flow.
executionRoleArn (string) –
[REQUIRED]
The Amazon Resource Name (ARN) of the service role with permissions to create and manage a flow. For more information, see Create a service role for flows in Amazon Bedrock in the Amazon Bedrock User Guide.
name (string) –
[REQUIRED]
A name for the flow.
tags (dict) –
Any tags that you want to attach to the flow. For more information, see Tagging resources in Amazon Bedrock.
(string) –
(string) –
- Return type:
dict
- Returns:
Response Syntax
{ 'arn': 'string', 'createdAt': datetime(2015, 1, 1), 'customerEncryptionKeyArn': 'string', 'definition': { 'connections': [ { 'configuration': { 'conditional': { 'condition': 'string' }, 'data': { 'sourceOutput': 'string', 'targetInput': 'string' } }, 'name': 'string', 'source': 'string', 'target': 'string', 'type': 'Data'|'Conditional' }, ], 'nodes': [ { 'configuration': { 'agent': { 'agentAliasArn': 'string' }, 'collector': {}, 'condition': { 'conditions': [ { 'expression': 'string', 'name': 'string' }, ] }, 'input': {}, 'iterator': {}, 'knowledgeBase': { 'knowledgeBaseId': 'string', 'modelId': 'string' }, 'lambdaFunction': { 'lambdaArn': 'string' }, 'lex': { 'botAliasArn': 'string', 'localeId': 'string' }, 'output': {}, 'prompt': { 'sourceConfiguration': { 'inline': { 'inferenceConfiguration': { 'text': { 'maxTokens': 123, 'stopSequences': [ 'string', ], 'temperature': ..., 'topK': 123, 'topP': ... } }, 'modelId': 'string', 'templateConfiguration': { 'text': { 'inputVariables': [ { 'name': 'string' }, ], 'text': 'string' } }, 'templateType': 'TEXT' }, 'resource': { 'promptArn': 'string' } } }, 'retrieval': { 'serviceConfiguration': { 's3': { 'bucketName': 'string' } } }, 'storage': { 'serviceConfiguration': { 's3': { 'bucketName': 'string' } } } }, 'inputs': [ { 'expression': 'string', 'name': 'string', 'type': 'String'|'Number'|'Boolean'|'Object'|'Array' }, ], 'name': 'string', 'outputs': [ { 'name': 'string', 'type': 'String'|'Number'|'Boolean'|'Object'|'Array' }, ], 'type': 'Input'|'Output'|'KnowledgeBase'|'Condition'|'Lex'|'Prompt'|'LambdaFunction'|'Storage'|'Agent'|'Retrieval'|'Iterator'|'Collector' }, ] }, 'description': 'string', 'executionRoleArn': 'string', 'id': 'string', 'name': 'string', 'status': 'Failed'|'Prepared'|'Preparing'|'NotPrepared', 'updatedAt': datetime(2015, 1, 1), 'version': 'string' }
Response Structure
(dict) –
arn (string) –
The Amazon Resource Name (ARN) of the flow.
createdAt (datetime) –
The time at which the flow was created.
customerEncryptionKeyArn (string) –
The Amazon Resource Name (ARN) of the KMS key that you encrypted the flow with.
definition (dict) –
A definition of the nodes and connections between nodes in the flow.
connections (list) –
An array of connection definitions in the flow.
(dict) –
Contains information about a connection between two nodes in the flow.
configuration (dict) –
The configuration of the connection.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
conditional
,data
. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBER
as the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBER
is as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
conditional (dict) –
The configuration of a connection originating from a Condition node.
condition (string) –
The condition that triggers this connection. For more information about how to write conditions, see the Condition node type in the Node types topic in the Amazon Bedrock User Guide.
data (dict) –
The configuration of a connection originating from a node that isn’t a Condition node.
sourceOutput (string) –
The name of the output in the source node that the connection begins from.
targetInput (string) –
The name of the input in the target node that the connection ends at.
name (string) –
A name for the connection that you can reference.
source (string) –
The node that the connection starts at.
target (string) –
The node that the connection ends at.
type (string) –
Whether the source node that the connection begins from is a condition node (
Conditional
) or not (Data
).
nodes (list) –
An array of node definitions in the flow.
(dict) –
Contains configurations about a node in the flow.
configuration (dict) –
Contains configurations for the node.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
agent
,collector
,condition
,input
,iterator
,knowledgeBase
,lambdaFunction
,lex
,output
,prompt
,retrieval
,storage
. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBER
as the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBER
is as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
agent (dict) –
Contains configurations for an agent node in your flow. Invokes an alias of an agent and returns the response.
agentAliasArn (string) –
The Amazon Resource Name (ARN) of the alias of the agent to invoke.
collector (dict) –
Contains configurations for a collector node in your flow. Collects an iteration of inputs and consolidates them into an array of outputs.
condition (dict) –
Contains configurations for a Condition node in your flow. Defines conditions that lead to different branches of the flow.
conditions (list) –
An array of conditions. Each member contains the name of a condition and an expression that defines the condition.
(dict) –
Defines a condition in the condition node.
expression (string) –
Defines the condition. You must refer to at least one of the inputs in the condition. For more information, expand the Condition node section in Node types in prompt flows.
name (string) –
A name for the condition that you can reference.
input (dict) –
Contains configurations for an input flow node in your flow. The first node in the flow.
inputs
can’t be specified for this node.iterator (dict) –
Contains configurations for an iterator node in your flow. Takes an input that is an array and iteratively sends each item of the array as an output to the following node. The size of the array is also returned in the output.
The output flow node at the end of the flow iteration will return a response for each member of the array. To return only one response, you can include a collector node downstream from the iterator node.
knowledgeBase (dict) –
Contains configurations for a knowledge base node in your flow. Queries a knowledge base and returns the retrieved results or generated response.
knowledgeBaseId (string) –
The unique identifier of the knowledge base to query.
modelId (string) –
The unique identifier of the model to use to generate a response from the query results. Omit this field if you want to return the retrieved results as an array.
lambdaFunction (dict) –
Contains configurations for a Lambda function node in your flow. Invokes an Lambda function.
lambdaArn (string) –
The Amazon Resource Name (ARN) of the Lambda function to invoke.
lex (dict) –
Contains configurations for a Lex node in your flow. Invokes an Amazon Lex bot to identify the intent of the input and return the intent as the output.
botAliasArn (string) –
The Amazon Resource Name (ARN) of the Amazon Lex bot alias to invoke.
localeId (string) –
The Region to invoke the Amazon Lex bot in.
output (dict) –
Contains configurations for an output flow node in your flow. The last node in the flow.
outputs
can’t be specified for this node.prompt (dict) –
Contains configurations for a prompt node in your flow. Runs a prompt and generates the model response as the output. You can use a prompt from Prompt management or you can configure one in this node.
sourceConfiguration (dict) –
Specifies whether the prompt is from Prompt management or defined inline.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
inline
,resource
. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBER
as the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBER
is as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
inline (dict) –
Contains configurations for a prompt that is defined inline
inferenceConfiguration (dict) –
Contains inference configurations for the prompt.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
text
. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBER
as the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBER
is as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
text (dict) –
Contains inference configurations for a text prompt.
maxTokens (integer) –
The maximum number of tokens to return in the response.
stopSequences (list) –
A list of strings that define sequences after which the model will stop generating.
(string) –
temperature (float) –
Controls the randomness of the response. Choose a lower value for more predictable outputs and a higher value for more surprising outputs.
topK (integer) –
The number of most-likely candidates that the model considers for the next token during generation.
topP (float) –
The percentage of most-likely candidates that the model considers for the next token.
modelId (string) –
The unique identifier of the model to run inference with.
templateConfiguration (dict) –
Contains a prompt and variables in the prompt that can be replaced with values at runtime.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
text
. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBER
as the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBER
is as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
text (dict) –
Contains configurations for the text in a message for a prompt.
inputVariables (list) –
An array of the variables in the prompt template.
(dict) –
Contains information about a variable in the prompt.
name (string) –
The name of the variable.
text (string) –
The message for the prompt.
templateType (string) –
The type of prompt template.
resource (dict) –
Contains configurations for a prompt from Prompt management.
promptArn (string) –
The Amazon Resource Name (ARN) of the prompt from Prompt management.
retrieval (dict) –
Contains configurations for a Retrieval node in your flow. Retrieves data from an Amazon S3 location and returns it as the output.
serviceConfiguration (dict) –
Contains configurations for the service to use for retrieving data to return as the output from the node.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
s3
. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBER
as the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBER
is as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
s3 (dict) –
Contains configurations for the Amazon S3 location from which to retrieve data to return as the output from the node.
bucketName (string) –
The name of the Amazon S3 bucket from which to retrieve data.
storage (dict) –
Contains configurations for a Storage node in your flow. Stores an input in an Amazon S3 location.
serviceConfiguration (dict) –
Contains configurations for the service to use for storing the input into the node.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
s3
. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBER
as the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBER
is as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
s3 (dict) –
Contains configurations for the Amazon S3 location in which to store the input into the node.
bucketName (string) –
The name of the Amazon S3 bucket in which to store the input into the node.
inputs (list) –
An array of objects, each of which contains information about an input into the node.
(dict) –
Contains configurations for an input to a node.
expression (string) –
An expression that formats the input for the node. For an explanation of how to create expressions, see Expressions in Prompt flows in Amazon Bedrock.
name (string) –
A name for the input that you can reference.
type (string) –
The data type of the input. If the input doesn’t match this type at runtime, a validation error will be thrown.
name (string) –
A name for the node.
outputs (list) –
A list of objects, each of which contains information about an output from the node.
(dict) –
Contains configurations for an output from a node.
name (string) –
A name for the output that you can reference.
type (string) –
The data type of the output. If the output doesn’t match this type at runtime, a validation error will be thrown.
type (string) –
The type of node. This value must match the name of the key that you provide in the configuration you provide in the
FlowNodeConfiguration
field.
description (string) –
The description of the flow.
executionRoleArn (string) –
The Amazon Resource Name (ARN) of the service role with permissions to create a flow. For more information, see Create a service role for flows in Amazon Bedrock in the Amazon Bedrock User Guide.
id (string) –
The unique identifier of the flow.
name (string) –
The name of the flow.
status (string) –
The status of the flow. When you submit this request, the status will be
NotPrepared
. If creation fails, the status becomesFailed
.updatedAt (datetime) –
The time at which the flow was last updated.
version (string) –
The version of the flow. When you create a flow, the version created is the
DRAFT
version.
Exceptions