تناسب کی نقلی دنیائی ہوجود کی ترسیل، جو کسی بھی قسم کے ڈیٹا کی نمائندگی کرتی ہے جیسے کہ مختلف وسائل حصہ بنانے کے لئے انتہائی موزوں ہوتی ہے۔ انہیں متن، تصاویر، ساتھ ہی موسیقی اور ویڈیو کی نمائندگی بھی کرسکتی ہیں۔ فیچر ویکٹر ڈیٹا حاصل کرنے کے لئے بہت سے اختیارات موجود ہیں، جن میں کھلے سورس ٹیکسٹ فیچر ماڈل یا کلوڈ سروسز سے API کال کرکے فیچر ویکٹر ڈیٹا حاصل کرنا شامل ہے۔
کروما ایپلیکیشن فیمس انتہائی مقبول فیچر ماڈل کے لائٹ ویٹ ورپر فراہم کرتا ہے، جس سے انہیں اپنی ایپلیکیشن میں آسانی سے استعمال کرنے کا مواہد ہوتا ہے۔ جب آپ کسٹم کولیکشن بناتے ہیں، تو آپ ایک فیچر ویکٹر ڈیٹا کو خود بخود حساب کرنے والا فنکشن سیٹ کرسکتے ہیں۔
نوٹ: آپ کرسکتے ہیں کہ چروما کے کپسولیٹ ہونے والے ایمبیڈنگ فنکشن کو استعمال کر کے ویکٹر کو حساب کرنے سے انکار کریں۔ آپ کسی بھی ایمبیڈنگ ماڈل کو منتخب کرکے مقدمہ فیچر ویکٹر ڈیٹا کو پیش منظر بنا سکتے ہیں۔
کسی بھی چروما سے ایمبیڈنگ فنکشن حاصل کرنے کے لئے، chromadb.utils
کا embedding_functions
ماڈیول پسندیدہ ماڈیول سے درآمد کریں۔
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 پر ماڈیل کے ناموں کی تلاش کرسکتے ہیں۔
اوپن اے ماڈل
چروما اوپن اے کی ایمبیڈنگ API کے لئے ایک مفت ورپر فراہم کرتا ہے۔ اس کے لئے اوپن اے انٹرفیس اور API کی مدد کی ضرورت ہوتی ہے۔ آپ ایک اوپن اے اکاؤنٹ رجسٹر کرکے API کی کلید حاصل کرسکتے ہیں۔
اس ایمبیڈنگ فنکشن کی وابستگی openai
پائتھن پیکیج پر ہوتی ہے، جو کہ pip install openai
کے ذریعے انسٹال کی جا سکتی ہے۔
openai_ef = embedding_functions.OpenAIEmbeddingFunction(
api_key="آپکی_API_KEY",
model_name="text-embedding-ada-002"
)
ایسے پلیٹ فارموں جیسے کہ ایزیور پر اوپن اے ایمبیڈنگ ماڈل کا استعمال کرنے کے لئے، آپ api_base
اور api_type
پیرامیٹر استعمال کرسکتے ہیں۔
openai_ef = embedding_functions.OpenAIEmbeddingFunction(
api_key="آپکی_API_KEY",
api_base="آپکا_API_بیس_پاتھ",
api_type="ایزیور",
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