import gradio as gr import time def user_message(message, history): history = history or [] history.append({"role": "user", "content": message}) return "", history def bot_response(history): user_msg = history[-1]["content"] resposta = f"Recebi a tua mensagem: '{user_msg}'. Esta é uma resposta exemplo num chatbot em Gradio." history.append({"role": "assistant", "content": ""}) texto = "" for palavra in resposta.split(): texto += palavra + " " history[-1]["content"] = texto time.sleep(0.03) yield history theme = gr.themes.Soft( primary_hue="blue", secondary_hue="slate", neutral_hue="slate" ).set( body_background_fill="#0f172a", body_text_color="#f8fafc", block_background_fill="#111827", block_border_color="#1f2937", button_primary_background_fill="#2563eb", button_primary_background_fill_hover="#1d4ed8", input_background_fill="#0b1220" ) custom_css = """ #title-box { text-align: center; padding: 20px 10px 10px 10px; } #title-box h1 { font-size: 2.2rem; margin-bottom: 8px; } #title-box p { color: #cbd5e1; font-size: 1rem; } footer {display: none !important;} """ with gr.Blocks(fill_height=True) as demo: gr.HTML("""

🤖 Meu Chatbot

Um chatbot feito em Gradio com visual melhor e estrutura mais moderna.

""") chatbot = gr.Chatbot( label="Conversa", height=500, type="messages" ) with gr.Row(): msg = gr.Textbox( placeholder="Escreve a tua mensagem aqui...", show_label=False, scale=8 ) send = gr.Button("Enviar", variant="primary", scale=1) clear = gr.ClearButton([msg, chatbot], value="Nova conversa") gr.Examples( examples=[ "Olá, quem és tu?", "Explica-me o que é Gradio.", "Dá-me ideias para um projeto em Python.", "Como posso criar um chatbot mais bonito?" ], inputs=msg ) msg.submit(user_message, [msg, chatbot], [msg, chatbot], queue=False).then( bot_response, chatbot, chatbot ) send.click(user_message, [msg, chatbot], [msg, chatbot], queue=False).then( bot_response, chatbot, chatbot ) if __name__ == "__main__": demo.launch( server_name="0.0.0.0", server_port=7860, theme=theme, css=custom_css )