|
|
import gradio as gr |
|
|
from mcp import StdioServerParameters |
|
|
from smolagents import MCPClient, CodeAgent |
|
|
|
|
|
def respond(prompt, history=[]): |
|
|
|
|
|
params = StdioServerParameters(command="python", args=["mcp_server.py"]) |
|
|
with MCPClient(params) as tools: |
|
|
agent = CodeAgent(tools=tools, model="gpt-4") |
|
|
result = agent.run(prompt) |
|
|
history.append((prompt, result)) |
|
|
return history, history |
|
|
|
|
|
with gr.Blocks() as demo: |
|
|
chat_history = gr.State([]) |
|
|
chatbot = gr.Chatbot(label="Enterprise SQL Agent") |
|
|
textbox = gr.Textbox(show_label=False, placeholder="Ask questions like 'List inactive customers in Northeast'") |
|
|
textbox.submit(respond, [textbox, chat_history], [chatbot, chat_history]) |
|
|
|
|
|
gr.Markdown(\"\"\"\n |
|
|
### Example Prompts: |
|
|
- Who are my Northeast customers who haven’t ordered in 6 months? |
|
|
- List customers sorted by last order date. |
|
|
- Find clients from the West with recent orders. |
|
|
\"\"\") |
|
|
|
|
|
demo.launch() |
|
|
|