مبتدئ
⏱ ٤٥ دقيقة قراءة
© بوابة الذكاء الاصطناعي ٢٠٢٦-٠٤-٠٩
تعلم كيفية بناء وكيل ذكاء اصطناعي بسيط باستخدام بايثون يمكنه أتمتة المهام واتخاذ قرارات ذكية. هذا الدليل الأساسي سيساعدك على البدء بمفاهيم وممارسات الذكاء الاصطناعي الوكيل.
المتطلبات الأساسية
- بايثون ٣.٩ أو أعلى
- فهم أساسي لبرمجة بايثون
- الوصول إلى بيئة تطوير متكاملة أو محرر كود (مثل VSCode، PyCharm)
ما الذي نبنيه
في هذا الدرس، ستقوم بإنشاء وكيل ذكاء اصطناعي بسيط باستخدام بايثون. سيكون هذا الوكيل قادرًا على تنفيذ المهام المؤتمتة بناءً على قواعد محددة مسبقًا ومدخلات البيانات. الهدف من هذا المشروع هو تعريفك بالمفاهيم الأساسية لوكلاء الذكاء الاصطناعي، بما في ذلك اتخاذ القرارات، الأتمتة، ودمج نماذج الذكاء الاصطناعي الأساسية لتعزيز الوظائف.
بنهاية هذا الدرس، سيكون وكيل الذكاء الاصطناعي الخاص بك قادرًا على معالجة المدخلات، واتخاذ القرارات بناءً على تلك المدخلات، وتنفيذ المهام مثل إرسال بريد إلكتروني أو استرجاع البيانات من مصدر ويب. هذه التجربة الأساسية ستجهزك لمشاريع وكيلة أكثر تعقيدًا في المستقبل.
الإعداد والتثبيت
لبناء وكيل الذكاء الاصطناعي الخاص بنا، نحتاج إلى إعداد بيئة بايثون وتثبيت المكتبات الضرورية. سنستخدم `requests` للتعامل مع طلبات HTTP و`smtplib` لإرسال رسائل البريد الإلكتروني. ستُمكن هذه الأدوات وكيلنا من التفاعل مع الأنظمة الخارجية وتنفيذ المهام.
pip install requestsبعد ذلك، نحتاج إلى تكوين متغيرات البيئة للبيانات الحساسة مثل بيانات اعتماد البريد الإلكتروني. أنشئ ملف `.env` في دليل المشروع الخاص بك بالمحتوى التالي:
EMAIL_USER=your_email@gmail.com
EMAIL_PASS=your_password
الخطوة ١: إنشاء هيكل الوكيل الأساسي
سنبدأ بتعريف هيكل أساسي لوكيل الذكاء الاصطناعي الخاص بنا. يتضمن ذلك إنشاء فئة ستتعامل مع المهام وتتخذ القرارات بناءً على بيانات المدخلات.
class SimpleAgent:
def __init__(self, name):
self.name = name
self.tasks = [] def add_task(self, task):
self.tasks.append(task)
def list_tasks(self):
return self.tasks
agent = SimpleAgent("TaskMaster")
agent.add_task("Send email")
print(agent.list_tasks())
يقوم هذا الكود بتهيئة وكيل باسم وقائمة من المهام. تتيح طريقة `add_task` إضافة مهام جديدة إلى قائمة الوكيل، و`list_tasks` تعيد المهام الحالية.
الخطوة ٢: تنفيذ منطق اتخاذ القرار
خطوتنا التالية هي تمكين الوكيل من اتخاذ القرارات. سنقوم بتنفيذ وظيفة بسيطة لاتخاذ القرار التي تتحقق من الشروط وتنفذ المهام وفقًا لذلك.
import randomclass SimpleAgent:
def __init__(self, name):
self.name = name
self.tasks = []
def add_task(self, task):
self.tasks.append(task)
def list_tasks(self):
return self.tasks
def make_decision(self):
if "Send email" in self.tasks and random.choice([True, False]):
self.send_email()
def send_email(self):
print("Email sent!")
agent = SimpleAgent("TaskMaster")
agent.add_task("Send email")
agent.make_decision()
هنا، `make_decision` تتحقق مما إذا كانت “Send email” في قائمة المهام وتقرر عشوائيًا إرسال بريد إلكتروني. هذا يحاكي اتخاذ القرار بناءً على الشروط.
الخطوة ٣: تعزيز التكاملات الخارجية
لجعل وكيلنا أكثر وظيفية، سنقوم بدمجه مع خدمة البريد الإلكتروني باستخدام `smtplib` في بايثون. يتيح ذلك للوكيل إرسال رسائل بريد إلكتروني حقيقية كجزء من مهامه.
import smtplib
from dotenv import load_dotenv
import osload_dotenv()
class SimpleAgent:
def __init__(self, name):
self.name = name
self.tasks = []
def add_task(self, task):
self.tasks.append(task)
def list_tasks(self):
return self.tasks
def make_decision(self):
if "Send email" in self.tasks:
self.send_email()
def send_email(self):
user = os.getenv('EMAIL_USER')
password = os.getenv('EMAIL_PASS')
with smtplib.SMTP('smtp.gmail.com', 587) as server:
server.starttls()
server.login(user, password)
server.sendmail(user, "recipient@example.com", "Subject: HinnThis is a test email from AI Agent.")
print("Email sent!")
agent = SimpleAgent("TaskMaster")
agent.add_task("Send email")
agent.make_decision()
يتيح هذا التكامل للوكيل إرسال بريد إلكتروني باستخدام خادم SMTP الخاص بجيميل. تأكد من أن حساب جيميل الخاص بك يسمح للتطبيقات الأقل أمانًا بالوصول إلى SMTP.
اختبار التنفيذ الخاص بك
للتحقق من أن وكيل الذكاء الاصطناعي الخاص بك يعمل، قم بتشغيل السكربت وتحقق من رسالة “Email sent!” في وحدة التحكم. يجب أيضًا أن تتلقى بريدًا إلكترونيًا في صندوق الوارد الخاص بالمستلم المحدد.
python agent.pyما الذي تبنيه بعد ذلك
- دمج مهمة استخراج بيانات الويب لجلب البيانات بشكل دوري وتحليلها.
- توسيع منطق اتخاذ القرار ليشمل قواعد أكثر تعقيدًا ورؤى مستندة إلى البيانات.
- بناء واجهة مستخدم للتفاعل مع الوكيل وتصور مهامه وقراراته.