Spaces:
Running
Running
| title: Dota Draft | |
| emoji: ⚔️ | |
| colorFrom: red | |
| colorTo: gray | |
| sdk: gradio | |
| sdk_version: 6.18.0 | |
| python_version: '3.13' | |
| app_file: app.py | |
| pinned: false | |
| tags: | |
| - track:wood | |
| - sponsor:openai | |
| - achievement:agent | |
| # Dota Draft | |
| Dota Draft is an AI-assisted drafting workbench for Dota 2 Captains Mode. It lets a player walk through the full pick/ban sequence, record both teams' drafts, and generate draft recommendations from a small-model chat-completions agent backed by OpenDota MCP context. | |
| ## Build Small submission | |
| - Track: Thousand Token Wood (`track:wood`) | |
| - Sponsor prize: Best Use of Codex (`sponsor:openai`) | |
| - Bonus badge: Best Agent (`achievement:agent`) | |
| - Demo video: https://www.youtube.com/shorts/VIB_FRXADg8?feature=share | |
| - Social post: https://x.com/asusevski/status/2066671518193532979 | |
| ## What it does | |
| - Initialize the draft with side selection and first drafting team. | |
| - Step through the full 20-action Captains Mode pick/ban order. | |
| - Record picks and bans for both teams. | |
| - Generate a structured backend payload containing the current picks, bans, sides, player IDs, and unavailable heroes after each draft event. | |
| - When it is your turn, call an OpenAI-compatible small model through the Hugging Face Router and combine that with OpenDota MCP data to recommend a pick or ban. | |
| ## Tech | |
| The app is a Gradio Space. The draft UI is implemented in `app.py`, the recommendation agent lives in `agent.py`, and the OpenDota MCP connection is defined in `mcp.py`. | |
| The default model is `Qwen/Qwen3.6-27B:featherless-ai`, which is under the Build Small 32B parameter cap. A small language model is a good fit for this draft assistant because the task is narrow and highly structured: the model does not need broad open-ended world knowledge, it needs to rank a constrained hero pool against a compact draft state and the latest OpenDota context. Keeping the model small reduces latency, cost, and infrastructure requirements, which makes the app easier to run on a public CPU Space while still leaving the strategic reasoning in an inspectable prompt-and-tool loop. | |
| Runtime configuration is provided through Space Secrets and environment variables: | |
| - `OPENAI_API_KEY`: Hugging Face token used by the OpenAI-compatible Hugging Face Router. | |
| - `HF_TOKEN`: Hugging Face token available to Hub-aware libraries if needed. | |
| - `OPENAI_MODEL`: optional model override. | |
| - `OPENDOTA_API_KEY`: optional OpenDota API key for higher-rate OpenDota requests. | |