ThieLin commited on
Commit
e21a6e7
·
verified ·
1 Parent(s): 7b3747b
Files changed (1) hide show
  1. app.py +25 -29
app.py CHANGED
@@ -1,36 +1,35 @@
1
  import gradio as gr
2
  from huggingface_hub import InferenceClient
3
- from transformers import AutoTokenizer, AutoModelForQuestionAnswering, pipeline
4
  from sentence_transformers import SentenceTransformer, util
 
5
 
6
  # Modelos
7
- model_name = "deepset/roberta-base-squad2"
8
- qa_pipeline = pipeline("question-answering", model=model_name, tokenizer=model_name)
9
 
10
- client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
11
-
12
- # Modelo para comparação semântica (cosine similarity)
13
  similarity_model = SentenceTransformer("all-MiniLM-L6-v2")
14
 
15
 
16
- def get_qa_pipeline_answer(question, context):
17
- return qa_pipeline({"question": question, "context": context})["answer"]
18
-
19
-
20
- def get_zephyr_answer(question, context):
21
  messages = [
22
  {"role": "system", "content": "You are a helpful assistant."},
23
- {"role": "user", "content": f"Context: {context}\n\nQuestion: {question}"},
24
  ]
25
- response = client.chat_completion(
26
  messages,
27
- max_tokens=512,
28
  temperature=0.7,
29
  top_p=0.95,
30
  )
31
  return response.choices[0].message.content.strip()
32
 
33
 
 
 
 
 
 
34
  def compare_answers(answer1, answer2):
35
  emb1 = similarity_model.encode(answer1, convert_to_tensor=True)
36
  emb2 = similarity_model.encode(answer2, convert_to_tensor=True)
@@ -38,28 +37,25 @@ def compare_answers(answer1, answer2):
38
  return round(similarity, 3)
39
 
40
 
41
- def respond(question, context):
42
- answer1 = get_qa_pipeline_answer(question, context)
43
- answer2 = get_zephyr_answer(question, context)
44
- similarity_score = compare_answers(answer1, answer2)
45
 
46
  return (
47
- f"📘 Roberta-base-squad2:\n{answer1}\n\n"
48
- f"🧠 Zephyr-7b:\n{answer2}\n\n"
49
- f"🔍 Similaridade Semântica: **{similarity_score}**"
50
  )
51
 
52
 
53
- # Interface Gradio
54
  with gr.Blocks() as demo:
55
- gr.Markdown("# 🔎 Perguntas com dois modelos\nCompare duas respostas e veja a similaridade.")
56
- with gr.Row():
57
- question = gr.Textbox(label="Pergunta")
58
- context = gr.Textbox(label="Contexto")
59
- submit_btn = gr.Button("Obter Respostas")
60
- output = gr.Textbox(label="Respostas e Similaridade")
61
 
62
- submit_btn.click(respond, inputs=[question, context], outputs=output)
63
 
64
  if __name__ == "__main__":
65
  demo.launch()
 
1
  import gradio as gr
2
  from huggingface_hub import InferenceClient
 
3
  from sentence_transformers import SentenceTransformer, util
4
+ from transformers import pipeline
5
 
6
  # Modelos
7
+ chat_model_zephyr = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
8
+ chat_model_gemma = pipeline("text-generation", model="declare-lab/gemma-v2", max_new_tokens=256)
9
 
10
+ # Similaridade
 
 
11
  similarity_model = SentenceTransformer("all-MiniLM-L6-v2")
12
 
13
 
14
+ def get_zephyr_response(question):
 
 
 
 
15
  messages = [
16
  {"role": "system", "content": "You are a helpful assistant."},
17
+ {"role": "user", "content": question}
18
  ]
19
+ response = chat_model_zephyr.chat_completion(
20
  messages,
21
+ max_tokens=256,
22
  temperature=0.7,
23
  top_p=0.95,
24
  )
25
  return response.choices[0].message.content.strip()
26
 
27
 
28
+ def get_gemma_response(question):
29
+ generated = chat_model_gemma(question)[0]["generated_text"]
30
+ return generated.strip()
31
+
32
+
33
  def compare_answers(answer1, answer2):
34
  emb1 = similarity_model.encode(answer1, convert_to_tensor=True)
35
  emb2 = similarity_model.encode(answer2, convert_to_tensor=True)
 
37
  return round(similarity, 3)
38
 
39
 
40
+ def respond(question):
41
+ answer_zephyr = get_zephyr_response(question)
42
+ answer_gemma = get_gemma_response(question)
43
+ similarity = compare_answers(answer_zephyr, answer_gemma)
44
 
45
  return (
46
+ f"🧠 Zephyr-7b:\n{answer_zephyr}\n\n"
47
+ f"🤖 Gemma-v2:\n{answer_gemma}\n\n"
48
+ f"🔍 Similaridade Semântica: **{similarity}**"
49
  )
50
 
51
 
 
52
  with gr.Blocks() as demo:
53
+ gr.Markdown("# 🤖 Comparador de Respostas (sem contexto)\nDigite uma pergunta e veja as respostas de dois modelos.")
54
+ question = gr.Textbox(label="Pergunta")
55
+ submit = gr.Button("Comparar Respostas")
56
+ output = gr.Textbox(label="Respostas e Similaridade", lines=15)
 
 
57
 
58
+ submit.click(respond, inputs=question, outputs=output)
59
 
60
  if __name__ == "__main__":
61
  demo.launch()