MisterAI commited on
Commit
37639eb
·
verified ·
1 Parent(s): a05212e

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +110 -0
app.py ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #https://huggingface.co/spaces/MisterAI/Try_Small_Models02
2
+ #TSMS_app.py_V08
3
+ #Add SystemInfo to complete requirements.txt
4
+
5
+
6
+
7
+ import subprocess
8
+ import sys, platform
9
+ from importlib import metadata as md
10
+
11
+ #SystemInfo
12
+ print("Python:", platform.python_version(), sys.implementation.name)
13
+ print("OS:", platform.uname())
14
+ print("\n".join(sorted(f"{d.metadata['Name']}=={d.version}" for d in md.distributions())))
15
+
16
+
17
+ # Import des bibliothèques nécessaires
18
+ import gradio as gr
19
+ from transformers import AutoTokenizer, AutoModelForCausalLM
20
+ import requests
21
+ import torch
22
+
23
+ # Fonction pour charger le modèle et le tokenizer
24
+ def load_model(model_name):
25
+ """Charge le modèle et le tokenizer"""
26
+ model = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True)
27
+ tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
28
+ return model, tokenizer
29
+
30
+ # Fonction pour générer du texte en utilisant le modèle
31
+ def generate_text(model, tokenizer, input_text, max_length, temperature):
32
+ """Génère du texte en utilisant le modèle"""
33
+ inputs = tokenizer(input_text, return_tensors="pt")
34
+ output = model.generate(**inputs, max_length=max_length, temperature=temperature)
35
+ return tokenizer.decode(output[0], skip_special_tokens=True)
36
+
37
+ # Fonction principale pour générer le texte
38
+ def main(input_text, max_length, temperature, model_name):
39
+ """Fonction principale pour générer le texte"""
40
+ global model, tokenizer
41
+ if model is None or tokenizer is None:
42
+ raise Exception("Modèle non chargé. Veuillez charger un modèle avant de générer du texte.")
43
+ generated_text = generate_text(model, tokenizer, input_text, max_length, temperature)
44
+ return generated_text
45
+
46
+ # Variables globales pour stocker le modèle et le tokenizer
47
+ model = None
48
+ tokenizer = None
49
+
50
+ # Fonction pour charger le modèle lors du clic sur le bouton "Charger Le Modèle"
51
+ def load_model_button_clicked(model_name):
52
+ """Charge le modèle et le tokenizer lors du clic sur le bouton"""
53
+ global model, tokenizer
54
+ try:
55
+ model, tokenizer = load_model(model_name)
56
+ return f"Modèle {model_name} chargé avec succès"
57
+ except Exception as e:
58
+ return f"Erreur lors du chargement du modèle {model_name}: {e}"
59
+
60
+ # Création de l'interface Gradio
61
+ demo = gr.Blocks()
62
+
63
+ with demo:
64
+ gr.Markdown("# Modèle de Langage")
65
+
66
+ with gr.Row():
67
+ # Textbox pour entrer le nom du modèle
68
+ model_name_textbox = gr.Textbox(label="Nom du modèle", value="prithivMLmods/Triangulum-1B", interactive=True)
69
+ with gr.Row():
70
+ # Bouton pour charger le modèle sélectionné
71
+ LoadModel_button = gr.Button("Charger Le Modèle")
72
+
73
+ with gr.Row():
74
+ # Textbox pour entrer le texte d'entrée
75
+ input_text = gr.Textbox(label="Texte d'entrée")
76
+ with gr.Row():
77
+ # Sliders pour ajuster la longueur maximale et la température
78
+ max_length_slider = gr.Slider(50, 500, label="Longueur maximale", value=200)
79
+ temperature_slider = gr.Slider(0.1, 1.0, label="Température", value=0.7)
80
+
81
+ with gr.Row():
82
+ # Bouton pour soumettre le texte d'entrée
83
+ submit_button = gr.Button("Soumettre")
84
+
85
+ with gr.Row():
86
+ # Textbox pour afficher le texte généré
87
+ output_text = gr.Textbox(label="Texte généré")
88
+
89
+ # Ajout des interactions pour les boutons
90
+ # Lors du clic sur "Charger Le Modèle", appeler la fonction load_model_button_clicked
91
+ LoadModel_button.click(
92
+ load_model_button_clicked,
93
+ inputs=model_name_textbox,
94
+ outputs=gr.Textbox(label="Message de chargement")
95
+ )
96
+
97
+ # Lors du clic sur "Soumettre", appeler la fonction main
98
+ submit_button.click(
99
+ main,
100
+ inputs=[input_text, max_length_slider, temperature_slider, model_name_textbox],
101
+ outputs=output_text,
102
+ queue=False
103
+ )
104
+
105
+ # Lancer l'application Gradio
106
+ if __name__ == "__main__":
107
+ demo.launch()
108
+
109
+
110
+