107 lines
3.8 KiB
Markdown
107 lines
3.8 KiB
Markdown
# Persona Services Package
|
|
|
|
This package contains platform-specific persona generation and analysis services, providing a modular and extensible architecture for creating platform-optimized writing personas.
|
|
|
|
## Structure
|
|
|
|
```
|
|
services/persona/
|
|
├── __init__.py # Package initialization
|
|
├── linkedin/ # LinkedIn-specific persona services
|
|
│ ├── __init__.py # LinkedIn package initialization
|
|
│ ├── linkedin_persona_service.py # Main LinkedIn persona service
|
|
│ ├── linkedin_persona_prompts.py # LinkedIn-specific prompts
|
|
│ └── linkedin_persona_schemas.py # LinkedIn-specific schemas
|
|
└── README.md # This documentation
|
|
```
|
|
|
|
## LinkedIn Persona Services
|
|
|
|
### LinkedInPersonaService
|
|
The main service class for generating LinkedIn-specific persona adaptations.
|
|
|
|
**Key Features:**
|
|
- Enhanced LinkedIn-specific prompt generation
|
|
- Professional networking optimization
|
|
- Industry-specific adaptations
|
|
- Algorithm optimization for LinkedIn
|
|
- Persona validation and quality scoring
|
|
|
|
**Methods:**
|
|
- `generate_linkedin_persona()` - Generate LinkedIn-optimized persona
|
|
- `validate_linkedin_persona()` - Validate persona data quality
|
|
- `optimize_for_linkedin_algorithm()` - Algorithm-specific optimizations
|
|
- `get_linkedin_constraints()` - Get LinkedIn platform constraints
|
|
|
|
### LinkedInPersonaPrompts
|
|
Handles LinkedIn-specific prompt generation with professional optimization.
|
|
|
|
**Key Features:**
|
|
- Industry-specific targeting (technology, business, etc.)
|
|
- Professional networking focus
|
|
- Thought leadership positioning
|
|
- B2B optimization
|
|
- LinkedIn algorithm awareness
|
|
|
|
### LinkedInPersonaSchemas
|
|
Defines LinkedIn-specific JSON schemas for persona generation.
|
|
|
|
**Key Features:**
|
|
- Enhanced LinkedIn schema with professional fields
|
|
- Algorithm optimization fields
|
|
- Professional networking elements
|
|
- LinkedIn feature-specific adaptations
|
|
|
|
## Usage
|
|
|
|
```python
|
|
from services.persona.linkedin.linkedin_persona_service import LinkedInPersonaService
|
|
|
|
# Initialize the service
|
|
linkedin_service = LinkedInPersonaService()
|
|
|
|
# Generate LinkedIn persona
|
|
linkedin_persona = linkedin_service.generate_linkedin_persona(
|
|
core_persona=core_persona_data,
|
|
onboarding_data=onboarding_data
|
|
)
|
|
|
|
# Validate persona quality
|
|
validation_results = linkedin_service.validate_linkedin_persona(linkedin_persona)
|
|
|
|
# Optimize for LinkedIn algorithm
|
|
optimized_persona = linkedin_service.optimize_for_linkedin_algorithm(linkedin_persona)
|
|
```
|
|
|
|
## Integration with Main Persona Service
|
|
|
|
The main `PersonaAnalysisService` automatically uses the LinkedIn service when generating LinkedIn personas:
|
|
|
|
```python
|
|
# In PersonaAnalysisService._generate_single_platform_persona()
|
|
if platform.lower() == "linkedin":
|
|
return self.linkedin_service.generate_linkedin_persona(core_persona, onboarding_data)
|
|
```
|
|
|
|
## Benefits of This Architecture
|
|
|
|
1. **Modularity**: Each platform has its own dedicated service
|
|
2. **Extensibility**: Easy to add new platforms (Facebook, Instagram, etc.)
|
|
3. **Maintainability**: Platform-specific logic is isolated
|
|
4. **Testability**: Each service can be tested independently
|
|
5. **Reusability**: Services can be used across different parts of the application
|
|
|
|
## Future Extensions
|
|
|
|
This architecture makes it easy to add new platform-specific services:
|
|
|
|
- `services/persona/facebook/` - Facebook-specific persona services
|
|
- `services/persona/instagram/` - Instagram-specific persona services
|
|
- `services/persona/twitter/` - Twitter-specific persona services
|
|
- `services/persona/blog/` - Blog-specific persona services
|
|
|
|
Each platform service would follow the same pattern:
|
|
- `{platform}_persona_service.py` - Main service class
|
|
- `{platform}_persona_prompts.py` - Platform-specific prompts
|
|
- `{platform}_persona_schemas.py` - Platform-specific schemas
|