import gradio as gr from huggingface_hub import InferenceClient # Cliente de inferência com modelo de IA pública client = InferenceClient(model="meta-llama/Llama-3.3-70B-Instruct") # Modelo gratuito e avançado # Função para processar a conversa def responder(mensagem, historico): mensagens = [] if historico is None: historico = [] for item in historico: if isinstance(item, list) and len(item) == 2: user_msg, bot_msg = item mensagens.append({"role": "user", "content": user_msg}) if bot_msg: mensagens.append({"role": "assistant", "content": bot_msg}) mensagens.append({"role": "user", "content": mensagem}) resposta = "" try: for mensagem in client.chat_completion( mensagens, max_tokens=300, stream=True, temperature=0.4, top_p=0.8, ): if not mensagem or not isinstance(mensagem, dict): continue try: conteudo = mensagem["choices"][0]["delta"].get("content", "") if conteudo.strip(): resposta += conteudo yield resposta except (AttributeError, IndexError, KeyError) as e: print(f"Erro ao processar mensagem: {e}") continue except Exception as e: print(f"Erro inesperado: {e}") yield "Ocorreu um erro ao gerar a resposta." if not resposta.strip(): yield "Nenhuma resposta gerada. Tente novamente." # Interface do chat com labels em português demo = gr.ChatInterface( responder, title="Benjamin – Assistente Virtual da CEaD - IBC. Tire dúvidas com minha inteligência artificial (minha base de dados vai até 2021)", textbox=gr.Textbox(placeholder="Digite uma mensagem e depois tecle Enter"), type="messages" ) if __name__ == "__main__": demo.launch()