Spaces:
Sleeping
Sleeping
File size: 3,000 Bytes
9b5b26a c19d193 0bbfd20 6aae614 9b5b26a fe6ddf4 9b5b26a fe6ddf4 9b5b26a 51dc433 0bbfd20 9b5b26a 51dc433 9b5b26a 51dc433 0bbfd20 51dc433 fe6ddf4 9b5b26a fe6ddf4 9b5b26a 0bbfd20 fe6ddf4 0bbfd20 9b5b26a fe6ddf4 51dc433 0bbfd20 fe6ddf4 51dc433 8c01ffb fe6ddf4 |
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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
import requests
import pytz
import yaml
import os
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
# ----- تصحيح: إضافة الاستيراد الناقص لـ datetime -----
import datetime
# ----- تصحيح: إغلاق الأقواس الناقصة في أداة التلخيص -----
@tool
def summarize_text(text: str, max_length: int = 130) -> str:
"""تلخيص النصوص باستخدام نموذج BART من Hugging Face
Args:
text: النص الأصلي المراد تلخيصه
max_length: الحد الأقصى لطول الملخص (افتراضي: 130 كلمة)
"""
try:
API_URL = "https://api-inference.huggingface.co/models/facebook/bart-large-cnn"
headers = {"Authorization": f"Bearer {os.environ['HF_TOKEN']}"}
data = {
"inputs": text,
"parameters": {"max_length": max_length}
} # <--- إضافة القوس المفقود هنا
response = requests.post(API_URL, headers=headers, json=data)
response.raise_for_status()
summary = response.json()[0]['summary_text']
return f"الملخص: {summary}"
except Exception as e:
return f"خطأ في التلخيص: {str(e)}"
# ----- تصحيح: إضافة النقطة في نهاية الجملة الأولى من الـ Docstring -----
@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)}"
# ----- تصحيح: إضافة تعريف النموذج (model) -----
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id='Qwen/Qwen2.5-Coder-32B-Instruct',
custom_role_conversions=None,
)
# ----- تصحيح: إضافة الأداة المُستوردة من الـ Hub -----
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
# ----- تصحيح: إغلاق الأقواس الناقصة في تعريف الوكيل -----
agent = CodeAgent(
model=model,
tools=[
FinalAnswerTool(), # <--- تصحيح: إضافة الأقواس ()
DuckDuckGoSearchTool(),
image_generation_tool,
summarize_text,
get_current_time_in_timezone
],
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name=None,
description=None,
prompt_templates=yaml.safe_load(open("prompts.yaml"))
)
GradioUI(agent).launch() |