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 a convincing offer in Spanish - Connect emotionally with the audience - Address real desires, problems, and motivations - Maintain natural and conversational language CRITICAL OUTPUT RULES: - Output ONLY the offer itself with NO introductory text, explanations, or additional commentary - Start directly with the attention hook or opening phrase - The entire response should be ONLY the offer itself following the formula structure - Do not include phrases like "Aquí tienes una oferta convincente" or "Esta es tu oferta" """ def create_offer_instruction(target_audience, product_service, selected_formula_name, file_content=None, skills=None, sophistication_level=None, consciousness_level=None): # Nuevo parámetro """ 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("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." # Sección actualizada que incluye ambos parámetros instruction += f""" Parámetros clave a considerar: - Nivel de sofisticación del mercado: {sophistication_level if sophistication_level else 'No especificado'} - Nivel de conciencia del cliente: {consciousness_level if consciousness_level else 'No especificado'} Reglas de combinación obligatorias (NUNCA LAS INCUMPLAS): """ # Nueva sección que integra el nivel de conciencia if consciousness_level: # Add consciousness level guidance consciousness_guidance = { 1: "\n\nCONCIENCIA DEL CLIENTE (Nivel 1 - Básico):\n- El cliente no es consciente de su problema\n- Educación fundamental sobre la necesidad\n- Enfatizar consecuencias de no actuar", 2: "\n\nCONCIENCIA DEL CLIENTE (Nivel 2 - Reconocimiento):\n- El cliente reconoce síntomas pero no la causa raíz\n- Conectar síntomas con problemas subyacentes\n- Mostrar cómo otros han superado la misma situación", 3: "\n\nCONCIENCIA DEL CLIENTE (Nivel 3 - Solución):\n- El cliente entiende soluciones existentes\n- Diferenciar tu enfoque de alternativas comunes\n- Mostrar ventajas comparativas claras", 4: "\n\nCONCIENCIA DEL CLIENTE (Nivel 4 - Experto):\n- El cliente conoce pros/contras de cada solución\n- Enfatizar mecanismos únicos y resultados superiores\n- Usar datos comparativos y casos de estudio avanzados", 5: "\n\nCONCIENCIA DEL CLIENTE (Nivel 5 - Visionario):\n- El cliente busca innovación disruptiva\n- Presentar enfoques revolucionarios\n- Enfatizar cambio de paradigma y ventajas a largo plazo" } instruction += consciousness_guidance.get(consciousness_level, "") - {offer_formulas[selected_formula_name]['core_parameters']['validation_rules']['required_components']['hook'][0]} - {offer_formulas[selected_formula_name]['core_parameters']['validation_rules']['required_components']['promise'][0]} """ return instruction