الدوال والفئات
تعريف الدوال
3 دقيقة للقراءة
الدوال هي كتل من الكود قابلة لإعادة الاستخدام. في تطوير الذكاء الاصطناعي، ستنشئ دوالاً لتنسيق المطالبات واستدعاءات API ومعالجة الاستجابات والمزيد.
بناء جملة الدالة الأساسي
def greet(name):
"""إرجاع رسالة ترحيب."""
return f"مرحباً، {name}!"
# استدعاء الدالة
message = greet("كلود") # "مرحباً، كلود!"
المعاملات والوسائط
# المعاملات المطلوبة
def chat(message, model):
return f"[{model}]: {message}"
# المعاملات الافتراضية
def chat(message, model="gpt-4"):
return f"[{model}]: {message}"
chat("مرحباً") # يستخدم النموذج الافتراضي
chat("مرحباً", model="claude") # تجاوز الافتراضي
*args و **kwargs
هذه تسمح بمرونة في معالجة الوسائط:
# *args: قبول أي عدد من الوسائط الموضعية
def sum_all(*numbers):
return sum(numbers)
sum_all(1, 2, 3) # 6
sum_all(1, 2, 3, 4, 5) # 15
# **kwargs: قبول أي عدد من وسائط الكلمات المفتاحية
def create_message(**kwargs):
return kwargs
create_message(role="user", content="مرحباً")
# {'role': 'user', 'content': 'مرحباً'}
# الجمع بين الاثنين
def api_call(endpoint, *args, **kwargs):
print(f"استدعاء {endpoint}")
print(f"الوسائط: {args}")
print(f"kwargs: {kwargs}")
مثال عملي للذكاء الاصطناعي
def format_messages(system_prompt, *user_messages):
"""تنسيق الرسائل لواجهة المحادثة."""
messages = [{"role": "system", "content": system_prompt}]
for msg in user_messages:
messages.append({"role": "user", "content": msg})
return messages
# الاستخدام
messages = format_messages(
"أنت مساعد مفيد.",
"مرحباً!",
"ماذا يمكنك أن تفعل؟"
)
القيم المُرجعة
# إرجاع قيمة واحدة
def get_model():
return "gpt-4"
# إرجاع قيم متعددة (كصف)
def get_config():
return "gpt-4", 0.7, 1000 # النموذج، الحرارة، الرموز القصوى
model, temp, tokens = get_config()
# إرجاع None ضمنياً
def log(message):
print(message)
# لا يوجد return = ترجع None
دوال Lambda
دوال مجهولة قصيرة للعمليات البسيطة:
# دالة عادية
def double(x):
return x * 2
# ما يعادلها بـ Lambda
double = lambda x: x * 2
# استخدام شائع: الفرز
models = [("gpt-4", 0.03), ("gpt-3.5", 0.002)]
sorted_by_price = sorted(models, key=lambda m: m[1])
بعد ذلك، سنتعلم الفئات والبرمجة كائنية التوجه. :::