Spaces:
Running
Running
File size: 3,662 Bytes
9b6b4fd bf6e5b1 bbb926c bf6e5b1 90557f1 9b6b4fd bbb926c 9b6b4fd bbb926c 9b6b4fd bbb926c 9b6b4fd 90557f1 d737915 90557f1 bbb926c d737915 bbb926c d737915 9b6b4fd bbb926c 9b6b4fd bbb926c d737915 6c4d2de bbb926c d737915 bbb926c 9b6b4fd bbb926c 9b6b4fd |
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 |
import gradio as gr
import anthropic
import os # Importa el módulo os para manejar variables de entorno
# Obtén la clave de API desde la variable de entorno
api_key = os.getenv("ANTHROPIC_API_KEY")
# Verifica si la clave de API está configurada
if not api_key:
raise ValueError("Falta la clave de API de Anthropoid. Asegúrate de configurarla en los secretos del repositorio.")
# Configura el cliente de la API de Claude (Anthropic)
client = anthropic.Anthropic(api_key=api_key)
def generate_headlines(number_of_headlines, target_audience, product):
# Llama a la API de Claude para generar titulares
message = client.messages.create(
model="claude-3-5-sonnet-20240620",
max_tokens=1000,
temperature=0,
system="You are a world-class copywriter, with experience in creating hooks, headlines, and subject lines that immediately capture attention. Your skill lies in deeply understanding the emotions, desires, and challenges of a specific audience, allowing you to design personalized marketing strategies that resonate and motivate action. You know how to use proven structures to attract your target audience, generating interest and achieving a powerful connection that drives desired results in advertising and content campaigns.\n\nAnswer in Spanish.",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": f"Generate {number_of_headlines} attention-grabbing headlines designed for {target_audience} to generate interest in {product}. Each headline should be crafted to encourage a specific action, such as making a purchase, signing up, or downloading. Use a variety of formats (questions, bold statements, intriguing facts) to test different approaches."
}
]
}
]
)
return message.content
# Configura la interfaz de usuario con Gradio
def gradio_generate_headlines(number_of_headlines, target_audience, product):
return generate_headlines(number_of_headlines, target_audience, product)
# Define los colores de la interfaz según el logo de Anthropic (ejemplo)
logo_colors = {
"background": "#f8f8f8",
"primary": "#2c7be5",
"text_color": "#212529"
}
with gr.Blocks(css=f"""
.gradio-container {{ background-color: {logo_colors['background']}; }}
.headline-output {{ white-space: pre-line; text-align: left; font-size: 16px; padding: 10px; border: 1px solid {logo_colors['primary']}; border-radius: 5px; }}
.gradio-button {{ margin-top: 10px; }}
""") as demo:
gr.Markdown(
f"""
<h1 style="color: {logo_colors['primary']}; text-align: center;">Generador de Titulares</h1>
<p style="color: {logo_colors['text_color']}; text-align: center;">Usa el poder de Claude AI para crear titulares atractivos</p>
"""
)
with gr.Row():
with gr.Column():
number_of_headlines = gr.Number(label="Número de Titulares", value=5)
target_audience = gr.Textbox(label="Público Objetivo", placeholder="Ejemplo: Estudiantes Universitarios")
product = gr.Textbox(label="Producto", placeholder="Ejemplo: Curso de Inglés")
submit_btn = gr.Button("Generar Titulares", elem_id="submit-btn", css_class="gradio-button")
output = gr.Textbox(label="Titulares Generados", lines=10, css_class="headline-output")
submit_btn.click(
fn=gradio_generate_headlines,
inputs=[number_of_headlines, target_audience, product],
outputs=output
)
# Lanza la interfaz
demo.launch()
|