تشکیلی بنیاد ہے جو کسی بھی قسم کے ڈیٹا کو ذہانتی ہوشیاری سے ظاہر کرنے کے لئے، اور بہت سے الگورتھم ڈیٹا ظاہر کرنے کے لئے خصوصی ویکٹر استعمال کرتے ہیں۔ یہ کسی بھی قسم کے مواد جیسے متن، تصاویر، اور آڈیو اور ویڈیو کو ظاہر کر سکتے ہیں۔ ویکٹر حاصل کرنے کے لئے کئی طریقے ہیں، جن میں کھلے سورس ویکٹر ماڈلز یا کچھ کلوڈ سروس کی API شامل ہیں، جیسے کہ openai API۔
کروما ایک مشہور ویکٹر ماڈل کے لئے ایک ہلکا پیشہ ورانہ ورپر فراہم کرتا ہے، جو آپ کو اسے اپنے اطلاقات میں استعمال کرنے کے لئے آسانی فراہم کرتا ہے۔
ٹرانسفارمر.js
کروما آپ کے مشین پر مقامی طور پر ویکٹر ماڈلز کو سچ کرنے کے لئے ٹرانسفارمر.js کا استعمال کرتا ہوا فیچر ویکٹروں کو پیدا کرنے کے لئے استعمال کرتا ہے۔ ٹرانسفارمرز نے "Xenova/all-MiniLM-L6-v2" ماڈل کا استعمال کیا ہے۔ اسے چلانے کے لئے، کمانڈ لائن میں npm install @xenova/transformers
چلائیں۔
const {ChromaClient} = require('chromadb');
const client = new ChromaClient({path: "http://localhost:8000"});
const {TransformersEmbeddingFunction} = require('chromadb');
const embedder = new TransformersEmbeddingFunction();
(async () => {
// embeddingFunction پیرامیٹر کے ذریعہ استعمال کرنے کے لئے سپیسیفائی کریں
const collection = await client.getOrCreateCollection({name: "name", embeddingFunction: embedder})
// ویکٹرز کو مخصوص نہیں کرتے ہوئے ڈیٹا شامل کریں؛ add فنکشن ویکٹرز حساب کرنے کے لئے embeddingFunction فنکشن کو بلاوگا
await collection.add({
ids: ["id1", "id2", "id3"],
metadatas: [{"chapter": "3", "verse": "16"}, {"chapter": "3", "verse": "5"}, {"chapter": "29", "verse": "11"}],
documents: ["lorem ipsum...", "doc2", "doc3"],
})
// دیتا کو پوچھیں، جو ساہم بھی کریں گے embeddingFunction فنکشن سے سوالیے متنز کے ویکٹرز کا حساب کرنے کے لئے، اور پھر ممکنہ ڈیٹا تلاش کرنے کے لئے
const results = await collection.query({
nResults: 2,
queryTexts: ["lorem ipsum"]
})
})();
اوپن اے
کروما اوپن اے کے ویکٹر ماڈل API کے لئے ایک مفت ورپر مہیا کرتا ہے۔ آپ کو اوپن اے کی API استعمال کرنے کے لئے ایک API کی ضرورت ہوگی، جو آپ OpenAI کا اکاؤنٹ رجسٹر کرکے حاصل کرسکتے ہیں۔
const {OpenAIEmbeddingFunction} = require('chromadb');
const embedder = new OpenAIEmbeddingFunction({openai_api_key: "apiKey"})
// براہ کرم استعمال کریں
const embeddings = embedder.generate(["document1","document2"])
// embeddingFunction پیرامیٹر استعمال کرتے ہوئے سپیسیفائی کریں
const collection = await client.createCollection({name: "name", embeddingFunction: embedder})
const collection = await client.getCollection({name: "name", embeddingFunction: embedder})
ممکن ہے کہ آپ اختیاری طور پر model_name پیرامیٹر کو منتخب کرنا پڑ سکتا ہے تاکہ آپ ویکٹر ماڈل کا استعمال کریں۔ چروما بطور پیش فرض text-embedding-ada-002 کا استعمال کرتا ہے۔
تخصیصی ویکٹر ماڈلز
اگر آپ دوسرے ویکٹر ماڈلز کا استعمال کرتے ہیں، تو آپ EmbeddingFunction بیس کلاس کو انضمام کرسکتے ہیں اور اپنے منتخب کردہ ماڈل کو ویکٹروں کو تشکیل دینے کے لئے بلا سکتے ہیں۔
محتویات کی ٹریکس میں سپیسیفائی کرنا ضروری نہیں ہیں، کیونکہ آپ اپنے اندرونی ویکٹر ماڈل کا استعمال کر کے پہلے سے ہی ویکٹروں کو پیش سے حساب کر سکتے ہیں اور پھر چروما ڈیٹا کو پڑھنے اور لکھنے کے لئے ان ویکٹرز کا استعمال کرسکتے ہیں۔
class MyEmbeddingFunction {
private api_key: string;
constructor(api_key: string) {
this.api_key = api_key;
}
public async generate(texts: string[]): Promise<number[][]> {
// اپنے منتخب کردہ ماڈل کو ویکٹروں کو حساب کرنے کے لئے کال کریں
return embeddings;
}
}