Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from huggingface_hub import InferenceClient | |
| from sentence_transformers import SentenceTransformer, util | |
| from transformers import pipeline | |
| # Modelos | |
| chat_model_zephyr = InferenceClient("HuggingFaceH4/zephyr-7b-beta") | |
| chat_model_gpt2 = pipeline("text-generation", model="gpt2", max_new_tokens=100) | |
| # Similaridade | |
| similarity_model = SentenceTransformer("all-MiniLM-L6-v2") | |
| def get_zephyr_response(question): | |
| messages = [ | |
| {"role": "system", "content": "You are a helpful assistant."}, | |
| {"role": "user", "content": question} | |
| ] | |
| response = chat_model_zephyr.chat_completion( | |
| messages, | |
| max_tokens=256, | |
| temperature=0.7, | |
| top_p=0.95, | |
| ) | |
| return response.choices[0].message.content.strip() | |
| def get_gpt2_response(question): | |
| generated = chat_model_gpt2(question)[0]["generated_text"] | |
| return generated.strip() | |
| def compare_answers(answer1, answer2): | |
| emb1 = similarity_model.encode(answer1, convert_to_tensor=True) | |
| emb2 = similarity_model.encode(answer2, convert_to_tensor=True) | |
| similarity = util.cos_sim(emb1, emb2).item() | |
| return round(similarity, 3) | |
| def respond(question): | |
| answer_zephyr = get_zephyr_response(question) | |
| answer_gpt2 = get_gpt2_response(question) | |
| similarity = compare_answers(answer_zephyr, answer_gpt2) | |
| return ( | |
| f"🧠 Zephyr-7b:\n{answer_zephyr}\n\n" | |
| f"🤖 GPT-2:\n{answer_gpt2}\n\n" | |
| f"🔍 Similaridade Semântica: **{similarity}**" | |
| ) | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# 🤖 Comparador de Respostas (sem contexto)\nDigite uma pergunta e veja as respostas de dois modelos.") | |
| question = gr.Textbox(label="Pergunta") | |
| submit = gr.Button("Comparar Respostas") | |
| output = gr.Textbox(label="Respostas e Similaridade", lines=15) | |
| submit.click(respond, inputs=question, outputs=output) | |
| if __name__ == "__main__": | |
| demo.launch() | |