Gianpaolo Macario
docs(app): improve get_dad_joke docstring
b502aea
raw
history blame
1.94 kB
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."
# demo = gr.Interface(fn=greet, inputs="text", outputs="text")
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)