real-jiakai's picture
Update app.py
29fad24 verified
# 导入所需的模块和工具类
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
# 导入日期时间处理模块
import datetime
# 导入网络请求模块
import requests
# 导入时区处理模块
import pytz
# 导入YAML配置文件处理模块
import yaml
# 导入最终答案工具类
from tools.final_answer import FinalAnswerTool
# 导入Gradio用户界面类
from Gradio_UI import GradioUI
# 定义一个自定义工具函数,接收两个参数并返回字符串
def my_custom_tool(arg1:str, arg2:int)-> str:
"""A tool that does nothing yet
Args:
arg1: the first argument
arg2: the second argument
"""
return "What magic will you build ?"
# 定义一个获取指定时区当前时间的工具函数
def get_current_time_in_timezone(timezone: str) -> str:
"""A tool that fetches the current local time in a specified timezone.
Args:
timezone: A string representing a valid timezone (e.g., '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()
# 配置AI模型参数
model = HfApiModel(
max_tokens=2096, # 设置最大令牌数
temperature=0.5, # 设置温度参数
model_id='Qwen/Qwen2.5-Coder-32B-Instruct', # 设置模型ID
custom_role_conversions=None, # 设置自定义角色转换
)
# 从Hub加载图像生成工具
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
# 读取YAML格式的提示模板文件
with open("prompts.yaml", 'r') as stream:
prompt_templates = yaml.safe_load(stream)
# 创建代码智能体实例
agent = CodeAgent(
model=model, # 设置使用的模型
tools=[final_answer], # 设置要使用的工具列表
max_steps=6, # 设置最大步骤数
verbosity_level=1, # 设置详细程度级别
grammar=None, # 设置语法规则
planning_interval=None, # 设置规划间隔
name=None, # 设置名称
description=None, # 设置描述
prompt_templates=prompt_templates # 设置提示模板
)
# 启动Gradio用户界面
GradioUI(agent).launch()