This Streamlit app can be used to check, sort & like Podcasts, and this learns from the Liked Podcasts of a User and Generates tailored Recommendations along with explainations for why the user would love them!
Hi! This app was made as a project for an Uplimit Course of building products with OpenAI LLMs! This was a finalist out of 6500 submissions and won a shout out in front of Ted Sanders from OpenAI! :)
This ReadMe will help you understand the journey of creating such an App and how you can make your own!
This is the main code to host the app for Streamlit
The data for Podcasts is present in this csv, and app.py loads the data from here! This can be modified if you want to add/edit the podcasts used in the App
All the libraries used to host the Streamlit app are present here. Note, this is different from the requirements for the other files for the functions to process the podcasts & make the OpenAI & Modal functions, in the Jupyter & Collab Notebooks mentioned below
This notebook parses through RSS Feeds of any Podcast, extracts the relevant information for the Streamlit App, and prepares the Podcasts_Data.csv
. If you want to add/edit your own Podcasts for your App, you can use this notebook to prepare the data, and learn how to work with RSS Feeds!
In the Project, we used Modal Labs, to host all the functions for core recommendations and podcast summarisation. The below collab notebook goes in depth on how they were made, the prompts used and how to host your own functions with Modal Labs!
A. Using Whisper Models from OpenAI (or WhisperX for faster inference) to transcribe
B. Can use a RSS Feed to get the MP3 Audio of a Podcast
A. Get the Highlights & Guests Present from a Podcast
B. If it is within 14000 tokens, use transcription to get highlights & guests
C. If it is greater than 14000 tokens, chunk it into portions, summarise each portion, concatenate summaries and get highlights & guests
A. Pass in the Liked Podcasts of User: Podcast Name, Episode Title & Summary
B. Pass in a list of Podcasts to choose from: Podcast Title & Summary
C. Get Top 10 Recommendations along with their reasons for the User
1. Use Whisper X for Transcribing a Podcast, and add the Quick Listen feature to show Highlights & Guests
2. Use Embeddings from USE, MiniLM or any other Model, to fine tune the Recommendations for the User
3. Take in a New RSS Feed as Input in the App, call the Data Processing Functions and expand the Podcast Selections for the User!
For any questions, reach out to me at [email protected] ! :)