|
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) |