File size: 1,905 Bytes
e6f91c6 9b5b26a c19d193 6aae614 9b5b26a e6f91c6 9b5b26a e6f91c6 9b5b26a e6f91c6 9b5b26a e6f91c6 9b5b26a e6f91c6 8c01ffb e6f91c6 6aae614 e121372 e6f91c6 13d500a 8c01ffb e6f91c6 9b5b26a 8c01ffb e6f91c6 861422e e6f91c6 8c01ffb 8fe992b e6f91c6 8c01ffb 47ae16e 861422e 8fe992b e6f91c6 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 | from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
import datetime
import pytz
import yaml
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
# ----- أداة جلب الوقت حسب المنطقة الزمنية -----
@tool
def get_current_time_in_timezone(timezone: str) -> str:
"""جلب الوقت الحالي في منطقة زمنية محددة
Args:
timezone: اسم المنطقة الزمنية (مثال: 'Asia/Dubai')
"""
try:
tz = pytz.timezone(timezone)
local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")
return f"The current time in {timezone} is: {local_time}"
except Exception as e:
return f"Error: {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,
)
# ----- تحميل أداة توليد الصور من Hugging Face Hub -----
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
# ----- تحميل الـ System Prompt -----
with open("prompts.yaml", 'r') as stream:
prompt_templates = yaml.safe_load(stream)
# ----- إنشاء الوكيل مع تفعيل الأدوات -----
agent = CodeAgent(
model=model,
tools=[
final_answer,
DuckDuckGoSearchTool(), # أداة البحث في الويب
image_generation_tool, # أداة توليد الصور
get_current_time_in_timezone # أداة الوقت
],
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name=None,
description=None,
prompt_templates=prompt_templates
)
# ----- تشغيل الواجهة -----
GradioUI(agent).launch() |