ALwrity persona system
This commit is contained in:
213
backend/services/persona/facebook/facebook_persona_prompts.py
Normal file
213
backend/services/persona/facebook/facebook_persona_prompts.py
Normal file
@@ -0,0 +1,213 @@
|
||||
"""
|
||||
Facebook Persona Prompts
|
||||
Contains Facebook-specific persona prompt generation logic.
|
||||
"""
|
||||
|
||||
from typing import Dict, Any
|
||||
from loguru import logger
|
||||
|
||||
|
||||
class FacebookPersonaPrompts:
|
||||
"""Facebook-specific persona prompt generation."""
|
||||
|
||||
@staticmethod
|
||||
def build_facebook_system_prompt(core_persona: Dict[str, Any]) -> str:
|
||||
"""
|
||||
Build optimized system prompt with core persona for Facebook generation.
|
||||
This moves the core persona to system prompt to free up context window.
|
||||
"""
|
||||
import json
|
||||
|
||||
return f"""You are an expert Facebook content strategist specializing in community engagement and social sharing optimization.
|
||||
|
||||
CORE PERSONA FOUNDATION:
|
||||
{json.dumps(core_persona, indent=2)}
|
||||
|
||||
TASK: Create Facebook-optimized persona adaptations that maintain core identity while maximizing community engagement and Facebook algorithm performance.
|
||||
|
||||
FOCUS AREAS:
|
||||
- Community-focused tone and engagement strategies
|
||||
- Facebook algorithm optimization (engagement, reach, timing)
|
||||
- Social sharing and viral content potential
|
||||
- Facebook-specific features (Stories, Reels, Live, Groups, Events)
|
||||
- Audience interaction and community building"""
|
||||
|
||||
@staticmethod
|
||||
def build_focused_facebook_prompt(onboarding_data: Dict[str, Any]) -> str:
|
||||
"""
|
||||
Build focused Facebook prompt without core persona JSON to optimize context usage.
|
||||
"""
|
||||
# Extract audience context
|
||||
audience_context = FacebookPersonaPrompts._extract_audience_context(onboarding_data)
|
||||
|
||||
target_audience = audience_context.get("target_audience", "general")
|
||||
content_goals = audience_context.get("content_goals", "engagement")
|
||||
business_type = audience_context.get("business_type", "general")
|
||||
|
||||
return f"""FACEBOOK OPTIMIZATION TASK: Create Facebook-specific adaptations for the core persona.
|
||||
|
||||
AUDIENCE CONTEXT:
|
||||
- Target: {target_audience} | Goals: {content_goals} | Business: {business_type}
|
||||
- Demographics: {audience_context.get('demographics', [])}
|
||||
- Interests: {audience_context.get('interests', [])}
|
||||
- Behaviors: {audience_context.get('behaviors', [])}
|
||||
|
||||
FACEBOOK SPECS:
|
||||
- Character Limit: 63,206 | Optimal Length: 40-80 words
|
||||
- Algorithm Priority: Engagement, meaningful interactions, community building
|
||||
- Content Types: Posts, Stories, Reels, Live, Events, Groups, Carousels, Polls
|
||||
- Hashtag Strategy: 1-2 recommended (max 30)
|
||||
- Link Strategy: Native content performs better
|
||||
|
||||
OPTIMIZATION REQUIREMENTS:
|
||||
|
||||
1. COMMUNITY-FOCUSED TONE:
|
||||
- Authentic, conversational, approachable language
|
||||
- Balance professionalism with relatability
|
||||
- Incorporate storytelling and personal anecdotes
|
||||
- Community-building elements
|
||||
|
||||
2. CONTENT STRATEGY FOR {business_type.upper()}:
|
||||
- Community engagement content for {target_audience}
|
||||
- Social sharing optimization for {content_goals}
|
||||
- Facebook-specific content formats
|
||||
- Audience interaction strategies
|
||||
- Viral content potential
|
||||
|
||||
3. FACEBOOK-SPECIFIC ADAPTATIONS:
|
||||
- Algorithm optimization (engagement, reach, timing)
|
||||
- Platform-specific vocabulary and terminology
|
||||
- Engagement patterns for Facebook audience
|
||||
- Community interaction strategies
|
||||
- Facebook feature optimization (Stories, Reels, Live, Events, Groups)
|
||||
|
||||
4. AUDIENCE TARGETING:
|
||||
- Demographic-specific positioning
|
||||
- Interest-based content adaptation
|
||||
- Behavioral targeting considerations
|
||||
- Community building strategies
|
||||
- Engagement optimization tactics
|
||||
|
||||
Generate comprehensive Facebook-optimized persona maintaining core identity while maximizing community engagement and social sharing potential."""
|
||||
|
||||
@staticmethod
|
||||
def _extract_audience_context(onboarding_data: Dict[str, Any]) -> Dict[str, Any]:
|
||||
"""Extract audience context from onboarding data."""
|
||||
try:
|
||||
# Get enhanced analysis data
|
||||
enhanced_analysis = onboarding_data.get("enhanced_analysis", {})
|
||||
website_analysis = onboarding_data.get("website_analysis", {}) or {}
|
||||
research_prefs = onboarding_data.get("research_preferences", {}) or {}
|
||||
|
||||
# Extract audience intelligence
|
||||
audience_intel = enhanced_analysis.get("audience_intelligence", {})
|
||||
|
||||
# Extract target audience from website analysis
|
||||
target_audience_data = website_analysis.get("target_audience", {}) or {}
|
||||
|
||||
# Build audience context
|
||||
audience_context = {
|
||||
"target_audience": target_audience_data.get("primary_audience", "general"),
|
||||
"content_goals": research_prefs.get("content_goals", "engagement"),
|
||||
"business_type": website_analysis.get("business_type", "general"),
|
||||
"demographics": audience_intel.get("demographics", []),
|
||||
"interests": audience_intel.get("interests", []),
|
||||
"behaviors": audience_intel.get("behaviors", []),
|
||||
"psychographic_profile": audience_intel.get("psychographic_profile", "general"),
|
||||
"pain_points": audience_intel.get("pain_points", []),
|
||||
"engagement_level": audience_intel.get("engagement_level", "moderate")
|
||||
}
|
||||
|
||||
return audience_context
|
||||
|
||||
except Exception as e:
|
||||
logger.warning(f"Error extracting audience context: {str(e)}")
|
||||
return {
|
||||
"target_audience": "general",
|
||||
"content_goals": "engagement",
|
||||
"business_type": "general",
|
||||
"demographics": [],
|
||||
"interests": [],
|
||||
"behaviors": [],
|
||||
"psychographic_profile": "general",
|
||||
"pain_points": [],
|
||||
"engagement_level": "moderate"
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def build_facebook_validation_prompt(persona_data: Dict[str, Any]) -> str:
|
||||
"""Build optimized prompt for validating Facebook persona data."""
|
||||
return f"""FACEBOOK PERSONA VALIDATION TASK: Validate Facebook persona data for completeness and quality.
|
||||
|
||||
PERSONA DATA:
|
||||
{persona_data}
|
||||
|
||||
VALIDATION REQUIREMENTS:
|
||||
|
||||
1. COMPLETENESS CHECK:
|
||||
- Verify all required Facebook-specific fields are present
|
||||
- Check for missing algorithm optimization strategies
|
||||
- Validate engagement strategy completeness
|
||||
- Ensure content format rules are defined
|
||||
|
||||
2. QUALITY ASSESSMENT:
|
||||
- Evaluate Facebook algorithm optimization quality
|
||||
- Assess engagement strategy effectiveness
|
||||
- Check content format optimization
|
||||
- Validate audience targeting strategies
|
||||
|
||||
3. FACEBOOK-SPECIFIC VALIDATION:
|
||||
- Verify Facebook platform constraints are respected
|
||||
- Check for Facebook-specific best practices
|
||||
- Validate community building strategies
|
||||
- Ensure Facebook feature optimization
|
||||
|
||||
4. RECOMMENDATIONS:
|
||||
- Provide specific improvement suggestions
|
||||
- Identify missing optimization opportunities
|
||||
- Suggest Facebook-specific enhancements
|
||||
- Recommend engagement strategy improvements
|
||||
|
||||
Generate comprehensive validation report with scores, recommendations, and specific improvement suggestions for Facebook optimization."""
|
||||
|
||||
@staticmethod
|
||||
def build_facebook_optimization_prompt(persona_data: Dict[str, Any]) -> str:
|
||||
"""Build optimized prompt for optimizing Facebook persona data."""
|
||||
return f"""FACEBOOK PERSONA OPTIMIZATION TASK: Optimize Facebook persona data for maximum algorithm performance and community engagement.
|
||||
|
||||
CURRENT PERSONA DATA:
|
||||
{persona_data}
|
||||
|
||||
OPTIMIZATION REQUIREMENTS:
|
||||
|
||||
1. ALGORITHM OPTIMIZATION:
|
||||
- Enhance Facebook algorithm performance strategies
|
||||
- Optimize for Facebook's engagement metrics
|
||||
- Improve content timing and frequency
|
||||
- Enhance audience targeting precision
|
||||
|
||||
2. ENGAGEMENT OPTIMIZATION:
|
||||
- Strengthen community building strategies
|
||||
- Enhance social sharing potential
|
||||
- Improve audience interaction tactics
|
||||
- Optimize content for viral potential
|
||||
|
||||
3. CONTENT FORMAT OPTIMIZATION:
|
||||
- Optimize for Facebook's content formats
|
||||
- Enhance visual content strategies
|
||||
- Improve video content optimization
|
||||
- Optimize for Facebook Stories and Reels
|
||||
|
||||
4. AUDIENCE TARGETING OPTIMIZATION:
|
||||
- Refine demographic targeting
|
||||
- Enhance interest-based targeting
|
||||
- Improve behavioral targeting
|
||||
- Optimize for Facebook's audience insights
|
||||
|
||||
5. COMMUNITY BUILDING OPTIMIZATION:
|
||||
- Enhance group management strategies
|
||||
- Improve event management tactics
|
||||
- Optimize live streaming strategies
|
||||
- Enhance community interaction methods
|
||||
|
||||
Generate optimized Facebook persona data with enhanced algorithm performance, engagement strategies, and community building tactics."""
|
||||
Reference in New Issue
Block a user