LangChain میں ایمبیڈنگز کا استعمال کیسے کریں۔

Langchain My Aymby Ngz Ka Ast Mal Kys Kry



ایمبیڈنگز ٹیکسٹ سٹرنگ سے تعلق کا ایک اشاریہ ہیں اور ان کا اظہار فلوٹنگ پوائنٹ انٹیجرز کے ویکٹر (فہرست) سے ہوتا ہے۔ دو ویکٹروں کے درمیان فاصلہ اس بات کی پیمائش کرتا ہے کہ وہ کتنے قریب سے جڑے ہوئے ہیں۔ فاصلہ جتنا چھوٹا ہوگا تعلق اتنا ہی قریب ہوگا۔ LangChain ایمبیڈنگ کلاس کا مقصد OpenAI، HuggingFace، اور دیگر جیسی خدمات کو سرایت کرنے کے لیے ایک انٹرفیس کے طور پر کام کرنا ہے۔

دو طریقے، embed_query() اور embed_documents()، بیس کلاس کے ذریعے فراہم کیے گئے ہیں۔ ان میں سے پہلا ایک ہی دستاویز پر کام کرتا ہے، جبکہ دوسرا کئی دستاویزات پر کام کر سکتا ہے۔

یہ مضمون OpenAI ٹیکسٹ ایمبیڈنگ کا استعمال کرتے ہوئے LangChain میں سرایت کرنے کے عملی مظاہرے کو سمجھتا ہے۔







مثال: OpenAI ٹیکسٹ ایمبیڈنگ کا استعمال کرتے ہوئے سنگل ان پٹ ٹیکسٹ حاصل کرنا

پہلی مثال کے لیے، ہم ایک ٹیکسٹ سٹرنگ داخل کرتے ہیں اور اس کے لیے OpenAI ٹیکسٹ ایمبیڈنگ کو بازیافت کرتے ہیں۔ پروگرام ضروری لائبریریوں کو انسٹال کرنے سے شروع ہوتا ہے۔



پہلی لائبریری جس کی ہمیں اپنے پروجیکٹ میں انسٹال کرنے کی ضرورت ہے وہ ہے LangChain۔ یہ Python معیاری لائبریری کے ساتھ نہیں آتا ہے لہذا ہمیں اسے الگ سے انسٹال کرنا ہوگا۔ چونکہ langchain PyPi پر دستیاب ہے، اس لیے ہم اسے آسانی سے ٹرمینل پر pip کمانڈ کا استعمال کرتے ہوئے انسٹال کر سکتے ہیں۔ اس طرح، ہم LangChain لائبریری کو انسٹال کرنے کے لیے درج ذیل کمانڈ چلاتے ہیں۔



$pip langchain انسٹال کریں۔

ضروریات پوری ہوتے ہی لائبریری کو انسٹال کر دیا جاتا ہے۔





ہمیں اپنے پروجیکٹ میں اوپن اے آئی لائبریری کو انسٹال کرنے کی بھی ضرورت ہے تاکہ ہم اوپن اے آئی ماڈلز تک رسائی حاصل کر سکیں۔ اس لائبریری کا افتتاح pip کمانڈ لکھ کر کیا جا سکتا ہے۔

$pip انسٹال اوپنائی

اب، دونوں مطلوبہ لائبریریاں ہماری پروجیکٹ فائل میں انسٹال ہیں۔ ہمیں مطلوبہ ماڈیولز درآمد کرنے ہوں گے۔



سے langchain سرایت . اوپنائی درآمد اوپن اے آئی ایم بیڈنگز

درآمد تم

تم . تقریباً [ 'OPENAI_API_KEY' ] = 'sk-YOUR_API_KEY'

OpenAI ایمبیڈنگز حاصل کرنے کے لیے، ہمیں 'langchain.embeddings.openai' پیکیج سے OpenAIEmbeddings کلاس درآمد کرنا ہوگی۔ پھر، ہم API کلید کو ماحولیاتی متغیر کے طور پر سیٹ کرتے ہیں۔ ہمیں مختلف OpenAI ماڈلز تک رسائی کے لیے خفیہ API کلید کی ضرورت ہے۔ یہ کلید OpenAI پلیٹ فارم سے تیار کی جا سکتی ہے۔ بس سائن اپ کریں اور اپنے پروفائل کے 'خفیہ کلید دیکھیں' سیکشن سے ایک خفیہ کلید حاصل کریں۔ یہ کلید ایک مخصوص کلائنٹ کے لیے مختلف پروجیکٹس میں استعمال کی جا سکتی ہے۔

ماحولیاتی متغیرات کا استعمال API کیز کو فنکشنز میں ہارڈ کوڈنگ کرنے کے بجائے کسی خاص ماحول کے لیے ذخیرہ کرنے کے لیے کیا جاتا ہے۔ لہذا، API کلید کو ماحولیاتی متغیر کے طور پر سیٹ کرنے کے لیے، ہمیں 'os' ماڈیول درآمد کرنا ہوگا۔ os.environ() طریقہ API کلید کو ماحولیاتی متغیر کے طور پر سیٹ کرنے کے لیے استعمال کیا جاتا ہے۔ اس میں ایک نام اور ایک قدر ہے۔ ہم نے جو نام سیٹ کیا ہے وہ 'OPENAI_API_KEY' ہے اور خفیہ کلید 'ویلیو' پر سیٹ ہے۔

ماڈل = اوپن اے آئی ایم بیڈنگز ( )

input_text = 'یہ مظاہرے کے لیے ہے۔'

نتیجہ = ماڈل embed_query ( input_text )

پرنٹ کریں ( نتیجہ )

پرنٹ کریں ( صرف ( نتیجہ ) )

ہم پہلے ہی OpenAI ایمبیڈنگ ریپر کے ساتھ انٹرفیس کر چکے ہیں۔ اس کے بعد، ہم OpenAIEmbedding کلاس کے کنسٹرکٹر کو کہتے ہیں۔ OpenAI متعدد ایمبیڈنگ ماڈل فراہم کرتا ہے لیکن آپ کو ان کے لیے ادائیگی کرنی ہوگی۔ یہاں، ہم OpenAI کے ڈیفالٹ ایمبیڈنگ ماڈل کے ساتھ جاتے ہیں، یعنی ٹیکسٹ ایمبیڈنگ-اڈا-002، جو کہ مفت ہے۔ جب آپ کسی ماڈل کا نام بطور پیرامیٹر فراہم نہیں کرتے ہیں تو پہلے سے طے شدہ ماڈل استعمال کیا جاتا ہے۔

پھر، ہم اس متن کی وضاحت کرتے ہیں جس کی ایمبیڈنگ حاصل کرنی ہے۔ متن کی وضاحت کی گئی ہے 'یہ مظاہرے کے لیے ہے۔' اور اسے input_text متغیر میں اسٹور کریں۔ اس کے بعد، فراہم کردہ ٹیکسٹ کو ایمبیڈ کرنے کے لیے embed_query() طریقہ استعمال کیا جاتا ہے اور input_text جس میں پیرامیٹر کے طور پر فراہم کردہ ایمبیڈنگ کو بازیافت کرنے کے لیے ٹیکسٹ سٹرنگ ہوتی ہے کے ساتھ کہا جاتا ہے۔ بازیافت شدہ ایمبیڈنگز کو نتیجہ آبجیکٹ کو تفویض کیا گیا ہے۔

آخر میں، نتیجہ کو دیکھنے کے لیے، ہمارے پاس Python کا پرنٹ() طریقہ ہے۔ ہمیں صرف اس آبجیکٹ کو پاس کرنا ہوگا جو اس ویلیو کو اسٹور کرتا ہے جسے ہم پرنٹ() طریقہ میں ظاہر کرنا چاہتے ہیں۔ لہذا، ہم اس فنکشن کو دو بار پکارتے ہیں۔ پہلے تیرتے نمبروں کی فہرست ظاہر کرنے کے لیے اور دوسرا اس کے ساتھ len() طریقہ استعمال کرتے ہوئے ان اقدار کی لمبائی پرنٹ کرنے کے لیے۔

فلوٹنگ ویلیوز کی فہرست ان اقدار کی لمبائی کے ساتھ درج ذیل سنیپ شاٹ میں دیکھی جا سکتی ہے۔

مثال: OpenAI ٹیکسٹ ایمبیڈنگ کا استعمال کرتے ہوئے ایک سے زیادہ ان پٹ ٹیکسٹ/دستاویز حاصل کرنا

ایک ان پٹ ٹیکسٹ کے لیے ایمبیڈنگ حاصل کرنے کے علاوہ، ہم اسے متعدد ان پٹ سٹرنگز کے لیے بھی بازیافت کر سکتے ہیں۔ ہم اسے اس مثال میں نافذ کرتے ہیں۔

ہم نے پچھلی مثال میں لائبریریاں پہلے ہی انسٹال کر دی ہیں۔ ایک اور لائبریری جسے ہمیں یہاں انسٹال کرنے کی ضرورت ہے وہ ہے Python کی ٹکٹوکن لائبریری۔ اسے انسٹال کرنے کے لیے ٹرمینل پر کمانڈ لکھیں:

$pip ٹکٹ ٹوکن انسٹال کریں۔

ٹک ٹوکن پیکیج ایک بائٹ پیئر انکوڈنگ ٹوکنائزر ہے۔ یہ OpenAI ماڈلز کے ساتھ استعمال ہوتا ہے اور متن کو ٹوکن میں توڑ دیتا ہے۔ یہ اس لیے استعمال کیا جاتا ہے کیونکہ فراہم کردہ تار بعض اوقات مخصوص OpenAI ماڈل کے لیے تھوڑی لمبی ہوتی ہیں۔ لہذا، یہ متن کو تقسیم کرتا ہے اور انہیں ٹوکن میں انکوڈ کرتا ہے۔ اب، آئیے مرکزی منصوبے پر کام کرتے ہیں۔

سے langchain سرایت . اوپنائی درآمد اوپن اے آئی ایم بیڈنگز

ماڈل = اوپن اے آئی ایم بیڈنگز ( openai_api_key = 'sk-YOUR_API_KEY'

تار = ['
یہ ہے کے لیے مظاہرہ '،' یہ تار ہے بھی کے لیے مظاہرہ '،' یہ ہے ایک اور ڈیمو تار . '،' یہ والا ہے آخری تار . '

نتیجہ = model.embed_documents(strings)

پرنٹ (نتیجہ)

پرنٹ (لین (نتیجہ))

OpenAIEmbeddings کلاس 'langchain.embeddings.openai' پیکیج سے درآمد کی گئی ہے۔ پچھلی مثال میں، ہم نے API کلید کو ماحولیاتی متغیر کے طور پر سیٹ کیا ہے۔ لیکن اس کے لیے، ہم اسے براہ راست کنسٹرکٹر کو دیتے ہیں۔ لہذا، ہمیں یہاں 'os' ماڈیول درآمد کرنے کی ضرورت نہیں ہے۔

OpenAI ماڈل جو کہ OpenAIEmbeddings ہے کو استعمال کرنے کے بعد، ہم اس میں خفیہ API کلید بھیج دیتے ہیں۔ اگلی سطر میں ٹیکسٹ سٹرنگز کی وضاحت کی گئی ہے۔ یہاں، ہم آبجیکٹ سٹرنگز میں چار ٹیکسٹ سٹرنگز کو اسٹور کرتے ہیں۔ یہ تار ہیں 'یہ مظاہرے کے لیے ہے'، 'یہ سٹرنگ بھی مظاہرے کے لیے ہے'، 'یہ ایک اور ڈیمو سٹرنگ ہے'، اور 'یہ آخری تار ہے۔'

آپ ہر ایک کو کوما سے الگ کر کے متعدد تاروں کی وضاحت کر سکتے ہیں۔ پچھلی مثال میں، embed_text() طریقہ کہا جاتا ہے لیکن ہم اسے یہاں استعمال نہیں کر سکتے کیونکہ یہ صرف ایک ٹیکسٹ سٹرنگ کے لیے کام کرتا ہے۔ متعدد تاروں کو سرایت کرنے کے لیے، ہمارے پاس جو طریقہ ہے وہ ہے embed_document()۔ لہذا، ہم اسے ایک دلیل کے طور پر مخصوص OpenAI ماڈل اور ٹیکسٹ سٹرنگ کے ساتھ کہتے ہیں۔ آؤٹ پٹ کو نتیجہ آبجیکٹ میں رکھا جاتا ہے۔ آخر میں، آؤٹ پٹ کو ظاہر کرنے کے لیے، Python print() طریقہ استعمال کیا جاتا ہے اس کے پیرامیٹر کے طور پر آبجیکٹ نتیجہ کے ساتھ۔ اس کے علاوہ، ہم ان تیرتی قدروں کی لمبائی دیکھنا چاہتے ہیں۔ اس طرح، ہم پرنٹ() طریقہ کے اندر len() طریقہ استعمال کرتے ہیں۔

بازیافت شدہ آؤٹ پٹ درج ذیل تصویر میں فراہم کی گئی ہے:

نتیجہ

اس پوسٹ میں LangChain میں سرایت کرنے کے تصور پر تبادلہ خیال کیا گیا ہے۔ ہم نے سیکھا کہ سرایت کرنا کیا ہے اور یہ کیسے کام کرتا ہے۔ ٹیکسٹ سٹرنگز کو ایمبیڈ کرنے کا عملی نفاذ یہاں دکھایا گیا ہے۔ ہم نے دو مثالیں پیش کیں۔ پہلی مثال نے ایک ٹیکسٹ سٹرنگ کی ایمبیڈنگ کو بازیافت کرنے پر کام کیا اور دوسری مثال میں یہ سمجھا گیا کہ اوپن اے آئی ایمبیڈنگ ماڈل کا استعمال کرتے ہوئے متعدد ان پٹ سٹرنگز کی ایمبیڈنگ کیسے حاصل کی جائے۔