import streamlit as st
from lib.gpt_providers.text_generation.main_text_generation import llm_text_gen
from tenacity import retry, wait_random_exponential, stop_after_attempt
def input_section():
st.markdown("""
🎯 AIDA Copywriting Generator
Create compelling copy that follows the AIDA (Attention-Interest-Desire-Action) framework to drive conversions.
""", unsafe_allow_html=True)
# Educational content about AIDA copywriting
with st.expander("📚 What is AIDA Copywriting?", expanded=False):
st.markdown("""
### Understanding the AIDA Copywriting Framework
AIDA is an acronym for Attention-Interest-Desire-Action. It's a classic copywriting framework that guides your audience through a complete journey:
- **Attention**: Capturing the audience's attention with a compelling headline or hook
- **Interest**: Generating interest by highlighting benefits or addressing pain points
- **Desire**: Creating desire by showcasing how the product/service solves problems or fulfills needs
- **Action**: Prompting the audience to take a specific action with a strong call to action
### Why AIDA Copywriting Works
The AIDA framework works because it:
- Follows the natural decision-making process of consumers
- Addresses all key elements needed for conversion
- Creates a complete journey from awareness to action
- Balances emotional and rational appeals
- Focuses on the customer's journey rather than just product features
### When to Use AIDA Copywriting
The AIDA framework is particularly effective for:
- Landing pages and sales pages
- Email marketing campaigns
- Product descriptions
- Direct response advertising
- Content that needs to drive specific actions
- Marketing materials that need to address objections
""")
# Main input form
with st.expander("✍️ Create Your AIDA Copy", expanded=True):
col1, col2 = st.columns([1, 1])
with col1:
brand_name = st.text_input('**🏢 Brand/Company Name**',
placeholder="e.g., Alwrity",
help="Enter the name of your brand or company.")
target_audience = st.text_input('**👥 Target Audience**',
placeholder="e.g., Small business owners, Tech professionals",
help="Who is your ideal customer? Be specific about demographics and psychographics.")
attention = st.text_area('**🔔 Attention-Grabbing Hook**',
placeholder="e.g., Tired of spending hours writing content that doesn't convert?",
help="Create a compelling headline or hook that captures attention.")
interest = st.text_area('**💡 Generate Interest**',
placeholder="e.g., Imagine creating high-quality content in minutes instead of hours...",
help="Highlight benefits or address pain points to generate interest.")
with col2:
description = st.text_input('**📝 Brand Description** (In 5-6 words)',
placeholder="e.g., AI writing tools",
help="Describe your product or service briefly.")
unique_selling_point = st.text_input('**💎 Unique Selling Point**',
placeholder="e.g., 10x faster content creation",
help="What makes your product/service different from competitors?")
desire = st.text_area('**❤️ Create Desire**',
placeholder="e.g., Our AI analyzes top-performing content to ensure your copy resonates with your target audience...",
help="Showcase how your product/service solves problems or fulfills needs.")
action = st.text_area('**🚀 Call to Action**',
placeholder="e.g., Start creating converting content today with our 14-day free trial...",
help="Prompt your audience to take action with a strong call to action.")
landing_page_url = st.text_input('**🌐 Landing Page URL** (Optional)',
placeholder="e.g., https://alwrity.com",
help="Provide a URL to include in your call to action.")
col1, col2 = st.columns([1, 1])
with col1:
platform = st.selectbox(
'**📱 Content Platform**',
options=['Social media copy', 'Email copy', 'Website copy', 'Ad copy', 'Product copy'],
help="Select the platform where your copy will be used."
)
with col2:
language = st.selectbox(
'**🌍 Language**',
options=['English', 'Hindustani', 'Chinese', 'Hindi', 'Spanish'],
help="Select the language for your copy."
)
tone_style = st.selectbox(
'**🎭 Copy Tone & Style**',
options=['Professional', 'Conversational', 'Humorous', 'Authoritative', 'Empathetic', 'Aspirational'],
help="Select the tone and style for your copy."
)
if st.button('**🚀 Generate AIDA Copy**', type="primary"):
if not brand_name or not description or not attention or not interest or not desire or not action:
st.error("⚠️ Please fill in all required fields (Brand Name, Description, and all AIDA elements)!")
else:
with st.spinner("✨ Crafting compelling AIDA copy..."):
aida_copy = generate_aida_copy(
brand_name,
description,
attention,
interest,
desire,
action,
target_audience,
unique_selling_point,
landing_page_url,
platform,
language,
tone_style
)
if aida_copy:
st.markdown("""
🎯 Your AIDA Copy
""", unsafe_allow_html=True)
# Display the copy with a nice format
st.markdown(aida_copy)
# Add copy button
st.markdown("""
""", unsafe_allow_html=True)
# Add tips for using the copy
with st.expander("💡 Tips for Using Your AIDA Copy", expanded=False):
st.markdown("""
### How to Use Your AIDA Copy Effectively
1. **Follow the sequence**: The AIDA framework creates a natural progression - make sure your copy maintains this flow
2. **Test different hooks**: A/B test different attention-grabbing headlines to see which resonates most with your audience
3. **Pair with visuals**: Combine your copy with images that reinforce each stage of the AIDA journey
4. **Consider the context**: Adapt the copy based on where it will appear (landing page, email, social media, etc.)
5. **Measure results**: Track conversion metrics to see how your AIDA copy performs
6. **Refine over time**: Continuously improve your copy based on audience feedback and performance data
""")
else:
st.error("💥 **Failed to generate AIDA Copy. Please try again!**")
@retry(wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(6))
def generate_aida_copy(brand_name, description, attention, interest, desire, action,
target_audience, unique_selling_point, landing_page_url,
platform, language, tone_style):
system_prompt = """You are an expert copywriter specializing in the AIDA (Attention-Interest-Desire-Action) framework.
Your expertise is in creating compelling, conversion-focused marketing copy that guides readers through a complete journey from awareness to action.
Your copy is authentic, specific to the brand, and focused on driving measurable results."""
prompt = f"""Create 3 different marketing campaigns for {brand_name}, which is a {description}.
TARGET AUDIENCE: {target_audience}
UNIQUE SELLING POINT: {unique_selling_point}
PLATFORM: {platform}
LANGUAGE: {language}
TONE & STYLE: {tone_style}
Use the AIDA framework with these elements:
- **Attention**: {attention}
- **Interest**: {interest}
- **Desire**: {desire}
- **Action**: {action}
"""
if landing_page_url:
prompt += f"\nInclude the landing page URL ({landing_page_url}) in your call to action."
prompt += """
For each campaign:
1. Start with the attention-grabbing hook to capture the audience's attention
2. Generate interest by highlighting benefits or addressing pain points
3. Create desire by showcasing how the product/service solves problems or fulfills needs
4. End with a strong call to action
Format each campaign clearly with "CAMPAIGN 1:", "CAMPAIGN 2:", etc. as headers.
Make the copy authentic, specific to the brand, and focused on the target audience's needs and desires.
"""
try:
return llm_text_gen(prompt, system_prompt=system_prompt)
except Exception as e:
st.error(f"Error generating copy: {str(e)}")
return None