এমবেডিং, যা ফিচার ভেক্টর হিসেবেও পরিচিত, কোনও ধরনের ডেটা বাস্তবায়িত বুদ্ধিমত্তা দেখিয়ে কৃত্রিম বুদ্ধিমত্তার প্রকার, বিভিন্ন AI টুল এবং ব্যাখ্যার সাথে উপযুক্ত করে। এগুলি পাঠ্য, চিত্র, ছবি, অডিও, এবং ভিডিও দেখিয়ে পাওয়া যায়। ফিচার ভেক্টর ডেটা তৈরি করার জন্য অনেক বিকল্প আছে, যেমনঃ ওয়াল করা টেক্সট এম্বেডিং মডেল বা ক্লাউড সেবাস থেকে API কল করা।

ক্রোমা, জনপ্রিয় এম্বেডিং মডেলগুলির জন্য একটি হালকা মোডিউল সরবরাহ করে, যা আপনার অ্যাপ্লিকেশনে এগুলি ব্যবহার করা সহজ করে। একটি ক্রোমা কালেকশন তৈরি করার সময়, আপনি একটি এম্বেডিং ফাংশন সেট করতে পারেন যা স্বয়ংক্রিয়ভাবে পাঠ্য ডেটা সংরক্ষণ করার সময় পাঠ্য ভেক্টর গণনা করবে।

লক্ষ্য করুন: আপনি চাইলে ক্রোমার এম্বেডিং ফাংশন ব্যবহার করে ভেক্টর গণনা করতে অসংযোজিত এম্বেডিং ফাংশন ব্যবহার করতে পারেন। প্রিয় এম্বেডিং মডেল নির্বাচন করতে পারেন এবং ভেক্টর ডেটা পূর্বে কম্পিউট করতে পারেন।

ক্রোমা থেকে এম্বেডিং ফাংশন পেতে, chromadb.utils থেকে embedding_functions মডিউল ইমপোর্ট করুন।

from chromadb.utils import embedding_functions

ডিফল্ট মডেল: all-MiniLM-L6-v2

ডিফল্ট হিসেবে, ক্রোমা all-MiniLM-L6-v2 মডেলটি যথাক্রমে বাক্য এবং ডকুমেন্ট ভেক্টর গণনা করার জন্য Sentence Transformers থেকে ব্যবহার করে। এই এম্বেডিং মডেলের কার্যকারিতা স্থানীয় মেশিনে হালনাগাদ করতে এবং মডেল ফাইল ডাউনলোড করতে প্রয়োজন হয় (যা স্বয়ংক্রিয়ভাবে করা হয়)।

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-র এম্বেডিং API এর জন্য একটি সুবিধাজনক ওয়্রাপার সরবরাহ করে। এটা ওপেনআই ইন্টারফেস এবং একটি API কী কল করা প্রয়োজন করে। আপনি একটি ওপেনআই অ্যাকাউন্টের নিবন্ধন করে একটি API কী পেতে পারেন।

এই এম্বেডিং ফাংশনটির উপর নির্ভর করে openai Python প্যাকেজে, যা pip install openai ব্যবহার করে ইনস্টল করা যেতে পারে।

openai_ef = embedding_functions.OpenAIEmbeddingFunction(
                api_key="আপনার_API_চাবি",
                model_name="পাঠ্য-এম্বেডিং-আদা-002"
            )

আপনি যেসব api_base এবং api_type প্যারামিটার ব্যবহার করে ওপেনএআই এম্বেডিং মডেলটি আজুরে, আমি ব্যবহার করুন:

openai_ef = embedding_functions.OpenAIEmbeddingFunction(
                api_key="আপনার_API_চাবি",
                api_base="আপনার_API_BASE_পাথ",
                api_type="অ্যাজুর",
                model_name="পাঠ্য-এম্বেডিং-আদা-002"
            )

কাস্টম এম্বেডিং ফাংশন

আপনি চাইলে, EmbeddingFunction বেস ক্লাসের মেথডগুলি সম্পাদন করে, ক্রোমা সাথে কাজ করার জন্য আপনার নিজস্ব এম্বেডিং ফাংশন তৈরি করতে পারেন।

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

class MyEmbeddingFunction(EmbeddingFunction):
    def __call__(self, texts: Documents) -> Embeddings:
        return এম্বেডিং