From 3622a8ba7dbc1205d891a2c35dcf3c1f710f43c1 Mon Sep 17 00:00:00 2001 From: MervinPraison Date: Sat, 29 Mar 2025 20:54:38 +0000 Subject: [PATCH] Add Gradio UI for Airbnb Booking Assistant - Introduced a new Gradio interface in `airbnb.mdx` and `ui.py` for searching and booking apartments on Airbnb. - Implemented the `search_airbnb` function to handle user queries and display results. - Enhanced user experience with a clear input prompt and structured output format. --- docs/mcp/airbnb.mdx | 27 +++++++++++++++++++++++++++ src/praisonai-agents/ui.py | 22 ++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 src/praisonai-agents/ui.py diff --git a/docs/mcp/airbnb.mdx b/docs/mcp/airbnb.mdx index 71aba41a4..fd3072602 100644 --- a/docs/mcp/airbnb.mdx +++ b/docs/mcp/airbnb.mdx @@ -67,6 +67,33 @@ flowchart LR - OpenAI API key (for the agent's LLM) +## Gradio UI + +```python +from praisonaiagents import Agent, MCP +import gradio as gr + +def search_airbnb(query): + agent = Agent( + instructions="You help book apartments on Airbnb.", + llm="gpt-4o-mini", + tools=MCP("npx -y @openbnb/mcp-server-airbnb --ignore-robots-txt") + ) + result = agent.start(query) + return f"## Airbnb Search Results\n\n{result}" + +demo = gr.Interface( + fn=search_airbnb, + inputs=gr.Textbox(placeholder="I want to book an apartment in Paris for 2 nights..."), + outputs=gr.Markdown(), + title="Airbnb Booking Assistant", + description="Enter your booking requirements below:" +) + +if __name__ == "__main__": + demo.launch() +``` + ## Features diff --git a/src/praisonai-agents/ui.py b/src/praisonai-agents/ui.py new file mode 100644 index 000000000..43e62b953 --- /dev/null +++ b/src/praisonai-agents/ui.py @@ -0,0 +1,22 @@ +from praisonaiagents import Agent, MCP +import gradio as gr + +def search_airbnb(query): + agent = Agent( + instructions="You help book apartments on Airbnb.", + llm="gpt-4o-mini", + tools=MCP("npx -y @openbnb/mcp-server-airbnb --ignore-robots-txt") + ) + result = agent.start(query) + return f"## Airbnb Search Results\n\n{result}" + +demo = gr.Interface( + fn=search_airbnb, + inputs=gr.Textbox(placeholder="I want to book an apartment in Paris for 2 nights..."), + outputs=gr.Markdown(), + title="Airbnb Booking Assistant", + description="Enter your booking requirements below:" +) + +if __name__ == "__main__": + demo.launch() \ No newline at end of file