File size: 4,045 Bytes
c290e43
 
4390781
c290e43
4390781
 
 
 
 
 
c290e43
4390781
 
d348c37
 
 
4390781
 
 
 
 
c290e43
4390781
 
 
 
d348c37
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4390781
 
 
 
d348c37
 
 
 
 
 
4390781
 
d348c37
 
 
 
 
4390781
 
 
 
 
d348c37
4390781
 
d348c37
4390781
 
d348c37
4390781
 
d348c37
 
 
 
 
 
c290e43
 
4390781
 
 
 
 
 
 
 
d348c37
 
4390781
 
 
d348c37
 
4390781
 
 
d348c37
 
4390781
 
 
 
d348c37
 
 
 
 
 
 
 
 
 
 
4390781
c290e43
 
4390781
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
115
116
117
118
119
120
121
122
123
import gradio as gr

class EquityAssistant:
    def __init__(self):
        self.user_preferences = {
            'style_history': [],
            'color_preferences': [],
            'layout_choices': [],
            'expertise_level': 'novice'
        }

    def process_request(self, poster_type, style_pref, message):
        """Traite la demande de l'utilisateur et génère des recommandations"""
        # Enregistrement des préférences
        self.user_preferences['style_history'].append(style_pref)
        
        recommendations = {
            'layout': self.suggest_layout(poster_type),
            'style': self.process_style(style_pref),
            'message': self.analyze_message(message)
        }
        
        return self.format_response(recommendations)
    
    def suggest_layout(self, poster_type):
        layouts = {
            "événement": """
• En-tête : Date et titre de l'événement
• Zone centrale : Image ou graphique principal
• Pied de page : Informations pratiques et contacts""",
            
            "présentation": """
• Structure hiérarchique claire
• Points clés mis en évidence
• Espaces blancs pour la lisibilité""",
            
            "infographie": """
• Organisation en sections distinctes
• Utilisation d'icônes et de pictogrammes
• Flow d'information logique""",
            
            "autre": """
• Layout flexible adapté à votre contenu
• Focus sur la hiérarchie visuelle
• Zones de respiration"""
        }
        return layouts.get(poster_type.lower(), "Layout personnalisé selon vos besoins")
    
    def process_style(self, style_pref):
        style_tips = f"""
Basé sur votre style '{style_pref}' :
• Palette de couleurs harmonieuse et accessible
• Typographie lisible et inclusive
• Éléments visuels cohérents avec votre style"""
        return style_tips
    
    def analyze_message(self, message):
        return f"""
Optimisation de votre message :
• Clarté et concision du texte
• Hiérarchie de l'information
• Points d'attention pour l'inclusivité"""
    
    def format_response(self, recommendations):
        return f"""
📋 Recommandations pour votre affiche :

🎯 Layout recommandé :
{recommendations['layout']}

🎨 Style et Design :
{recommendations['style']}

💡 Message et Communication :
{recommendations['message']}

✨ Tips pour l'équité :
• Vérifiez les contrastes (WCAG 2.1)
• Utilisez des polices lisibles
• Évitez les stéréotypes
• Pensez à l'accessibilité
• Testez avec différents publics
        """

# Création de l'interface
assistant = EquityAssistant()

demo = gr.Interface(
    fn=assistant.process_request,
    inputs=[
        gr.Dropdown(
            choices=["Événement", "Présentation", "Infographie", "Autre"],
            label="Type d'affiche",
            info="Sélectionnez le type de support que vous souhaitez créer"
        ),
        gr.Textbox(
            label="Style souhaité",
            placeholder="Ex: moderne, minimaliste, coloré...",
            info="Décrivez le style visuel que vous recherchez"
        ),
        gr.Textbox(
            label="Message principal",
            placeholder="Décrivez le message clé de votre affiche",
            info="Quel est le message essentiel à communiquer ?"
        )
    ],
    outputs=gr.Textbox(label="Recommandations"),
    title="🎨 Equity Assistant",
    description="""
    Bienvenue dans Equity Assistant ! 
    Cet outil vous aide à créer des affiches équitables, accessibles et efficaces.
    Commencez par remplir les informations ci-dessous pour recevoir des recommandations personnalisées.
    """,
    theme="soft",
    examples=[
        ["Événement", "moderne et dynamique", "Festival de musique multiculturel"],
        ["Présentation", "professionnel et épuré", "Rapport annuel d'impact social"],
        ["Infographie", "coloré et informatif", "Données sur la diversité en entreprise"]
    ]
)

if __name__ == "__main__":
    demo.launch()