Base code

This commit is contained in:
Kunthawat Greethong
2026-01-08 22:39:53 +07:00
parent 697115c61a
commit c35fa52117
2169 changed files with 626670 additions and 0 deletions

View 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