File size: 1,624 Bytes
1118086 6fa076b 1118086 a56271b 1118086 b244e71 cc0132c 1118086 91ce9bc 1118086 3606513 47f62e7 1118086 | 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 | from smolagents import LiteLLMModel, ToolCallingAgent, CodeAgent
from tools import youtube_transcription_tool, visit_webpage
import os
# --- Basic Agent Definition ---
class BasicAgent:
def __init__(self):
print("BasicAgent initialized.")
def __call__(self, question: str) -> str:
print(f"Agent received question (first 50 chars): {question[:50]} ...")
## new agent code
#gemini_model = os.getenv(key="GEMINI_MODEL")
model = LiteLLMModel(model_id="gemini/gemini-2.0-flash-lite", api_key=os.getenv(key="MY_GEMINI_API_KEY"))
agent = CodeAgent(
tools=[youtube_transcription_tool, visit_webpage],
model=model,
max_steps=20,
verbosity_level=2,
)
prompt = f"""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.
{question}
"""
answer = agent.run(prompt)
print(f"Agent returning answer: {answer}")
return answer
|