logo
Menu
SummarizeMe: Your Meeting TL;DR App

SummarizeMe: Your Meeting TL;DR App

Discover how AI tools helped me build SummarizeMe, an app that transforms meeting recordings into concise summaries.

Antje Barth
Amazon Employee
Published Sep 30, 2024
If you've followed some of my recent keynotes and talks, you know I've been passionate about how AI is transforming not just what we build but also how we build it. As developers, we're witnessing a pivotal shift where AI is automating repetitive tasks, enabling us to focus more on innovation and creativity.
One example from my day-to-day life are meetings. They are essential for collaboration, however, they often generate lengthy meeting recordings that can be time-consuming to review. (And let's be honest, we often don't find the time to watch them anyways.)
In this post, I'll show you how I built SummarizeMe, a meeting summarization app, with the help of AI tools. Along the way, I'll explore how advancements in AI reasoning and developer tools are changing the way we build applications.
πŸ’» Jump directly to the GitHub repo.

Features of SummarizeMe

SummarizeMe performs the following steps:
  1. Transcribe audio/video content using Amazon Transcribe.
  2. Summarize meeting transcriptions using Anthropic's Claude 3 Haiku in Amazon Bedrock.
  3. Extract key points and action items from the meeting.
  4. Create video summaries using HeyGen.
  5. Save transcriptions, key points, and action items to separate text files.
😎 Bonus: The generated video summary will feature the latest version of my agentic-looking avatar!
Agentic-looking avatar of Antje
Agentic-looking avatar of Antje

How I built the App

Development Environment

Before diving into coding, I set up my development environment. I chose Visual Studio Code (VSCode) as my IDE, with the Amazon Q Developer plugin installed to leverage AI-assisted coding features. (See: Installing the Amazon Q Developer extension or plugin in your IDE.)
I chose Python to develop the app and installed the necessary Python libraries, such as as boto3 for interacting with AWS services and requests for API calls.

Creating Project Code from Scratch

To kickstart the development of SummarizeMe, I leveraged the /dev feature of Amazon Q Developer to create a first draft of my codebase. This agent for software development can generate foundational code quickly by simply describing what you want the application to do.
In the Amazon Q panel within VSCode, I entered:
Within moments, Amazon Q Developer Agent provided me with a first draft of the code, including skeleton functions for each of these tasks.
Kickstarting the development of SummarizeMe with the /dev feature of Amazon Q Developer
Kickstarting the development of SummarizeMe with the /dev feature of Amazon Q Developer

Reviewing and Enhancing the Generated Code

The initial code provided a solid foundation. Next, I reviewed each function and enhanced the function logic to meet my needs. For example, the first code draft used the invoke_model() API in Amazon Bedrock, I changed the code to use the converse() API instead.
The initial code also used a single Bedrock API call to generate a meeting transcript summary that included both the key points discussed and the action items. For the video summary generation, I needed the key points and action items as separate inputs. Therefore, I asked Q Developer Agent to split the the Bedrock API call into two distinct API calls.
Previously, the Q Developer Agent required human intervention to review and approve a work plan before writing code. Now, with significant internal improvements, the agent combines the planning and coding phases and works in iterations. This means it can adapt on the fly and autonomously solve problems without direct human guidance. You can see this nicely in my change request.
Using Amazon Q Developer Agent to split the single Bedrock API call in two API calls.
Using Amazon Q Developer Agent to split the single Bedrock API call in two API calls.
The agent responded with complete and accurate code updates to separate the API calls that I reviewed and accepted.

Creating README and Code Documentation

Before I committed the code, I asked Q Developer to create a README file and make sure that all my code is well-documented. That's a real life saver!
Asking Amazon Q Developer Agent to improve documentation
Asking Amazon Q Developer Agent to improve documentation
By iteratively refining the code that way, I was able to enhance SummarizeMe's functionality, improve reliability, and ensure that all components worked together seamlessly.
πŸ’» The complete SummarizeMe code is available in this GitHub repo.

Demo Time!

Time to see my app in action. I created a meeting recording with four (AI-generated) meeting attendees discussing the (fictional) Alpha Project.
In the Terminal app, I run python app.py to start SummarizeMe.
Running the app
Running the app
The script will then:
  1. Prompt me for the input file path
  2. Transcribe the audio/video using Amazon Transcribe
  3. Summarize the transcription and extract key points and action items using Amazon Bedrock
  4. Create a video summary using HeyGen
  5. Save the transcription, key points, and action items to separate text files locally.

Watch the Video Summary

And yes, that's my agentic-looking avatar and cloned AI-voice in that video! πŸ˜‰

Conclusion

Throughout the development of SummarizeMe, I observed how advancements in AI reasoning are reshaping software development. The ability of AI tools to understand complex instructions and generate functional code is transforming what we build, how we build it, and expanding who can become a developer. What will YOU build?

Resources

  • πŸ’» The complete SummarizeMe code is available in this GitHub repo.
  • .πŸŽ₯ The generated SummarizeMe video is available on YouTube.
Now excuse me, I have a full AI-generated playlist of meeting summaries to catch up on! πŸ˜‰
Β 

Any opinions in this post are those of the individual author and may not reflect the opinions of AWS.

Comments