import gradio as gr from huggingface_hub import InferenceClient # Cliente de inferência com modelo de IA pública client = InferenceClient(model="meta-llama/Meta-Llama-3-8B-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=5000, stream=True, temperature=0.5, top_p=0.9, ): 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 com Inteligência Artificial da CEaD - IBC", description="Tire dúvidas, receba orientações e aproveite melhor com a ajuda do Benjamin!", submit_btn="Enviar", stop_btn="Parar", textbox=gr.Textbox(placeholder="Digite uma mensagem e depois tecle Enter"), type="messages" ) if __name__ == "__main__": demo.launch()