toolshed / app.py
K00B404's picture
Update app.py
d56935b verified
raw
history blame
1.97 kB
import gradio as gr
import requests
def calculator(num1, operation, num2):
if operation == "add":
return num1 + num2
elif operation == "subtract":
return num1 - num2
elif operation == "multiply":
return num1 * num2
elif operation == "divide":
return num1 / num2
with gr.Blocks() as demo:
with gr.Row():
with gr.Column():
num_1 = gr.Number(value=4)
operation = gr.Radio(["add", "subtract", "multiply", "divide"])
num_2 = gr.Number(value=0)
submit_btn = gr.Button(value="Calculate")
with gr.Column():
result = gr.Number()
submit_btn.click(
calculator, inputs=[num_1, operation, num_2], outputs=[result], api_name=False
)
examples = gr.Examples(
examples=[
[5, "add", 3],
[4, "divide", 2],
[-4, "multiply", 2.5],
[0, "subtract", 1.2],
],
inputs=[num_1, operation, num_2],
)
def register_tool(tool_data):
# Send a POST request to register the tool
response = requests.post("https://huggingface.co/chat/tools/new", json=tool_data)
return response.json()
def create_tool(display_name, description, inputs):
tool_data = {
"displayName": display_name,
"description": description,
"color": "yellow", # Example color
"icon": "tools",
"baseUrl": "K00B404/toolshed",
"endpoint": "/query",
"name": "query",
"inputs": inputs,
"outputComponent": "0;image", # Adjust based on your tool's output
"outputComponentIdx": 0,
"showOutput": True
}
return register_tool(tool_data)
inputs=gr.Textbox(label="Display Name")
outputs=gr.Textbox()
fn=create_tool
demo = gr.Interface(
fn=fn,
inputs=inputs, # Updated line
outputs=outputs # You can use gr.Textbox or other components as needed
)
demo.launch(show_api=True, share=True)