File size: 3,559 Bytes
bc40118
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7404322
bc40118
 
 
96a8c30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bc40118
d9ecb54
96a8c30
d9ecb54
96a8c30
7404322
14fff99
695f9e9
d9ecb54
695f9e9
14fff99
9b51b5d
d9ecb54
 
9b51b5d
7404322
14fff99
ef0c72b
d9ecb54
7404322
96a8c30
7404322
bab0dab
14fff99
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# import gradio as gr

# from mcp.client.stdio import StdioServerParameters
# from smolagents import InferenceClientModel, CodeAgent
# from smolagents.mcp_client import MCPClient
# from transformers import pipeline
# from transformers import AutoModelForCausalLM, AutoTokenizer
# import torch

# # Initialize the MCP client correctly
# try:
#     mcp_client = MCPClient(
#         ## Try this working example on the hub:
#         # {"url": "https://abidlabs-mcp-tools.hf.space/gradio_api/mcp/sse"}
#         {"url": "https://captain-awesome-alquranchapters.hf.space/gradio_api/mcp/sse"}
#     )
    
#     tools = mcp_client.get_tools()

#     # model = InferenceClientModel()
#     # model = TransformersModel(
#     # model_id="Qwen/Qwen2.5-Coder-32B-Instruct",
#     # device="cuda",
#     # max_new_tokens=5000,
#     # )
#     model_id = "unsloth/Llama-3.2-1B"

#     model = AutoModelForCausalLM.from_pretrained(
#       model_id,
#       torch_dtype=torch.bfloat16,
#       device_map="auto"
#     )


#     agent = CodeAgent(tools=[*tools], model=model)



#     # Define Gradio ChatInterface
#     demo = gr.ChatInterface(
#         fn=lambda message, history: str(agent.run(message)),
#         type="messages",
#         title="Agent with MCP Tools",
#         description="This is a simple agent that uses MCP tools to get chapters of the Quran.",
#     )

#     demo.launch(share=True)

# finally:
#     # Properly close the MCP client connection
#     # if 'mcp_client' in locals():
#         # mcp_client.disconnect()
#     mcp_client.disconnect()




# import gradio as gr
# import asyncio
# from smolagents.mcp_client import MCPClient
# from transformers import AutoModelForCausalLM
# import torch
# from mcp.client.stdio import StdioServerParameters
# from smolagents import InferenceClientModel, CodeAgent, ToolCollection

# try:
#     mcp_client = MCPClient(
#         ## Try this working example on the hub:
#         # {"url": "https://abidlabs-mcp-tools.hf.space/gradio_api/mcp/sse"}
#         {"url": "http://localhost:7860/gradio_api/mcp/sse"}
#     )
#     tools = mcp_client.get_tools()

#     model_id = "unsloth/Llama-3.2-1B"
#     model = AutoModelForCausalLM.from_pretrained(
#         model_id,
#         torch_dtype=torch.bfloat16,
#         device_map="auto"
#     )
    

#     agent = CodeAgent(tools=tools, model=model)

#     demo = gr.ChatInterface(
#         fn=lambda message, history: str(agent.run(message)),
#         type="messages",
#         title="Agent with MCP Tools",
#         description="This is a simple agent that uses MCP tools to get chapters of the Quran.",
#     )

    
#     demo.launch()

#     # demo.launch(share=True)

# finally:
#     mcp_client.disconnect()

import gradio as gr
import os

from smolagents import InferenceClientModel, CodeAgent, MCPClient


try:
    mcp_client = MCPClient(
        {"url": "https://abidlabs-mcp-tool-http.hf.space/gradio_api/mcp/sse"}
    )
    tools = mcp_client.get_tools()

    model = InferenceClientModel(token=os.getenv("HUGGINGFACE_API_TOKEN"))
    agent = CodeAgent(tools=[*tools], model=model, additional_authorized_imports=["json", "ast", "urllib", "base64"])

    demo = gr.ChatInterface(
        fn=lambda message, history: str(agent.run(message)),
        type="messages",
        examples=["Analyze the sentiment of the following text 'This is awesome'"],
        title="Agent with MCP Tools",
        description="This is a simple agent that uses MCP tools to answer questions.",
    )

    demo.launch()
finally:
    mcp_client.disconnect()