LangChain میں پیرنٹ ڈاکومنٹ ریٹریور کا استعمال کیسے کریں؟

Langchain My Pyrn Akwmn Ry Rywr Ka Ast Mal Kys Kry



LangChain فریم ورک ڈویلپرز کو بڑی زبان کے ماڈل بنانے کے قابل بناتا ہے جو فطری زبان میں متن کو سمجھ اور تخلیق کر سکتے ہیں۔ LangChain ماڈلز کو ڈیٹا کی ایک بڑی مقدار پر تربیت دی جاتی ہے تاکہ ماڈل ویکٹر اسٹورز میں ڈیٹا کو ذخیرہ کرکے زبان کو سمجھ سکے۔ یہ صارف کو ریٹریور بنانے کے قابل بھی بناتا ہے جو ماڈل کے لیے ذخیرہ کردہ تمام ڈیٹا کے ساتھ ڈیٹا بیس یا ویکٹر اسٹورز سے ڈیٹا نکال سکتا ہے۔

یہ پوسٹ LangChain میں پیرنٹ دستاویز بازیافت کرنے کے عمل کو ظاہر کرے گی۔

LangChain میں پیرنٹ ڈاکومنٹ ریٹریور کا استعمال کیسے کریں؟

LangChain میں پیرنٹ ڈاکومنٹ ریٹریور کو دستاویزات کو چھوٹے ٹکڑوں میں تقسیم کر کے استعمال کیا جا سکتا ہے تاکہ ایمبیڈنگ کے لمحات میں وہ اپنے معنی سے محروم نہ ہوں۔ پیرنٹ دستاویز کو پوری دستاویز یا بڑا حصہ کہا جا سکتا ہے جس سے چھوٹے ٹکڑوں کو نکالا جاتا ہے۔







LangChain میں پیرنٹ دستاویز بازیافت کرنے کا طریقہ سیکھنے کے لیے، بس اس گائیڈ کو دیکھیں:



مرحلہ 1: ماڈیولز انسٹال کریں۔



سب سے پہلے، pip کمانڈ کا استعمال کرتے ہوئے LangChain فریم ورک کو انسٹال کرکے پیرنٹ ڈاکومنٹ ریٹریور کا استعمال شروع کریں:





pip انسٹال langchain

دستاویز کی سرایت کو محفوظ کرنے اور اس سے ڈیٹا بازیافت کرنے کے لیے کروما ڈیٹا بیس ماڈیول انسٹال کریں:



pip chromadb انسٹال کریں۔

ٹک ٹوکن انسٹال کرنے کے لیے جو ایک ٹوکنائزر ہے جو چھوٹے چھوٹے ٹکڑے بنا کر دستاویز کے ٹوکن حاصل کرتا ہے:

pip install tiktoken

اس کی انحصار اور لائبریریوں کو حاصل کرنے کے لیے ازگر کی نوٹ بک پر درج ذیل کمانڈ کو عمل میں لا کر OpenAI ماڈیول حاصل کریں۔

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

مرحلہ 2: سیٹ اپ ماحول اور ڈیٹا اپ لوڈ کریں۔

اگلا مرحلہ ہے۔ ماحول قائم کریں OpenAI اکاؤنٹ سے API کلید کا استعمال کرتے ہوئے:

درآمد تم
درآمد گیٹ پاس

تم . تقریباً [ 'OPENAI_API_KEY' ] = گیٹ پاس . گیٹ پاس ( 'اوپن اے آئی API کلید:' )

اب، فائلز لائبریری کو درآمد کرنے کے بعد مقامی سسٹم سے دستاویزات اپ لوڈ کریں اور پھر upload() طریقہ کو کال کریں:

سے گوگل ET رحمہ اللہ تعالی درآمد فائلوں
اپ لوڈ = فائلوں. اپ لوڈ کریں ( )

مرحلہ 3: لائبریریاں درآمد کریں۔

اگلے مرحلے میں LangChain فریم ورک کا استعمال کرتے ہوئے پیرنٹ دستاویز بازیافت کرنے والوں کو استعمال کرنے کے لیے مطلوبہ لائبریریوں کو درآمد کرنے کا کوڈ شامل ہے:

سے langchain بازیافت کرنے والے درآمد Parent DocumentRetriever
سے langchain ویکٹر اسٹورز درآمد کروما
سے langchain سرایت درآمد اوپن اے آئی ایم بیڈنگز
سے langchain text_splitter درآمد تکراری کریکٹر ٹیکسٹ اسپلٹر
سے langchain ذخیرہ درآمد ان میموری اسٹور
سے langchain دستاویز_لوڈرز درآمد ٹیکسٹ لوڈر

فائلوں کے راستے کے ساتھ ٹیکسٹ لوڈر () طریقوں کا استعمال کرتے ہوئے بازیافت کو بنانے کے لئے دستاویز کو لوڈ کریں:

لوڈرز = [
ٹیکسٹ لوڈر ( 'Data.txt' ) ,
ٹیکسٹ لوڈر ( 'state_of_the_union.txt' ) ,
]
دستاویزات = [ ]
کے لیے l میں لوڈرز:

مرحلہ 4: مکمل دستاویزات کی بازیافت

ایک بار جب دستاویزات/فائلیں ماڈل پر لوڈ ہو جائیں، تو بس دستاویزات کی ایمبیڈنگز بنائیں، اور انہیں ویکٹر اسٹورز میں اسٹور کریں:

بچہ_تقسیم کرنے والا = تکراری کریکٹر ٹیکسٹ اسپلٹر ( chunk_size = 400 )

ویکٹر اسٹور = کروما (
مجموعہ_نام = 'مکمل_دستاویزات' ,
embedding_function = اوپن اے آئی ایم بیڈنگز ( )
)

اسٹور = ان میموری اسٹور ( )
بازیافت کرنے والا = Parent DocumentRetriever (
ویکٹر اسٹور = ویکٹر اسٹور ,
ڈاکٹر کی دکان = اسٹور ,
بچہ_تقسیم کرنے والا = بچہ_تقسیم کرنے والا ,
)

اب، دستاویزات کو بازیافت کرنے کے لیے add_documents() طریقہ کار کو کال کریں:

بازیافت کرنے والا دستاویزات شامل کریں۔ ( دستاویزات , آئی ڈی = کوئی نہیں۔ )

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

فہرست ( اسٹور yield_keys ( ) )

دستاویزات کی سرایت حاصل کرنے کے بعد، دستاویز سے چھوٹے حصوں کو حاصل کرنے کے لیے استفسار کے ساتھ similarity_search() طریقہ کو کال کریں:

ذیلی_دستاویزات = ویکٹر اسٹور مماثلت_تلاش ( 'انصاف برئیر' )

استفسار کی بنیاد پر پچھلے کوڈ میں کہے گئے ٹکڑوں کو ظاہر کرنے کے لیے print() طریقہ کو کال کریں:

پرنٹ کریں ( ذیلی_دستاویزات [ 0 ] . صفحہ_مواد )

درج ذیل کوڈ کا استعمال کرتے ہوئے ڈیٹا بیس میں ذخیرہ شدہ تمام ٹوکن حاصل کرنے کے لیے مکمل retriever() فنکشن کو کال کریں۔

retrieved_docs = بازیافت کرنے والا حاصل_متعلقہ_دستاویزات ( 'انصاف برئیر' )

تمام دستاویزات کو پرنٹ کرنے میں بہت زیادہ وقت اور پروسیسنگ کی طاقت لگے گی، لہذا پہلے سے حاصل شدہ دستاویزات کی لمبائی حاصل کریں:

صرف ( retrieved_docs [ 0 ] . صفحہ_مواد )

مرحلہ 5: بڑے ٹکڑوں کو بازیافت کرنا

یہ قدم پوری دستاویز نہیں لے گا۔ تاہم، یہ دستاویز سے ایک بڑا چپمنک لے گا اور اس سے ایک چھوٹا حصہ بازیافت کرے گا:

parent_splitter = تکراری کریکٹر ٹیکسٹ اسپلٹر ( chunk_size = 2000 )
بچہ_تقسیم کرنے والا = تکراری کریکٹر ٹیکسٹ اسپلٹر ( chunk_size = 400 )
ویکٹر اسٹور = کروما ( مجموعہ_نام = 'تقسیم_والدین' , embedding_function = اوپن اے آئی ایم بیڈنگز ( ) )
اسٹور = ان میموری اسٹور ( )

' ویکٹر اسٹور متغیر:

بازیافت کرنے والا = Parent DocumentRetriever (
ویکٹر اسٹور = ویکٹر اسٹور ,
ڈاکٹر کی دکان = اسٹور ,
بچہ_تقسیم کرنے والا = بچہ_تقسیم کرنے والا ,
parent_splitter = parent_splitter ,
)

کا استعمال کرتے ہوئے ویکٹر اسٹورز سے بڑے حصے حاصل کرنے کے لیے بازیافت کرنے والے کو کال کریں۔ دستاویزات فنکشن کی دلیل میں متغیر:

بازیافت کرنے والا دستاویزات شامل کریں۔ ( دستاویزات )

سے ان دستاویزات کی لمبائی حاصل کریں۔ دستاویزات مندرجہ ذیل کمانڈ کے ذریعے متغیر:

صرف ( فہرست ( اسٹور yield_keys ( ) ) )

بس ایک بڑے سے چھوٹا حصہ حاصل کریں جیسا کہ پچھلا اسکرین شاٹ ظاہر کرتا ہے کہ ویکٹر اسٹور میں 23 دستاویزات محفوظ ہیں۔ استفسار کا استعمال کرتے ہوئے متعلقہ ڈیٹا حاصل کرنے کے لیے استعمال کیا جاتا ہے۔ مماثلت_تلاش() ویکٹر اسٹور سے ڈیٹا بازیافت کرنے کا طریقہ:

ذیلی_دستاویزات = ویکٹر اسٹور مماثلت_تلاش ( 'انصاف برئیر' )

پچھلے کوڈ میں بیان کردہ استفسار کا استعمال کرتے ہوئے چھوٹے ٹکڑوں کو اسکرین پر ظاہر کرنے کے لیے پرنٹ کریں:

پرنٹ کریں ( ذیلی_دستاویزات [ 0 ] . صفحہ_مواد )

اب، ڈیٹا بیس میں ذخیرہ شدہ مکمل ڈیٹاسیٹ پر استفسار کو فنکشن کی دلیل کے طور پر استعمال کرتے ہوئے بازیافت کا استعمال کریں:

retrieved_docs = بازیافت کرنے والا حاصل_متعلقہ_دستاویزات ( 'انصاف برئیر' )

ڈیٹا بیس میں تخلیق اور ذخیرہ شدہ مکمل ٹکڑوں کی لمبائی حاصل کریں:

صرف ( retrieved_docs [ 0 ] . صفحہ_مواد )

ہم تمام ٹکڑوں کو ظاہر نہیں کر سکتے ہیں، لیکن انڈیکس نمبر 0 کے ساتھ پہلا حصہ درج ذیل کوڈ کا استعمال کرتے ہوئے ظاہر ہوتا ہے:

پرنٹ کریں ( retrieved_docs [ 0 ] . صفحہ_مواد

یہ سب کچھ LangChain میں پیرنٹ دستاویز بازیافت کرنے کے عمل کے بارے میں ہے۔

نتیجہ

LangChain میں پیرنٹ دستاویز بازیافت کرنے کے لیے، صرف ماڈیولز انسٹال کریں اور اس کی API کلید کا استعمال کرتے ہوئے OpenAI ماحول کو ترتیب دیں۔ اس کے بعد، پیرنٹ دستاویز بازیافت کرنے کے لیے LangChain سے مطلوبہ لائبریریاں درآمد کریں، اور پھر ماڈل کے لیے دستاویزات لوڈ کریں۔ صارف بنیادی دستاویزات کو پوری دستاویز یا بڑے حصے کے طور پر استعمال کرسکتا ہے اور استفسار کا استعمال کرتے ہوئے ایک چھوٹا حصہ حاصل کرسکتا ہے۔ اس پوسٹ میں LangChain میں پیرنٹ ڈاکومنٹ ریٹریور کو استعمال کرنے کے عمل کی وضاحت کی گئی ہے۔