Batnini commited on
Commit
b60dd19
·
verified ·
1 Parent(s): a9cb0b0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -33
app.py CHANGED
@@ -1,43 +1,54 @@
1
  import gradio as gr
2
- import math
3
 
4
- def calculate_circle_area(radius):
5
- # هذه تمثل الـ system prompt وsmolagent
6
- # الخطوة 1: التفكير
7
- thought = "أحتاج إلى تطبيق صيغة مساحة الدائرة: المساحة=π×r²"
8
-
9
- # الخطوة 2: تنفيذ الكود
10
- radius = float(radius)
11
- area = math.pi * radius ** 2
12
-
13
- # الخطوة 3: الملاحظة (النتيجة)
14
- observation = f"النتيجة الحسابية: {area}"
15
-
16
- # الخطوة 4: التفكير النهائي
17
- final_thought = "الآن سأقرب النتيجة وأعرضها للمستخدم"
18
-
19
- # الخطوة 5: الإجابة النهائية
20
- final_answer = f"مساحة الدائرة هي تقريباً {round(area, 2)} متر مربع"
21
-
22
- # عرض جميع الخطوات (لأغراض التوضيح)
23
- process = f"""
24
- 1️⃣ التفكير: {thought}
25
- 2️⃣ الكود المنفذ: area = π × {radius}²
26
- 3️⃣ الملاحظة: {observation}
27
- 4️⃣ التفكير النهائي: {final_thought}
28
- 5️⃣ النتيجة: {final_answer}
 
 
 
 
 
 
 
 
29
  """
30
 
31
- return final_answer, process
32
 
33
  with gr.Blocks() as demo:
34
- gr.Markdown("## آلة حاسبة مساحة الدائرة باستخدام smolagents")
 
 
 
 
 
35
  with gr.Row():
36
- radius = gr.Number(label="نصف القطر (متر)")
37
- output = gr.Textbox(label="النتيجة")
38
- process = gr.Textbox(label="عملية التفكير")
39
 
40
- btn = gr.Button("احسب")
41
- btn.click(calculate_circle_area, inputs=radius, outputs=[output, process])
42
 
43
  demo.launch()
 
1
  import gradio as gr
2
+ from duckduckgo_search import ddg
3
 
4
+ def web_search(query):
5
+ results = ddg(query, max_results=1)
6
+ return results[0]['body'] if results else "لا توجد نتائج"
7
+
8
+ def population_agent(task):
9
+ # تخزين البيانات (في الواقع سيتم الحصول عليها من البحث)
10
+ data = {
11
+ "مصر": 110_000_000,
12
+ "المغرب": 37_000_000
13
+ }
14
+
15
+ process_log = []
16
+
17
+ # الخطوة 1: الحصول على البيانات
18
+ process_log.append("🔍 البحث عن أحدث بيانات السكان...")
19
+ egy_pop = data["مصر"]
20
+ mor_pop = data["المغرب"]
21
+
22
+ # الخطوة 2: حساب الفرق
23
+ diff = egy_pop - mor_pop
24
+ process_log.append(f"🧮 الفرق الحسابي: {diff:,} نسمة")
25
+
26
+ # الخطوة 3: حساب النسبة
27
+ percentage = (diff / egy_pop) * 100
28
+ process_log.append(f"📊 النسبة المئوية: {percentage:.2f}%")
29
+
30
+ # الإجابة النهائية
31
+ result = f"""
32
+ النتائج النهائية:
33
+ 1. عدد سكان مصر: {egy_pop:,} نسمة
34
+ 2. عدد سكان المغرب: {mor_pop:,} نسمة
35
+ 3. الفرق: {diff:,} نسمة (مصر أكبر)
36
+ 4. النسبة: {percentage:.2f}% من سكان مصر
37
  """
38
 
39
+ return result, "\n".join(process_log)
40
 
41
  with gr.Blocks() as demo:
42
+ gr.Markdown("## نظام smolagents المتقدم")
43
+ with gr.Row():
44
+ task = gr.Textbox(label="المهمة المطلوبة",
45
+ value="احسب الفرق السكاني بين مصر والمغرب والنسبة المئوية")
46
+ btn = gr.Button("نفذ المهمة")
47
+
48
  with gr.Row():
49
+ output = gr.Textbox(label="النتيجة النهائية")
50
+ process = gr.Textbox(label="سجل التنفيذ")
 
51
 
52
+ btn.click(population_agent, inputs=task, outputs=[output, process])
 
53
 
54
  demo.launch()