Benjamin / app.py
ceadibc's picture
Update app.py
c9b0069 verified
raw
history blame
1.44 kB
import os
import gradio as gr
from huggingface_hub import InferenceClient
# Cliente com token seguro
client = InferenceClient(model="meta-llama/Llama-3.3-70B-Instruct")
)
# Função de resposta no estilo chat
def responder(mensagem, historico):
mensagens = []
if historico is None:
historico = []
for u, b in historico:
mensagens.append({"role": "user", "content": u})
mensagens.append({"role": "assistant", "content": b})
mensagens.append({"role": "user", "content": mensagem})
resposta = ""
try:
for parte in client.chat_completion(messages=mensagens, stream=True):
# Debug: print parcial
print("[DEBUG] Parte recebida:", parte)
token = parte.get("choices", [{}])[0].get("delta", {}).get("content", "")
if token:
resposta += token
yield resposta
except Exception as e:
print(f"[ERRO] {e}")
yield "Erro na geração da resposta."
if not resposta.strip():
yield "Nenhuma resposta gerada. Tente novamente."
# Interface Gradio
demo = gr.ChatInterface(
responder,
title="Benjamin – Assistente Virtual da CEaD - IBC",
description="Tire dúvidas com minha inteligência artificial (minha base de dados vai até 2021)",
textbox=gr.Textbox(placeholder="Digite uma mensagem e tecle Enter"),
type="messages"
)
if __name__ == "__main__":
demo.launch()