File size: 877 Bytes
d22f12d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from functools import wraps
import time
from typing import Any, Optional
from smolagents.tools import Tool
from smolagents import tool

class Timer:
    def __init__(self):
        self.start, self.end = 0,0
    
    def start_timer(self) -> None:
        '''Start timer that measures the time taken to answer the question.'''
        self.start = time.time()

    def stop_timer(self) -> float:
        '''Stop timer that measures the time taken to answer the question.'''
        self.end = time.time()
        return self.end - self.start
    

def timer_tools() -> list:
    timer = Timer()
    def wrap(method):
        @wraps(method)
        def wrapper(*args, **kwargs):
            return method(*args, **kwargs)
        return wrapper
    
    start_timer = tool(wrap(timer.start_timer))
    stop_timer = tool(wrap(timer.stop_timer))
    return start_timer, stop_timer