File size: 2,501 Bytes
6e19f63
f189ec9
07aeb52
1f2f75f
f189ec9
 
07aeb52
1f2f75f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f189ec9
1f2f75f
 
 
f189ec9
1f2f75f
 
 
 
 
f189ec9
1f2f75f
 
 
 
 
 
 
f189ec9
1f2f75f
 
 
 
f189ec9
1f2f75f
 
 
 
 
f189ec9
1f2f75f
 
 
9e8ab62
1f2f75f
 
 
 
 
44abb7c
f189ec9
 
07aeb52
f189ec9
 
 
1f2f75f
f189ec9
 
1f2f75f
f189ec9
7928d62
fc0b4cb
9833992
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import gradio as gr
import sys

# Print version info for debugging
print(f"Python version: {sys.version}")
print(f"Gradio version: {gr.__version__}")

# Hello World function
def greet(name):
    return f"Hello, {name}!"

# Calculator function
def calculate(num1, num2, op):
    if op == "Add":
        return str(num1 + num2)
    elif op == "Subtract":
        return str(num1 - num2)
    elif op == "Multiply":
        return str(num1 * num2)
    elif op == "Divide":
        if num2 == 0:
            return "Error: Division by zero"
        return str(num1 / num2)

# Text Analysis function
def analyze_text(text):
    if not text:
        return "Please enter some text"
    
    num_chars = len(text)
    num_words = len(text.split())
    num_lines = len(text.splitlines())
    
    return f"Characters: {num_chars}\nWords: {num_words}\nLines: {num_lines}"

# Create a tab-based interface with simple demos
with gr.Blocks() as demo:
    gr.Markdown("# 🤖 Simple Gradio Demo Apps")
    
    with gr.Tab("Hello World"):
        with gr.Row():
            name_input = gr.Textbox(label="Your Name", value="World")
            greeting_output = gr.Textbox(label="Greeting")
        
        greet_btn = gr.Button("Say Hello")
        greet_btn.click(fn=greet, inputs=name_input, outputs=greeting_output)
    
    with gr.Tab("Calculator"):
        with gr.Row():
            num1 = gr.Number(label="First Number", value=5)
            num2 = gr.Number(label="Second Number", value=3)
        
        operation = gr.Radio(
            ["Add", "Subtract", "Multiply", "Divide"], 
            label="Operation", 
            value="Add"
        )
        
        calc_result = gr.Textbox(label="Result")
        calc_btn = gr.Button("Calculate")
        calc_btn.click(fn=calculate, inputs=[num1, num2, operation], outputs=calc_result)
    
    with gr.Tab("Text Analysis"):
        text_input = gr.Textbox(label="Enter text to analyze", lines=5)
        text_result = gr.Textbox(label="Analysis Result")
        analyze_btn = gr.Button("Analyze Text")
        analyze_btn.click(fn=analyze_text, inputs=text_input, outputs=text_result)
    
    gr.Markdown("""
    ### About This Demo
    
    This is a simple demonstration of Gradio functionality with:
    
    1. A Hello World text generator
    2. A basic calculator
    3. A text analysis tool
    
    Use the tabs above to try different demo apps.
    """)

if __name__ == "__main__":
    demo.launch(server_name="0.0.0.0", server_port=7860)