Spaces:
Running
Running
Yufan_Zhou
Update UI: improve spacing, font sizes, layout and add life story and interests fields
40c05c4 | # Migration to Improved Generation Method | |
| ## Overview | |
| The web application has been updated to use the improved persona generation method from `generate_user_profile_final` instead of the older `generation_user_profile` method. | |
| ## Key Changes | |
| ### 1. Updated Generation Method | |
| **Before:** | |
| - Used `generation_user_profile/code/web_api_bridge.py` | |
| - Simpler generation logic with basic prompts | |
| - Fixed attribute generation approach | |
| **After:** | |
| - Uses `generate_user_profile_final/code/web_api_bridge.py` | |
| - Advanced generation logic with improved prompts from `generate_profile_ind.py` | |
| - Configurable attribute count (100-350) | |
| - Better structured generation with category-based batch processing | |
| ### 2. Improved Features | |
| #### Enhanced Prompt Engineering | |
| - More detailed system prompts for each profile section | |
| - Better instructions for maintaining consistency across attributes | |
| - "Show, Don't Tell" principle for more authentic narratives | |
| - Explicit guidelines to avoid clichés and create realistic personas | |
| #### Category-Based Generation | |
| The new method generates attributes in logical categories: | |
| 1. **Demographic Information** - Basic demographic data with context | |
| 2. **Career and Work Identity** - Professional journey and work-related aspects | |
| 3. **Core Values, Beliefs, and Philosophy** - Guiding principles and worldview | |
| 4. **Lifestyle and Daily Routine** - Concrete daily actions and habits | |
| 5. **Cultural and Social Context** - Relationship with society and environment | |
| 6. **Hobbies, Interests, and Lifestyle** - Personal interests with psychological depth | |
| 7. **Other Attributes** - Communication style, decision-making, quirks, and internal conflicts | |
| #### Configurable Attribute Count | |
| - Users can now specify the number of attributes (100-350) | |
| - More attributes = more detailed and nuanced persona | |
| - Default: 200 attributes | |
| ### 3. File Changes | |
| #### Modified Files | |
| - `/app.py` - Updated to use new generation method and added attribute count slider | |
| #### New Files | |
| - `/generate_user_profile_final/code/web_api_bridge.py` - New bridge module for web interface | |
| ### 4. API Changes | |
| The `generate_profile_from_input()` function now accepts an additional parameter: | |
| ```python | |
| def generate_profile_from_input( | |
| input_data: Dict[str, Any], | |
| attribute_count: int = 200 | |
| ) -> Dict[str, Any]: | |
| """ | |
| Generate a complete user persona from input data | |
| Args: | |
| input_data: Input data containing basic information and optional custom values | |
| attribute_count: Number of attributes to generate (default: 200) | |
| Returns: | |
| Dict: Generated complete user persona | |
| """ | |
| ``` | |
| ### 5. Web Interface Updates | |
| New UI element added: | |
| - **Attribute Count Slider**: Allows users to control the detail level of generated personas | |
| - Range: 100-350 attributes | |
| - Step: 50 | |
| - Default: 200 | |
| ## Benefits | |
| 1. **Higher Quality Personas**: Improved prompts generate more realistic and authentic character profiles | |
| 2. **Better Consistency**: Category-based generation ensures logical consistency across all attributes | |
| 3. **More Control**: Users can adjust the level of detail based on their needs | |
| 4. **Scalability**: The new method is designed to handle varying complexity levels efficiently | |
| ## Migration Guide | |
| If you have existing code that calls the generation function: | |
| **Old way:** | |
| ```python | |
| from generation_user_profile.code.web_api_bridge import generate_profile_from_input | |
| profile = generate_profile_from_input(input_data) | |
| ``` | |
| **New way:** | |
| ```python | |
| from generate_user_profile_final.code.web_api_bridge import generate_profile_from_input | |
| # With default attribute count (200) | |
| profile = generate_profile_from_input(input_data) | |
| # With custom attribute count | |
| profile = generate_profile_from_input(input_data, attribute_count=250) | |
| ``` | |
| ## Testing | |
| To test the new implementation: | |
| 1. Set your OpenAI API key: | |
| ```bash | |
| export OPENAI_API_KEY="your-api-key" | |
| ``` | |
| 2. Run the application: | |
| ```bash | |
| cd /Users/yufan_zhou/Documents/deeppersona/deeppersona-experience | |
| python app.py | |
| ``` | |
| 3. Open the Gradio interface in your browser | |
| 4. Fill in the basic information and try different attribute counts | |
| ## Notes | |
| - The old `generation_user_profile` directory is still present for reference but is no longer used by the web application | |
| - All generated profiles are saved to `generate_user_profile_final/output/` | |
| - The new method requires the same dependencies as before (see `requirements.txt`) | |
| ## Future Improvements | |
| Potential enhancements to consider: | |
| - Add more granular control over specific attribute categories | |
| - Implement profile templates for common use cases | |
| - Add validation and quality checks for generated profiles | |
| - Support for batch generation through the web interface | |