کروما ایک مضمون ڈیٹا بیس ایپلیکیشن ہے جو ہمارے کوڈ میں ایک پیکیج کی شکل میں مضمون ہے۔ کروما کا فائدہ یہ ہے کہ یہ سادگی میں ہے۔ اگر آپ کو ایل ایل ایم ایپلیکیشن تیار کرتے وقت ایل ایل ایم کی میموری میں ویکٹر ڈیٹا بیس کی ضرورت ہوتی ہے، تاہم آپ کسی الگ ویکٹر ڈیٹا بیس کو نصب نہیں کرنا چاہتے تو، کروما ایک اچھا انتخاب ہے۔ کروما لائبریری فی الحال دو زبانوں کا سپورٹ کرتی ہے: پائتھن اور جاوا اسکرپٹ۔ یہ ٹیوٹوریل بنیادی طور پر پائتھن پر مبنی ہے۔
1. کروما ڈیٹا بیس کا انسٹال کریں
pip install chromadb
نوٹ: کروما ڈیٹا بیس کی موجودہ ورژن پائتھن 3.11 کے ساتھ دوستانہ نہیں ہے۔ صرف چاہتے ہیں تو پائتھن کی ورژن گھٹا دیں۔
2. کروما کلائنٹ کو شروع کریں
import chromadb
chroma_client = chromadb.Client()
3. کلیکشن تشکیل کریں
ایک کلیکشن کروما ڈیٹا بیس میں ایک مخصوص ویکٹر ڈیٹا (دستاویزات اور دیگر سورس ڈیٹا شامل) کی فہرست کی طرح ہے۔ کلیکشن کو مندرجہ ذیل طریقے سے بنایا جاتا ہے:
collection = chroma_client.create_collection(name="tizi365")
4. ڈیٹا شامل کریں
ایک کلیکشن کا تعین کرنے کے بعد، ڈیٹا کو کلیکشن میں شامل کریں۔ کروما ہماری ڈیٹا کو محفوظ کرے گا اور بعد میں کوئی بھی سوالات کے لیے ٹیکسٹ ڈیٹا کے ویکٹر کی بنیاد پر ایک خاص ویکٹر انڈیکس بنائے گا۔
4.1. میں بنیادی اندراج ماڈل کا استعمال کرتے ہوئے ویکٹرز کا حساب کریں
collection.add(
documents=["یہ ایک دستاویز ہے", "یہ ایک اور دستاویز ہے"],
metadatas=[{"source": "میرا ماخذ"}, {"source": "میرا ماخذ"}],
ids=["id1", "id2"]
)
4.2. ڈیٹا شامل کرتے وقت ویکٹر قیمتیں ذکر کریں
collection.add(
embeddings=[[1.2, 2.3, 4.5], [6.7, 8.2, 9.2]],
documents=["یہ ایک دستاویز ہے", "یہ ایک اور دستاویز ہے"],
metadatas=[{"source": "میرا ماخذ"}, {"source": "میرا ماخذ"}],
ids=["id1", "id2"]
)
5. ڈیٹا کوئیری کریں
اب آپ مماثل ٹیکسٹ مواد کو کوئیری کر سکتے ہیں، اور کروما "n" زیادہ مماثل نتائج واپس کرے گا۔ نیچے ایک مثال دی گئی ہے جو کوئیری ٹیکسٹس کو بنیاد بنا کر مشابہ دستاویز مواد کی مماثلت کا سوال کرتی ہے:
results = collection.query(
query_texts=["یہ ایک سوال دستاویز ہے"],
n_results=2
)
کروما میں ڈیٹا پیش فرض طور پر یادگار میں محفوظ ہوتا ہے، لہذا جب پروگرام دوبارہ چلایا جاتا ہے تو ڈیٹا ہو جاتا ہے۔ البتہ، آپ چاہیں تو کروما کو ہارڈ ڈسک پر ڈیٹا محفوظ کرنے کے لیے تشکیل دے سکتے ہیں، تاکہ جب پروگرام چلایا جاتا ہے تو ڈیٹا ہارڈ ڈسک سے لوڈ ہو۔