Skip to main content

Automatically generate action items from a meeting with LeMUR

In this guide, we'll show you how to use AssemblyAI's LeMUR (Leveraging Large Language Models to Understand Recognized Speech) framework to process an audio file and then use LeMUR's Action Items feature to automatically generate action items from the meeting's transcript.

Get started

Before we begin, make sure you have an AssemblyAI account and an API key. You can sign up for an AssemblyAI account and get your API key from your dashboard.

LeMUR features are currently only available to paid users at two pricing tiers: LeMUR and LeMUR Basic. Refer to the pricing page for more detail.

Step-by-step instructions

In this guide, we will submit a meeting recording to AssemblyAI's API for transcription. Then, we will request a list of action items from LeMUR.

  1. 1

    If you haven't already done so, transcribe your call following this guide. LeMUR uses AssembyAI transcript IDs as input, and the transcription must be in a completed state before using it for LeMUR.

    Import the necessary libraries for making HTTP requests and set your API key.

  2. 2

    Define your LeMUR request context and answer_format parameters for the Action Items feature.

  3. 3

    Prepare your data for submission to the LeMUR's action-items endpoint.

  4. 4

    Submit to LeMUR's action-items endpoint.

  5. 5

    The output will look similar to the example below.

    Here are action items based on the transcript:

    Action item title: Resend engagement survey to Fabian
    Assignee: Jessica
    Due date: 2019-07-16
    Status: In progress
    Notes: Fabian did not receive the original email with the engagement survey. Jessica needs to resend it to him.

    Action item title: Provide feedback on proposed product handbook updates
    Assignee: All team members
    Due date: 2019-07-16
    Status: In progress
    Notes: Karina submitted proposed updates to the product handbook following a dual-track agile approach. All team members should provide feedback on these proposed updates.

Leverage LeMUR for customer call sentiment analysis

In this guide, we'll show you how to use AssemblyAI's LeMUR (Leveraging Large Language Models to Understand Recognized Speech) framework to process an audio file and then use LeMUR's Question & Answer feature to automatically detect sentiment analysis from customer calls as 'positive', 'negative', or 'neutral'. In addition, we will glean additional insights beyond these three sentiments and learn the reasoning behind these detected sentiments.

Get started

Before we begin, make sure you have an AssemblyAI account and an API key. You can sign up for an AssemblyAI account and get your API key from your dashboard.

LeMUR features are currently only available to paid users at two pricing tiers: LeMUR and LeMUR Basic. Refer to the pricing page for more detail.

Step-by-step instructions

In this guide, we will ask five questions to learn about the sentiment of the customer and agent. You can adjust the questions to suit your project's needs.

  1. 1

    If you haven't already done so, transcribe your call following this guide. LeMUR uses AssembyAI transcript IDs as input, and the transcription must be in a completed state before using it for LeMUR.

    Import the necessary libraries for making HTTP requests and set your API key.

  2. 2

    Define your LeMUR request context variables. Here we are summarizing the objectives of each party on the call.

  3. 3

    Define your answer_format, transcript_id, and questions parameters for the Question & Answer feature.

  4. 4

    Submit to LeMUR's question-answer endpoint.

  5. 5

    The output will look similar to the example below.

    Question 1: What was the overall sentiment of the call?
    The overall sentiment of the call is positive. The customer is interested in purchasing an update for his vehicle.
    Question 2: What was the sentiment of the agent in this call?
    The agent's sentiment is enthusiastic. She is eager to complete the sale of the map update.
    Question 3: What was the sentiment of the customer in this call?
    The customer's sentiment is interested. He is open to purchasing the map update for his vehicle.
    Question 4: What quote best demonstrates the customer's level of interest?
    "Yeah, let's go ahead and use a Visa." This quote shows the customer is willing to provide payment information to complete the purchase.
    Question 5: What quote best demonstrates the agent's level of enthusiasm.
    "Good. If I set this order up for you now, it'll ship out today and for $50 less." This quote shows the agent's eagerness to complete the sale by offering an additional discount.

Implement a sales playbook using LeMUR

This guide will show you how to use AssemblyAI's LeMUR framework to implement a sales playbook with a call from a sales representative to a client.

This guide aims to show different ways of using the question-answer feature with a hypothetical sales use case to produce personalized, precise responses. Using this feature, a user can immediately evaluate large numbers of sales calls and ensure that prospecting steps are followed, including quotes in the response, which can inform future sales by identifying trends and quantitative performance tracking.

In this example, we will demonstrate how to use request variables such as context, answer_format, and answer_options to make the most of LeMUR's Question & Answer feature. You can use the concepts in this guide to create custom specifications to evaluate your sales representatives.

Get started

Before we begin, make sure you have an AssemblyAI account and an API key. You can sign up for an AssemblyAI account and get your API key from your dashboard.

LeMUR features are currently only available to paid users at two pricing tiers: LeMUR and LeMUR Basic. Refer to the pricing page for more detail.

Step-by-step instructions

In this guide, we will ask three questions evaluating the prospecting performance of the sales representative. Each question has slightly different parameters based on the use case but largely has a fixed context that we will apply to each question.

  1. 1

    If you haven't already done so, transcribe your call following this guide. LeMUR uses AssembyAI transcript IDs as input, and the transcription must be in a completed state before using it for LeMUR.

    Import the necessary libraries for making HTTP requests and set your API key.

  2. 2

    Define your LeMUR context, answerFormat, and answerOptions request variables and set your transcriptId.

  3. 3

    Next, define your LeMUR request parameters for your sales playbook processes using the Question & Answer feature. Note: You can edit the variables to provide custom answers for each question.

  4. 4

    Now, construct and send the API request. The response key of the JSON output will contain your LeMUR output. The response property includes the full question-answer parameters. If there is an error, the output will contain an error key instead of the response key.

    The output will look similar to the example below.

    Question 1: Did the salesperson start the conversation with a professional greeting?
    {
    "Answer": "Satisfactory",
    "Reason": "The salesperson started the conversation with 'Hi, this is ...' followed by the name and the date of the meeting, which is a professional greeting."
    }
    Question 2: How well did the salesperson answer questions during the call?
    {
    "Answer": "Excellent",
    "Reason": "When the prospect said, 'I don't think we're willing to pay that much. Our internet is a little slow, but it works for us most of the time, so I don't think so.' The salesperson responded professionally with, 'Okay, I get you. Let me check here, okay? Because I might have something more suitable for you.' and offered a cheaper plan."
    }
    Question 3: Did the salesperson discuss next steps clearly?
    {
    "Answer": "Yes",
    "Reason": "The salesperson said 'Congratulations. I see here that the order is successful. You will get your router within three business days, and I will also send you a link to a video showing the step-by-step instructions on activating it.' to confirm the prospect's commitment."
    }

Extract dialogue data with LeMUR and JSON

In this guide, we'll show you how to use AssemblyAI's LeMUR (Leveraging Large Language Models to Understand Recognized Speech) framework to process several audio files, and then format your results in JSON (JavaScript Object Notation) format.

JSON allows you to programmatically format, parse, and transfer responses from LeMUR, which is useful for implementing LeMUR with a wide range of other applications.

In this example, we will leverage the JSON formatting to create a .csv-file from a directory of files that must be transcribed and submitted to LeMUR. However, you can use the same concepts in this guide to generate a JSON-formatted response, which you can then use to update a database table or interact with other APIs.

Get started

Before we begin, make sure you have an AssemblyAI account and an API key. You can sign up for an AssemblyAI account and get your API key from your dashboard.

LeMUR features are currently only available to paid users at two pricing tiers: LeMUR and LeMUR Basic. Refer to the pricing page for more detail.

Step-by-step instructions

In this guide, we will ask the same questions to LeMUR about multiple files. Then, we will collate the answers in a .csv-file.

  1. 1

    Import the necessary libraries for making an HTTP request and set your API key.

  2. 2

    Transcribe your audio files.

  3. 3

    Define your LeMUR request prompt for the Task feature.

  4. 4

    Construct your .csv-file and parse the JSON data.

  5. 5

    For context, this is the response from LeMUR with our prompt.

    {
    "Name": "John Smith",
    "Position": "software engineer",
    "Past experience": "three years of experience at Google"
    }

You can now run your Python script and you should see that a profiles.csv-file is generated. Your result will look similar to the example below.

Name,Position,Past Experience
Peter Jones,sales representative,two years of experience in the software industry
Jane Doe,marketing manager,five years of experience in the technology industry
John Smith,software engineer,three years of experience at Google

Use LeMUR to generate exact quotes from a transcript

In this guide, we'll show you how to use AssemblyAI's LeMUR (Leveraging Large Language Models to Understand Recognized Speech) framework to process an audio file and then use LeMUR's Question & Answer feature and OpenAI embeddings to automatically extract exact quotes from the transcript.

Get started

Before we begin, make sure you have an AssemblyAI account and an API key. You can sign up for an AssemblyAI account and get your API key from your dashboard.

You'll need to install a few extra packages that help take advantage of the OpenAI embeddings this tutorial relies on.

You'll also need an API key from OpenAI. Get an OpenAI API key from the OpenAI User Settings.

What are embeddings?

In a nutshell, embeddings are powerful representations of text that capture its semantic and contextual meaning. By leveraging these embeddings, we can transform raw text data, such as transcripts, into dense numerical vectors that encode its underlying information.

These embeddings enable us to perform sophisticated tasks such as similarity comparison and contextual searching, which we use here to demonstrate how to timestamp action items from a transcribed meeting.

Step-by-step instructions

  1. 1

    First, install and import all the libraries you'll need and set both your OpenAI and AssemblyAI API keys.

  2. 2

    Next, define the following helper functions to create your transcript embeddings. We'll be using the text-embedding-ada-002 model from OpenAI to generate our embeddings. The pricing for this model is $0.0001 / 1k tokens at the time of writing this, which equates to roughly $0.0015 to embed one hour of audio.

  3. 3

    Next, write your question(s) to LeMUR in whichever format you like. For this example, we'll ask a question to extract meeting insights with another small helper function to help generate our expected answer_format.

  4. 4

    Finally, create a transcript and pass all that information through the functions we just wrote.

The output will look similar to the example below.

[
{
"action_item": "Schedule a meeting with Rohan and Connor to discuss the upcoming sprints.",
"assignee": "Jason",
"quote": "I think we should figure out how this fits into our sprints over the next few weeks. Rohan, do you want to get on a meeting soon and maybe invite Connor from Product?",
"timestamp": 223210
}
]