--- title: Team 7 emoji: 🏢 colorFrom: purple colorTo: yellow sdk: static pinned: false license: other short_description: final submission --- # MistralAI_GameJam2025 This repo hosts Team'7 project for the Mistral AI Game Jam 2025. Thanks to Mistral, Huggingface, Scaleway and ElevenLabs for providing the ressources! ## Game Description TODO ## Architecture ![Architecture Diagram](readme_assets/mermaid-diagram-2025-01-25-105038.svg) ## How to Build the Front-End This project contains three main components, the Python LLM middleware (using Django), Web interface (using Vite React), and Unity 6 game project. To build the front-end code, you must follow the following steps: 1. Build the game Open the `./unity` folder through Unity Hub with Unity 6. Then, switch the build target to `Web`. 2. Prepare the build folder When building the game, you'll be asked to choose the name and path of the output folder. Make sure you set that as `gamejamproj`, or all the contents of the `Build` folder has that name. Next, rename the `Build` folder to `build` (only for consistency. You can change the build path and name in `./app/src/config`). 3. Build the Web UI Move the `build` folder to the `.app/public` folder. Go to the `./app` folder, and run `yarn` to install the dependencies, and `yarn build` to build everything. The build output should be stored in the `./app/dist` folder. 4. Move the Unity build to the web UI Make sure the `build` folder that contains the Unity WebGL binaries are in the same path as the `index.html` file in the `dist` folder. 5. Run the page You can deploy the page or run the `index.html` through a local HTML server. Note that due to WASM policy, you cannot just double-click the `.html` file and load it in your browser to play the game. ## Backend # Personality-Based Decision Workflow ![Personalities workflow ](readme_assets/personalities_workflow.svg) This flowchart illustrates the decision-making process for an AI personality-based word-guessing game. It visually represents how the AI determines its behavior and output based on its assigned personality trait. ## Workflow Overview 1. **Start Node**: The process begins by parsing the `BASE_PROMPT` and inserting relevant context. 2. **Personality Decision**: The workflow checks the assigned personality trait (`sensitive_to_compliments`, `rebellious`, `stubborn`, `lazy`, `normal`, or `overthinker`), which determines how the AI interprets advice and makes guesses. - **Sensitive to Compliments**: Trusts advice only when it includes compliments. - **Rebellious**: Challenges or twists user advice, often defying direct suggestions. - **Stubborn**: Prefers to stick with previous guesses unless provided overwhelming evidence. - **Lazy**: Takes minimal effort, often choosing random or obvious guesses. - **Normal**: Processes advice straightforwardly and logically. - **Overthinker**: Analyzes hints from multiple angles, often second-guessing decisions. 3. **Making Guesses**: Based on the selected personality, rules and context are applied to propose guesses. 4. **Satisfaction Rating**: The AI evaluates the advice, assigning a satisfaction rating (`0`, `1`, or `2`) based on its helpfulness or relevance. 5. **Output Assembly**: A JSON object is created, containing the guesses, satisfaction rating, and reasoning. 6. **End Node**: The process completes with the assembled output. ## Visual Key - **Purple (Decision Nodes)**: Indicate points where a decision is made (e.g., personality check, satisfaction rating). - **Pink (Personality Nodes)**: Represent personality-specific rules and behavior. - **Blue (Process Nodes)**: Represent operational steps, such as parsing prompts and proposing guesses. - **Green (Start)** and **Red (End)**: Highlight the start and end of the workflow. This structured workflow ensures that each personality behaves uniquely, adding diversity to AI interactions. The color-coded nodes make the chart easy to follow and visually intuitive.