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()