Spaces:
Running
Running
Yufan_Zhou
Update UI: improve spacing, font sizes, layout and add life story and interests fields
40c05c4 A newer version of the Gradio SDK is available:
6.9.0
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:
- Demographic Information - Basic demographic data with context
- Career and Work Identity - Professional journey and work-related aspects
- Core Values, Beliefs, and Philosophy - Guiding principles and worldview
- Lifestyle and Daily Routine - Concrete daily actions and habits
- Cultural and Social Context - Relationship with society and environment
- Hobbies, Interests, and Lifestyle - Personal interests with psychological depth
- 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:
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
- Higher Quality Personas: Improved prompts generate more realistic and authentic character profiles
- Better Consistency: Category-based generation ensures logical consistency across all attributes
- More Control: Users can adjust the level of detail based on their needs
- 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:
from generation_user_profile.code.web_api_bridge import generate_profile_from_input
profile = generate_profile_from_input(input_data)
New way:
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:
Set your OpenAI API key:
export OPENAI_API_KEY="your-api-key"Run the application:
cd /Users/yufan_zhou/Documents/deeppersona/deeppersona-experience python app.pyOpen the Gradio interface in your browser
Fill in the basic information and try different attribute counts
Notes
- The old
generation_user_profiledirectory 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