الدرس 7 من 20

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

العمل مع JSON

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

JSON (تدوين كائن جافاسكريبت) هو التنسيق القياسي للتواصل مع API. كل واجهة ذكاء اصطناعي ترجع JSON، لذا إتقانه ضروري.

أساسيات JSON

JSON يُطابق مباشرة أنواع بايثون:

JSON بايثون
{} كائن dict
[] مصفوفة list
"text" نص str
123 رقم int أو float
true/false True/False
null None

تحليل سلاسل JSON

import json

# سلسلة JSON (من استجابة API)
json_string = '{"model": "gpt-4", "temperature": 0.7}'

# تحليل إلى قاموس بايثون
data = json.loads(json_string)
print(data["model"])  # "gpt-4"

# تحليل JSON ببنية متداخلة
api_response = '''
{
    "id": "chatcmpl-123",
    "choices": [
        {"message": {"content": "مرحباً!"}}
    ]
}
'''
response = json.loads(api_response)
content = response["choices"][0]["message"]["content"]

تحويل بايثون إلى JSON

import json

# قاموس بايثون
message = {
    "role": "user",
    "content": "مرحباً!"
}

# تحويل إلى سلسلة JSON
json_string = json.dumps(message)
# '{"role": "user", "content": "مرحباً!"}'

# طباعة منسقة مع مسافة بادئة
pretty = json.dumps(message, indent=2, ensure_ascii=False)
# {
#   "role": "user",
#   "content": "مرحباً!"
# }

قراءة وكتابة ملفات JSON

import json

# الكتابة إلى ملف
config = {"api_key": "hidden", "model": "gpt-4"}
with open("config.json", "w") as f:
    json.dump(config, f, indent=2)

# القراءة من ملف
with open("config.json", "r") as f:
    loaded_config = json.load(f)

الأنماط الشائعة في الذكاء الاصطناعي

import json

# بناء جسم طلب API
request_body = {
    "model": "gpt-4",
    "messages": [
        {"role": "system", "content": "أنت مساعد."},
        {"role": "user", "content": "مرحباً!"}
    ],
    "temperature": 0.7
}

# تحويل لطلب HTTP
json_body = json.dumps(request_body)

# تحليل قطع الاستجابة المتدفقة
chunk = '{"choices":[{"delta":{"content":"أهلاً"}}]}'
parsed = json.loads(chunk)
text = parsed["choices"][0]["delta"].get("content", "")

معالجة الأخطاء

import json

def safe_parse(json_string):
    try:
        return json.loads(json_string)
    except json.JSONDecodeError as e:
        print(f"JSON غير صالح: {e}")
        return None

# الاستخدام
result = safe_parse('{"valid": true}')   # يعمل
result = safe_parse('not json')          # يرجع None

بعد ذلك، سنتعلم تلميحات الأنواع لجعل الكود أوضح. :::

اختبار

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

خذ الاختبار