Amazon SageMaker Unified Studio is in preview release and is subject to change.
Create a flow app
In this section you first build a flow app that generates a playlist of music from an Amazon Bedrock knowledge base of songs by fictional local bands. Next, you use Reusable prompts to add a prompt that can customizes the playlist for different genres of music.
Topics
Step 1: Create an initial flow app
In this procedure you create an initial flow app which has an Flow input node and a Flow output node.
A flow contains only one flow input node which is where the flow begins. The flow input node takes your input and passes it to the next node in a data type of your choice (String, Number, Boolean, Object and Array). In these procedures, the input to the flow is a String. To learn more about using different data types in a flow, see Define inputs with expressions.
A flow output node extracts the input data from the previous node, based on the defined expression, and outputs the data. A flow can have multiple flow output nodes if there are multiple branches in the flow.
After completing the procedure, the flow app is empty, other than the flow input and flow output nodes. In the next step you add Knowledge Base as a data source and run the flow app for the first time.
While you develop your app, you work on the current draft. You can save the current draft to the app history. Later you might want to restart work from a previous draft. For more information, see Use app history to view and restore versions of an app.
To create an initial flow app
-
Navigate to the Amazon SageMaker Unified Studio landing page by using the URL from your admininstrator.
-
Access Amazon SageMaker Unified Studio using your IAM or single sign-on (SSO) credentials. For more information, see Access Amazon SageMaker Unified Studio.
-
On the Amazon SageMaker Unified Studio home page, navigate to the Amazon Bedrock IDE tile.
For the Build chat agent app button dropdown, select Build flow.
In the Select or create a new project to continue dialog box, do one of the following:
-
If you want to use a new project, follow the instructions at Create a new project. For the Project profile in step 1, choose Generative AI application development.
-
If you want to use an existing project, select the project that you want to use and then choose Continue.
-
-
In the flow builder, choose the flow name (Untitled flow-nnnn) and enter
Local bands
as the name for the flow. -
In the flow app builder pane, select the Nodes tab. The center pane displays a Flow input node and a Flow output node. These are the input and output nodes for your flow. The circles on the nodes are connection points. In the next procedure, you use the connection points to connect a Knowledge Base node to the Flow input node and the Flow output node.
Next step: Step 2: Add a Knowledge Base to your flow app.
Step 2: Add a Knowledge Base to your flow app
In this procedure, you add a Knowlege Base node as a data source to the flow that you created in Step 1: Create an initial flow app. The Knowledge Base you add is Comma Seperated Values (CSV) file containing a list of ficticious songs and artists. The list includes the duration (seconds) and genre of each song. For more information about Knowledge Bases, see Add a data source to your app.
During the procedure, you make connections from the Flow input node to the Knowledge Base node and from the Knowledge Base node to the Flow output node. At some point, you might need to delete a node or remove a node connection. To delete a node, select the node that you want to delete and press the Delete button. To remove a connection, choose the connection that you want to delete and then press the delete button.
When you run the flow with the input Create a playlist
, the app
creates a playlist using songs only from the Knowledge Base.
To create the flow with a Knowledge Base
-
Create a CSV file name songs.csv and fill with the following ficticious CSV data. This is the data source for your Knowledge Base. Save the CSV file to your local computer.
song,artist,genre,length-seconds "Celestial Odyssey","Starry Renegades","Cosmic Rock",240 "Neon Rapture","Synthwave Siren","Synthwave Pop",300 "Wordsmith Warriors","Lyrical Legions","Lyrical Flow",180 "Nebula Shredders","Galactic Axemen","Cosmic Rock",270 "Electro Euphoria","Neon Nomads","Synthwave Pop",210 "Rhythm Renegades","Percussive Pioneers","Lyrical Flow",240 "Stardust Rift","Cosmic Crusaders","Cosmic Rock",180 "Synthwave Serenade","Electro Enchanters","Synthwave Pop",300 "Lyrical Legends","Rhyme Royale","Lyrical Flow",240 "Supernova Shredders","Amplified Ascension","Cosmic Rock",300 "Celestial Chords","Ethereal Echoes","Cosmic Rock",240 "Neon Nirvana","Synthwave Sirens","Synthwave Pop",270 "Verbal Virtuoso","Lyrical Maestros","Lyrical Flow",210 "Cosmic Collision","Stellar Insurgents","Cosmic Rock",180 "Pop Paradox","Melodic Mavericks","Synthwave Pop",240 "Flow Fusion","Verbal Virtuosos","Lyrical Flow",300 "Shredding Shadows","Crimson Crusaders","Cosmic Rock",270 "Synth Serenade","Electro Enchanters","Synthwave Pop",180 "Wordsmith Warlords","Lyrical Legionnaires","Lyrical Flow",240 "Sonic Supernova","Amplified Ascension","Cosmic Rock",210 "Celestial Symphony","Ethereal Ensemble","Cosmic Rock",300 "Electro Euphoria","Neon Nomads","Synthwave Pop",180 "Lyrical Legends","Rhyme Royale","Lyrical Flow",270 "Crimson Crescendo","Scarlet Serenaders","Cosmic Rock",240 "Euphoric Tides","Melodic Mystics","Synthwave Pop",210 "Rhythm Renegades","Percussive Pioneers","Lyrical Flow",180 "Cosmic Collision","Stellar Insurgents","Cosmic Rock",300 "Stardust Serenade","Celestial Crooners","Synthwave Pop",240 "Wordsmith Warriors","Lyrical Legions","Lyrical Flow",270 "Sonic Supernova III","Amplified Ascension","Cosmic Rock",180
Open the flow app that you created in Step 1: Create an initial flow app.
-
Add and configure a Knowledge Base node by doing the following:
-
In the flow app builder pane, select the Nodes tab.
-
From the Data section, drag a Knowledge Base node onto the flow builder canvas.
-
The circles on the nodes are connection points. Using your mouse, click on the circle for the Flow input node and draw a line to the circle on Input section of the Knowledge Base node that you just added.
-
Connect the Output of the Knowledge Base node in your flow with the Input of the Flow output node.
-
Select the Knowledge Base node that you just added.
-
In the flow builder pane, choose the Configure tab and do the following:
-
In Node name enter
Local_bands_knowledge_base
. -
In Knowledge Base Details, choose Create new Knowledge Base to open the Create Knowledge Base pane.
-
For Knowledge Base name, enter
Local-bands
. -
For Knowledge Base description, enter
Songs by local bands. Includes song, artist, genre, and song length (in seconds).
. -
In Add data sources, choose Local file.
-
Choose Click to upload and upload the CSV file (songs.csv) that you created in step 1. Alternatively, add your source document by dragging and dropping the CSV from your computer.
-
For Parsing leave as Default parsing.
-
For Embeddings model, choose a model for converting your data into vector embeddings.
-
For Vector store, choose OpenSearch Serverless.
-
Choose Create to create the Knowledge Base. It might take a few minutes to create the Knowledge Base.
-
-
Back in the flow builder pane, in Select Knowledge Base, select the Knowledge Base that you just created (Local-bands).
-
In Select response generation model, select the model that you want the Knowledge Base to generate responses with.
-
Choose Save to save the app.
-
Test your prompt by doing the following:
On right side of the page, choose < to open the test pane.
-
Enter
Create a playlist
in the prompt Text box. -
Press Enter on the keyboard or choose the run button to test the prompt.
-
If necessary, make changes to your flow. If you are satisfied with the flow, choose Save.
Next step: Step 3: Add a prompt to your flow app.
Step 3: Add a prompt to your flow app
In this procedure you add a prompt to the flow by adding a prompt node. The prompt allows you to easily choose which genre of songs should be included in the playlist that the flow generates. For more information, see Reuse and share prompts.
To add a prompt to the flow
-
In the flow builder pane, select Nodes.
-
From the Orchestration section, drag a Prompt node onto the flow builder canvas.
-
Select the node you just added.
-
In the Configurations tab of the flow builder pane, do the following:
-
In Node name enter
Playlist_generator_node
. In Prompt details choose Create new prompt to open the Create prompt pane.
For Prompt name enter
Playlist_generator_prompt
.For Model, choose the model that you want the prompt to use.
For Prompt message enter
Create a playlist of songs in the genre {{genre}}.
.(Optional) In Model configs, make changes to the inference parameters.
Choose Save draft and create version to create the prompt. It might take a couple of minutes to finish creating the prompt.
-
In the flow builder, choose the prompt node that you just added.
-
In the Configure tab, do the following in the Prompt details section:
In Prompt select the prompt that you just created.
In Version select the version (1) of the prompt to use.
Update the flow paths by doing the following:
-
Delete the output from the Knowledge Base node that goes into the Flow output.
-
Connect the output from the Knowledge Base node to the input of the Prompts node.
-
Connect the output from the Prompts node to the input of the Flow output node.
-
Choose Save to save the flow. The flow should look similar to the following.
Test your prompt by doing the following:
On right side of the app flow page, choose < to open the test pane.
-
For the Text box, enter
Cosmic Rock
. -
Press Enter on the keyboard or choose the run button to test the prompt. The response should be a playlist of songs in the Cosmic Rock genre.
-
Change the prompt to
Synthwave Pop
and run the prompt again. The songs should now be from the Synthwave Pop genre. -
If necessary, make changes to your flow. If you are satisfied with the flow, choose Save.