Spaces:
Paused
Paused
import gradio as gr | |
from transformers import AutoModelForCausalLM, AutoTokenizer | |
import torch | |
# Charger le modèle et le tokenizer depuis Hugging Face | |
model_name = "GueuleDange/UnloTeach" # Remplacez par le nom de votre modèle | |
tokenizer = AutoTokenizer.from_pretrained(model_name) | |
model = AutoModelForCausalLM.from_pretrained(model_name) | |
# Définir une fonction pour interagir avec le modèle | |
def generate_text(prompt, max_tokens=100, temperature=0.7, top_p=0.95): | |
""" | |
Génère une réponse à partir du modèle. | |
:param prompt: Le texte d'entrée. | |
:param max_tokens: Le nombre maximum de tokens à générer. | |
:param temperature: Le paramètre de température pour la génération. | |
:param top_p: Le paramètre de top-p (nucleus sampling). | |
:return: La réponse générée par le modèle. | |
""" | |
# Encoder l'entrée | |
inputs = tokenizer(prompt, return_tensors="pt") | |
# Générer la réponse | |
outputs = model.generate( | |
inputs.input_ids, | |
max_length=max_tokens, | |
temperature=temperature, | |
top_p=top_p, | |
do_sample=True, | |
) | |
# Décoder la réponse | |
response = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
return response | |
# Créer l'interface Gradio | |
with gr.Blocks() as demo: | |
gr.Markdown("# Interface pour interagir avec votre modèle") | |
with gr.Row(): | |
with gr.Column(): | |
input_text = gr.Textbox(label="Entrez votre message", placeholder="Posez une question ou écrivez quelque chose...") | |
max_tokens = gr.Slider(minimum=10, maximum=500, value=100, step=10, label="Nombre maximum de tokens") | |
temperature = gr.Slider(minimum=0.1, maximum=1.0, value=0.7, step=0.1, label="Température") | |
top_p = gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)") | |
submit_button = gr.Button("Générer") | |
with gr.Column(): | |
output_text = gr.Textbox(label="Réponse du modèle", interactive=False) | |
# Lier la fonction à l'interface | |
submit_button.click( | |
fn=generate_text, | |
inputs=[input_text, max_tokens, temperature, top_p], | |
outputs=output_text, | |
) | |
# Lancer l'application | |
demo.launch() |