💡 Inspiration 💡
I got inspiration for ArcticMeet when I was looking at the Snowflake Cortex LLM functions and trying to figure out what would be an app leveraging as many LLM functions as possible. I came up with the idea of an AI meeting assistant since there can be four functions used: Summarize(), Complete(), Sentiment(), and Translate(). There are many AI meeting assistants out there, but none use the Snowflake Arctic.
🤔 What it does 🤔
ArcticMeet is a Streamlit app that does meeting analysis in three steps:
Upload a meeting: Users upload a meeting in MP4 format, which ArcticMeet transcribes using Whisper via Hugging Face (the only feature of ArcticMeet not using the Snowflake Arctic model because it can't handle speech-to-text tasks).
Select a transcription: Users choose a transcription from previously uploaded meetings for analysis.
Transcription analysis: Users select analysis features such as summarization, agenda extraction, participant identification, sentiment analysis, and translation. ArcticMeet then performs the analysis and provides insights into the meeting.
⚒️ How I built it ⚒️
ArcticMeet tech stack:
- Python
- Streamlit
- Streamlit JS eval
- Snowflake Connector for Python
- Snowpark API for Python
- Snowflake ML for Python
- PyTorch
- Torchvision
- Torchaudio
- FFmpeg
- Hugging Face Transformers
- Pandas
- Plotly
👨💻 Challenges I ran into 👨💻
Model Limitations: Dealing with limitations of the Snowflake Cortex LLM functions. The most problematic is the Translate() Snowflake Cortex LLM function because of the very small context window.
Resource Constraints: Optimizing the Streamlit app to handle resource constraints when hosting on Streamlit Cloud via the free tier. The solution is Streamlit caching and using the Whisper Nano (i.e., the smallest Whisper model).
🏆 Accomplishments that I'm proud of 🏆
Rapid Development: Developing the core functionality of ArcticMeet in just 8 days by a single developer.
Early Adoption:
- The Snowflake Arctic LLM was added to the Snowflake Cortex LLM functions only 8 days ago, at the time core ArcticMeet functionalities were being developed.
- The Snowflake Arctic LLM was announced only 20 days ago, at the time core ArcticMeet functionalities were being developed.
🤓 What I learned 🤓
Streamlit: Leveraging Streamlit's multipage app architecture, caching, and using 26 Streamlit components to deliver the best UX possible.
Snowflake Cortex LLM functions: Integrating Snowflake's powerful LLM capabilities into ArcticMeet.
🚀 What's next for ArcticMeet 🚀
ArcticMeet has significant potential for growth and improvement. Future developments may focus on:
- Sending meeting transcription to Snowflake Cortex LLM functions in chunks to overcome context window limits. The only thing I need to know and didn't find is what tokenizer the Arctic LLM uses. Knowing this, the translation analysis feature of the ArcticMeet limitation could be easily solved.
- Improving robustness of analysis features, especially the participant extraction analysis feature, since it's currently relying on names being mentioned in the meeting at any point.
- Adding the possibility to download the meeting analysis.
- Adding ML to deliver more deep insights from the meeting.
For detailed setup instructions and additional information, please refer to the README.

Log in or sign up for Devpost to join the conversation.