Chroma هو تطبيق قاعدة بيانات مدمج يُضمَّن في كودنا بشكل حزمة. ميزة Chroma هي بساطته. إذا كنت بحاجة إلى قاعدة بيانات نصية لتنفيذ ذاكرة LLM في تطوير تطبيقات LLM، فإنه يدعم البحث بلغة تشابه النصوص ولا ترغب في تثبيت قاعدة بيانات نصية مستقلة، فإن Chroma هو خيار جيد. حاليًا، تدعم مكتبة Chroma لغتين: Python وJavaScript. تعتمد هذه الدورة التعليمية بشكل رئيسي على Python.
1. تثبيت Chromadb
pip install chromadb
ملاحظة: الإصدار الحالي لـ chromadb ليس ودودًا مع Python 3.11. يُوصى بتخفيض إصدار Python.
2. تهيئة عميل Chroma
import chromadb
chroma_client = chromadb.Client()
3. إنشاء مجموعة
المجموعة تُشبه الجدول في قاعدة بيانات Chroma، حيث يتم تخزين البيانات النصية (بما في ذلك المستندات وبيانات المصدر الأخرى). يتم إنشاء مجموعة كالتالي:
collection = chroma_client.create_collection(name="tizi365")
4. إضافة بيانات
بعد تعريف مجموعة، يتم إضافة البيانات إلى المجموعة. ستقوم Chroma بتخزين بياناتنا وإنشاء فهرس نصي خاص بناءً على نص البيانات للاستعلام بسهولة في وقت لاحق.
4.1. حساب النسق باستخدام النموذج المضمن المدمج
collection.add(
documents=["هذا مستند", "هذا مستند آخر"],
metadatas=[{"source": "مصدري"}, {"source": "مصدري"}],
ids=["id1", "id2"]
)
4.2. تحديد قيم النسق عند إضافة البيانات
collection.add(
embeddings=[[1.2, 2.3, 4.5], [6.7, 8.2, 9.2]],
documents=["هذا مستند", "هذا مستند آخر"],
metadatas=[{"source": "مصدري"}, {"source": "مصدري"}],
ids=["id1", "id2"]
)
5. استعلام البيانات
الآن يمكنك استعلام محتوى النص المماثل، وسيقوم Chroma بإرجاع "n" أكثر النتائج تشابهًا. فيما يلي مثال على استعلام محتوى المستند المشابه بناءً على معلمة الاستعلام query_texts:
results = collection.query(
query_texts=["هذا مستند استعلام"],
n_results=2
)
بشكل افتراضي، يتم تخزين البيانات في Chroma في الذاكرة، لذا تفقد البيانات عند إعادة تشغيل البرنامج. بالطبع، يمكنك ضبط Chroma للتحافظ على البيانات إلى القرص الصلب، لذا سيقوم البرنامج بتحميل البيانات من القرص عند بدء التشغيل.