انتقل إلى المحتوى الرئيسي
أكاديمية تيكين للذكاء الاصطناعي

هندسة وبناء عملاء الذكاء الاصطناعي مجانًا

تعلم المنهجيات لتجاوز تكاليف واجهة برمجة التطبيقات الباهظة. قم ببناء عملاء مستقلين مجهزين بأدوات باستخدام مستويات السحابة المجانية والنماذج المحلية.

مخطط حلقة ReAct الذكية

📥

١. إدخال المستخدم

المسألة أو الأمر الأولي

▶️
🧠

٢. محرك التفكير (Thought)

تحليل وتخطيط النموذج

▶️
⚙️

٣. تشغيل الأدوات (Action)

البحث، الحسابات، الملفات

💡 تتكرر حلقة ReAct ديناميكياً حتى يعلن النموذج التوصل للإجابة النهائية. كل هذه المراحل تعتمد على موارد مجانية بالكامل.

إعداد عميل البايثون

حدد مواصفات العميل الذكي المطلوب:

tekin_agent.py
import os
import time
import google.generativeai as genai

# =====================================================================
# TAKIN ACADEMY: ZERO-COST REACT AGENT BLUEPRINT
# =====================================================================

# إعداد مفتاح API المجاني لـ Gemini (احصل عليه مجانًا من Google AI Studio)
api_key = os.getenv("GEMINI_API_KEY", "YOUR_FREE_GEMINI_API_KEY")
genai.configure(api_key=api_key)
model_name = "gemini-1.5-flash"

SYSTEM_PROMPT = """أنت وكيل ذكي يعمل في حلقة ReAct (التفكير، الإجراء، الملاحظة).
مهمتك هي الإجابة على استفسار المستخدم منطقياً. لديك إمكانية الوصول إلى الأدوات التالية:
- web_search(query): البحث في الويب للعثور على أحدث المعلومات. أدخل كلمة البحث.
- calculate(expression): حل المعادلات الرياضية. مثال: calculate("2 + 2 * 10")

تتكون كل دورة من:
Thought: فكر فيما يجب فعله بعد ذلك.
Action: اسم_الأداة(الوسيط) - إذا كنت بحاجة لاستدعاء أداة.
Observation: نتيجة الأداة (سيتم إعادتها إليك كمدخلات).
... (كرر الدورة عند الحاجة)
Thought: عندما تجد الإجابة النهائية.
Final Answer: إجابتك المفصلة والنهائية للمستخدم.

أهدافك وهويتك:
أنت وكيل ذكي لكتابة المحتوى. استخدم دائماً أداة البحث للعثور على أحدث المعلومات قبل الكتابة.

ابدأ الآن!"""
# Define agent tools (Completely free, no API cost)
tools = {}

def web_search(query: str) -> str:
    """البحث في الويب للعثور على أحدث المعلومات باستخدام تجريف ويب بسيط أو DuckDuckGo."""
    try:
        import urllib.request
        from bs4 import BeautifulSoup
        import urllib.parse
        url = f"https://html.duckduckgo.com/html/?q={urllib.parse.quote(query)}"
        req = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'})
        with urllib.request.urlopen(req) as response:
            soup = BeautifulSoup(response.read(), 'html.parser')
            results = [a.text.strip() for a in soup.find_all('a', class_='result__snippet')[:3]]
            return " | ".join(results) if results else "No results found."
    except Exception as e:
        return f"Error executing search: {str(e)}"

tools["web_search"] = web_search

def calculate(expression: str) -> str:
    """حساب الصيغ الرياضية المعقدة باستخدام بايثون بشكل آمن."""
    try:
      allowed = "0123456789+-*/(). "
      if all(c in allowed for c in expression):
          return str(eval(expression))
      return "Error: Invalid characters in math formula."
    except Exception as e:
      return f"Math error: {str(e)}"

tools["calculate"] = calculate


# تعريف تشغيل حلقة ReAct للعميل الذكي
def run_agent(question: str):
    model = genai.GenerativeModel(model_name)
    chat = model.start_chat(history=[])
    
    prompt = f"{SYSTEM_PROMPT}\nQuestion: {question}\n"
    
    print(f"🚀 Starting ReAct Loop for: '{question}'")
    for step in range(6):
        response = chat.send_message(prompt).text
        print(f"\n[Thought]:\n{response}\n")
        
        if "Action:" in response:
            # استخراج اسم الأداة والوسيط الخاص بها
            try:
                action_line = [l for l in response.split("\n") if "Action:" in l][0]
                action_val = action_line.replace("Action:", "").strip()
                tool_name = action_val.split("(")[0].strip()
                tool_arg = action_val.split("(")[1].split(")")[0].replace('"', '').replace("'", "").strip()
                
                if tool_name in tools:
                    # تشغيل الأداة المحددة
                    observation = tools[tool_name](tool_arg)
                    prompt = f"Observation: {observation}\n"
                else:
                    prompt = f"Observation: Tool '{tool_name}' is not defined.\n"
            except Exception as e:
                prompt = f"Observation: Error parsing Action format. Make sure to use tool_name(arg).\n"
                
        elif "Final Answer:" in response:
            # عرض الإجابة النهائية للمستخدم
            final_answer = response.split("Final Answer:")[1].strip()
            print("====================================")
            print(f"🎉 Final Result:\n{final_answer}")
            print("====================================")
            break
        else:
            break

if __name__ == "__main__":
    # طرح سؤال عينة وتشغيل العميل
    test_question = "ما هي أحدث أخبار الذكاء الاصطناعي في الألعاب؟"
    run_agent(test_question)

دليل الإعداد والتشغيل المحلي

١. الحصول على مفتاح API مجاني

انتقل إلى Google AI Studio وقم بإنشاء مفتاح API مجاني تمامًا لنموذج Gemini. هذا المفتاح مجاني حتى 15 طلبًا في الدقيقة.

٢. تثبيت حزم البايثون

pip install google-generativeai beautifulsoup4

قم بتشغيل الأمر في موجه الأوامر لتثبيت مكتبة گوگل ومكتبة BeautifulSoup المخصصة للويب.

٣. تشغيل السكريبت

python tekin_zero_cost_agent.py

قم بتشغيل السكريبت المحفوظ في محطتك الطرفية لمشاهدة دورة تفكير العميل الذكي وحل المشاكل مباشرة.