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