File size: 977 Bytes
b1476e2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import time
from datetime import UTC, datetime

import gradio as gr
import spaces
import torch

GENERATE_SECONDS = 5
VISUALIZE_SECONDS = 3


def _now() -> str:
    return datetime.now(UTC).strftime("%H:%M:%S")


@spaces.GPU(duration=10)
def generate(text: str) -> str:
    start = _now()
    gpu_name = torch.cuda.get_device_name()
    print(f"[generate] start={start} input={text!r} gpu={gpu_name}")
    time.sleep(GENERATE_SECONDS)
    end = _now()
    print(f"[generate] end={end} input={text!r}")
    return f"generate | start {start} | end {end} | gpu {gpu_name} | input {text!r}"


def visualize(text: str) -> str:
    start = _now()
    print(f"[visualize] start={start} input={text!r}")
    time.sleep(VISUALIZE_SECONDS)
    end = _now()
    print(f"[visualize] end={end} input={text!r}")
    return f"visualize | start {start} | end {end}\n{text}"


demo = gr.Workflow(bind={"generate": generate, "visualize": visualize})

if __name__ == "__main__":
    demo.launch()