Soma AI Project Story

Inspiration

Soma AI started from a personal frustration. Studying often feels overwhelming. Notes can be messy, explanations unclear, and most tools give generic answers that do not adapt to how you learn. I wanted to build something that feels more like a learning companion than a chatbot. Something that can take raw material, whether text or a photo of notes, and turn it into structured understanding.

The idea was simple: make studying smarter and more personal.

How I Built It

I built Soma AI as a Flask web application and integrated it with the Google Gemini API. Gemini handles reasoning tasks such as summarizing content, generating quizzes, and analyzing images, while Flask manages the interface and backend logic.

To make it adaptive, I implemented a simple progress tracking system. Each time a user studies a topic, their interaction score increases. Based on that score, the difficulty level changes dynamically.

The adaptation logic can be represented as:

$$ D = \begin{cases} \text{Easy} & \text{if } s > 5 \ \text{Medium} & \text{if } 2 < s \leq 5 \ \text{Hard} & \text{if } s \leq 2 \end{cases} $$

Where ( s ) represents the learner’s progress score for a topic.

This creates a lightweight feedback loop that makes responses feel more personalized over time.

What I Learned

This project taught me how to integrate a large language model into a real application rather than just experiment with prompts. I learned how important proper error handling is when working with APIs, especially when responses can vary depending on input type.

I also realized how much small design decisions, such as structured output formatting and clear user flows, affect the overall experience.

Challenges

One of the biggest challenges was handling different response formats safely. Another was managing rate limits and ensuring the application remained stable during testing. Designing adaptive logic was also challenging because it needed to stay simple while still being meaningful.

Outcome

Soma AI became more than a simple AI tutor. It represents an effort to build learning tools that adjust to the student instead of expecting the student to adjust to the tool.

Built With

Share this project:

Updates