from llama_index.core.agent.workflow import AgentWorkflow from llama_index.llms.huggingface_api import HuggingFaceInferenceAPI from llama_index.core.workflow import Context # Import our custom tools from their modules from tools import get_weather_info_tool, get_hub_stats_tool, search_tool from retriever import guest_info_tool import gradio as gr import asyncio llm = HuggingFaceInferenceAPI(model_name='Qwen/Qwen2.5-Coder-32B-Instruct') alfred = AgentWorkflow.from_tools_or_functions( tools_or_functions=[ get_weather_info_tool, get_hub_stats_tool, search_tool, guest_info_tool ], llm=llm, verbose=True, ) ctx = Context(alfred) # Define a function to interact with the AgentWorkflow async def async_interact_with_agent(input_text, ctx=ctx): response = await alfred.run(input_text, ctx=ctx) return response def interact_with_agent(input_text): # Ensure the async function is run in an event loop return asyncio.run(async_interact_with_agent(input_text)) if __name__ == "__main__": # Create a Gradio interface interface = gr.Interface( fn=interact_with_agent, inputs=gr.Textbox(label="Enter your query"), outputs=gr.Textbox(label="Response"), title="Agent Workflow Interface", description="Interact with the AgentWorkflow using this Gradio interface." ) interface.launch()