DEV Community

Cover image for Understanding Amazon Bedrock's New Feature - "Flows"

Understanding Amazon Bedrock's New Feature - "Flows"

Amazon Bedrock continues to evolve its capabilities with the introduction of Flows, a powerful new feature that enables developers to orchestrate complex AI workflows efficiently. This post will explore Flows, how they work, and how you can leverage them in your applications.

What are Amazon Bedrock Flows?

Flows are a new orchestration tool within Amazon Bedrock that allows developers to create sequences of connected events and actions. Think of it as a visual workflow builder for AI operations, where you can chain together different services and define how they interact.

Screenshot captured by the Author from AWS console


PREREQUISITES

  • Basic experience navigating the AWS Management Console.
  • Fundamental understanding of AWS Bedrock service, including AI Agents, Prompts, and Knowledge Bases.

Let's try to create a basic application using Flow Builder - customer_service_flow. In this application, we will take the user input, and based on that, we will decide whether they want to book a new appointment or have a query that we can answer based on our FAQs knowledge base.

Step:1 Create a flow by providing a name and a service role.


After creating a flow, let's examine the types of nodes available and how to use them to create our desired application.

All the nodes in the flow builder are bucketed into six categories:

  1. Logic - Nodes to control the logic of your flow.
  2. Orchestration - Nodes for LLM agents and prompts, helps use a specific prompt or call a particular agent with an input.
  3. Code - A simple node triggers the Lambda function and gets the output.
  4. Data - Everything related to data retrieval, storage, and sending a query to a knowledge base.
  5. AI Services - An Amazon Lex node sends the input to an Amazon Lex bot for interpretation.

Screenshot captured by the Author from AWS Bedrock console

Firstly, we will start with a basic prompt node to help us classify whether the user wants to book an appointment or if the query is related to something else. Prompt we will be using:

Take the user {{input}} and analyze whether they want to book an 
appointment or have any other query.

Output "APPOINTMENT" if they want to book a new service appointment 
else, output "OTHER"

Only respond with a category.
Enter fullscreen mode Exit fullscreen mode

Our flow structure will look like this.

Screenshot captured by the Author from Flow console

Let's enhance our flow by adding some logic to it with the help of the "Condition" node. After classification, this node will point the flow in that respective direction. Think of it as a traffic controller that directs conversations down different paths depending on their content.
For example, after classifying incoming messages, we'll create two distinct paths: one for appointment requests and another for general inquiries. Let's test this with the message "Do you guys do plumbing work?" Since this is a general service inquiry rather than an appointment request, our prompt node classifies it as "OTHER." The Condition node then routes it to "FlowOutputNode_2" where we display the prompt output (for demonstration purposes).

Screenshot captured by the Author from Flow console

Add our knowledge base and AI agent to the flow to handle the respective route. After doing so, our flow will look something like the below diagram.

Flow diagram created by the author - Somil Gupta

And YES, that's it. We have successfully created our desired application using the new flow builder.

Flows for Amazon Bedrock makes it easy to link foundation models (FMs), prompts, and other AWS services to quickly create, test, and run your flows. You can manage flows using the visual builder in the Amazon Bedrock console, which saves a lot of time when creating a generative AI workflow.

Do try it out on your own. Happy Building!!


Thanks for reading my story. If you want to read more stories like this, I invite you to follow me.
Till then, Sayonara! I wish you the best in your learning journey.

Top comments (0)