الدرس 8 من 20

هياكل البيانات للذكاء الاصطناعي

تلميحات الأنواع

3 دقيقة للقراءة

تلميحات الأنواع تجعل كودك موثقاً ذاتياً وتساعد في اكتشاف الأخطاء قبل التشغيل. أُطر الذكاء الاصطناعي الحديثة تستخدمها بشكل مكثف.

تلميحات الأنواع الأساسية

# تعليقات المتغيرات
name: str = "Claude"
temperature: float = 0.7
max_tokens: int = 1000
is_streaming: bool = True

# تعليقات الدوال
def greet(name: str) -> str:
    return f"مرحباً، {name}!"

def add(a: int, b: int) -> int:
    return a + b

أنواع المجموعات

from typing import List, Dict, Tuple, Optional

# قائمة من السلاسل النصية
messages: List[str] = ["مرحباً", "عالم"]

# قاموس بمفاتيح نصية وقيم أي نوع
config: Dict[str, any] = {"model": "gpt-4", "temp": 0.7}

# قاموس منوّع
settings: Dict[str, str] = {"model": "gpt-4"}

# صف بأنواع محددة
point: Tuple[int, int] = (10, 20)

# قائمة من القواميس (شائع في الذكاء الاصطناعي)
chat_history: List[Dict[str, str]] = [
    {"role": "user", "content": "مرحباً"},
    {"role": "assistant", "content": "أهلاً!"}
]

Optional و Union

from typing import Optional, Union

# Optional: يمكن أن يكون النوع أو None
def get_user(id: int) -> Optional[str]:
    if id == 1:
        return "أليس"
    return None

# Union: يمكن أن يكون أنواع متعددة
def process(data: Union[str, bytes]) -> str:
    if isinstance(data, bytes):
        return data.decode()
    return data

# بناء جملة بايثون 3.10+ (أنظف)
def process(data: str | bytes) -> str:
    ...

توقيعات الدوال في كود الذكاء الاصطناعي

from typing import List, Dict, Optional, Callable

# اسم مستعار لنوع الرسالة
Message = Dict[str, str]

def chat_completion(
    messages: List[Message],
    model: str = "gpt-4",
    temperature: float = 0.7,
    max_tokens: Optional[int] = None,
    on_token: Optional[Callable[[str], None]] = None
) -> str:
    """توليد إكمال محادثة."""
    ...

# استخدام الأسماء المستعارة للوضوح
ApiResponse = Dict[str, any]
ToolResult = Dict[str, str]

def execute_tool(name: str, args: Dict[str, any]) -> ToolResult:
    ...

فوائد تلميحات الأنواع

الفائدةالوصف
التوثيقالكود يشرح نفسه
دعم IDEإكمال تلقائي واكتشاف أخطاء أفضل
منع الأخطاءاكتشاف أخطاء الأنواع قبل التشغيل
إعادة الهيكلةتغييرات كود أكثر أماناً

ملاحظات مهمة

  • تلميحات الأنواع اختيارية ولا تؤثر على التشغيل
  • بايثون لا تفرض الأنواع (استخدم mypy للفحص)
  • ابدأ بسيطاً، أضف التلميحات تدريجياً
  • بايثون الحديث (3.9+) يسمح بـ list[str] بدلاً من List[str]

لقد أكملت وحدة هياكل البيانات! بعد ذلك، سنتعلم الدوال والفئات. :::

مراجعة سريعة: كيف تجد هذا الدرس؟

اختبار

الوحدة 2: هياكل البيانات للذكاء الاصطناعي

خذ الاختبار
نشرة أسبوعية مجانية

ابقَ على مسار النيرد

بريد واحد أسبوعياً — دورات، مقالات معمّقة، أدوات، وتجارب ذكاء اصطناعي.

بدون إزعاج. إلغاء الاشتراك في أي وقت.