LangChain میں ایجنٹوں اور ویکٹر اسٹورز کو یکجا کیسے کریں؟

Langchain My Ayjn W Awr Wyk R As Wrz Kw Ykja Kys Kry



LangChain وہ فریم ورک ہے جو زبان کے ماڈلز کو ڈیزائن کرتا ہے۔ ڈیٹا کی بڑی مقدار ان ماڈلز کو قدرتی زبان میں تربیت دیتی ہے۔ ان ڈیٹاسیٹس کو منظم کرنے کے لیے بہت سے ڈیٹا بیس یا ویکٹر اسٹورز ہیں جیسے کروما وغیرہ۔ ایجنٹ اور ویکٹر اسٹورز کو ملا کر، ماڈل مختلف ڈومینز کے ڈیٹا کے ساتھ بہتر کارکردگی کا مظاہرہ کرتا ہے۔ LangChain زبان کے ماڈل یا چیٹ بوٹ کی تربیت کے لیے بہت سے ویکٹر اسٹورز کے استعمال کی اجازت دیتا ہے۔

فوری آؤٹ لائن

یہ پوسٹ دکھائے گی:







LangChain میں سٹرکچرڈ آؤٹ پٹ واپس کرنے کے لیے ایجنٹ کا استعمال کیسے کریں۔



طریقہ 1: ویکٹر اسٹورز کے ساتھ ایجنٹ کو ملانا



طریقہ 2: ایجنٹ کو روٹر کے طور پر استعمال کرنا





طریقہ 3: ملٹی ہاپ ویکٹر اسٹور کے ساتھ ایجنٹ کا استعمال

نتیجہ



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

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

LangChain میں ایجنٹوں اور ویکٹر اسٹورز کو یکجا کرنے کے عمل کو جاننے کے لیے، بس درج کردہ مراحل پر عمل کریں:

مرحلہ 1: فریم ورک انسٹال کرنا

سب سے پہلے، ایجنٹوں اور ویکٹر اسٹورز کو یکجا کرنے کے لیے LangChain ماڈیول اور اس کے انحصار کو انسٹال کریں:

pip انسٹال langchain

اس گائیڈ میں، ہم Chroma ڈیٹا بیس کا استعمال کر رہے ہیں جو ڈیٹا کو مختلف مقامات یا ٹیبلز میں محفوظ کر سکتا ہے:

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

ڈیٹا کی بہتر تفہیم حاصل کرنے کے لیے، بڑی فائلوں کو ٹک ٹوکن ٹوکنائزر کا استعمال کرتے ہوئے چھوٹے حصوں میں تقسیم کریں:

pip install tiktoken

OpenAI وہ ماڈیول ہے جسے LangChain فریم ورک میں بڑے لینگویج ماڈل بنانے کے لیے استعمال کیا جا سکتا ہے:

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

مرحلہ 2: اوپن اے آئی ماحولیات

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

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

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

اب، مقامی نظام سے ڈیٹا کو مستقبل میں استعمال کرنے کے لیے گوگل کے تعاون پر اپ لوڈ کریں:

سے گوگل ET رحمہ اللہ تعالی درآمد فائلوں

اپ لوڈ = فائلوں. اپ لوڈ کریں ( )

مرحلہ 3: ویکٹر اسٹور بنانا

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

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

#Vector مطلوبہ ڈیٹا بیس یا ویکٹر حاصل کرنے کے لیے انحصار کو اسٹور کرتا ہے۔

سے langchain ویکٹر اسٹورز درآمد کروما

#Text splitter بڑے متن کو چھوٹے حصوں میں تبدیل کرنے کے لیے استعمال کیا جاتا ہے۔

سے langchain text_splitter درآمد کریکٹر ٹیکسٹ اسپلٹر

سے langchain ایل ایم ایس درآمد اوپن اے آئی

سے langchain دستاویز_لوڈرز درآمد ویب بیس لوڈر

سے langchain زنجیریں درآمد بازیافت کیو اے


ایل ایل ایم = اوپن اے آئی ( درجہ حرارت = 0 )

مرحلہ 4: راستہ طے کرنا

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

سے پاتھلیب درآمد راستہ

متعلقہ_حصے = [ ]
کے لیے ص میں راستہ ( ' ) . مطلق ( ) . حصے :
متعلقہ_حصے شامل کریں ( ص )
اگر متعلقہ_حصے [ - 3 : ] == [ 'langchain' ، 'دستاویزات' ، 'ماڈیولز' ] :
توڑنا
# لوپ کے اندر مشروط بیان ہر ڈیٹا بیس کے لیے راستہ طے کرنے کے لیے
doc_path = str ( راستہ ( *متعلقہ_حصے ) / 'state_of_the_union.txt' )

مرحلہ 5: ڈیٹا کو لوڈ کرنا اور تقسیم کرنا

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

سے langchain دستاویز_لوڈرز درآمد ٹیکسٹ لوڈر

# ڈیٹاسیٹ کو اس کے راستے سے لوڈ کرنا اور اس کے چھوٹے حصوں کو ڈیٹا بیس میں محفوظ کرنا

لوڈر = ٹیکسٹ لوڈر ( doc_path )

دستاویزات = لوڈر لوڈ ( )

text_splitter = کریکٹر ٹیکسٹ اسپلٹر ( chunk_size = 2000 ، chunk_overlap = 0 )

نصوص = text_splitter. split_documents ( دستاویزات )

# متن کو نمبروں میں تبدیل کریں اور ایمبیڈنگز کو ڈیٹا بیس میں اسٹور کریں۔

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

دستاویز کی تلاش = کروما سے_دستاویزات ( نصوص ، سرایت ، مجموعہ_نام = 'ریاست کی یونین' )

مرحلہ 6: ایک بازیافت بنانا

ایجنٹ اور ویکٹر اسٹورز کو یکجا کرنے کے لیے، LangChain فریم ورک سے RetrievalQA() طریقہ استعمال کرتے ہوئے ایک بازیافت بنانے کی ضرورت ہے۔ ڈیٹا بیس کے ساتھ کام کرنے کے لیے ایجنٹوں کا استعمال کرتے ہوئے ویکٹر اسٹورز سے ڈیٹا حاصل کرنے کے لیے اس بازیافت کے طریقہ کار کی سفارش کی جاتی ہے:

یونین کی_ریاست = بازیافت کیو اے۔ سے_چین_قسم (

ایل ایل ایم = ایل ایل ایم ، chain_type = 'سامان' ، بازیافت کرنے والا = دستاویز کی تلاش as_retriever ( )

)

ایجنٹ کو متعدد ڈیٹاسیٹس یا ویکٹر اسٹورز کے ساتھ مربوط کرنے کے لیے ایک اور ڈیٹاسیٹ لوڈ کریں:

لوڈر = ویب بیس لوڈر ( 'https://beta.ruff.rs/docs/faq/' )

ایمبیڈنگ ویکٹر کے ساتھ ڈیٹا کے چھوٹے ٹکڑوں کو بنانے کے بعد ruff ڈیٹاسیٹ کو chromadb میں اسٹور کریں:

دستاویزات = لوڈر لوڈ ( )
ruff_texts = text_splitter. split_documents ( دستاویزات )
ruff_db = کروما سے_دستاویزات ( ruff_texts ، سرایت ، مجموعہ_نام = 'رف' )
رف = بازیافت کیو اے۔ سے_چین_قسم (
ایل ایل ایم = ایل ایل ایم ، chain_type = 'سامان' ، بازیافت کرنے والا = ruff_db as_retriever ( )
)

طریقہ 1: ویکٹر اسٹورز کے ساتھ ایجنٹ کو ملانا

معلومات کو نکالنے کے لیے ایجنٹوں اور ویکٹر اسٹورز دونوں کو ملانے کا پہلا طریقہ ذیل میں بتایا گیا ہے:

مرحلہ 1: ٹولز کو ترتیب دیں۔

اب جب کہ ویکٹر اسٹورز کنفیگر ہو چکے ہیں، ہمارے عمل کے دوسرے جزو یعنی ایجنٹ کی تعمیر کی طرف بڑھ رہے ہیں۔ عمل کے لیے ایجنٹ بنانے کے لیے، ایجنٹس، ٹولز وغیرہ جیسے انحصار کا استعمال کرتے ہوئے لائبریریوں کو درآمد کریں۔

سے langchain ایجنٹس درآمد ابتدائیہ_ایجنٹ
سے langchain ایجنٹس درآمد ایجنٹ کی قسم
# ایجنٹ بنانے کے لیے LangChain سے ٹولز حاصل کرنا
سے langchain اوزار درآمد بیس ٹول
سے langchain ایل ایم ایس درآمد اوپن اے آئی
# لینگویج ماڈل بنانے کے لیے زنجیروں سے LLMMathChain حاصل کرنا
سے langchain زنجیریں درآمد ایل ایل ایم میتھ چین
سے langchain افادیت درآمد SerpAPIWrapper
سے langchain ایجنٹس درآمد ٹول

QA سسٹم کا استعمال کرتے ہوئے ایجنٹوں کے ساتھ استعمال کیے جانے والے ٹولز کو ترتیب دیں یا ٹولز کے نام اور تفصیل کے ساتھ پہلے کنفیگر کیے گئے بازیافت:

اوزار = [
ٹول (
نام = 'ریاست آف یونین QA سسٹم' ،
func = یونین کی_ریاست رن ،
تفصیل = 'ان پٹ کے ساتھ بھری ہوئی ڈیٹاسیٹ سے متعلق سوالات کے جوابات مکمل طور پر تشکیل شدہ سوال کے طور پر فراہم کرتا ہے' ،
) ،
ٹول (
نام = 'رف QA سسٹم' ،
func = رف رن ،
تفصیل = 'ایک مکمل طور پر تشکیل شدہ سوال کے طور پر ان پٹ کے ساتھ رف (ایک ازگر لنٹر) کے بارے میں سوالات کے جوابات فراہم کرتا ہے' ،
) ،
]

مرحلہ 2: ایجنٹ شروع کریں۔

ایک بار جب ٹولز کنفیگر ہو جائیں، صرف ایجنٹ کو ابتدائیہ_ایجنٹ() طریقہ کی دلیل میں سیٹ کریں۔ ایجنٹ جو ہم یہاں استعمال کر رہے ہیں وہ ہے۔ ZERO_SHOT_REACT_DESCRIPTION ٹولز کے ساتھ، llm (زبان کا ماڈل)، اور وربوز:

ایجنٹ = ابتدائیہ_ایجنٹ (

اوزار ، ایل ایل ایم ، ایجنٹ = ایجنٹ کی قسم۔ ZERO_SHOT_REACT_DESCRIPTION ، لفظی = سچ ہے۔

)

مرحلہ 3: ایجنٹ کی جانچ کریں۔

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

ایجنٹ رن (

'صدر جو بائیڈن نے خطاب میں کانجی براؤن کے بارے میں کیا کہا'

)

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

طریقہ 2: ایجنٹ کو روٹر کے طور پر استعمال کرنا

دونوں اجزاء کو یکجا کرنے کا دوسرا طریقہ ایجنٹ کو بطور روٹر استعمال کرنا ہے اور مندرجہ ذیل عمل کی وضاحت کرتا ہے:

مرحلہ 1: ٹولز کو ترتیب دیں۔

ایجنٹ کو روٹر کے طور پر استعمال کرنے کا مطلب یہ ہے کہ RetrievalQA سسٹم براہ راست آؤٹ پٹ واپس کر دے گا کیونکہ ٹولز کو براہ راست آؤٹ پٹ واپس کرنے کے لیے ترتیب دیا گیا ہے:

اوزار = [
# ڈیٹا سے ڈیٹا حاصل کرنے کے لیے ایجنٹ بنانے کے لیے درکار ٹولز کو کنفیگر کرنا
ٹول (
نام = 'ریاست آف یونین QA سسٹم' ،
func = یونین کی_ریاست رن ،
تفصیل = 'ان پٹ کے ساتھ بھری ہوئی ڈیٹاسیٹ سے متعلق سوالات کے جوابات بطور مکمل سوال فراہم کرتا ہے' ،
واپسی_ڈائریکٹ = سچ ہے۔ ،
) ،
ٹول (
نام = 'رف QA سسٹم' ،
func = رف رن ،
تفصیل = 'ایک مکمل سوال کے طور پر ان پٹ کے ساتھ رف (ایک ازگر لنٹر) کے بارے میں سوالات کے جوابات فراہم کرتا ہے' ،
واپسی_ڈائریکٹ = سچ ہے۔ ،
) ،
]

مرحلہ 2: ایجنٹ کو شروع کریں اور جانچ کریں۔

ٹولز کو ترتیب دینے کے بعد صرف ایجنٹ کو سیٹ کریں جو صرف روٹر کے طور پر استعمال کیا جا سکتا ہے ابتداء_agent() طریقہ:

ایجنٹ = ابتدائیہ_ایجنٹ (

اوزار ، ایل ایل ایم ، ایجنٹ = ایجنٹ کی قسم۔ ZERO_SHOT_REACT_DESCRIPTION ، لفظی = سچ ہے۔

)

مندرجہ ذیل کمانڈ پر عمل کرتے ہوئے agent.run() طریقہ میں ان پٹ سوال دے کر ایجنٹ کی جانچ کریں۔

ایجنٹ رن (

'صدر جو بائیڈن نے خطاب میں کانجی براؤن کے بارے میں کیا کہا'

)

آؤٹ پٹ

آؤٹ پٹ اسکرین شاٹ دکھاتا ہے کہ ایجنٹ نے RetrievalQA سسٹم کے ذریعے نکالے گئے ڈیٹاسیٹ سے سوال کا جواب صرف واپس کر دیا ہے:

طریقہ 3: ملٹی ہاپ ویکٹر اسٹور کے ساتھ ایجنٹ کا استعمال

تیسرا طریقہ جس میں ڈویلپرز ایجنٹ اور ویکٹر اسٹورز دونوں کو یکجا کرسکتے ہیں وہ ملٹی ہاپ ویکٹر اسٹور کے سوالات کے لیے ہے۔ مندرجہ ذیل سیکشن مکمل عمل کی وضاحت کرتا ہے:

مرحلہ 1: ٹولز کو ترتیب دیں۔

پہلا مرحلہ، ہمیشہ کی طرح، ڈیٹا اسٹورز سے ڈیٹا نکالنے کے لیے ایجنٹوں کی تعمیر کے لیے استعمال ہونے والے ٹولز کی ترتیب:

اوزار = [
ٹول (
نام = 'ریاست آف یونین QA سسٹم' ،
func = یونین کی_ریاست رن ،
تفصیل = 'ان پٹ کے ساتھ بھری ہوئی ڈیٹاسیٹ سے متعلق سوالات کے جوابات مکمل طور پر تشکیل شدہ سوال کے طور پر فراہم کرتا ہے، پچھلی گفتگو کے کسی ضمیر کا حوالہ نہیں دیتے' ،
) ،
ٹول (
نام = 'رف QA سسٹم' ،
func = رف رن ،
تفصیل = 'ان پٹ کے ساتھ بھری ہوئی ڈیٹاسیٹ سے متعلق سوالات کے جوابات مکمل طور پر تشکیل شدہ سوال کے طور پر فراہم کرتا ہے، پچھلی گفتگو کے کسی ضمیر کا حوالہ نہیں دیتے' ،
) ،
]

مرحلہ 2: ایجنٹ کو شروع کریں اور جانچ کریں۔

اس کے بعد، ایجنٹ کے نام کے ساتھ initialize_agent() طریقہ استعمال کرتے ہوئے ایجنٹ متغیر بنائیں:

ایجنٹ = ابتدائیہ_ایجنٹ (

اوزار ، ایل ایل ایم ، ایجنٹ = ایجنٹ کی قسم۔ ZERO_SHOT_REACT_DESCRIPTION ، لفظی = سچ ہے۔

)

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

ایجنٹ رن (

'پائیتھن نوٹ بک کو چلانے کے لیے رف کون سا ٹول استعمال کرتا ہے اور کیا کسی اسپیکر نے اپنے ایڈریس میں اس ٹول کا ذکر کیا'

)

آؤٹ پٹ

مندرجہ ذیل اسکرین شاٹ سے پتہ چلتا ہے کہ ایجنٹ کو اس کی پیچیدگی کو سمجھنے کے لیے سوال کے ذریعے کام کرنا پڑتا ہے۔ اس نے QA سسٹم کے ذریعے نکالے گئے جواب کو واپس کر دیا ہے جو ہم نے اس عمل میں پہلے اپ لوڈ کیے تھے متعدد ڈیٹا اسٹورز سے:

یہ سب کچھ اس بارے میں ہے کہ LangChain میں ایجنٹوں اور ویکٹر اسٹورز کو کیسے اکٹھا کیا جائے۔

نتیجہ

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