File size: 1,768 Bytes
794a200
ceb5307
 
794a200
ceb5307
 
 
 
 
 
 
 
 
794a200
 
ceb5307
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
794a200
f817edc
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import gradio as gr
import httpx
import asyncio

async def async_request(url, params):
    async with httpx.AsyncClient() as client:
        response = await client.get(url, params=params)
        return response.json()

async def fetch_data(endpoint, param):
    url = f"https://api.example.com/{endpoint}"
    response = await async_request(url, {"param": param})
    return response

def create_ui():
    with gr.Blocks() as demo:
        with gr.Tabs():
            with gr.TabItem("Home"):
                gr.Markdown("Welcome to EcoPropertyRetrofitGPT")
            
            with gr.TabItem("Data"):
                with gr.Accordion("Fetch Data", open=False):
                    param = gr.Textbox(label="Parameter")
                    output = gr.JSON(label="Response")
                    
                    def fetch_data_sync(param):
                        return asyncio.run(fetch_data("data", param))
                    
                    fetch_button = gr.Button("Fetch Data")
                    fetch_button.click(fetch_data_sync, inputs=param, outputs=output)
                    
            with gr.TabItem("Analysis"):
                with gr.Accordion("Run Analysis", open=False):
                    param = gr.Textbox(label="Analysis Parameter")
                    output = gr.JSON(label="Analysis Result")
                    
                    def run_analysis_sync(param):
                        return asyncio.run(fetch_data("analysis", param))
                    
                    run_button = gr.Button("Run Analysis")
                    run_button.click(run_analysis_sync, inputs=param, outputs=output)

    demo.launch(server_name="0.0.0.0", server_port=8000, share=True)

if __name__ == "__main__":
    create_ui()