Inspiration

In the fast-paced world of Dota 2, the only constant is change. Every few months, a new "Patch" is released, fundamentally altering hero strengths, item costs, and map dynamics. Traditional Machine Learning models struggle here; they are trained on historical data that becomes obsolete the moment a patch notes PDF is published.

What it does

Visual Draft Recognition: Users upload a screenshot of the "Pick/Ban" phase. Using Gemini's Vision capabilities, the agent identifies all 10 heroes on the screen.

Real-Time Data Synthesis: The agent fetches live professional statistics via the OpenDota API, calculating recent form and momentum for each team.

Context-Aware Analysis: Unlike static models, it cross-references the current draft with the latest Patch Notes to determine if a team is playing "into the meta" or relying on nerfed strategies.

How we built it

We didn't want to build just another "prediction bot." We wanted to build a thinking agent.

The core of Esports Oracle is a "Two-Step Brain" architecture. We quickly realized that asking an AI to "look at a picture and do math at the same time" was like asking a person to solve a Rubik's cube while watching a movie—it’s a lot for one breath. So, we split the logic:

The Eyes: We used Gemini 2.0 Flash for the vision part. We fed it messy screenshots from Twitch and game captures, and it worked like a charm, identifying heroes even when the UI was cluttered.

The Brain: For the heavy lifting, we used Gemini 3 Pro-preview. We built a custom Python "Scout" that talks to the OpenDota API. Instead of just giving the AI raw logs, our Python code pre-calculates the "boring" stuff like average game length and win rates. This lets the AI focus on being a strategist, not a calculator.

The Memory: We used Context Injection to give the agent the "meta." We literally handed it the latest patch notes as a text file. This means the second a new patch drops, our agent is already smarter than any ML model that needs days of retraining.

The Interface: We wrapped everything in Streamlit. We wanted something that looked like a professional coach's dashboard—clean, fast, and data-heavy

Challenges we ran into

The primary technical hurdle was the Multimodal Tool-Use Conflict. We discovered that the API currently restricts calling external functions (Tools) while simultaneously processing image bytes in a single request. This resulted in 400 INVALID_ARGUMENT errors

Accomplishments that we're proud of

Zero-Shot Meta Adaptation: Our agent can "understand" a new patch instantly just by reading a text file, something traditional ML models require weeks of retraining to achieve. High-Fidelity Vision: Successfully identifying Dota 2 heroes from low-resolution Twitch screenshots

What we learned

it was a pretty hard to build without a really clear idea from scratch but i like it

What's next for Esports_Oracle

Real-time Video Stream Analysis: Moving from screenshots to analyzing live Twitch/YouTube streams to provide "Live Win Probability" graphs. Multi-Game Support: Expanding the agent's knowledge base to include Counter-Strike 2 and League of Legends. Pro-Player "Pulse": Integrating Google Search Grounding to automatically scan social media for player health updates or roster changes minutes before a match begins

Built With

Share this project:

Updates