Base code
This commit is contained in:
106
backend/services/persona/README.md
Normal file
106
backend/services/persona/README.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user