import gradio as gr class State: def __init__(self): self.context = "This Adrega component is designed to answer questions provided by API" self.question = "What does this component do?" state = State() js = "window.onMessage = (event) => {alert('Test message received: ')}" def update_values(context, question): output = context + "\n" + question state.context = context state.question = question return output def process_message(message): # Handle incoming messages state.context = message return message with gr.Blocks(js=js) as demo: with gr.Row(): project_data = gr.Textbox( label="Project Data", lines=2, value=state.context, elem_id="project_data" ) question = gr.Textbox( label="Question", lines=2, value=state.question, elem_id="question" ) output = gr.Textbox( label="Output", elem_id="output" ) # Add interface for update_values function update_btn = gr.Button("Update Values") update_btn.click( fn=update_values, inputs=[project_data, question], outputs=output ) # Launch the app demo.launch( server_name="0.0.0.0", share=True, allowed_paths=["*"] # Be careful with this in production )