Inspiration
My inspiration for the project was that I have found myself constantly falling victim to doomscrolling; however, doomscrolling is often easy to snap out of once you realize that you doing so. However, all the applications that I tried offered no such solution and merely had pseudo-intelligent solutions like blocking apps at certain times. I thus aimed to create an app that had the ability to detect in real time doomscrolling and combat it in order to make a more productive society.
What it does
Using OpenAI's o1 model it analyzes multimodal input of the screen recording frames of a user's screen and detects whether the user is doing something productive or scrolling through social media in a negative manner. It is designed to really just bring to the forefront of a doomscroller's mind their action since that is often the most effective way to snap out of it
How I built it
I built the app using PyQt6, win32gui, psutil, asyncio, Pillow, and openai. It used pyqt6, specifically qasync, to create a desktop application and Pillow to grab screenshots which were detected using win32 APIs periodically using qtimers. It then converted these screenshots into base64 encoded chunks and sent a 15 frame video to openai to analyze the video and detect doomscrolling
Challenges we ran into
I ran into several challenges along the way ranging from threading issues to even the conceptual idea. This is actually the 4th iteration of an idea that I had to recode practically from the ground up. However, I did use openAI's o1 model api throughout and the most pressing issue was the speed of the model which I had to run asynchronously otherwise it would not effectively function and thus I had to introduce coroutines into my code which sometimes caused lock problems.
Accomplishments that I'm proud of
I'm really proud of the fact that I designed a piece of code that effectively uses openAI without overloading credits, treading the line between effectivity and cost efficiency as well as creating a tool that I would and probably will use in my daily life in trying to curb those nasty habits
What I learned
Throughout the project I learned tons of new things like using window's api in several applications ranging from simple detections to automations as well as using asyncopenai and base64 encoding of images. I also learned how to use PyQt which was really fun and I will definitely use it in the future
What's next for FohcuhsAI
Depending on time constraints I make it more robust with a website
Built With
- asyncio
- openai
- pillow
- psutil
- pydantic
- pyqt6
- python
- qasync
- win32
- win32gui
Log in or sign up for Devpost to join the conversation.