Upload 2 files
Browse files- app.py +52 -0
- requirements.txt +2 -0
app.py
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from huggingface_hub import InferenceClient
|
3 |
+
import time
|
4 |
+
|
5 |
+
client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1")
|
6 |
+
|
7 |
+
def generer_dictee(classe, longueur):
|
8 |
+
prompt = f"Créer une dictée pour la classe {classe} d'une longueur d'environ {longueur} mots. Il est important de crée le texte uniquement de la dictée et de ne pas ajouter de consignes ou d'indications supplémentaires."
|
9 |
+
|
10 |
+
generate_kwargs = {
|
11 |
+
"temperature": 0.7,
|
12 |
+
"max_new_tokens": 1000,
|
13 |
+
"top_p": 0.95,
|
14 |
+
"repetition_penalty": 1.2,
|
15 |
+
"do_sample": True,
|
16 |
+
}
|
17 |
+
|
18 |
+
formatted_prompt = f"<s>[INST] {prompt} [/INST]"
|
19 |
+
stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)
|
20 |
+
dictee = ""
|
21 |
+
|
22 |
+
for response in stream:
|
23 |
+
dictee += response.token.text
|
24 |
+
|
25 |
+
# Supprimer la balise </s>
|
26 |
+
dictee = dictee.replace("</s>", "")
|
27 |
+
|
28 |
+
# Supprimer "Voici une dictée de..." au début du texte, s'il est présent
|
29 |
+
if dictee.startswith(" Voici une dictée de "):
|
30 |
+
dictee = dictee.split(":", 1)[1].strip()
|
31 |
+
|
32 |
+
return dictee
|
33 |
+
|
34 |
+
st.title('Générateur de Dictée')
|
35 |
+
|
36 |
+
with st.expander("Paramètres de la dictée"):
|
37 |
+
classe = st.selectbox("Classe", ["CP", "CE1", "CE2", "CM1", "CM2", "6ème", "5ème", "4ème", "3ème", "Seconde", "Premiere", "Terminale"], index=2)
|
38 |
+
longueur = st.slider("Longueur de la dictée (nombre de mots)", 50, 500, 200)
|
39 |
+
st.caption("*Merci de ne pas mettre la longueur a 50 ou 500 pour des raisons de bug.*")
|
40 |
+
|
41 |
+
if st.button('Générer la Dictée'):
|
42 |
+
# Afficher une barre de chargement pendant la génération
|
43 |
+
with st.spinner("Génération de la dictée en cours..."):
|
44 |
+
# Simuler un délai de chargement (facultatif)
|
45 |
+
time.sleep(1)
|
46 |
+
|
47 |
+
dictee = generer_dictee(classe, longueur)
|
48 |
+
|
49 |
+
# Afficher la dictée générée
|
50 |
+
st.text_area("Voici votre dictée :", dictee, height=300)
|
51 |
+
|
52 |
+
|
requirements.txt
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
streamlit
|
2 |
+
huggingface-hub
|