|
from smolagents import CodeAgent, ToolCallingAgent, TransformersModel |
|
from tools import available_tools |
|
import torch |
|
import json |
|
import os |
|
|
|
|
|
def instantiate_agent(executor_type : str="local", agent_type: str ="tool_calling", tools = available_tools) -> CodeAgent | ToolCallingAgent: |
|
|
|
|
|
if executor_type == "local" and agent_type == "code": |
|
|
|
code_system_prompt = os.getenv("CODE_AGENT_SYSTEM_PROMPT") |
|
|
|
print(code_system_prompt) |
|
|
|
hf_model = "Qwen/Qwen2.5-Coder-32B-Instruct" |
|
|
|
|
|
|
|
llm = TransformersModel(model_id=hf_model, |
|
device_map="cuda", |
|
torch_dtype=torch.bfloat16, |
|
) |
|
|
|
agent = CodeAgent(tools=available_tools, |
|
model=llm, |
|
additional_authorized_imports=['pandas','numpy', 'numpy.*', 'csv', 'markdownify', 'requests'], |
|
prompt_templates=({'system_prompt': code_system_prompt}), |
|
max_steps=20, |
|
) |
|
return agent |
|
|
|
elif executor_type == "local" and agent_type == "tool_calling": |
|
|
|
tool_call_system_prompt = os.getenv("TOOL_CALLING_SYSTEM_PROMPT") |
|
|
|
hf_model = "Qwen/Qwen2.5-7B-Instruct" |
|
|
|
|
|
|
|
|
|
llm = TransformersModel(model_id=hf_model, device_map="cuda", torch_dtype=torch.bfloat16) |
|
|
|
agent = ToolCallingAgent(tools=available_tools, model=llm, max_steps=3, planning_interval=1) |
|
agent.prompt_templates["system_prompt"] = agent.prompt_templates["system_prompt"] + tool_call_system_prompt |
|
|
|
|
|
|
|
return agent |
|
|
|
else: |
|
raise ValueError(f"Unsupported executor type: {executor_type} or agent type: {agent_type}") |
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
agent = instantiate_agent() |
|
|
|
question = """ |
|
Question: Where were the Vietnamese specimens described by Kuznetzov in Nedoshivina's 2010 paper eventually deposited? Just give me the city name without abbreviations. |
|
|
|
Tools required: |
|
1. search engine |
|
|
|
Approximately, the problem can be solved as follows:: |
|
1. Search "Kuznetzov Nedoshivina 2010" |
|
2. Find the 2010 paper "A catalogue of type specimens of the Tortricidae described by V. I. Kuznetzov from Vietnam and deposited in the Zoological Institute, St. Petersburg" |
|
""" |
|
agent.run(question) |
|
|