Commit
·
ec15175
1
Parent(s):
d675294
Update app.py
Browse files
app.py
CHANGED
@@ -86,7 +86,7 @@ class MistralChatBot:
|
|
86 |
mistral_bot = MistralChatBot()
|
87 |
|
88 |
title = """
|
89 |
-
<h1 style='text-align: center; font-weight: bold;'> Bellay, le premier LLM de la littérature française</h1>
|
90 |
"""
|
91 |
description = """
|
92 |
<p style='text-align: justify;'>
|
@@ -101,6 +101,7 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus elementum leo a
|
|
101 |
</p>
|
102 |
"""
|
103 |
list_dropdown = [
|
|
|
104 |
'Proust',
|
105 |
'Encyclopédie',
|
106 |
'Balzac',
|
@@ -132,69 +133,83 @@ list_dropdown = [
|
|
132 |
'Baudrillard',
|
133 |
'Romans contemporains'
|
134 |
]
|
|
|
135 |
# Dictionary of explanations for each artist or style
|
136 |
explanations = {
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
|
|
166 |
}
|
|
|
167 |
image_urls = {
|
168 |
-
'Proust':
|
169 |
-
'Encyclopédie':
|
170 |
-
'Balzac':
|
171 |
-
'Montaigne':
|
172 |
-
'Foucault':
|
173 |
-
'Chansons de gestes':
|
174 |
-
'Constitutions françaises':
|
175 |
-
'La Fontaine':
|
176 |
-
'Madame de Sévigné':
|
177 |
-
'Molière':
|
178 |
-
'Racine':
|
179 |
-
'
|
180 |
-
'Romans
|
181 |
-
'
|
182 |
-
'
|
183 |
-
'
|
184 |
-
'
|
185 |
-
'
|
186 |
-
'
|
187 |
-
'
|
188 |
-
'
|
189 |
-
'
|
190 |
-
'
|
|
|
|
|
|
|
|
|
191 |
}
|
192 |
|
193 |
# Function to return the explanation and the image based on the selected artist or style
|
194 |
def update_explanation(choice):
|
195 |
-
|
196 |
-
|
197 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
return explanation_text, image_html
|
199 |
|
200 |
# Define the Gradio interface using Blocks
|
@@ -203,27 +218,30 @@ with gr.Blocks(theme = 'carlosrosash/bellay_test') as demo:
|
|
203 |
gr.Markdown(description)
|
204 |
|
205 |
# Define the column for dropdown, explanation, and image
|
206 |
-
with gr.
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
dropdown.change(update_explanation, inputs=dropdown, outputs=[explanation_box, explanation_image])
|
211 |
|
212 |
# Define the columns for input and output
|
213 |
with gr.Row():
|
214 |
-
with gr.Column():
|
215 |
-
user_input = gr.Textbox(label="
|
216 |
temperature_slider = gr.Slider(label="Temperature", value=0.7, minimum=0.05, maximum=1.0, step=0.05, interactive=True)
|
217 |
with gr.Row():
|
218 |
with gr.Column():
|
219 |
-
clear_button = gr.Button("
|
220 |
with gr.Column():
|
221 |
-
submit_button = gr.Button("
|
222 |
with gr.Column():
|
223 |
-
output_text = gr.Textbox(label="
|
224 |
|
225 |
# Function to handle the button click for submit
|
226 |
def on_submit(user_message, style, temperature):
|
|
|
|
|
|
|
227 |
return mistral_bot.predict(user_message, style, temperature)
|
228 |
|
229 |
# Function to handle the button click for clear
|
|
|
86 |
mistral_bot = MistralChatBot()
|
87 |
|
88 |
title = """
|
89 |
+
<h1 style='text-align: center; font-weight: bold; font-size: 60px;'> Bellay, le premier LLM de la littérature française</h1>
|
90 |
"""
|
91 |
description = """
|
92 |
<p style='text-align: justify;'>
|
|
|
101 |
</p>
|
102 |
"""
|
103 |
list_dropdown = [
|
104 |
+
'',
|
105 |
'Proust',
|
106 |
'Encyclopédie',
|
107 |
'Balzac',
|
|
|
133 |
'Baudrillard',
|
134 |
'Romans contemporains'
|
135 |
]
|
136 |
+
|
137 |
# Dictionary of explanations for each artist or style
|
138 |
explanations = {
|
139 |
+
"Proust": "Marcel Proust est connu pour son style d'écriture riche et élaboré, caractérisé par des phrases longues et complexes, emplies de métaphores et de descriptions minutieuses. Son approche narrative, introspective et analytique, explore profondément les méandres de la mémoire et des émotions humaines.",
|
140 |
+
"Encyclopédie":"L'Encyclopédie, dirigée par Diderot et d'Alembert, se caractérise par un style clair et didactique, visant à diffuser le savoir de manière accessible. Elle se distingue par ses articles détaillés et objectifs, reflétant les principes des Lumières et l'esprit critique de l'époque.",
|
141 |
+
"Balzac": "Honoré de Balzac est célèbre pour son style réaliste et détaillé, qui peint avec minutie la société française du XIXe siècle. Ses descriptions exhaustives des lieux, des personnages et des situations, alliées à une analyse psychologique profonde, sont au cœur de son œuvre littéraire.",
|
142 |
+
"Montaigne": "Michel de Montaigne est reconnu pour son style d'écriture personnel et introspectif, manifeste dans ses Essais. Sa prose, à la fois fluide et réflexive, explore une grande diversité de sujets avec un esprit critique et une curiosité intellectuelle remarquable.",
|
143 |
+
"Foucault": "Michel Foucault est connu pour son style d'écriture dense et analytique, qui explore les thèmes du pouvoir, de la connaissance et de la discipline sociale. Ses textes, souvent complexes, se caractérisent par un discours critique et une approche philosophique interdisciplinaire.",
|
144 |
+
"Chansons de gestes": "Les chansons de geste, typiques de la littérature médiévale française, adoptent un style narratif épique et formel, caractérisé par des vers assonancés et des récits héroïques. Ces textes mettent en avant les valeurs de bravoure, de fidélité et d'honneur, à travers des récits de batailles et d'aventures chevaleresques.",
|
145 |
+
"Constitutions françaises": "Les Constitutions françaises se distinguent par un style juridique et formel, axé sur la clarté et la concision. Elles articulent les principes fondamentaux de la République et de l'organisation de l'État avec un langage précis et structuré.",
|
146 |
+
"La Fontaine": "Jean de La Fontaine, dans ses fables, adopte un style simple et élégant, mêlant l'ironie et la morale avec une grande habileté poétique. Ses vers fluides et rythmés, souvent teintés d'humour, rendent ses récits accessibles tout en offrant une profonde réflexion sur la nature humaine.",
|
147 |
+
"Madame de Sévigné": "Madame de Sévigné se distingue par un style épistolaire naturel et vivant, marqué par sa finesse d'observation et son esprit. Ses lettres, célèbres pour leur ton intimiste et leur élégance, reflètent avec justesse et humour la société de son époque.",
|
148 |
+
"Molière": "Molière, dans ses pièces de théâtre, se caractérise par un style satirique et une maîtrise exceptionnelle du dialogue, alliant comique, critique sociale et profondeur psychologique. Son écriture, à la fois accessible et riche en jeux de mots, révèle les travers humains avec finesse et humour.",
|
149 |
+
"Racine": "Jean Racine est célèbre pour son style dramatique élégant et épuré, caractérisé par la musicalité de ses alexandrins et la rigueur classique de sa structure. Ses tragédies, empreintes d'une intense émotion et d'une profondeur psychologique, explorent les passions humaines avec un langage raffiné et poignant.",
|
150 |
+
"Romans classiques": "Les romans classiques français se caractérisent par un style soigné et structuré, mettant l'accent sur une narration linéaire et une exploration approfondie des caractères. Ils se distinguent par des descriptions détaillées, une langue élégante et un souci de réalisme dans la représentation des mœurs et des sentiments.",
|
151 |
+
"Romans romantiques": "Les romans romantiques français se caractérisent par un style expressif et passionné, privilégiant l'exploration des émotions intenses et des idéaux individualistes. Leur écriture, souvent ornée et lyrique, se focalise sur les thèmes de l'amour, du désir, de la nature, et de la quête de l'absolu.",
|
152 |
+
"Théâtre absurde": "Le théâtre de l'absurde se caractérise par un style déroutant et non conventionnel, brisant les structures narratives traditionnelles pour explorer l'absurdité de l'existence humaine. Son langage, souvent marqué par l'ironie, le non-sens et une logique déroutante, reflète une profonde remise en question des conventions sociales et philosophiques.",
|
153 |
+
"Romans belle époque": "Les romans de la Belle Époque se distinguent par un style riche et orné, reflétant l'opulence et le dynamisme de cette période. Leur écriture, souvent caractérisée par des descriptions luxuriantes et une attention particulière aux détails sociaux et culturels, capture l'essence d'une société en pleine transformation.",
|
154 |
+
"Bible Segond": "La traduction de la Bible par Louis Segond est reconnue pour son style clair et accessible, tout en restant fidèle aux textes originaux. Elle se caractérise par une prose fluide et une structure narrative qui facilite la compréhension des textes sacrés pour les lecteurs francophones.",
|
155 |
+
"Zola": "Émile Zola est célèbre pour son style naturaliste, mettant en avant une observation précise et souvent crue de la société, avec une attention particulière aux détails réalistes. Ses romans, imprégnés d'une critique sociale et d'une analyse approfondie des conditions humaines, sont écrits dans une langue directe et puissante.",
|
156 |
+
"Pagnol": "Marcel Pagnol se distingue par un style narratif chaleureux et vivant, empreint de la lumière et de l'esprit du Midi de la France. Son écriture, à la fois simple et poétique, est marquée par un grand sens du dialogue et une affection profonde pour ses personnages et les paysages provençaux.",
|
157 |
+
"Philosophie": "Le style d'écriture en philosophie est généralement analytique et rigoureux, caractérisé par une argumentation logique et une exploration approfondie des concepts. Il varie cependant considérablement selon les auteurs et les écoles de pensée, allant du style dense et technique au style plus narratif et accessible.",
|
158 |
+
"Poésies": "La poésie se caractérise par un style expressif et rythmique, faisant un usage intensif de figures de style telles que la métaphore, la rime et l'allitération. Elle varie grandement en forme et en thème, allant de la poésie classique structurée à des formes plus libres et contemporaines, reflétant souvent l'émotion et l'imagination de l'auteur.",
|
159 |
+
"De Gaulle": "Charles de Gaulle, dans ses écrits, adopte un style direct et assertif, caractérisé par une prose claire et une rhétorique puissante. Son langage, à la fois formel et engagé, reflète sa vision politique et son engagement envers la France et ses valeurs.",
|
160 |
+
"Série noire": "La Série Noire, célèbre collection de romans policiers et de thrillers, est reconnue pour son style sombre et incisif, qui plonge le lecteur dans des atmosphères tendues et mystérieuses. Les récits, souvent marqués par des dialogues tranchants et une narration rapide, explorent les aspects les plus sombres de la psychologie humaine et de la société.",
|
161 |
+
"San Antonio": "San Antonio, pseudonyme de Frédéric Dard, est connu pour son style unique mêlant humour, argot et jeux de mots. Ses romans policiers se distinguent par une narration dynamique et une ironie mordante, reflétant un regard à la fois critique et amusé sur la société.",
|
162 |
+
"Duras": "Marguerite Duras se distingue par un style épuré et poétique, où les silences et les non-dits occupent une place aussi importante que les mots. Son écriture, à la fois intense et minimaliste, explore les thèmes de l'amour, de la mémoire et de l'aliénation avec une profondeur émotionnelle subtile.",
|
163 |
+
"Presse années 1970": "La presse des années 1970 en France se caractérise par un style souvent engagé et incisif, reflétant les mouvements sociaux et politiques de l'époque. Elle privilégie une approche critique et analytique des événements, tout en explorant de nouvelles formes de journalisme, y compris le reportage de terrain et l'investigation approfondie.",
|
164 |
+
"Braudel": "Fernand Braudel se distingue par un style d'écriture historique dense et détaillé, mettant l'accent sur la longue durée et les structures économiques, sociales et géographiques. Son approche, à la fois globale et minutieuse, révolutionne la narration historique en intégrant une analyse multidimensionnelle et temporelle des phénomènes.",
|
165 |
+
"Bourdieu": "Pierre Bourdieu est réputé pour son style d'écriture académique et complexe, caractérisé par un langage précis et une approche théorique rigoureuse. Ses textes, souvent denses et exigeants, utilisent un vocabulaire spécialisé pour explorer les dynamiques de pouvoir et les structures sociales.",
|
166 |
+
"Derrida": "Jacques Derrida est connu pour son style philosophique dense et hermétique, caractérisé par une écriture complexe et une approche de déconstruction. Son langage, souvent difficile d'accès, remet en question les structures traditionnelles de pensée et de langage, en privilégiant une analyse critique et profonde des concepts.",
|
167 |
+
"Baudrillard": "Jean Baudrillard se caractérise par un style d'écriture provocateur et souvent paradoxal, explorant les thèmes de la société de consommation, des médias et de la simulation. Sa prose, à la fois critique et ironique, utilise des concepts abstraits pour questionner la réalité et l'illusion dans le monde contemporain.",
|
168 |
+
"Romans contemporains": "Les romans contemporains se distinguent par une grande diversité de styles, allant du réalisme au fantastique, et abordent souvent des thèmes actuels avec une écriture innovante. Ils se caractérisent par une exploration approfondie des émotions et des expériences humaines, souvent à travers des narrations non linéaires et des techniques littéraires variées."
|
169 |
}
|
170 |
+
|
171 |
image_urls = {
|
172 |
+
'Proust': 'https://upload.wikimedia.org/wikipedia/commons/b/b8/Marcel_Proust_1895.jpg',
|
173 |
+
'Encyclopédie': 'https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Encyclopedie_de_D%27Alembert_et_Diderot_-_Premiere_Page_-_ENC_1-NA5.jpg/1024px-Encyclopedie_de_D%27Alembert_et_Diderot_-_Premiere_Page_-_ENC_1-NA5.jpg',
|
174 |
+
'Balzac': 'https://upload.wikimedia.org/wikipedia/commons/e/e6/Honoré_de_Balzac_%281842%29_Detail.jpg',
|
175 |
+
'Montaigne': 'https://upload.wikimedia.org/wikipedia/commons/a/ac/Montaigne-Dumonstier.jpg',
|
176 |
+
'Foucault': 'https://upload.wikimedia.org/wikipedia/commons/7/76/Michel_Foucault_1974_Brasil.jpg',
|
177 |
+
'Chansons de gestes': 'https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/Mort_de_Roland.jpg/440px-Mort_de_Roland.jpg',
|
178 |
+
'Constitutions françaises': 'https://pictures.abebooks.com/inventory/31018618758.jpg',
|
179 |
+
'La Fontaine':'https://upload.wikimedia.org/wikipedia/commons/e/e1/La_Fontaine_par_Rigaud.jpg',
|
180 |
+
'Madame de Sévigné': 'https://upload.wikimedia.org/wikipedia/commons/1/1e/Madame_de_Sevigne_Lefebvre.jpg',
|
181 |
+
'Molière':'https://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Molière_-_Nicolas_Mignard_%281658%29.jpg/640px-Molière_-_Nicolas_Mignard_%281658%29.jpg',
|
182 |
+
'Racine': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/36/Portrait_de_Jean_Racine_d%27après_Jean-Baptiste_Santerre.jpg/440px-Portrait_de_Jean_Racine_d%27après_Jean-Baptiste_Santerre.jpg',
|
183 |
+
'Romans classiques': 'https://cdn.shopify.com/s/files/1/0517/5915/3314/files/classiques.png?v=1626357130',
|
184 |
+
'Romans romantiques':'https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/Chateaubriand%2C_Stendhal%2C_Balzac%2C_Hugo%2C_quatre_portraits.jpg/400px-Chateaubriand%2C_Stendhal%2C_Balzac%2C_Hugo%2C_quatre_portraits.jpg',
|
185 |
+
'Théâtre absurde': 'https://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/En_attendant_Godot%2C_Festival_d%27Avignon%2C_1978.jpeg/1920px-En_attendant_Godot%2C_Festival_d%27Avignon%2C_1978.jpeg',
|
186 |
+
'Romans belle époque': 'https://centoparole.it/wp-content/uploads/2015/10/1-belle-epoque-1880-1914.net_.jpg',
|
187 |
+
'Bible Segond': 'https://m.media-amazon.com/images/I/41M1hPjWwGL._AC_UF1000,1000_QL80_.jpg',
|
188 |
+
'Zola': 'https://upload.wikimedia.org/wikipedia/commons/thumb/5/5a/Emile_Zola_1902.jpg/440px-Emile_Zola_1902.jpg',
|
189 |
+
'Pagnol': 'https://upload.wikimedia.org/wikipedia/commons/7/79/Pagnol_Harcourt_1948.jpg',
|
190 |
+
'Philosophie': 'https://upload.wikimedia.org/wikipedia/commons/thumb/4/42/Hortus_Deliciarum%2C_Philosophy_and_the_seven_liberal_arts_%28cropped%29.jpg/1920px-Hortus_Deliciarum%2C_Philosophy_and_the_seven_liberal_arts_%28cropped%29.jpg',
|
191 |
+
'Poésies': 'https://image.spreadshirtmedia.net/image-server/v1/mp/products/T127A1PA5161PT21X6Y7D153825068W2047H2047/views/1,width=1200,height=630,appearanceId=1,backgroundColor=F2F2F2,modelId=2834,crop=design/cadeau-decriture-lyrique-poesie-plume-poesie-grands-badges.jpg',
|
192 |
+
'De Gaulle': 'https://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Charles_de_Gaulle-1963.jpg/463px-Charles_de_Gaulle-1963.jpg',
|
193 |
+
'San Antonio': 'https://upload.wikimedia.org/wikipedia/commons/0/03/Frédéric_Dard_%281992%29_by_Erling_Mandelmann.jpg',
|
194 |
+
'Duras': 'https://upload.wikimedia.org/wikipedia/commons/thumb/1/12/Identite-Duras-1960-Sacem.png/600px-Identite-Duras-1960-Sacem.png',
|
195 |
+
'Braudel': 'https://upload.wikimedia.org/wikipedia/commons/8/89/Fernand_Braudel_%281902-1985%29.jpg',
|
196 |
+
'Bourdieu': 'https://upload.wikimedia.org/wikipedia/commons/thumb/c/c0/Pierre_Bourdieu_%281%29.jpg/1024px-Pierre_Bourdieu_%281%29.jpg',
|
197 |
+
'Derrida': 'https://upload.wikimedia.org/wikipedia/commons/9/90/Chinmoy_Guha_with_Derrida_%28cropped%29.jpg',
|
198 |
+
'Baudrillard': 'https://upload.wikimedia.org/wikipedia/commons/b/be/Jean_Baudrillard.png'
|
199 |
}
|
200 |
|
201 |
# Function to return the explanation and the image based on the selected artist or style
|
202 |
def update_explanation(choice):
|
203 |
+
if choice is None or choice == "":
|
204 |
+
explanation_text = "Choisissez un style d'écriture pour commencer"
|
205 |
+
image_html = "<p style='text-align: center;'>Une image apparaîtra une fois un choix effectué</p>"
|
206 |
+
else:
|
207 |
+
explanation_text = explanations.get(choice, "Aucune explication disponible")
|
208 |
+
image_url = image_urls.get(choice, "")
|
209 |
+
if image_url:
|
210 |
+
image_html = f"<img src='{image_url}' style='max-height: 200px; max-width: 200px; display: block; margin-left: auto; margin-right: auto;'/>"
|
211 |
+
else:
|
212 |
+
image_html = "<p style='text-align: center;'>Aucune image disponible.</p>"
|
213 |
return explanation_text, image_html
|
214 |
|
215 |
# Define the Gradio interface using Blocks
|
|
|
218 |
gr.Markdown(description)
|
219 |
|
220 |
# Define the column for dropdown, explanation, and image
|
221 |
+
with gr.Row(variant = 'panel'):
|
222 |
+
dropdown = gr.Dropdown(list_dropdown, label="Choisissez un artiste ou un style d'écriture")
|
223 |
+
explanation_box = gr.Textbox(label="Explication", type="text", lines=5, interactive=False)
|
224 |
+
explanation_image = gr.HTML(label="Image")
|
225 |
dropdown.change(update_explanation, inputs=dropdown, outputs=[explanation_box, explanation_image])
|
226 |
|
227 |
# Define the columns for input and output
|
228 |
with gr.Row():
|
229 |
+
with gr.Column(variant = 'panel'):
|
230 |
+
user_input = gr.Textbox(label="Choisissez un artiste ou un style d'écriture", type="text", lines=5, placeholder="Commencez à taper ici")
|
231 |
temperature_slider = gr.Slider(label="Temperature", value=0.7, minimum=0.05, maximum=1.0, step=0.05, interactive=True)
|
232 |
with gr.Row():
|
233 |
with gr.Column():
|
234 |
+
clear_button = gr.Button("Effacer", variant = "secondary")
|
235 |
with gr.Column():
|
236 |
+
submit_button = gr.Button("Envoyer 🖋️", variant = "primary")
|
237 |
with gr.Column():
|
238 |
+
output_text = gr.Textbox(label="Réponse", type="text", lines=10)
|
239 |
|
240 |
# Function to handle the button click for submit
|
241 |
def on_submit(user_message, style, temperature):
|
242 |
+
if style == "":
|
243 |
+
return "Veuillez sélectionner un style d'écriture avant de soumettre."
|
244 |
+
style_prompt = styles_prompts_dict.get(style, "")
|
245 |
return mistral_bot.predict(user_message, style, temperature)
|
246 |
|
247 |
# Function to handle the button click for clear
|