| import gradio as gr |
| import requests |
|
|
| def register_tool(tool_data): |
| |
| response = requests.post("https://huggingface.co/chat/tools/new", json=tool_data) |
| return response.json() |
|
|
| def create_tool(tool_name, tool_data): |
| print("fn create_tool") |
| print(tool_name) |
| print(dir(tool_data)) |
| tool_payload = { |
| "displayName": tool_data.get("displayName"), |
| "description": tool_data.get("description"), |
| "color": tool_data.get("color"), |
| "icon": tool_data.get("icon"), |
| "baseUrl": "K00B404/toolshed", |
| "endpoint": "/router", |
| "name": tool_data.get("name"), |
| "inputs": inputs, |
| "outputComponent": tool_data.get("outputComponent"), |
| "outputComponentIdx": tool_data.get("outputComponentIdx"), |
| "showOutput": tool_data.get("showOutput") |
| } |
| print(dir(tool_payload)) |
| return register_tool(tool_payload) |
| |
| def no_tool_match(tool_name: str, tool_inputs: dict): |
| print("fn no match") |
| print(tool) |
| print(dir(tool_inputs)) |
| |
| def tool_router(tool_name: str, tool_inputs: dict): |
| print("fn tool_router") |
| print(tool_name) |
| print(dir(tool_data)) |
| if tool_name == "create_tool": |
| create_tool(tool_name, tool_inputs) |
| else: |
| no_tool_match() |
|
|
| demo = gr.Interface( |
| fn=tool_router, |
| inputs=["text", {}], |
| outputs=["text", "number"], |
| ) |
|
|
| demo.launch(show_api=True, share=True) |