🚀 AI, Audio & Video Calling, Data Scraping. What’s next?
Published a year ago
|
Hey notJust Developers, Hope you are having a productive week 💪 This month I had the opportunity to explore a lot of new things in the dev world. We live we learn 📚 I know you are busy, and everything in our industry moves so fast. That’s why, In this email, I want to summarize some of the things that I am excited about, and how they can help you.
Audio & Video CallingVideo calling was by far the most requested tutorial on our channel. Almost all social media and messaging apps have audio and video calling features. However, implementing a robust video calling infrastructure is quite challenging even for a senior developer. There are a lot of moving parts, both on the backend and on the front end and it requires a lot of specialized knowledge about real-time data streaming. That’s where third-party solutions really help. Last Friday, we started building the Facetime clone in React Native, and in just 1 hour, we had a working prototype of the Video Calling feature in our app. With all the features you would imagine audio and/or video calls, 1-on-1 and also group calls, all the controls you need to manage your microphone and camera. It even has screen sharing. All this magic is powered by the new Audio & Video SDK from Stream. You can watch the implementation tutorial on our YouTube channel. Data ScrapingWhen we need data that is not available through an API, web scraping is the solution. There are a lot of use cases where data scraping can help you:
I wanted to experiment more with data scraping, and I built a flight price comparison app. Behind the scenes, I scrape websites like Skyscanner for the best deals and display them in a user-friendly mobile app. The most challenging part about data scraping is not getting blocked by the website you scrape. If you run a scraper from your IP, and it makes a lot of requests to the same website, it won’t take long till you are blocked. To overcome this problem, we should run the scraping jobs from different IP addresses. These are called proxy networks. I used BrightData’s Scraping Browser, which runs on top of a large proxy network and I simply connected to it using Puppeteer - an open-source library for data scraping. If you want to build the Flight Price Tracking app yourself, check out this tutorial: BrightData sponsored this tutorial, and they are offering $15 free credits to all notJust Developers when you sign up with our link: https://brdta.com/notjustdev AI Recommendation SystemSupabase challenged me to build an AI-based app, and I decided to build a movie recommendation system. But not a simple one. I wanted to build a smart recommendation system that would understand human language. It’s something like a ChatGPT for movies. For that, I had to build my own knowledge graph that will power the AI. I found a huge database of around 50k movies. It had information about the title, genre, description of the movie, etc. The problem is that the AI does not understand human words. It understands numbers - usually in the format of vectors (an array of numbers). These vectors are called Embeddings and are at the core of NLP (Natural Language Processing) models. In other words, Embedding is the representation of any text in a vector format. By comparing 2 vectors, we can determine how similar 2 strings are. For example, if we plot a 2-dimensional vector of 3 sentences:
We will see that the first 2 vectors are quite close to each other, and they are quite far from the third sentence. Even though the first 2 sentences contain completely different words, they have the same meaning, and the vector embedding can help us find this similarity. Getting back to the practical side, what I did next was I generated the Vector Embeddings of the description of all the movies using open-source models and saved the vectors in the database using Supabase Vector. Having the vector embeddings of all movies in the database, we can recommend similar movies based on a particular movie. With Supabase Vector, we can easily query vectors and find the items that are most similar. This is powering the “similar movies” on the movie detailed page in the app. The next feature I wanted to build, is the semantic search, or the ChatGPT for movies. I want the user to write a prompt, and the system to recommend him movies based on it. To implement this, we had to first take the user input as a string, generate a vector embedding for the user input, and then query the movie to find the most “similar” vectors in the database. Those are the movies closest in meaning to what the user is searching for. It was actually easier to implement than I was expecting. If you are interested in AI, I recommend following the tutorial and implementing it yourself. 🔴 Join me liveThis Friday we will build your own video calling application. It's going to be a tutorial packed with value, so set a reminder and don't miss it out 👇 🔥 Press worthy♻️ NodeJS v20 was released as LTS. If you are still on v12, it’s probably time to upgrade 🐞 Network debugging with Expo ⚡ Bun 1.0 vs NodeJS performance benchmark Did you learn something new today?If you found this email valuable, forward it to one friend or coworker that can benefit from it as well. That would be much appreciated 🙏
|