|
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""" |
|
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": "Layout vertical avec focus sur la date et le lieu", |
|
"présentation": "Layout structuré avec hiérarchie claire", |
|
"infographie": "Layout en grille ou flux avec données visuelles", |
|
"autre": "Layout flexible selon le contenu" |
|
} |
|
return layouts.get(poster_type.lower(), "Layout personnalisé selon vos besoins") |
|
|
|
def process_style(self, style_pref): |
|
return f"Style recommandé basé sur vos préférences : {style_pref}" |
|
|
|
def analyze_message(self, message): |
|
return f"Recommendations pour votre message : {message}" |
|
|
|
def format_response(self, recommendations): |
|
return f""" |
|
📋 Recommandations pour votre affiche : |
|
|
|
🎯 Layout suggéré : |
|
{recommendations['layout']} |
|
|
|
🎨 Style : |
|
{recommendations['style']} |
|
|
|
💡 Message : |
|
{recommendations['message']} |
|
|
|
Tips pour l'équité : |
|
• Utilisez des contrastes adaptés pour la lisibilité |
|
• Privilégiez des polices inclusives |
|
• Vérifiez l'accessibilité des couleurs |
|
""" |
|
|
|
|
|
assistant = EquityAssistant() |
|
|
|
demo = gr.Interface( |
|
fn=assistant.process_request, |
|
inputs=[ |
|
gr.Dropdown( |
|
choices=["Événement", "Présentation", "Infographie", "Autre"], |
|
label="Type d'affiche" |
|
), |
|
gr.Textbox( |
|
label="Style souhaité", |
|
placeholder="Ex: moderne, minimaliste, coloré..." |
|
), |
|
gr.Textbox( |
|
label="Message principal", |
|
placeholder="Décrivez le message clé de votre affiche" |
|
) |
|
], |
|
outputs=gr.Textbox(label="Recommandations"), |
|
title="🎨 Equity Assistant", |
|
description="Assistant IA pour la création d'affiches équitables et efficaces", |
|
theme="soft" |
|
) |
|
|
|
if __name__ == "__main__": |
|
demo.launch() |