Using GenAI – Generate my Meeting Minutes!
Today I will share another example where I utilize Generative AI with you. Although the story is explained quite quickly. Documenting meeting minutes can be a tedious task, especially when I am an active participant. However, the outcome of the meeting is crucial as I need to share the action items and results with my colleagues.
What if I had a buddy who could do this task for me? Right, I use my Generative AI for this. In other words, I use the recorded transcript and pass this text to my AI. Furthermore, my AI understands the transcript and create my meeting minutes in seconds. Finally, I share the minutes with my colleagues.
Testing my concept
You know, testing this concept is important. For this I use my own Azure OpenAI Chatbot to generate my demo data. I enter this:
Generate me a demo meeting transcript output from a sales meeting. The transcript should contain at least 4 persons and the duration is approx. 45 minutes. In addition, add timestamps to the result. Use 1000 words for the conversation between the attendees and start directly with the first conversation. Use names for the attendees.
The result is this:
OK, this was easy. Now I will test my next step. I enter this:
Generate the meeting minutes.
Again, the result is acceptable for me:
My Solution Draft
My future solution has two parts. The Azure part is where I use an Azure Container App to generate the meeting minutes from the meeting transcript. I already implemented this app based on Python, FastAPI, LangChain. As you see in the architecture overview, my app provides an API and uses gpt-3.5-turbo-16k
as LLM in my and Azure OpenAI instance:
I will explain these implementation details soon in a separate blog post.
The second part of my solution is a minimized user interface. Here I will use a Power Automate Flow to upload my meeting minutes. In addition, my Power Automate Flow will call my Azure API and invoke the generation of my meeting minutes. Finally, my Flow will post a message in Microsoft Teams to me and deliver the result.
Implementing a Solution
First, I’ll give you an overview of my solution in Microsoft Azure. Here, my API is already implemented and deployed as an Azure Container App in my Azure Tenant:
I love this approach, because an Azure Containerized App allows me to host my API applications with a minimum of cost. I only pay for the consumption of my application when it is used. In detail, I use the configured auto scaling feature of my container app:
This scales my application down to zero, when no one is using it. In other words, my application only consumes my Azure credits, when my API is used, and my application is executed. The downside is the first call takes some seconds until my container app is up and running.
Here are some more details of my API. My Meeting Minutes Generator
have 1 method. Right, this method generates the meeting minutes from a given text:
Yes, I can use that API directly and I get my meeting minutes generated:
But you know, there is a better way. I follow my plan and create a user interface in seconds within a Power Automate Flow.
My Power Automate Flow
I have already explained that I use a simple Power Automate Flow as my user interface. Here is the result:
First, I use a manual trigger to upload my meeting transcript file. Next, I use my Get File Content
compose action to extract the content of my file. This content is Base64 encoded. That’s why I use the second compose action to decode this content into plain text. The formula is this:
base64ToString(outputs('Get_File_Content'))
Afterwards, I pass the decodes meeting transcript directly into my HTTP Generate Meeting Minutes
action. However, I know that API call can take a while. This means, I must extend the timeout in my Power Automate Flow action:
My tip to you is this: Ask the AI for the correct format…
Finally, I use a Microsoft Teams action Post message in a chat or channel
to send the generated meeting minutes directly back to the person who have triggered my Power Automate Flow:
Generate Meeting Minutes in Action
My solution in action is this. I run my prepared Power Automate Flow and select my transcript file from Microsoft Teams:
This will take a while and depends on the size of my transcript file.
Finally, I receive this Microsoft Teams message which contains my AI generated meeting minutes:
Perfect! I created a solution where my AI generates meeting minutes from my transcript.
Summary
The areas in which I can use generative AI are almost unlimited. Most of the time, the solution depends on my imagination and the combination of existing technologies. In detail, I proved a potential solution by using my Azure OpenAI chatbot. Furthermore, you saw that I also used the AI to generate my demo meeting transcript.
After I got this positive proof of my concept I started to drafted a minimal solution. I used a Pro-Developer approach in Microsoft Azure. This means, I implemented and deployed an API as containerized app that uses Azure OpenAI to generate my meeting minutes.
The rest of my solution is a simple Power Automate Flow that I use as my user interface. My Flow can upload my transcript file and pass the file content to my API. Furthermore, my Flow waits until the meeting minutes are generated from my containerized app. Finally, the Flow send me the resulting meeting minutes back as Microsoft Teams message.
My conclusion: Using a simplified Power Platform solution as a user interface helps with the use of generative AI!