Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/divineux23/memogpt
Imagine an application that autonomously take down notes for you during meetings, lectures, and conversations. Check this out...
https://github.com/divineux23/memogpt
api assemblyai audio chatbot fastapi ffmpeg gradio-interface llama2 meeting mistral-7b paystack-api rest-api transcription
Last synced: 3 days ago
JSON representation
Imagine an application that autonomously take down notes for you during meetings, lectures, and conversations. Check this out...
- Host: GitHub
- URL: https://github.com/divineux23/memogpt
- Owner: DivineUX23
- Created: 2023-10-16T00:24:53.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-01-10T19:41:46.000Z (about 1 year ago)
- Last Synced: 2024-11-10T18:34:34.350Z (2 months ago)
- Topics: api, assemblyai, audio, chatbot, fastapi, ffmpeg, gradio-interface, llama2, meeting, mistral-7b, paystack-api, rest-api, transcription
- Language: Python
- Homepage: https://project-7-llm-enabled-meeting-assistant.vercel.app
- Size: 18.9 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: history.py
Awesome Lists containing this project
README
# Memo-GPT
A complete Software As a Service application that helps users take notes during meetings, providing summaries of recorded or uploaded audio, chat about the meeting or audio with a GPT-based AI and query the AI for specific answers within the audio without the necessity of listening to the entire audio.
#### This SAS application effectively eliminates the need for manual note-taking during meetings, lectures, and conversations, as it autonomously does it for you with intelligence.
-----
## VIDEO DEMO
This video demonstration emphasizes the essential features of the app using the Gradio interface. If you prefer to skip the recording process and go straight to the AI demo, feel free to jump to 3:10.
https://github.com/DivineUX23/MemoGPT/assets/96517814/13ed8f3f-b522-41f4-843f-0838f82b34d7
----
Memo-GPT is an advanced AI-powered application designed to enhance your meeting experiences. It offers audio recording, audio file uploading, transcript generation, and summarization. Additionally, it enables querying/chatting and provides responses based on the meeting content, complete with timestamps and speaker diarization. This tool aims to increase efficiency and elevate the outcomes of your meetings.
## Features
- Audio recording
- Start and stop recording
- Audio file uploading
- Speech transcription using AssemblyAI API
- Text summarization using the Meta's LLama-2 API
- Conversational question answering based on the transcript using Meta's LLama-2 70b API
- User account management and authentication
- Email verification on signup
- Premium subscriptions
- Limits on transcription length for free accounts
- Unlimited transcription for paid accounts
- Payment processing with Paystack
- FRONTEND with Gradio## Technologies
- Python
- FastAPI
- MySQL
- SQLAlchemy
- JWT Authentication
- OAuth2 Password Flow
- AssemblyAI API
- LLama API
- Paystack API
- Gradio
- ffmpeg## Folder Structure
```
├── database
│ ├── db.py
│ └── model
│ ├── transcript.py
│ └── users_model.py
├── schema
│ ├── transcript.py
│ └── users_schema.py
├── services
│ ├── assemblyai_services.py
│ ├── audio_services.py
│ ├── history_services.py
│ ├── llama_services.py
│ ├── premium_services.py
│ ├── storage_services.py
│ ├── tokenizer_services.py
│ └── user_services.py
├── tmp
├── .env
├── .gitignore
├── audio.py
├── email_setup.py
├── email_verification.py
├── hashing.py
├── history.py
├── llama.py
├── main.py
├── main_gradio.py
├── oauth.py
├── paystack.py
├── prompts.py
├── README.md
├── token_key.py
├── user.py
└── user_login.py
```
## Database ModelsThe main database models are:
- **User** - Stores user account info
- **Audio** - Stores audio files and transcripts
- **Summary** - Transcript summaries generated by LLama
- **History** - Conversation history with the LLama bot
Relationships are defined between user, audio, summaries and history.## API Endpoints
The API endpoints are organized by HTTP method below:
### GET Endpoints
- GET /verify/{token} - Verify email
- GET /audio - Stream audio
- GET /webhook_verification - Verify webhook
- GET /audio/data - Get audio data
- GET /all_chats - Get all chats
### POST Endpoints
- POST /signup - Create user
- POST /login - Login user
- POST /audio/update_data - Update audio
- POST /pay - Process payment
- POST /response - Get bot response
- POST /audio/start - Start recording
- POST /audio/play - Play audio
- POST /audio/upload - Upload audio
### PUT Endpoints
- PUT /delete_account - Delete account
### DELETE Endpoints
- DELETE /delete_chat/{id} - Delete chat
## Gradio UI
This project incorporates a Gradio user interface for demonstration and testing purposes. The objective is to facilitate comprehension of the project for non-technical individuals, without the necessity of interacting with the API endpoints.
## Premium Accounts
To access transcripts over 5 minutes users need a premium account. This is handled via:
- Premium pricing plans defined in `users_schema.py`
- `paystack.py` handles payments with Paystack API
- `premium_services.py` checks if user account is premium
- Duration stored in User model to track when premium expires## Installation
1. Clone the repository
```
git clone https://github.com/user/meeting-assistant
```2. Install dependencies
```
pip install -r requirements.txt
```3. Set environment variables
Copy the `.env.example` file to `.env` and fill in values for:
- DB_URL
- AssemblyAI_API_KEY
- LLama_API_KEY
- Paystack_SECRET_KEY
- SMTP_Credentials4. Initialize the database
```
alembic upgrade head
```5. Run Gradio frontend
```
python main_gradio.py
```6. Run the server API
```
uvicorn main:app
```The Gradio UI will be available at http://127.0.0.1:7860
The API will be available at http://localhost:8000
## Contributing
Contributions are welcome! Please open an issue or PR if you would like to help add features or fix bugs.