214 lines
8.4 KiB
Python
214 lines
8.4 KiB
Python
"""
|
|
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."""
|