معجم المصطلحات

A

API (Application Programming Interface): طريقة يتواصل بها برنامجان مع بعضهما عبر الإنترنت. يرسل تطبيق الجوال الخاص بك طلبًا إلى API، ثم يعيد الخادم استجابة.

Agentic AI: نموذج ذكاء اصطناعي يستطيع استخدام أدوات (مثل آلة حاسبة أو محرك بحث) وأن يقرّر أي الأدوات يستدعيها لإنجاز مهمة.

Async / Asynchronous: كود لا يحجب التنفيذ أثناء الانتظار. حين تجلب بيانات من API، يبقى التطبيق مستجيبًا بدل أن يتجمّد. يُكتب async قبل الدالة وawait قبل العملية البطيئة.

B

Backend: الواجهة الخلفية للتطبيق، أي الجزء الذي يعمل على الخادم. تخزّن البيانات، وتنفّذ منطق العمل، وتقدّم APIs. في هذا المشروع، الواجهة الخلفية هي Flask + SQLite.

Blueprint (Flask): طريقة لتنظيم مسارات Flask في ملفات منفصلة، كأن يكون لديك ملف "مسارات المستخدمين" وملف "مسارات الدردشة" بدل أن يكون كل شيء في ملف واحد.

C

Chunking: تقطيع مستند طويل إلى أجزاء أصغر قبل تضمينه. يحصل كل جزء على متجه خاص به، ما يجعل البحث أكثر دقة.

CI/CD (Continuous Integration / Continuous Deployment): خطوط أنابيب آلية تشغّل الاختبارات وتنشر الكود عند دفعك التغييرات إلى المستودع. CI يشغّل الاختبارات، وCD ينشر.

Client: الواجهة الأمامية للتطبيق التي يتعامل معها المستخدم مباشرة. في هذا المشروع، العميل هو تطبيق الجوال المبني بـ React Native.

Container: حاوية خفيفة ومحمولة تحتوي تطبيقك وكل تبعياته (Python والمكتبات والإعدادات). تعمل بالطريقة نفسها في أي بيئة.

CORS (Cross-Origin Resource Sharing): ميزة أمان في المتصفح تمنع صفحة ويب من إرسال طلبات إلى نطاق مختلف عن النطاق الذي قدّم الصفحة. تحتاج إلى إعداد CORS في الواجهة الخلفية لتتمكن من ربط تطبيق الجوال.

Cosine Similarity: تشابه جيب التمام، وهو مقياس لمدى تشابه متجهين. 1.0 = الاتجاه نفسه (المعنى نفسه)، و0.0 = لا علاقة بينهما. يُستخدم في RAG للعثور على المستندات ذات الصلة.

CRUD (Create, Read, Update, Delete): العمليات الأساسية الأربع للتخزين الدائم. في API: POST (إنشاء)، GET (قراءة)، PUT/PATCH (تحديث)، DELETE (حذف).

D

Database: مجموعة منظّمة من البيانات. يستخدم هذا المشروع SQLite (قاعدة بيانات قائمة على ملف) في مرحلة التطوير.

Dependency: تبعية، أي حزمة أو مكتبة خارجية يحتاجها مشروعك. تُدرج في requirements.txt (Python) أو package.json (Node.js).

Docker: منصة لتشغيل التطبيقات داخل حاويات. تستخدم Dockerfile كوصفة، وDocker Compose لتشغيل عدة خدمات.

Docker Compose: أداة لتعريف عدة حاويات Docker وتشغيلها معًا. مثال: تطبيق Flask الخاص بك + قاعدة بيانات PostgreSQL.

E

Embedding: قائمة أرقام (متجه) تمثّل معنى قطعة من النص. النصوص المتشابهة لها تضمينات متشابهة.

Endpoint: نقطة نهاية، أي تركيبة محددة من URL وطريقة HTTP تنفّذ إجراءً واحدًا. مثال: POST /api/chat يرسل رسالة ويحصل على رد من الذكاء الاصطناعي.

Environment Variable: متغير بيئة، أي قيمة تُخزَّن خارج الكود (مثل ملف .env) للمعلومات الحساسة مثل مفاتيح API. تمنع حفظ الأسرار في git عن غير قصد.

F

FlatList: مكوّن في React Native لعرض قوائم بيانات قابلة للتمرير. لا يعرض إلا العناصر الظاهرة على الشاشة (virtualized)، ما يجعله سريعًا مع القوائم الطويلة.

Flask: إطار عمل Python خفيف لبناء تطبيقات الويب وواجهات API.

Function Calling: ميزة في API الخاص بـ OpenAI تتيح للنموذج طلب استدعاء دالة (مثل get_weather). ينفّذ المطوّر الدالة ثم يعيد النتيجة. وهكذا يعمل الذكاء الاصطناعي الوكيلي.

G

Git: نظام للتحكم في الإصدارات يتتبّع التغييرات في ملفاتك. يتيح لك حفظ إصدارات والعودة بالزمن إلى الوراء والتعاون مع الآخرين.

.gitignore: ملف يخبر Git بالملفات التي يتجاهلها (مثل venv/ و.env و__pycache__/).

H

HTTP (Hypertext Transfer Protocol): البروتوكول المستخدم للتواصل بين العملاء والخوادم. يحدّد الطرق (GET، POST، إلخ)، ورموز الحالة (200، 404، إلخ)، والترويسات.

J

JSON (JavaScript Object Notation): صيغة بيانات خفيفة تُستخدم للتواصل عبر API. تبدو مثل {"name": "Alice", "age": 25}. ويستطيع كل من Python وJavaScript التحويل من JSON وإليه بسهولة.

L

LLM (Large Language Model): نموذج لغوي كبير، أي نموذج ذكاء اصطناعي دُرِّب على كميات ضخمة من النصوص، ويستطيع توليد ردود تشبه ردود البشر. أمثلة: GPT-4o، Claude، Gemini.

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

M

Metrics: بيانات رقمية عن أداء تطبيقك، مثل عدد الطلبات وزمن الاستجابة. تُتاح عبر /api/metrics.

Middleware: كود يعمل بين الطلب والاستجابة. مثلًا، وسيط CORS يضيف ترويسات إلى كل استجابة.

Migration: تغيير مخطط قاعدة البيانات بمرور الوقت (إضافة جداول أو أعمدة أو حذفها). عادةً ما يعيد SQLite مع SQLAlchemy إنشاء الجداول، أما ترحيلات PostgreSQL فهي أكثر رسمية.

Mocking: استبدال دالة حقيقية أو استدعاء API حقيقي بنسخة وهمية أثناء الاختبار. يُلجأ إليه لتجنّب استدعاء APIs الحقيقية (ودفع تكلفتها) في الاختبارات.

Model: 1) في الذكاء الاصطناعي — النموذج اللغوي الكبير (مثل GPT-4o-mini). 2) في قواعد البيانات — صنف يمثّل جدولًا (مثل class Message(db.Model)).

O

ORM (Object-Relational Mapping): مكتبة تتيح لك التعامل مع قواعد البيانات باستخدام كائنات Python بدل كتابة SQL. SQLAlchemy هي ORM.

P

pgvector: امتداد لـ PostgreSQL يضيف البحث بتشابه المتجهات. يُستخدم في RAG للعثور على المستندات المشابهة لسؤال المستخدم.

Pre-commit hooks: فحوصات آلية تُشغَّل قبل كل git commit. وإذا فشل أحدها، يُمنع إتمام الـ commit.

Promise: كائن يمثّل قيمة مستقبلية في JavaScript. وasync/await طريقة أنظف للتعامل مع الـ promises.

Provider: شركة تقدّم الوصول إلى APIs النماذج اللغوية. أمثلة: OpenAI، Anthropic، Google، DeepSeek.

R

RAG (Retrieval-Augmented Generation): تقنية تضيف خطوة بحث في قاعدة المعرفة قبل استدعاء النموذج اللغوي. يجيب النموذج اعتمادًا على المستندات المسترجعة بدل الاعتماد على بيانات تدريبه وحدها.

React Native: إطار عمل لبناء تطبيقات الجوال باستخدام React وTypeScript. يُترجم إلى كود iOS وAndroid الأصلي.

Repository (repo): مستودع، أي مجلد يتتبّعه Git ويحتوي ملفات مشروعك وسجل إصداراته الكامل.

Route: مسار، أي نمط URL على خادم ويب. مثال: /api/messages أحد هذه المسارات. تُعرَّف المسارات بمُزيّنات (decorators) في Flask: @app.route('/api/messages').

ruff: أداة فحص وتنسيق سريعة لـ Python. تلتقط الأخطاء والاستيرادات غير المستخدمة ومشكلات الأسلوب. شغّلها بالأمر ruff check .

S

Schema: مخطط جدول قاعدة البيانات — أي الأعمدة موجودة وما أنواعها.

Sentence embeddings: تقنية تحوّل جملة كاملة أو فقرة إلى متجه واحد. تستخدمها نماذج مثل all-MiniLM-L6-v2.

SQLite: قاعدة بيانات خفيفة قائمة على ملفات. تخزّن كل شيء في ملف .db واحد. ممتازة للتطوير، ولا يُنصح بها في الإنتاج.

Status Code: رمز الحالة، وهو رقم من ثلاثة أرقام في استجابة HTTP يدل على النجاح (2xx)، أو إعادة التوجيه (3xx)، أو خطأ من العميل (4xx)، أو خطأ من الخادم (5xx).

Streaming: البث، أي إرسال بيانات استجابة الذكاء الاصطناعي أثناء توليدها، رمزًا برمز، بدل انتظار الاستجابة كاملة. يجعل الدردشة تبدو أسرع.

T

Token: وحدة نصية يعالجها النموذج اللغوي. الرمز يقارب 0.75 كلمة. أي أن "Hello world" نحو رمزين. والتسعير يعتمد على الرموز.

Traceback: تتبع الأخطاء، أي قائمة استدعاءات الدوال التي تُعرض عند حدوث خطأ في Python. اقرأها من الأسفل إلى الأعلى لتجد السبب الجذري.

TypeScript: لغة JavaScript مع إضافة تعريفات الأنواع. تلتقط الأخطاء في وقت الترجمة بدل وقت التشغيل.

V

Virtual Environment (venv): بيئة افتراضية معزولة لـ Python، خاصة بمشروع واحد. يحصل كل مشروع على تبعياته الخاصة دون تعارض مع المشاريع الأخرى.

W

WSL2 (Windows Subsystem for Linux 2): نواة Linux كاملة تعمل داخل Windows. تمنح مستخدمي Windows طرفية Linux وتتجنّب كثيرًا من مشكلات تثبيت Python.