Spaces:
Sleeping
Sleeping
File size: 12,995 Bytes
0943fed 520c50f 0943fed bf165e3 1bd2548 bf165e3 f186297 1bd2548 f186297 1bd2548 0943fed 1bd2548 bf165e3 27908d2 bf165e3 e74b643 26ce1d0 81df141 e74b643 520c50f e74b643 bf165e3 81df141 4362780 0625c7b 40b0916 0943fed bf165e3 81df141 bf165e3 b53d55e bf165e3 26ce1d0 c3badaa bf165e3 61c1e67 40b0916 bf165e3 520c50f aac9a79 8bda3ab 9aa79df c484fff 83aa495 aac9a79 369b989 e74b643 0943fed |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 |
from formulas import offer_formulas
from sophistication.generator import create_sophistication_instruction
offer_system_prompt = """You are a world-class expert copywriter, experienced in creating compelling offers that connect emotionally with the target audience.
OBJECTIVE:
- Generate 3 COMPLETELY DIFFERENT versions of a convincing offer in Spanish
- Connect emotionally with the audience
- Address real desires, problems, and motivations
- Maintain natural and conversational language
CRITICAL OUTPUT RULES:
- Create 3 RADICALLY DIFFERENT versions of the offer, each with a unique approach, angle, and structure
- Each version MUST use different vocabulary, sentence structures, and emotional appeals
- Ensure NO repetition of key phrases or selling points between versions
- Number each version clearly as "VERSI脫N 1:", "VERSI脫N 2:", and "VERSI脫N 3:"
- Each version should be completely independent with different wording, focus, and benefits highlighted
- Output ONLY the offers themselves with NO introductory text, explanations, or additional commentary
- Start each version directly with its corresponding formula structure
- Do not include phrases like "Aqu铆 tienes una oferta convincente" or "Esta es tu oferta"
- Present all 3 versions one after another, clearly separated
"""
def create_offer_instruction(target_audience=None, product_service=None, selected_formula_name=None, file_content=None, skills=None, sophistication_level=None):
"""
Creates the instruction for generating an offer based on the selected formula.
Args:
target_audience: Description of the target audience
product_service: Product/service information
selected_formula_name: Name of the selected formula
file_content: Content from uploaded files (if any)
skills: User's skills and expertise
sophistication_level: String key for the market sophistication level
Returns:
str: The complete instruction for generating the offer
"""
# Get the selected formula
selected_formula = offer_formulas[selected_formula_name]
# Get formula-specific instructions (fixed the get method usage)
additional_instructions = selected_formula.get("instructions", "")
# Create the base instruction
instruction = f"""{offer_system_prompt}
FORMULA TO USE:
{selected_formula["description"]}
{additional_instructions}
PRODUCT/SERVICE:
{product_service}
TARGET AUDIENCE:
{target_audience}
ADDITIONAL INFORMATION:
{file_content}
Create a compelling offer following the formula structure exactly, adapting it to the sophistication level provided.
"""
# Add examples if available
if selected_formula.get("sophistication_examples") and sophistication_level:
# Extract the sophistication level key (e.g., "nivel_1", "nivel_2", etc.)
sophistication_key = sophistication_level.split(":")[0].lower().replace(" ", "_")
# Map to the correct key format used in the examples
if "nivel" not in sophistication_key:
sophistication_key = f"nivel_{sophistication_key[0]}"
# Get all examples for the specific sophistication level
examples = []
for key, example in selected_formula["sophistication_examples"].items():
# Check if the key starts with the sophistication level (to include nivel_1, nivel_1_ejemplo2, etc.)
if key.startswith(sophistication_key):
examples.append(example)
# Format all examples based on the formula type
if examples:
instruction += "\n\n### EXAMPLES FOR YOUR REFERENCE:\n"
for i, example in enumerate(examples):
instruction += f"\n#### Example {i+1}:\n"
# Format based on formula type
if selected_formula_name == "Oferta Dorada":
instruction += f"Headline: {example.get('headline', '')}\n"
instruction += f"Promise: {example.get('promise', '')}\n"
instruction += f"Subtitle: {example.get('subtitle', '')}\n"
elif selected_formula_name == "Contraste Revelador":
instruction += f"Situaci贸n: {example.get('situacion', '')}\n"
instruction += f"Soluci贸n: {example.get('solucion', '')}\n"
instruction += f"Resultado: {example.get('resultado', '')}\n"
elif selected_formula_name == "Propuesta 脷nica de Valor":
instruction += f"Transformaci贸n: {example.get('transformacion', '')}\n"
instruction += f"Objeciones: {example.get('objeciones', '')}\n"
# Add more formula types as needed
# Original code for general examples (keep as fallback)
elif selected_formula.get("examples") and len(selected_formula["examples"]) > 0:
examples_text = "\n\n".join([f"Example {i+1}:\n{example}" for i, example in enumerate(selected_formula["examples"])])
instruction += f"\n\nGet inspired by these examples:\n{examples_text}"
# Add sophistication level guidance using the dedicated function
if sophistication_level and sophistication_level == "Nivel 1: Primera promesa fuerte":
# Get basic sophistication guidance
base_sophistication_guidance = create_sophistication_instruction(sophistication_level)
# Add formula-specific guidance for Nivel 1
formula_specific_guidance = f"\n\nFor this Level 1 market sophistication:\n- Make the hook educational or introduce the concept as new\n- Keep the promise direct, clear and impactful without comparisons\n- Focus on explaining what it is and how it works\n- Avoid complicated mechanisms or advanced explanations\n- Present the solution as if it's the first of its kind"
# Combine the base guidance with formula-specific guidance
instruction += f"\n\nMARKET SOPHISTICATION GUIDANCE:\n{base_sophistication_guidance}{formula_specific_guidance}\n\nEnsure the entire offer maintains consistency with this Level 1 sophistication while following the formula structure."
elif sophistication_level and sophistication_level == "Nivel 2: Competencia aparece con la misma promesa":
# Get basic sophistication guidance
base_sophistication_guidance = create_sophistication_instruction(sophistication_level)
# Add formula-specific guidance for Nivel 2
formula_specific_guidance = f"\n\nFor this Level 2 market sophistication:\n- Make the hook acknowledge that the solution exists but position yours as better\n- Add quantitative or qualitative differentiators to your promise (faster, easier, cheaper, more effective)\n- Include specific numbers or percentages when possible to strengthen your claims\n- Compare your solution favorably to alternatives without naming competitors\n- Focus on what makes your solution stand out from others in the market"
# Combine the base guidance with formula-specific guidance
instruction += f"\n\nMARKET SOPHISTICATION GUIDANCE:\n{base_sophistication_guidance}{formula_specific_guidance}\n\nEnsure the entire offer maintains consistency with this Level 2 sophistication while following the formula structure."
elif sophistication_level and sophistication_level == "Nivel 3: Mercado saturado de la misma promesa":
# Get basic sophistication guidance
base_sophistication_guidance = create_sophistication_instruction(sophistication_level)
# Add formula-specific guidance for Nivel 3
formula_specific_guidance = f"\n\nFor this Level 3 market sophistication:\n- Make the hook acknowledge market saturation and introduce a unique angle\n- Focus on a specific mechanism, method, or system that makes your solution different\n- Emphasize HOW your solution works, not just what it does\n- Introduce proprietary terminology or branded concepts\n- Present a new approach to solving the same problem\n- Highlight a unique feature or process that competitors don't have"
# Combine the base guidance with formula-specific guidance
instruction += f"\n\nMARKET SOPHISTICATION GUIDANCE:\n{base_sophistication_guidance}{formula_specific_guidance}\n\nEnsure the entire offer maintains consistency with this Level 3 sophistication while following the formula structure."
elif sophistication_level and sophistication_level == "Nivel 4: Mercado esc茅ptico y desconfiado":
# Get basic sophistication guidance
base_sophistication_guidance = create_sophistication_instruction(sophistication_level)
# Add formula-specific guidance for Nivel 4
formula_specific_guidance = f"\n\nFor this Level 4 market sophistication:\n- Make the hook directly challenge established beliefs with a provocative tone\n- Include specific research, verifiable data, and concrete evidence\n- Reference exact numbers, studies, or expert endorsements\n- Address deep objections that a skeptical audience would have\n- Add elements of exclusivity or limited access\n- Use language that makes the customer feel part of a select group\n- Highlight tangible and diversified results in multiple areas\n- Provide guarantees backed by concrete evidence\n- Use a tone that encourages immediate action"
# Combine the base guidance with formula-specific guidance
instruction += f"\n\nMARKET SOPHISTICATION GUIDANCE:\n{base_sophistication_guidance}{formula_specific_guidance}\n\nEnsure the entire offer maintains consistency with this Level 4 sophistication while following the formula structure."
elif sophistication_level and sophistication_level == "Nivel 5: Mercado insensibilizado y hastiado":
# Get basic sophistication guidance
base_sophistication_guidance = create_sophistication_instruction(sophistication_level)
# Add formula-specific guidance for Nivel 5
formula_specific_guidance = f"\n\nFor this Level 5 market sophistication:\n- Focus on emotional connection and values rather than product features\n- Convey a purpose or philosophy that resonates with the audience\n- Use storytelling that creates identity and belonging\n- Minimize direct selling or product mentions\n- Emphasize lifestyle and emotional experience\n- Use inspirational tone that transcends the product category\n- Focus on transformation of identity, not just results\n- Invite the audience to join a movement or philosophy\n- Use language that empowers and elevates the customer\n- Emphasize the journey and emotional transformation"
# Combine the base guidance with formula-specific guidance
instruction += f"\n\nMARKET SOPHISTICATION GUIDANCE:\n{base_sophistication_guidance}{formula_specific_guidance}\n\nEnsure the entire offer maintains consistency with this Level 5 sophistication while following the formula structure."
elif sophistication_level:
# Original code for other sophistication levels
# Get basic sophistication guidance
base_sophistication_guidance = create_sophistication_instruction(sophistication_level)
# Add formula-specific sophistication guidance
formula_specific_guidance = ""
# Apply conditional logic based on formula name
if selected_formula_name == "Oferta Dorada":
formula_specific_guidance = f"\n\nFor the Oferta Dorada formula specifically:\n- Gancho: Create a hook that matches {sophistication_level} awareness level. For higher sophistication, use more specific data or challenge established beliefs.\n- Promesa: Craft a promise that addresses the skepticism level of this market. For higher sophistication, focus on unique mechanisms or emotional transformation.\n- Beneficio con Autoridad: Provide proof elements appropriate for this sophistication level. For higher sophistication, include more specific data, studies, or transparent evidence."
elif selected_formula_name == "F贸rmula Sue帽o-Obst谩culo":
formula_specific_guidance = f"\n\nFor the F贸rmula Sue帽o-Obst谩culo specifically:\n- Type: Select a solution type that resonates with {sophistication_level} markets.\n- Dream: For higher sophistication levels, make the dream more specific and emotionally resonant rather than generic.\n- Obstacle: For higher sophistication, address more complex or specific obstacles that show deep understanding of the market's challenges."
# Add more conditionals for other formulas as they are added to the system
# Combine the base guidance with formula-specific guidance
instruction += f"\n\nMARKET SOPHISTICATION GUIDANCE:\n{base_sophistication_guidance}{formula_specific_guidance}\n\nEnsure the entire offer maintains consistency with this sophistication level while following the formula structure."
return instruction |