تعتبر تضمينات، المعروفة أيضًا باسم متجهات السمات، الطريقة الأساسية التي يمثل بها الذكاء الاصطناعي أي نوع من البيانات، مما يجعلها مناسبة تمامًا للاستخدام مع مختلف أدوات وخوارزميات الذكاء الاصطناعي. يمكن أن تمثل النصوص والصور، وكذلك الصوتيات ومقاطع الفيديو. وهناك العديد من الخيارات لتوليد بيانات متجهات السمات، بما في ذلك استخدام نماذج تضمين النصوص مفتوحة المصدر أو استدعاء واجهات برمجة التطبيقات (APIs) من خدمات السحابة.

توفر Chroma غلافًا برمجيًا خفيفًا لنماذج التضمين الشهيرة، مما يجعل من السهل استخدامها في تطبيقاتك. عند إنشاء مجموعة Chroma، يمكنك تعيين وظيفة تضمين ستقوم تلقائيًا بحساب متجهات النصوص عند حفظ البيانات النصية وتحديثها.

ملاحظة: يمكنك أيضًا اختيار عدم استخدام وظيفة التضمين المغلقة في Chroma لحساب متجهات. يمكنك اختيار أي نموذج تضمين لحساب مسبق لبيانات متجهات النصوص.

للحصول على وظيفة التضمين من Chroma، قم بإدخال وحدة embedding_functions من chromadb.utils.

from chromadb.utils import embedding_functions

النموذج الافتراضي: all-MiniLM-L6-v2

بشكل افتراضي، يستخدم Chroma نموذج all-MiniLM-L6-v2 من Sentence Transformers لحساب المتجهات. يمكن لهذا النموذج إنشاء متجهات للجمل والمستندات. تقوم وظائف هذا النموذج بالتشغيل على الجهاز المحلي وتتطلب تنزيل ملفات النموذج (وهو ما يتم بشكل تلقائي).

default_ef = embedding_functions.DefaultEmbeddingFunction()

نموذج Transformers

يمكن أيضًا لـ Chroma استخدام أي نموذج Sentence Transformers لحساب المتجهات.

sentence_transformer_ef = embedding_functions.SentenceTransformerEmbeddingFunction(model_name="all-MiniLM-L6-v2")

يمكنك تمرير معلمة اختيارية model_name لاختيار نموذج Sentence Transformers الذي ترغب في استخدامه. بشكل افتراضي، يستخدم Chroma all-MiniLM-L6-v2. يمكنك البحث عن أسماء النماذج على Hugging Face.

نموذج OpenAI

يوفر Chroma غلافًا ملائمًا لواجهة برمجة تطبيقات تضمين OpenAI. يتطلب ذلك استدعاء واجهة OpenAI ومفتاح API. يمكنك الحصول على مفتاح API من خلال التسجيل في حساب OpenAI.

تعتمد هذه الوظيفة التضمينية على حزمة openai Python، التي يمكن تثبيتها باستخدام pip install openai.

openai_ef = embedding_functions.OpenAIEmbeddingFunction(
                api_key="YOUR_API_KEY",
                model_name="text-embedding-ada-002"
            )

لاستخدام نموذج التضمين OpenAI على منصات مثل Azure، يمكنك استخدام معلمات api_base وapi_type:

openai_ef = embedding_functions.OpenAIEmbeddingFunction(
                api_key="YOUR_API_KEY",
                api_base="YOUR_API_BASE_PATH",
                api_type="azure",
                model_name="text-embedding-ada-002"
            )

وظيفة التضمين المخصصة

يمكنك إنشاء وظيفة التضمين الخاصة بك للعمل مع Chroma ببساطة من خلال تنفيذ أساليب فئة EmbeddingFunction الأساسية.

from chromadb.api.types import Documents, EmbeddingFunction, Embeddings

class MyEmbeddingFunction(EmbeddingFunction):
    def __call__(self, texts: Documents) -> Embeddings:
        return embeddings