Spaces:
Sleeping
Sleeping
import gradio as gr | |
import requests | |
API_URL = "https://api-inference.huggingface.co/models/BSC-LT/salamandra-2b-instruct" | |
headers = {} | |
def accionar_ai(pregunta): | |
prompt = f""" | |
Eres Accionar AI, una herramienta activista que apoya campañas sociales en América Latina. | |
Tu tarea es generar estrategias de campaña claras, útiles y bien estructuradas. | |
Incluye al menos una acción y tres aliadas específicas en cada respuesta. | |
📌 Objetivo de la campaña: | |
🎯 Público objetivo: | |
📣 Mensaje clave: | |
🚀 Acciones sugeridas: | |
🤝 Posibles aliadas: | |
--- | |
Ejemplo: | |
Usuario: Queremos lanzar una campaña contra la criminalización de la protesta feminista en México. | |
Respuesta: | |
📌 Objetivo de la campaña: Visibilizar y frenar la persecución, intimidación y criminalización de mujeres que protestan por derechos en México y América Latina. | |
🎯 Público objetivo: Mujeres organizadas, activistas feministas, abogadas populares, defensoras de derechos humanos, periodistas sensibles al tema, y tomadores de decisión en instituciones públicas. | |
📣 Mensaje clave: “¡No a la criminalización de la protesta feminista! Protestar no es un crimen, es un derecho.” | |
🚀 Acciones sugeridas: Recolección de casos, campaña de correos a autoridades, piezas gráficas de denuncia, entrevistas con identidades protegidas. | |
🤝 Posibles aliadas: Colectivas feministas locales, abogadas por la libertad, periodistas con enfoque de género, redes latinoamericanas de derechos humanos. | |
--- | |
Usuario: {pregunta} | |
Respuesta: | |
""" | |
payload = { | |
"inputs": prompt, | |
"parameters": { | |
"max_new_tokens": 280, | |
"temperature": 0.7, | |
"top_p": 0.95 | |
} | |
} | |
response = requests.post(API_URL, headers=headers, json=payload) | |
result = response.json() | |
if isinstance(result, list): | |
generated = result[0].get("generated_text", "").strip() | |
if "Respuesta:" in generated: | |
texto = generated.split("Respuesta:")[-1].strip() | |
else: | |
texto = generated | |
# Ordenar campos | |
campos = { | |
"📌 Objetivo de la campaña:": "", | |
"🎯 Público objetivo:": "", | |
"📣 Mensaje clave:": "", | |
"🚀 Acciones sugeridas:": "", | |
"🤝 Posibles aliadas:": "" | |
} | |
campos_llenos = 0 | |
for line in texto.splitlines(): | |
for campo in campos: | |
if line.startswith(campo) and len(line) > len(campo): | |
campos[campo] = line | |
campos_llenos += 1 | |
if campos_llenos >= 3: | |
return "\n".join([campos[c] for c in campos if campos[c]]) | |
else: | |
return texto.strip() | |
else: | |
return f"⚠️ Error del modelo: {result.get('error', 'respuesta no válida')}" | |
# 🎨 Interfaz "Accionar style" | |
demo = gr.Interface( | |
fn=accionar_ai, | |
inputs=gr.Textbox( | |
lines=4, | |
label="✍️ Escribe tu idea de campaña", | |
placeholder="Ejemplo: Quiero una campaña con jóvenes para prevenir el acoso digital en redes sociales." | |
), | |
outputs=gr.Textbox( | |
label="📢 Propuesta de campaña generada por Accionar AI", | |
lines=8 | |
), | |
title="💥 Accionar AI Commons", | |
description=""" | |
🔮 Asistente activista para campañas sociales en América Latina. | |
🧭 ¿Cómo funciona? | |
Cuéntame tu idea y te ayudamos a transformarla en una estrategia de campaña con objetivos, acciones y posibles aliadas. | |
💡 Ejemplos: | |
- Quiero una campaña para defender el acceso al agua en zonas rurales. | |
- Queremos frenar los desalojos a comunidades indígenas. | |
- Necesitamos visibilizar la violencia digital hacia adolescentes. | |
🌱 Construido con inteligencia colectiva, tecnología libre y corazón latinoamericano. | |
""", | |
theme="soft", | |
allow_flagging="never" | |
) | |
demo.launch() | |