import spaces
import gradio as gr
import requests
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, ToolCallingAgent
import os
import subprocess

subprocess.run("pip list", shell=True)

duck_duck = DuckDuckGoSearchTool()

#agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=HfApiModel("Qwen/QwQ-32B-Preview"))
#agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=HfApiModel())
#agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=HfApiModel("NousResearch/Hermes-3-Llama-3.1-8B"))

agent = ToolCallingAgent(model=HfApiModel("Qwen/QwQ-32B-Preview"), tools=[duck_duck])

@spaces.GPU
def test(s: str):
    ret = agent.run(s)
    return ret

with gr.Blocks() as demo:
    input = gr.Textbox(label="Input", value="How many seconds would it take for a leopard at full speed to run through Pont des Arts?")
    run_button = gr.Button("Submit", variant="primary")
    info_md = gr.Markdown("<br><br><br>")

    run_button.click(test, [input], [info_md])

demo.queue().launch()