| from smolagents import LiteLLMModel, ToolCallingAgent, CodeAgent |
| from tools import youtube_transcription_tool, visit_webpage |
| import os |
|
|
| |
| class BasicAgent: |
| def __init__(self): |
| print("BasicAgent initialized.") |
|
|
| def __call__(self, question: str) -> str: |
| print(f"Agent received question (first 50 chars): {question[:50]} ...") |
|
|
| |
| |
|
|
| 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 |
|
|