Skip to content

Commit

Permalink
add gui development plan (new)
Browse files Browse the repository at this point in the history
  • Loading branch information
Luncenok committed Oct 25, 2024
1 parent 0fd9d45 commit 16d01f4
Showing 1 changed file with 83 additions and 0 deletions.
83 changes: 83 additions & 0 deletions new_gui_development_plan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
## Development Plan: Enhancing the LLMPostor GUI

This plan outlines the development of a comprehensive GUI for the LLMPostor project, focusing on user interaction, game control, and data visualization.

**Phase 1: Core GUI Structure and Game Control**

1. **GUI Framework Selection:**
- Streamlit
2. **Basic GUI Layout:**
- Create a main window with distinct sections for:
- **Turn Control:**
- Slider to navigate through game turns.
- "Previous Turn" and "Next Turn" buttons for sequential navigation.
- **Game Control:**
- "Resume" and "Stop" buttons to control game execution.
- "Save State" functionality to save the current game state to a separate file.
- **Player Action Selection:**
- Section for manual action selection, allowing users to choose actions for a specific player.
- **Save Game State:**
- Implement functionality to save the game state to a separate file.

**Phase 2: Discussion and Voting Visualization**

1. **Discussion Window:**
- Create a separate window to display the discussion phase of the game.
- Implement a chat-like interface to visualize player messages:
- Display messages chronologically.
- Different player colors for easy identification.
2. **Voting Results Visualization:**
- Create a section within the Discussion window to display voting results.
- Visualize voting results using a clear and intuitive representation:
- Bar chart: Show the number of votes for each player.

**Phase 3: Cost Estimation and LLM Interaction Visualization**

1. **Cost Estimation:**
- Display estimated game costs at the top of the GUI.
- Include token usage and cost for each player:
- Display this information in a clear and concise format.
2. **LLM Interaction Visualization:**
- Create a chat window to visualize prompts and responses of player LLMs.
- Implement a mechanism to collapse prompts by default, allowing users to expand them when needed.
- Display prompts and responses in a chronological order.

**Phase 4: Refinement and Testing**

1. **GUI Refinement:**
- Improve the overall aesthetics and user experience of the GUI.
- Ensure consistent styling and layout across all sections.
- Use appropriate color schemes, fonts, and spacing to enhance readability and visual appeal.
2. **Testing:**
- Thoroughly test all GUI functionalities, including:
- Turn navigation
- Game control
- Player action selection
- Discussion and voting visualization
- Cost estimation and LLM interaction visualization
- Conduct usability testing with real users to gather feedback and identify areas for improvement.
3. **Error Handling:**
- Implement robust error handling mechanisms to prevent unexpected behavior.
- Handle potential errors gracefully, providing informative messages to the user.
4. **Documentation:**
- Create comprehensive documentation for the GUI, including:
- User guide: Explain how to use the GUI, including navigation, controls, and features.
- Developer documentation: Provide detailed information about the GUI's architecture, code structure, and API.

**Additional Considerations:**

- **Scenario Selection:** Allow users to choose from a library of pre-defined scenarios or create their own.
- Implement a scenario selection menu or dropdown.
- Provide options to customize scenario parameters (e.g., number of players, impostors, task difficulty).
- **Player Customization:** Allow users to customize player names, avatars, and LLM models.
- Implement a player customization section.
- Provide a list of available LLM models and allow users to select their preferred options.
- **Game Speed Control:** Implement a slider or buttons to adjust the speed of the game simulation.
- Allow users to control the pace of the game based on their preferences.
- **Game History:** Provide a log of past game turns, including player actions, discussion messages, and voting results.
- Implement a game history section that displays a chronological record of game events.
- Allow users to filter and search through the game history.
- **Data Export:** Allow users to export game data (e.g., player actions, discussion transcripts, voting results) in various formats (e.g., CSV, JSON).
- Implement an export functionality that allows users to save game data for further analysis.

This development plan provides a structured approach to building a comprehensive and user-friendly GUI for the LLMPostor project. By following these phases and considering the additional features and extensions, you can create a powerful tool for analyzing and visualizing the persuasive abilities of LLMs in a game-like environment.

0 comments on commit 16d01f4

Please sign in to comment.