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() | |