politeles commited on
Commit
0bb0f33
·
verified ·
1 Parent(s): 81917a3

Update app.py

Browse files

First iteration using smol agents with tools

Files changed (1) hide show
  1. app.py +14 -4
app.py CHANGED
@@ -3,7 +3,7 @@ import gradio as gr
3
  import requests
4
  import inspect
5
  import pandas as pd
6
-
7
  # (Keep Constants as is)
8
  # --- Constants ---
9
  DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
@@ -11,13 +11,23 @@ DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
11
  # --- Basic Agent Definition ---
12
  # ----- THIS IS WERE YOU CAN BUILD WHAT YOU WANT ------
13
  class BasicAgent:
 
14
  def __init__(self):
 
 
 
 
 
 
 
 
15
  print("BasicAgent initialized.")
16
  def __call__(self, question: str) -> str:
 
17
  print(f"Agent received question (first 50 chars): {question[:50]}...")
18
- fixed_answer = "This is a default answer."
19
- print(f"Agent returning fixed answer: {fixed_answer}")
20
- return fixed_answer
21
 
22
  def run_and_submit_all( profile: gr.OAuthProfile | None):
23
  """
 
3
  import requests
4
  import inspect
5
  import pandas as pd
6
+ from smolagents import CodeAgent, DuckDuckGoSearchTool, InferenceClientModel, tool
7
  # (Keep Constants as is)
8
  # --- Constants ---
9
  DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
 
11
  # --- Basic Agent Definition ---
12
  # ----- THIS IS WERE YOU CAN BUILD WHAT YOU WANT ------
13
  class BasicAgent:
14
+ agent = None
15
  def __init__(self):
16
+ 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."
17
+ model = InferenceClientModel(model_id="Qwen/Qwen2.5-Coder-32B-Instruct", provider="together")
18
+ agent = CodeAgent(
19
+ model=model,
20
+ tools=[GoogleSearchTool(), VisitWebpageTool(), calculate_cargo_travel_time],
21
+ additional_authorized_imports=["pandas"],
22
+ max_steps=20,
23
+ )
24
  print("BasicAgent initialized.")
25
  def __call__(self, question: str) -> str:
26
+ answer = agent.run(question)
27
  print(f"Agent received question (first 50 chars): {question[:50]}...")
28
+ #fixed_answer = "This is a default answer."
29
+ print(f"Agent returning fixed answer: {answer}")
30
+ return answer
31
 
32
  def run_and_submit_all( profile: gr.OAuthProfile | None):
33
  """