Description
Our solution allows you to choose from a set of requirements, where our chatbot will return a synergistic roster of 5 players based on the role they play in the team, and their respective stats. Combining two models of team creation and statistics retrieval, you have all the information you need in one place!
Our chatbot can build rosters from VCT International, VCT Game Changers and all other VCT challengers regions, from OCE all the way to MENA, or even mixed rosters from all these regions!
Methodology
Data Sources: S3 event data & fandom text, and VLR.gg unofficial API While we were provided with a wealth of match and player data, we decided to focus on the problem in multiple parts, breaking down the data systematically to gain the most insights. We used the vlrgg unofficial API to combine news data with data from the S3 bucket to obtain a combined dataset, cleaning the data with the help of Python libraries.
Data Processing: Python Embedding: Cohere Embed 3 (English) Frontend: NextJS hosted on Vercel ML Model: Retrieval Augmented Generation with Claude 3 Haiku (LLM) and Cohere Embed 3 English (Vector Embedding), deployed on AWS Bedrock
1. Establishing the strongest player by Role
Since individual statistics are not the most important in building a balanced team, we want to find the best players in each position, subject to the other requirements. For different roles, we assessed different player metrics: for example, the Duelist should have a good first kill / first death ratio.
This data was split into two main groups: first, a ranking of the top players in each role, and secondly, a detailed breakdown of each players' historical stats and data, including role and most agents played.
2. Assembling a meta composition
Based on the most popular agent compositions at the latest tournament (past year), we ensure that the compositions we are building are relevant and strong on the current patch. We can then determine the ideal number of duelists, controllers, initiators and sentinels.
3. Choosing players for maximum synergy
We chose the team compositions systematically, picking player by player and assessing how adding a new player would fare given the pre-existing players in the team. This is then reflected in the chatbot's final output, outlining the team, their roles and the reasoning behind these roles.
Findings
We realised quickly that AWS Bedrock agents have a limited number of iterations, where too many queries would cause it to exceed the token limit. This meant that we had to reduce the number of queries the agent could use to get the outcome team composition, and in doing so restructure our data and improve our pre-processing of the dataset.
This caused us to have two models: one to output the agent composition, with a justification of why players were picked and some notable stats about them, and the second model to show more specific statistics if roster managers want to make a more nuanced choice.
Testing Instructions
- Go the testing URL (note that at time of writing, AWS Bedrock has imposed a rate limit on prompts, so it may take some time between consecutive prompts)
- Ask about any composition you think is appropriate!
- Click the toggle to switch to our other model, which shows the specific stats for a player stated in the composition that you may be interested in.
Log in or sign up for Devpost to join the conversation.