Final_Assignment / agent.py
lam-ho's picture
Update agent.py
6b7b0c1 verified
raw
history blame
3.14 kB
from smolagents import HfApiModel, CodeAgent, DuckDuckGoSearchTool, WikipediaSearchTool, Tool, LiteLLMModel
class add(Tool):
name = "add"
description = """
This tool adds two integers together and returns an integer.
Args:
a: first integer
b: second integer
"""
inputs = {
"a":{
"type":"integer",
"description":"first integer"
},
"b":{
"type":"integer",
"description":"second integer"
}
}
output_type = "integer"
def forward(self, a: int, b: int):
return a + b
class subtract(Tool):
name = "subtract"
description = """
This tool subtracts two integers and returns an integer.
Args:
a: first integer
b: second integer
"""
inputs = {
"a":{
"type":"integer",
"description":"first integer"
},
"b":{
"type":"integer",
"description":"second integer"
}
}
output_type = "integer"
def forward(self, a: int, b: int):
return a - b
class multiply(Tool):
name = "multiply"
description = """
This tool multiplies two integers and returns an integer.
Args:
a: first integer
b: second integer
"""
inputs = {
"a":{
"type":"integer",
"description":"first integer"
},
"b":{
"type":"integer",
"description":"second integer"
}
}
output_type = "integer"
def forward(self, a: int, b: int):
return a * b
class divide(Tool):
name = "divide"
description = """
This tool divides two integers and returns an integer.
Args:
a: first integer
b: second integer
"""
inputs = {
"a":{
"type":"integer",
"description":"first integer"
},
"b":{
"type":"integer",
"description":"second integer"
}
}
output_type = "integer"
def forward(self, a: int, b: int):
if b == 0:
raise ValueError("Cannot divide by zero.")
return a / b
class modulo(Tool):
name = "modulo"
description = """
This tool returns the modulus of two integers
Args:
a: first integer
b: second integer
"""
inputs = {
"a":{
"type":"integer",
"description":"first integer"
},
"b":{
"type":"integer",
"description":"second integer"
}
}
output_type = "integer"
def forward(self, a: int, b: int):
return a % b
tools=[
add(),
subtract(),
multiply(),
divide(),
modulo(),
DuckDuckGoSearchTool(),
WikipediaSearchTool()
]
model = LiteLLMModel(
model_id='ollama_chat/qwen2.5:14b'
)
def create_agent():
agent = CodeAgent(
model = model,
tools = tools,
max_steps=10,
verbosity_level=2
)
return agent