|
import gradio as gr |
|
import requests |
|
|
|
def greet(name: str) -> str: |
|
""" |
|
Greets the user with a personalized hello message. |
|
Args: |
|
name (str): The name of the user to greet. |
|
Returns: |
|
str: A greeting message addressed to the specified user. |
|
""" |
|
if not name: |
|
return "Hello stranger!!" |
|
name = name.strip() |
|
if len(name) > 50: |
|
return "Name is too long!" |
|
return "Hello " + name + "!!" |
|
|
|
def get_dad_joke(): |
|
""" |
|
Fetches a random dad joke from the icanhazdadjoke.com API. |
|
|
|
The function makes an HTTP GET request to the <https://icanhazdadjoke.com/> API |
|
with appropriate headers to receive JSON response. |
|
|
|
Args: |
|
None |
|
Returns: |
|
str: A random dad joke if successful, otherwise returns an error message. |
|
- Success: Returns the joke text |
|
- Failure: Returns "Failed to retrieve a joke." if the API request fails |
|
- No joke: Returns "No joke found." if the API response doesn't contain a joke |
|
|
|
Requires: |
|
requests: The requests library must be imported to make HTTP requests |
|
""" |
|
|
|
headers = {"Accept": "application/json"} |
|
response = requests.get("https://icanhazdadjoke.com/", headers=headers) |
|
if response.status_code == 200: |
|
data = response.json() |
|
return data.get("joke", "No joke found.") |
|
else: |
|
return "Failed to retrieve a joke." |
|
|
|
|
|
with gr.Blocks() as demo: |
|
name = gr.Textbox(label="Type your name", placeholder="Enter your name here") |
|
greet_btn = gr.Button("Greet") |
|
output = gr.Textbox(label="Message") |
|
greet_btn.click(fn=greet, inputs=name, outputs=output, api_name="greet") |
|
joke_btn = gr.Button("Get Dad Joke") |
|
joke_output = gr.Textbox(label="Dad Joke") |
|
joke_btn.click(fn=get_dad_joke, outputs=joke_output, api_name="get_dad_joke") |
|
|
|
demo.launch(mcp_server=True) |