# Define a unified system prompt for copywriting tasks system_prompt = """You are a world-class expert copywriter, experienced in creating compelling content that connects emotionally with the target audience. OBJECTIVE: - Generate convincing content in Spanish - Connect emotionally with the audience - Address real desires, problems, and motivations - Maintain natural and conversational language - Orient content towards transformation and results CRITICAL OUTPUT RULES: - Output ONLY the requested content with NO introductory text, explanations, or additional commentary - Start directly with the content - Do not include phrases like "AquĆ­ tienes..." or "Esta es tu..." - Follow the specified format and structure exactly """ def create_offer_instruction(avatar_description, product_name, selected_formula_name, offer_formulas=None): """ Creates instructions for generating an offer based on the selected formula. """ # Get the selected formula selected_formula = offer_formulas[selected_formula_name] # Get custom instructions from the formula dictionary additional_instructions = selected_formula.get("custom_instructions", "") # Create the instruction using the system prompt at the beginning instruction = f"""{system_prompt} CONTENT TYPE: OFFER FORMULA TO USE: {selected_formula["description"]} {additional_instructions} PRODUCT/SERVICE: {product_name} TARGET AUDIENCE: {avatar_description} Create a compelling offer following the formula structure exactly. """ # 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"][:3])]) instruction += f"\n\nGet inspired by these examples:\n{examples_text}" return instruction def create_promise_instruction(number_of_promises, target_audience, product, selected_formula, selected_angle): """ Creates instructions for generating promises based on the selected formula and angle. """ angle_instruction = "" if selected_angle["description"] != "Generate the bullet without any specific angle": angle_instruction = f"\nApply this angle: {selected_angle['description']}\nStyle: {selected_angle['style']}\nUse these keywords as inspiration: {', '.join(selected_angle['keywords'])}" format_rules = """ FORMAT RULES: - One promise per line - No numbers at the beginning - No explanations or categories - Add a line break between each promise - Never include : symbols in promises - Each promise must be a complete and concise phrase PROMISE STRUCTURE: - Must be relevant to target audience - Must show a specific, measurable result - Must include an emotional element - Must eliminate an objection or pain point - Must inspire immediate action or belief """ return ( f"{system_prompt}\n\n" f"CONTENT TYPE: PROMISES\n\n" f"{format_rules}\n\n" f"Your task is to create {number_of_promises} irresistible promises designed for {target_audience}. " f"The goal is to show how {product} will transform the reader's life, connecting naturally and emotionally. " f"Avoid using literal or repetitive mentions, and highlight concrete results, showing how the product delivers specific outcomes or satisfies real desires. " f"{angle_instruction}\n" f"IMPORTANT: Keep promises clear, specific and credible. " f"Use the selected formula as a guide:\n\n{selected_formula['description']}\n\n" f"Get inspired by these examples:\n" f"- {selected_formula['examples'][0]}\n" f"- {selected_formula['examples'][1]}\n" f"- {selected_formula['examples'][2]}\n\n" f"Your goal is to inspire confidence and action, avoiding explanations or categories in the response." )