This project is designed to extract and present key insights from meeting recordings, including sales, credit card inquiries, and recovery calls. Using FastAPI for the backend, it allows users to upload audio files and automatically generate summaries with actionable key points, responding to natural language queries. This helps sales teams make informed decisions. The Flutter-based frontend provides an intuitive interface for users to upload recordings and view summaries, ensuring a seamless experience across devices for better sales outcomes.
The platform is designed to tackle a range of industry-specific problems, including:
- Cold calling in sales
- Credit card inquiries
- Loan recovery processes
By providing targeted insights and solutions, it helps professionals navigate these unique challenges more effectively and improve overall outcomes.
The platform captures essential points, decisions, and action items, providing a clear and actionable overview of the meeting's content. This enhances productivity by allowing users to quickly review and access critical details without manually sifting through lengthy recordings.
It systematically extracts valuable insights from conversation transcripts, such as:
- Customer backgrounds
- Budget information
- Other relevant data
This deeper analysis provides actionable intelligence that supports informed decision-making and improves customer understanding.
Using LLM, users can extract specific information from meeting summaries by entering natural language queries. The process of extracting information is very fast because of the Vector-Search with the help of ChromaDB. This streamlines the process of locating critical information without manually reviewing entire summaries, enhancing overall efficiency.
Users can tailor the system to their specific needs, ensuring relevant and accurate information extraction. The platform allows users to customize prompts for three targeted scenarios:
- Sales
- Credit card inquiries
- Loan recovery
Below are screenshots of the Flutter UI, which allows you to add meetings by entering details and specifying the type of recording. You can access the meeting summary and, if you have specific queries, use the integrated chatbot for further assistance. These features ensure a seamless and intuitive user experience for managing meetings, summaries, and queries efficiently.
- Audio Upload: Supports uploading meeting audio files in any format.
- Summary Generation: Automatically generates summaries and key insights for each meeting.
- Chatbot: Submit queries related to any meeting and receive responses within seconds.
- User Interface: Delivers a user-friendly interface for uploading audio, viewing summaries, and interacting with the chatbot.
- Cross-Platform: Accessible on Android, iOS, and web platforms for seamless usage across devices.
- Python 3.10
- Flutter SDK (for Frontend Development)
- An OpenAI API Key
- An AssemblyAI API Key (For Audio to Text Conversion)
-
Clone this repository:
cd python
-
Install the required packages:
pip install -r requirements.txt
-
Create a
.env
file and set up environment variables:OPEN_API_KEY='your_openai_api_key' ASSEMBLY_API_KEY='your_assembly_api_key'
-
Run the FastAPI server:
uvicorn app:app --reload --port=8000
Your server will start on:
http://127.0.0.1:8000
Uploads a meeting's audio file and stores the meeting details, then triggers background summary generation.
-
URL:
/uploadaudio/
-
Method:
POST
-
Parameters:
meeting_id
(Form): Unique ID for the meeting.meeting_description
(Form): Brief description of the meeting.optiontype
(Form): Summary generation option type.file
(File): Audio file (.wav) for the meeting.
-
Response:
- Success:
{ "message": "File uploaded successfully, Summary generation in progress", "isSuccess": True }
- Failure:
{ "message": "File not Uploaded. Meeting Id already exists. Please change meeting id", "isSuccess": False }
- Success:
Generates a response for a user query based on a specific meeting's context.
-
URL:
/chatbot
-
Method:
POST
-
Request Body:
meeting_id
(str): Unique ID of the meeting.usertext
(str): User query text.
-
Response:
- JSON object containing the chatbot's response.
{ "response": "Chatbot response based on meeting context." }
- JSON object containing the chatbot's response.
Lists all available meetings with their IDs and descriptions.
-
URL:
/meeting
-
Method:
POST
-
Response:
- JSON list of meetings with their
meeting_id
andmeeting_description
.[ { "meeting_id": "1234", "meeting_description": "Quarterly Sales Review" }, { "meeting_id": "5678", "meeting_description": "Credit Card Inquiry Discussion" } ]
- JSON list of meetings with their
Fetches the summary for a specific meeting by its ID.
-
URL:
/summary
-
Method:
POST
-
Request Body:
meeting_id
(str): The ID of the meeting for which the summary is requested.
-
Response:
- JSON object containing the summary of the meeting.
{ "meeting_id": "1234", "summary": "Summary of the Quarterly Sales Review meeting..." }
- JSON object containing the summary of the meeting.
-
python/audios
: Contains uploaded audio files. -
python/meetings
: Stores JSON files comprising information about the meeting ID and description. -
python/prompts
: Contains prompts for each use case (e.g., sales, credit card inquiries, loan recovery). -
python/summaries
: Stores summaries of each meeting. -
python/transcript
: Contains raw transcripts extracted from audio files.
-
Navigate to the
frontend
directory:cd flutter
-
Ensure you have the Flutter SDK installed. If not, follow the instructions here to install it.
-
Install the required dependencies:
flutter pub get
-
Set up environment variables:
Create a
.env
file in the project root and add your FastAPI backend url:BACKENDURL=http://127.0.0.1:8000
-
Run the Flutter app:
flutter run
This command will run the app on your connected device or simulator.
Contributions are welcome! Please submit a pull request or create an issue to discuss changes.
This project is licensed under the MIT License.