import gradio as gr from gradio import ChatMessage from main import run_agent def chat_interface(history, user_input): if not user_input.strip(): return history, "Per favore, inserisci una domanda o un messaggio." # Aggiungi messaggio utente history = history + [ChatMessage(role="user", content=user_input)] try: # Ottieni risposta dall'agent response = run_agent(user_input) # Controllo per risposte vuote if not response.strip(): response = "Non ho capito la domanda, per favore riprova." # Aggiungi messaggio assistente history = history + [ChatMessage(role="assistant", content=response)] except Exception as e: history = history + [ChatMessage(role="assistant", content=f"Errore: {str(e)}")] return history, "" with gr.Blocks() as demo: gr.Markdown("# Agent Conversazionale con smolagents") chatbot = gr.Chatbot(type="messages") user_input = gr.Textbox(placeholder="Scrivi la tua domanda qui...", lines=2) submit_btn = gr.Button("Invia") # Indicazione di caricamento with gr.Column(): loading_indicator = gr.HTML("") submit_btn.click( lambda user_input: [chat_interface(chatbot, user_input), user_input], inputs=[chatbot, user_input], outputs=[chatbot, user_input], #fn_name="generate_response" ) loading_trigger = gr.Button("Trigger Loading Indicator") def show_loading_indicator(): return "
Caricamento...
" loading_trigger.click(show_loading_indicator, outputs=loading_indicator) user_input.submit(chat_interface, inputs=[chatbot, user_input], outputs=[chatbot, user_input]) if __name__ == "__main__": demo.launch(server_name="127.0.0.1", server_port=7860, debug=True)