هياكل البيانات للذكاء الاصطناعي
العمل مع 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
بعد ذلك، سنتعلم تلميحات الأنواع لجعل الكود أوضح. :::