Caikejs commited on
Commit
b8715d4
·
verified ·
1 Parent(s): 6a34930

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -21
app.py CHANGED
@@ -1,49 +1,54 @@
1
  import gradio as gr
2
  from transformers import pipeline
3
 
4
- # Tente carregar um modelo menor
5
- try:
6
- model_a = pipeline("text-generation", model="distilgpt2") # Usando um modelo menor
7
- except RuntimeError as e:
8
- print("Erro ao carregar o modelo:", e)
9
- model_a = pipeline("text-generation", model="gpt2") # Fallback para GPT-2
10
-
11
- # Usar um modelo menor ou alternativo para o modelo B
12
- try:
13
- model_b = pipeline("text-generation", model="EleutherAI/gpt-neo-125M") # Modelo alternativo
14
- except RuntimeError as e:
15
- print("Erro ao carregar o modelo B:", e)
16
- model_b = pipeline("text-generation", model="gpt2") # Fallback para GPT-2
17
 
18
  # Modelo juiz
19
- arbiter = pipeline("text-classification", model="neuralmind/bert-base-portuguese-cased")
20
 
21
  # Julgamento por batch
22
  def judge_response(response_a, response_b):
23
  results = arbiter([response_a, response_b])
24
  score_a = results[0]['score']
25
  score_b = results[1]['score']
 
 
26
  return ("Modelo A", response_a) if score_a > score_b else ("Modelo B", response_b)
27
 
28
  # Função principal
29
  def chatbot(prompt):
 
30
  response_a = model_a(prompt, max_new_tokens=40)[0]['generated_text'].strip()
31
  response_b = model_b(prompt, max_new_tokens=40)[0]['generated_text'].strip()
 
 
32
  winner, final_response = judge_response(response_a, response_b)
33
- return prompt, response_a, response_b, winner, final_response
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
 
35
  # Interface
36
  iface = gr.Interface(
37
  fn=chatbot,
38
  inputs=gr.Textbox(label="Digite sua pergunta:"),
39
  outputs=[
40
- gr.Textbox(label="Pergunta"),
41
- gr.Textbox(label="Resposta do Modelo A (DistilGPT-2)"),
42
- gr.Textbox(label="Resposta do Modelo B (GPT-Neo-125M)"),
43
- gr.Textbox(label="Modelo Vencedor"),
44
- gr.Textbox(label="Resposta Escolhida"),
45
  ],
46
- title="Atividade N2 Chatbot com Julgamento - TIME: FDCH_FMU ",
47
  description="Compara respostas de dois modelos e usa um árbitro para escolher a melhor com base no sentimento positivo."
48
  )
49
 
 
1
  import gradio as gr
2
  from transformers import pipeline
3
 
4
+ # Modelos geradores otimizados
5
+ model_a = pipeline("text-generation", model="distilgpt2") # Modelo A
6
+ model_b = pipeline("text-generation", model="EleutherAI/gpt-neo-125M") # Modelo B
 
 
 
 
 
 
 
 
 
 
7
 
8
  # Modelo juiz
9
+ arbiter = pipeline("text-classification", model="neuralmind/bert-base-portuguese-cased") # Modelo Árbitro
10
 
11
  # Julgamento por batch
12
  def judge_response(response_a, response_b):
13
  results = arbiter([response_a, response_b])
14
  score_a = results[0]['score']
15
  score_b = results[1]['score']
16
+
17
+ # Critério de julgamento: maior pontuação é melhor
18
  return ("Modelo A", response_a) if score_a > score_b else ("Modelo B", response_b)
19
 
20
  # Função principal
21
  def chatbot(prompt):
22
+ # Gera respostas para ambos os modelos
23
  response_a = model_a(prompt, max_new_tokens=40)[0]['generated_text'].strip()
24
  response_b = model_b(prompt, max_new_tokens=40)[0]['generated_text'].strip()
25
+
26
+ # Julga as respostas
27
  winner, final_response = judge_response(response_a, response_b)
28
+
29
+ # Retorna as informações
30
+ return {
31
+ "prompt": prompt,
32
+ "resposta_modelo_a": response_a,
33
+ "resposta_modelo_b": response_b,
34
+ "modelo_vencedor": winner,
35
+ "resposta_escolhida": final_response,
36
+ "informacoes_modelos": {
37
+ "modelo_a": "distilgpt2 - Modelo de geração de texto leve.",
38
+ "modelo_b": "EleutherAI/gpt-neo-125M - Modelo de geração de texto maior.",
39
+ "modelo_juiz": "neuralmind/bert-base-portuguese-cased - Modelo de classificação para julgar as respostas."
40
+ },
41
+ "criterio_julgamento": "O modelo juiz classifica as respostas com base em uma pontuação de sentimento positivo."
42
+ }
43
 
44
  # Interface
45
  iface = gr.Interface(
46
  fn=chatbot,
47
  inputs=gr.Textbox(label="Digite sua pergunta:"),
48
  outputs=[
49
+ gr.JSON(label="Resultados"),
 
 
 
 
50
  ],
51
+ title="Chatbot com Julgamento",
52
  description="Compara respostas de dois modelos e usa um árbitro para escolher a melhor com base no sentimento positivo."
53
  )
54