File size: 3,895 Bytes
a93fcd0
c14dcf3
a93fcd0
570e388
83dca78
a93fcd0
c14dcf3
209a133
ea4ea96
 
b56f131
 
83dca78
ea4ea96
 
 
 
 
83dca78
23771d1
c317163
b56f131
23771d1
 
 
 
 
 
 
b56f131
 
23771d1
 
c317163
ea4ea96
c317163
 
a93fcd0
c317163
c14dcf3
 
ea4ea96
b56f131
ea4ea96
 
 
c14dcf3
c317163
c14dcf3
 
ea4ea96
c14dcf3
209a133
f43fd88
209a133
51fab8c
209a133
51fab8c
 
bfd55ce
51fab8c
 
 
 
 
 
 
 
ad9e0d2
51fab8c
 
ad9e0d2
51fab8c
ad9e0d2
 
 
bfd55ce
ad9e0d2
 
209a133
 
c14dcf3
bfd55ce
c14dcf3
 
bfd55ce
 
167a55e
bfd55ce
 
 
 
 
 
 
 
 
 
 
167a55e
bfd55ce
 
 
 
 
 
 
 
 
 
a93fcd0
 
c14dcf3
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
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()