File size: 1,927 Bytes
07ad07e
9b5b26a
 
 
c19d193
6aae614
9b5b26a
7c1c3f0
40a1328
 
7c1c3f0
 
 
 
 
07ad07e
9b5b26a
07ad07e
 
9b5b26a
07ad07e
 
9b5b26a
07ad07e
9b5b26a
 
 
07ad07e
9b5b26a
07ad07e
9b5b26a
 
 
 
 
 
 
8c01ffb
6aae614
ae7a494
e121372
07ad07e
 
 
 
13d500a
8c01ffb
9b5b26a
 
8c01ffb
861422e
 
07ad07e
8c01ffb
8fe992b
07ad07e
8c01ffb
 
 
 
 
 
861422e
8fe992b
 
8c01ffb
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
import datetime
import requests
import pytz
import yaml
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
from huggingface_hub import login
import os

# 从环境变量获取 Token
token = os.getenv("HUGGINGFACE_HUB_TOKEN")
# 输入从 Hugging Face 网站获取的 API Token
login(token)

# 这个工具将根据输入参数返回一条自定义消息
@tool
def call_me_here(name: str, count: int) -> str:
    """返回一个问候消息。
    Args:
        name: 被称呼的名字
        count: 一个整数计数
    """
    return f"Hello {name}, you are calling me {count} times now!"

@tool
def get_current_time_in_timezone(timezone: str) -> str:
    """获取指定时区的当前本地时间。
    Args:
        timezone: 字符串,表示有效的时区(例如,'America/New_York')。
    """
    try:
        tz = pytz.timezone(timezone)
        local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")
        return f"The current local time in {timezone} is: {local_time}"
    except Exception as e:
        return f"Error fetching time for timezone '{timezone}': {str(e)}"

final_answer = FinalAnswerTool()

model = HfApiModel(
    max_tokens=2096,
    temperature=0.5,
    model_id='Qwen/Qwen2.5-Coder-32B-Instruct',
    custom_role_conversions=None,
)

# Import tool from Hub
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)

with open("prompts.yaml", 'r') as stream:
    prompt_templates = yaml.safe_load(stream)

agent = CodeAgent(
    model=model,
    tools=[final_answer, call_me_here, get_current_time_in_timezone],  # 添加 call_me_here 工具
    max_steps=6,
    verbosity_level=1,
    grammar=None,
    planning_interval=None,
    name=None,
    description=None,
    prompt_templates=prompt_templates
)

GradioUI(agent).launch()