Files
ALwrity/backend/services/persona/facebook/facebook_persona_prompts.py
2025-09-05 15:22:43 +05:30

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."""