0Pricing
AI Agents · درس

تحديث المتجهات وحذفها

حافظ على تزامن الفهرس مع المصدر: نفّذ upsert عند تغيّر المستند، واحذفه عند إزالته، وتعامل مع إعادة إنشاء embeddings.

تحديث المتجهات وحذفها درس مجاني في AI Agents على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Agents، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Agents 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

الفهرس ليس ثابتًا

تتغير المستندات الفعلية. ويجب أن يواكبها الفهرس:

  • إضافة مستندات جديدة
  • تعديل المستندات الموجودة
  • حذف المستندات القديمة أو أرشفتها

Upsert (إدراج أو تحديث)

تدعم معظم قواعد بيانات المتجهات عملية upsert — اكتبوا المتجه بالمعرّف المحدد، مع استبدال المتجه القديم إن وُجد:

index.upsert([
    ('doc-42', new_vector, {'source': 'a.pdf', 'updated_at': now})
])
# If doc-42 already exists, it is overwritten.

المعرّفات الحتمية

إذا استخدمتم معرّفات قائمة على تجزئة المحتوى، فسيحدث "التحديث" تلقائيًا — المحتوى نفسه = المعرّف نفسه = الموضع نفسه.

أما إذا استخدمتم UUIDs، فعليكم تتبّع معرّف UUID المرتبط بكل مستند مصدر.

اكتشاف التغييرات

لمقارنة مجموعة المستندات، خزّنوا تجزئة كل مقطع:

old_chunks = load_existing_chunks(source)
new_chunks = chunk_doc(source)

old_hashes = {c.id for c in old_chunks}
new_hashes = {c.id for c in new_chunks}

to_delete = old_hashes - new_hashes
to_add = new_hashes - old_hashes
# Skip unchanged — saves re-embedding

الحذف حسب عامل التصفية

تدعم معظم قواعد البيانات الحذف حسب عامل التصفية، وهو مفيد لحالة "احذف كل شيء من هذا المصدر":

index.delete(filter={'source': '/old/file.pdf'})

Delete by ID

index.delete(ids=['doc-1', 'doc-2', 'doc-3'])

الحذف المنطقي

أحيانًا تريدون "إخفاء" العنصر بدلًا من إزالته — عيّنوا علامة deleted_at ثم صفّوه خارج النتائج وقت الاستعلام:

index.upsert([('doc-42', vec, {'deleted_at': now})])

# At query time:
results = index.query(vector=query_vec, top_k=5, filter={'deleted_at': {'$exists': False}})

الدمج

تترك عمليات الحذف المتكررة الفهرس متناثرًا. أعيدوا بناءه دوريًا لتحسين الأداء — تفعل معظم قواعد البيانات ذلك تلقائيًا؛ راجعوا مستندات مزوّد الخدمة.

إعادة إنشاء التضمينات عند تغيير النموذج

إذا حدّثتم نموذج التضمين، يصبح كل متجه موجود غير متوافق. الاستراتيجيات:

  1. اكتبوا في المجموعتين القديمة والجديدة أثناء الترحيل
  2. حوّلوا حركة القراءة إلى المجموعة الجديدة عند الاكتمال
  3. احذفوا المجموعة القديمة

خط أنابيب تدريجي

خط أنابيب قوي للإدخال:

def sync_doc(source_path):
    new_chunks = chunk_and_hash(load(source_path))
    existing_ids = index.fetch_ids_by_source(source_path)

    new_ids = {c.id for c in new_chunks}
    to_add = [c for c in new_chunks if c.id not in existing_ids]
    to_remove = existing_ids - new_ids

    if to_remove:
        index.delete(ids=list(to_remove))
    if to_add:
        index.upsert([(c.id, embed(c.text), c.metadata) for c in to_add])

تدقيق الانحراف

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

التحديثات المعتمدة على Webhook

بالنسبة إلى أنظمة إدارة المستندات (Notion وConfluence وGDrive)، استخدموا Webhooks لتشغيل المزامنة التدريجية عند حدوث تغيير — فهذا أرخص بكثير من إعادة الزحف إلى كل شيء.

علامات الحذف في عمليات الحذف الموزّعة

في الفهارس الموزّعة، تكتب عملية "الحذف" غالبًا علامة tombstone. وإلى أن تُجرى عملية الدمج، قد تظل الاستعلامات ترى هذه العلامة — أبقوا عوامل التصفية مطبّقة.

التحديثات القابلة للتكرار الآمن

ما أسهل طريقة لجعل الإدخال آمنًا عند إعادة تشغيله؟

مراجعة

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

الأسئلة الشائعة

هل درس «تحديث المتجهات وحذفها» مجاني؟

نعم — نص درس «تحديث المتجهات وحذفها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Agents، انتقل إلى CoddyKit PRO. تتضمن دورة AI Agents 4 دروس في المجموع.

ماذا ستتعلم في «تحديث المتجهات وحذفها»؟

حافظ على تزامن الفهرس مع المصدر: نفّذ upsert عند تغيّر المستند، واحذفه عند إزالته، وتعامل مع إعادة إنشاء embeddings. تتمرن على AI Agents مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ AI Agents؟

لا تُشترط خبرة سابقة. AI Agents على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «تحديث المتجهات وحذفها»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس AI Agents هذا؟

نعم. كل درس في AI Agents يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مقارنة Pinecone وWeaviate وQdrant
  2. تصفية البيانات الوصفية للبحث الهجين
  3. تحديث المتجهات وحذفها
  4. اختيار مقاييس المسافة (cosine وL2 وdot)
← العودة إلى AI Agents