Building LLMs Orchestration Flows
Learn how to build prompt flow orchestrations for your LLM App.
Prerequisites
An Azure subscription where you can create an AI Hub Resource and a AI Search service.
Setup
If you are running this Lab after lesson 1, you don’t need to worry about this step. Otherwise, follow Setup from Lesson 1 to create a project and its associated resources in Azure AI Studio, as well as to deploy the GPT-4 model.
Lab Steps
During this lab, we will cover the following steps:
1) Create a standard classification flow. 2) Create a conversational RAG flow.
1) Create a standard classification flow
Open your web browser and navigate to: https://ai.azure.com
Select the AI project that you created during the setup. Then, in the Build menu, select the Prompt flow option and click on the blue Create button.
We will create a Standard flow for classifying websites on the internet.
In the flow creation window, select the Standard flow filter in the Explore gallery section.
Then, click on the Clone button in the Web Classification box.
Use the default name for the flow, or if you prefer, define a name of your preference and click on Clone.
A Standard flow will be created with the following structure:
Notice that the flow has five nodes, the first fetch_text_content_from_url
is a python node to extract the text from a Web page.
Then the content obtained by the extraction serves as input for an LLM node summarize_text_content
to summarize the content.
The summarization, combined with the classification examples generated by a python node prepare_examples
is the input for another LLM node classify_with_llm
where the classification is performed.
At the end, we have a Python node convert_to_dict
responsible for formatting the output of the flow in a python dictionary format.
Now that the flow has been created, we need a runtime to execute it in the Prompt Flow.
Select Start in the runtime dropdown to start a runtime to run your flow:
After starting the Runtime, we need to define the Connection with the LLM for each LLM step. In our case, these are summarize_text_content
and classify_with_llm
.
We will use the Default_AzureOpenAI
Connection, which connects to the Azure OpenAI resource that was created when the Azure AI project was set up.
Select gpt-4
in the deployment_name. This deployment was created during Setup.
Associate the same Connection for the classify_with_llm
step:
Note: you can leave the
response_format
field in blank or select the{"type":"text"}
.
Once the Runtime is selected and the Connections are configured, you can start the flow by clicking the Run button at the top of the page.
The input required for the flow execution is specified in its input section.
After finishing the execution you will see that the flow is complete with all steps.
You can view the result of the processing by clicking the last node.
2) Create a conversational RAG flow
Now you will create a conversational flow using the RAG pattern, start by creating a new flow in the Prompt Flow item in the Tools section within the Build tab.
Select the Multi-Round Q&A on Your Data template after clicking the Create button.
Click on the Clone button. A flow with the following structure will be created.
Start the automatic runtime by selecting Start in the Runtime drop down. The runtime will be useful for you to work with the flow moving forward.
Click the Save button to save your flow.
2.1) Flow overview
The first node, modify_query_with_history
, produces a search query using the user’s question and their previous interactions. Next, in the lookup
node, the flow uses the vector index to conduct a search within a vector store, which is where the RAG pattern retrieval step takes place. Following the search process, the generate_prompt_context
node consolidates the results into a string. This string then serves as input for the Prompt_variants
node, which formulates various prompts. Finally, these prompts are used to generate the user’s answer in the chat_with_context
node.
2.2) Search index
Before you can start running your flow, a crucial step is to establish the search index for the Retrieval stage. This search index will be provided by the Azure AI Search service.
The AI Search service was originally created in the Setup section of this lab. If you have not yet created the Search service, you will need to set one up as explained below. With the search service created, you can now proceed to create the index.
In our case, we will create a Vector index. To do this, you just need to go back to the project in the AI Studio, select the Indexes option, and then click on the New index button.
At the Source data
stage, select the Upload files/folders
option and upload the PDF files/surface-pro-4-user-guide-EN.pdf
to the data folder of this lab, as shown in the next screen.
In Index storage
, select the Search Service you created earlier.
If someone has created the AI Search service for you, you can also use it to create the index. Simply select it in the Select Azure AI Search service option.
Under Search settings
, select Add vector search to this … as indicated in the following image.
In Index settings
, keep the default options as indicated below.
Note: If you want to select a virtual machine configuration, click on the Select from recommended options. If you don’t select, the default configuration will use serverless processing.
Great, now just click on the Create button at the Review and finish
stage.
The indexing job will be created and submitted for execution, so please wait a while for it to complete.
It may take about 10 minutes from the time it enters the execution queue until it starts.
Wait until the index status is Completed
as in the next image, before proceeding with the next steps.
Done! You have created the index, as can be seen in the Indexes item of the Components section.
Now return to the RAG flow created in Prompt flow to configure the lookup
node.
After selecting the lookup
node, click on mlindex_content
.
A Generate window will appear. In this window, select the Registered Index
option from the index_type
field. Then, choose version 1 of the index you just created, as shown in the following image. After making these selections, click on Save.
Now, let’s go back to the lookup
node. Select the Hybrid (vector + keyword)
option from the query_type field, as shown in the subsequent image.
2.3) Updating connection information
Now you will need to update the Connections of the nodes that link with LLM models.
Starting with the Connection in the modify_query_with_history
node with the gpt-4 deployment, as indicated below:
And the Connection for the chat_with_context node
with the gpt-4 deployment, as indicated below:
2.4) Testing your RAG flow
Everything is now set up for you to initiate your chat flow. Simply click on the blue Chat button located at the top right corner of your page to begin interacting with the flow.