alex-abb commited on
Commit
3db2cf3
1 Parent(s): d46fa4f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -50
app.py CHANGED
@@ -1,57 +1,38 @@
1
- from transformers import AutoModelForSequenceClassification, AutoTokenizer, Trainer, TrainingArguments, pipeline
2
- from datasets import load_dataset
3
  import gradio as gr
4
- import os
5
 
6
- # Charger le jeu de données SST-2
7
- dataset = load_dataset("glue", "sst2")
 
8
 
9
- # Charger le modèle BERT pré-entraîné et le tokenizer associé
10
- model_name = "bert-base-uncased"
11
- tokenizer = AutoTokenizer.from_pretrained(model_name)
12
- model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2) # 2 classes : positif et négatif
13
-
14
- # Prétraitement des données
15
- def preprocess_function(examples):
16
- return tokenizer(examples["sentence"], padding="max_length", truncation=True)
17
-
18
- encoded_dataset = dataset.map(preprocess_function, batched=True)
19
-
20
- # Configuration des arguments d'entraînement
21
- training_args = TrainingArguments(
22
- per_device_train_batch_size=8,
23
- evaluation_strategy="epoch",
24
- logging_dir="./logs",
25
- output_dir="./results",
26
- num_train_epochs=3,
27
- )
28
-
29
- # Entraînement du modèle
30
- trainer = Trainer(
31
- model=model,
32
- args=training_args,
33
- train_dataset=encoded_dataset["train"],
34
- eval_dataset=encoded_dataset["validation"],
35
- )
36
-
37
- # Vérifiez si le modèle a déjà été entraîné et sauvegardé
38
- if not os.path.exists("./fine_tuned_model"):
39
- trainer.train()
40
- # Sauvegarder le modèle fine-tuné et le tokenizer
41
- model.save_pretrained("./fine_tuned_model")
42
- tokenizer.save_pretrained("./fine_tuned_model")
43
- else:
44
- # Charger le modèle fine-tuné
45
- model = AutoModelForSequenceClassification.from_pretrained("./fine_tuned_model")
46
- tokenizer = AutoTokenizer.from_pretrained("./fine_tuned_model")
47
-
48
- # Créer un pipeline de classification des sentiments
49
- sentiment_analysis = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)
50
 
51
  # Fonction pour générer une réponse à partir du message de l'utilisateur
52
- def generate_response(message):
53
- result = sentiment_analysis(message)[0]
54
- return f"Label: {result['label']}, Score: {result['score']}"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
 
56
  # Configurer et lancer l'interface de chat avec Gradio
57
- gr.ChatInterface(fn=generate_response).launch()
 
 
 
 
 
 
 
 
1
+ from transformers import pipeline, Conversation, ConversationalPipeline
 
2
  import gradio as gr
 
3
 
4
+ # Charger le modèle GPT de Hugging Face
5
+ model_id = "microsoft/DialoGPT-medium" # Remplacez par le modèle souhaité
6
+ chat_pipeline = pipeline("conversational", model=model_id)
7
 
8
+ # Consigne que le modèle suivra pour chaque chat
9
+ system_message = "You are a helpful assistant that always responds in a friendly manner."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
 
11
  # Fonction pour générer une réponse à partir du message de l'utilisateur
12
+ def generate_response(user_message, history):
13
+ # Ajouter le message système au début de l'historique des messages
14
+ messages = [{"role": "system", "content": system_message}] + [{"role": "user", "content": user_message}]
15
+
16
+ # Créer une conversation avec l'historique des messages
17
+ conversation = Conversation()
18
+ for message in messages:
19
+ if message["role"] == "user":
20
+ conversation.add_user_input(message["content"])
21
+ else:
22
+ conversation.append_response(message["content"])
23
+
24
+ # Générer une réponse
25
+ result = chat_pipeline(conversation)
26
+ response = result.generated_responses[-1]
27
+ history.append((user_message, response))
28
+ return history, response
29
 
30
  # Configurer et lancer l'interface de chat avec Gradio
31
+ iface = gr.Interface(
32
+ fn=generate_response,
33
+ inputs=["text", "state"],
34
+ outputs=["state", "text"],
35
+ live=True,
36
+ )
37
+
38
+ iface.launch()