testAgent / BasicAgent.py
optionEdge's picture
Update BasicAgent.py
2a39f0c verified
raw
history blame
2.43 kB
import smolagents, numpy, math, xlrd, os, pandas
from smolagents import (
Tool,
CodeAgent,
HfApiModel,
InferenceClientModel,
WebSearchTool,
PythonInterpreterTool,
FinalAnswerTool,
DuckDuckGoSearchTool,
GoogleSearchTool
)
#*
@tool
def read_excel(self, file_path, sheet_name=0):
"""
Read an Excel file into a pandas DataFrame.
Args:
file_path (str): Path to the Excel file.
sheet_name (str or int, optional): Sheet name or index.
Returns:
pandas.DataFrame or None
"""
try:
return pd.read_excel(file_path, sheet_name=sheet_name)
except Exception as e:
print(f"Error reading Excel file: {e}")
return None
#
class newAgent:
"""Adapts smolagents.CodeAgent to the HF course template API."""
def __init__(self):
model_id = "meta-llama/Meta-Llama-3-70B-Instruct" # correct repo name
hf_token = os.getenv("HUGGINGFACEHUB_API_TOKEN") # read real secret
if not hf_token:
raise RuntimeError("HUGGINGFACEHUB_API_TOKEN not set in Space secrets")
#*
system_prompt=(
"You are an agent that answers exam questions."
"Your answers should contain only what is asked for in the question, without any other content."
"Be exact and concise in your answers to get a good score on the exam questions. Do not add explanation to the answers."
"If you are ask for a list of items, reply with ONLY those items separated by commas, no other text."
"You have a tool to read Excel files. The Excel file tool is named read_excel"
)
#*
model = HfApiModel(model_id=model_id, token=hf_token)
# include FinalAnswerTool in tools so agent knows when to stop
tools = [FinalAnswerTool()]
self.agent = CodeAgent(
tools=tools,
model=model,
add_base_tools=True,
max_steps=5 # limit reasoning time
)
def __call__(self, question: str) -> str:
"""ONE question in β†’ ONE pure-text answer out."""
#↓ Replace .run with whatever method actually returns the answer string.
result = self.agent.run(question)
return result
#answer = self.run
#agent.run(
# "At what temperature and for how long should I bake French baguettes made with type 65 flour?",
#)