تعبیرها، که به عنوان بردار ویژگی نیز شناخته می‌شوند، روش اصلی است که هوش مصنوعی هر نوع داده را نمایش می‌دهد و این امر آن‌ها را برای استفاده با ابزارها و الگوریتم‌های هوش مصنوعی مختلف مناسب می‌سازد. آن‌ها می‌توانند متن، تصاویر، و حتی صدا و ویدیو را نمایش دهند. برای تولید داده بردار ویژگی، گزینه‌های زیادی وجود دارد که شامل استفاده از مدل‌های تعبیر متن منبع باز یا فراخوانی رابط‌های برنامه نویسی از خدمات ابری می‌شود.

کروما یک بسته پوشش سبک برای مدل‌های تعبیر محبوب است که استفاده از آن‌ها در برنامه‌های شما را آسان می‌کند. هنگام ایجاد مجموعه کروما، می‌توانید یک تابع تعبیر که به‌طور خودکار بردارهای متن را هنگام ذخیره و به‌روزرسانی داده‌های متنی محاسبه می‌کند، تنظیم کنید.

توجه: می‌توانید انتخاب کنید که از تابع تعبیر پوشش چروما برای محاسبه بردارها استفاده نکنید. می‌توانید هر مدل تعبیر را برای پیش‌پردازش داده‌های بردار متنی پیش‌از زمان انتخاب کنید.

برای دریافت تابع تعبیر از کروما، ماژول embedding_functions از chromadb.utils را وارد کنید.

from chromadb.utils import embedding_functions

مدل پیش‌فرض: all-MiniLM-L6-v2

به‌صورت پیش‌فرض، چروما از مدل all-MiniLM-L6-v2 از موتور تبدیل جملات برای محاسبه بردارها استفاده می‌کند. این مدل تعبیر می‌تواند بردارهای جمله و سند را ایجاد کند. این تابعیت مدل تعبیر این مدل در دستگاه محلی اجرا می‌شود و نیازمند بارگیری فایل‌های مدل است (که به‌طور خودکار انجام می‌شود).

default_ef = embedding_functions.DefaultEmbeddingFunction()

مدل‌های تبدیل‌کننده

چروما همچنین می‌تواند از هر مدل تبدیل جملات برای محاسبه بردارها استفاده کند.

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

می‌توانید یک پارامتر اختیاری model_name را انتقال دهید تا مدل تبدیل‌کننده جملاتی که می‌خواهید استفاده کنید را انتخاب کنید. به‌صورت پیش‌فرض، چروما از all-MiniLM-L6-v2 استفاده می‌کند. می‌توانید نام‌های مدل را در Hugging Face جستجو کنید.

مدل OpenAI

چروما یک بسته پوشش مناسب برای رابط تعبیر OpenAI فراهم می‌کند. این نیازمند فراخوانی رابط OpenAI و یک کلید API است. می‌توانید با ثبت نام در حساب OpenAI، یک کلید API را بدست آورید.

این تابع تعبیر وابسته به بسته 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"
            )

تابع تعبیر سفارشی

می‌توانید با پیاده‌سازی ساده متدهای EmbeddingFunction کلاس پایه، تابع تعبیر سفارشی خود را برای کار با چروما ایجاد کنید.

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

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