Chroma هي قاعدة بيانات مفتوحة المصدر لتطبيقات الذكاء الاصطناعي، مصممة خصيصًا لتخزين واسترجاع تضمينات المتجهات (embeddings). إنها قاعدة بيانات تضمينات (تُعرف أيضًا بقاعدة بيانات المتجهات) يمكنها العثور على البيانات من خلال البحث عن أقرب جار بدلاً من البحث عن السلاسل الفرعية في قواعد البيانات التقليدية.
عنوان GitHub: https://github.com/chroma-core/chroma
تدمج Chroma وظائف متعددة، بما في ذلك التضمين، والبحث عن المتجهات، وتخزين المستندات، والبحث عن النص الكامل، وتصفية البيانات الوصفية، والاسترجاع متعدد الوسائط، وكل ذلك في منصة واحدة.
بشكل افتراضي، تستخدم Chroma محولات الجملة (Sentence Transformers) للتضمين، ولكن يمكنها أيضًا استخدام تضمينات OpenAI و Cohere (متعددة اللغات) ونماذج تضمين أخرى.
تدعم أوضاع نشر متعددة، بما في ذلك وضع الذاكرة ووضع تخزين الملفات ووضع الخادم.
تدعم خلفيات تخزين مختلفة، مثل DuckDB للاستخدام المحلي و ClickHouse لتوسيع التطبيقات الكبيرة.
في أنظمة RAG، يتم أولاً تضمين المستندات وتخزينها في مجموعة ChromaDB، ثم يتم تشغيل الاستعلامات من خلال ChromaDB للعثور على المحتوى ذي الصلة دلاليًا.
في البحث الدلالي، يمكن لـ ChromaDB العثور على نقاط البيانات المتشابهة بناءً على تضمينات المتجهات، وهو أمر مفيد جدًا لتحديد المستندات أو الصور أو أنواع البيانات الأخرى القابلة للمقارنة من خلال تحليل المحتوى أو المعنى.
من خلال حساب المسافة في فضاء المتجهات، يمكن العثور بسرعة على المحتوى الأكثر تشابهًا مع الاستعلام.
pip install chromadb
import chromadb
client = chromadb.Client()
collection = client.create_collection("my_collection")
collection.add(
documents=["This is document 1", "This is document 2"],
metadatas=[{"source": "doc1"}, {"source": "doc2"}],
ids=["id1", "id2"]
)
results = collection.query(
query_texts=["search query"],
n_results=2
)
تم دمج Chroma بعمق مع LangChain، ويمكن استخدامه كمكون تخزين متجه.
تم دمج Chroma مع وظائف التضمين الخاصة بـ OpenAI، مما يدعم تخزين وتصفية البيانات الوصفية التعسفية.
Chroma هو مكون أساسي لا غنى عنه في تطوير تطبيقات الذكاء الاصطناعي الحديثة، وهو مناسب بشكل خاص لسيناريوهات التطبيقات التي تتطلب البحث الدلالي وأنظمة RAG ومطابقة تشابه المتجهات. إن واجهة برمجة التطبيقات (API) البسيطة والوظائف القوية والتكامل الجيد مع النظام البيئي تجعله الحل المفضل لقاعدة بيانات المتجهات للمطورين.