Spaces:
Sleeping
Sleeping
File size: 2,359 Bytes
a6fe20b 520e168 a6fe20b 520e168 a6fe20b 520e168 a6fe20b |
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 |
from smolagents import (
ToolCallingAgent,
CodeAgent,
DuckDuckGoSearchTool,
FinalAnswerTool,
VisitWebpageTool,
PromptTemplates,
PlanningPromptTemplate,
ManagedAgentPromptTemplate,
FinalAnswerPromptTemplate,
)
from tool import addition_tool
from src.config.model import openai_model
# --- Basic Agent Definition ---
# ----- THIS IS WERE YOU CAN BUILD WHAT YOU WANT ------
class BaseAgent:
def __init__(self):
print("BaseAgent initialized.")
self.agent = ToolCallingAgent(
model=openai_model,
tools=[
addition_tool,
# DuckDuckGoSearchTool(),
# VisitWebpageTool(),
# FinalAnswerTool(),
],
verbosity_level=2,
prompt_templates=PromptTemplates(
system_prompt="You are a general AI assistant. I will ask you a question. Report your thoughts, and finish your answer with the following template: FINAL ANSWER: [YOUR FINAL ANSWER]. YOUR FINAL ANSWER should be a number OR as few words as possible OR a comma separated list of numbers and/or strings. If you are asked for a number, don't use comma to write your number neither use units such as $ or percent sign unless specified otherwise. If you are asked for a string, don't use articles, neither abbreviations (e.g. for cities), and write the digits in plain text unless specified otherwise. If you are asked for a comma separated list, apply the above rules depending of whether the element to be put in the list is a number or a string.",
planning=PlanningPromptTemplate(
initial_plan="",
update_plan_pre_messages="",
update_plan_post_messages="",
),
managed_agent=ManagedAgentPromptTemplate(
task="",
report="",
),
final_answer=FinalAnswerPromptTemplate(
pre_messages="", post_messages=""
),
),
)
def run(self, question: str) -> str:
print(f"Agent received question (first 50 chars): {question[:50]}...")
response = self.agent.run(question)
print(f"Agent returning response: {response}")
return response.replace("FINAL ANSWER:", "").strip()
|