Spaces:
Runtime error
Runtime error
Commit
·
11aa784
1
Parent(s):
e6e4f17
Add disconnect to client
Browse filesSigned-off-by: Aivin V. Solatorio <avsolatorio@gmail.com>
- mcp_client.py +13 -3
mcp_client.py
CHANGED
|
@@ -126,6 +126,12 @@ class MCPClientWrapper:
|
|
| 126 |
tool_names = [tool["name"] for tool in self.tools]
|
| 127 |
return f"Connected to MCP server. Available tools: {', '.join(tool_names)}"
|
| 128 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 129 |
async def process_message(
|
| 130 |
self, message: str, history: List[Union[Dict[str, Any], ChatMessage]]
|
| 131 |
):
|
|
@@ -353,7 +359,7 @@ def gradio_interface():
|
|
| 353 |
|
| 354 |
chatbot = gr.Chatbot(
|
| 355 |
value=[],
|
| 356 |
-
height=
|
| 357 |
type="messages",
|
| 358 |
show_copy_button=True,
|
| 359 |
avatar_images=("img/small-user.png", "img/small-robot.png"),
|
|
@@ -368,14 +374,18 @@ def gradio_interface():
|
|
| 368 |
)
|
| 369 |
clear_btn = gr.Button("Clear Chat", scale=1)
|
| 370 |
|
| 371 |
-
connect_btn.click(client.connect, inputs=server_path, outputs=status)
|
| 372 |
|
| 373 |
# Automatically call client.connect(...) as soon as the interface loads
|
| 374 |
-
demo.load(
|
|
|
|
|
|
|
| 375 |
|
| 376 |
msg.submit(client.process_message, [msg, chatbot], [chatbot, msg])
|
| 377 |
clear_btn.click(lambda: [], None, chatbot)
|
| 378 |
|
|
|
|
|
|
|
| 379 |
return demo
|
| 380 |
|
| 381 |
|
|
|
|
| 126 |
tool_names = [tool["name"] for tool in self.tools]
|
| 127 |
return f"Connected to MCP server. Available tools: {', '.join(tool_names)}"
|
| 128 |
|
| 129 |
+
async def disconnect(self):
|
| 130 |
+
if self.exit_stack:
|
| 131 |
+
await self.exit_stack.aclose()
|
| 132 |
+
self.exit_stack = None
|
| 133 |
+
self.session = None
|
| 134 |
+
|
| 135 |
async def process_message(
|
| 136 |
self, message: str, history: List[Union[Dict[str, Any], ChatMessage]]
|
| 137 |
):
|
|
|
|
| 359 |
|
| 360 |
chatbot = gr.Chatbot(
|
| 361 |
value=[],
|
| 362 |
+
height="70vh",
|
| 363 |
type="messages",
|
| 364 |
show_copy_button=True,
|
| 365 |
avatar_images=("img/small-user.png", "img/small-robot.png"),
|
|
|
|
| 374 |
)
|
| 375 |
clear_btn = gr.Button("Clear Chat", scale=1)
|
| 376 |
|
| 377 |
+
# connect_btn.click(client.connect, inputs=server_path, outputs=status)
|
| 378 |
|
| 379 |
# Automatically call client.connect(...) as soon as the interface loads
|
| 380 |
+
demo.load(
|
| 381 |
+
fn=client.connect, inputs=server_path, outputs=status, show_progress="full"
|
| 382 |
+
)
|
| 383 |
|
| 384 |
msg.submit(client.process_message, [msg, chatbot], [chatbot, msg])
|
| 385 |
clear_btn.click(lambda: [], None, chatbot)
|
| 386 |
|
| 387 |
+
demo.unload(client.disconnect)
|
| 388 |
+
|
| 389 |
return demo
|
| 390 |
|
| 391 |
|