ল্যাংচেইনে একটি কাস্টম মেমরি টাইপ কীভাবে যুক্ত করবেন?

Lyance Ine Ekati Kastama Memari Ta Ipa Kibhabe Yukta Karabena



ল্যাংচেইন ল্যাংগুয়েজ মডেল বা চ্যাটবট কনফিগার/ডিজাইন করতে ব্যবহৃত হয় যা মানুষের সাথে চ্যাটের মতো ইন্টারঅ্যাক্ট করতে পারে। এই চ্যাট বার্তাগুলি চেইনের মাধ্যমে লিঙ্ক করা হয় যেমন LangChain নামটি পরামর্শ দেয় এবং ব্যবহারকারী সেগুলিকে মেমরিতেও সংরক্ষণ করতে পারে। ল্যাংচেইন ডেভেলপারদের মেমরি লাইব্রেরি ব্যবহার করতে দেয় যা বিল্ট-ইন ক্লাসের ব্যবহার বা তাদের নিজস্ব মেমরির কাস্টমাইজেশন প্রদান করে।

দ্রুত রূপরেখা

এই পোস্টটি দেখাবে:







ল্যাংচেইনে একটি কাস্টম মেমরি টাইপ কীভাবে যুক্ত করবেন



উপসংহার



ল্যাংচেইনে একটি কাস্টম মেমরি টাইপ কীভাবে যুক্ত করবেন?

LangChain-এ একটি কাস্টমাইজড মেমরি টাইপ যোগ করা ব্যবহারকারীকে মেমরি হিসাবে সর্বাধিক কর্মক্ষমতা পেতে দেয়। ব্যবহারকারী তার প্রয়োজনীয়তা অনুযায়ী মেমরি টাইপ কনফিগার করতে পারেন। LangChain এ একটি কাস্টম মেমরি টাইপ যোগ করতে, কেবল নিম্নলিখিত পদক্ষেপগুলি দিয়ে যান:





ধাপ 1: ফ্রেমওয়ার্ক ইনস্টল করা

প্রথমে, একটি কাস্টম মেমরি টাইপ যোগ করার প্রক্রিয়া শুরু করার জন্য LangChain ফ্রেমওয়ার্ক ইনস্টল করুন:

পিপ ল্যাংচেইন ইনস্টল করুন

পাইথন নোটবুকে উপরের কমান্ডটি চালানোর ফলে নিম্নলিখিত স্নিপেটে প্রদর্শিত ল্যাংচেনের জন্য নির্ভরতাগুলি ইনস্টল হবে:



LLM কনফিগার করতে ব্যবহার করা যেতে পারে এমন লাইব্রেরি পেতে OpenAI মডিউলটি ইনস্টল করুন:

পিপ ইনস্টল ওপেনই

এই গাইড LangChain-এ কাস্টম মেমরি টাইপ ডিজাইন করতে spaCy ফ্রেমওয়ার্ক ব্যবহার করবে এবং মডিউল ইনস্টল করতে নিম্নলিখিত কোড ব্যবহার করা হবে:

পিপ ইনস্টল স্পেস

spaCy মডেলটি আগের চ্যাট বার্তাগুলির মতো পর্যবেক্ষণ হিসাবে তথ্য সংরক্ষণ করতে হ্যাশ টেবিল ব্যবহার করে। একটি উন্নত NLP মডেল তৈরি করতে spaCy লাইব্রেরি থেকে Large Language Model বা LLM ডাউনলোড করতে নিম্নলিখিত কোডটি ব্যবহার করা হয়:

! python -m spacy ডাউনলোড en_core_web_lg

আমদানি করা হচ্ছে আপনি ' এবং ' গেটপাস লাইব্রেরিগুলি OpenAI এর অ্যাকাউন্ট থেকে API কী প্রবেশ করার জন্য তার পরিবেশ সেট আপ করুন :

আমদানি আপনি
আমদানি গেটপাস

আপনি . আন্দাজ [ 'OPENAI_API_KEY' ] = গেটপাস . গেটপাস ( 'ওপেনএআই এপিআই কী:' )

ধাপ 2: লাইব্রেরি আমদানি করা

পরবর্তী ধাপে চ্যাট মডেল অনুযায়ী মেমরি টাইপ কাস্টমাইজ করার জন্য প্রয়োজনীয় লাইব্রেরি আমদানি করা হয়:

থেকে ল্যাংচেইন স্কিমা আমদানি বেসমেমোরি

থেকে ল্যাংচেইন চেইন আমদানি কথোপকথন চেইন

থেকে pydantic আমদানি বেস মডেল

থেকে ল্যাংচেইন এলএমএস আমদানি OpenAI

থেকে টাইপিং আমদানি তালিকা , ডিক্ট , যে কোন

আমদানি করা হচ্ছে ' spaCy ' লোড করার জন্য লাইব্রেরি ' en_core_web_lg ' মডেল এবং এটি 'কে বরাদ্দ করুন এনএলপি ' পরিবর্তনশীল যেহেতু এটি প্রাকৃতিক ভাষা প্রক্রিয়াকরণ মডেল:

আমদানি প্রশস্ত

এনএলপি = প্রশস্ত বোঝা ( 'en_core_web_lg' )

ধাপ 3: কাস্টম মেমরি তৈরি করা

এর পরে, মেমরি ক্লাসে বেসমেমোরি এবং বেসমডেল আর্গুমেন্ট ব্যবহার করে কেবল কাস্টম মেমরি তৈরি করুন। তারপরে, সত্তাগুলিকে কনফিগার করুন (ডেটা থেকে সংগৃহীত/সংরক্ষিত) যা সম্পূর্ণ তথ্য বা একক ইউনিট হিসাবে মেমরিতে সংরক্ষণ করা যেতে পারে। মেমরি এবং মডেলের কর্মক্ষমতা অপ্টিমাইজ করার জন্য নথি থেকে সমস্ত সত্তা ধারণ করার জন্য মেমরিটি কনফিগার করা হয়েছে:

ক্লাস SpacyEntityMemory ( বেসমেমোরি , বেস মডেল ) :
''' সত্তা সম্পর্কে তথ্য সংরক্ষণের জন্য মেমরি ক্লাস'''
সত্তা: dict = { }
স্মৃতি_কী: str = 'সত্তা'
ডিফ পরিষ্কার ( স্ব ) :
স্ব . সত্তা = { }
@ সম্পত্তি
ডিফ মেমরি_ভেরিয়েবল ( স্ব ) - > তালিকা [ str ] :
''' ক্যোয়ারীতে প্রদত্ত ভেরিয়েবলগুলি শুরু করুন'''
ফিরে [ স্ব . মেমরি_কী ]
# আর্গুমেন্ট ব্যবহার করে মেমরি ভেরিয়েবল সংজ্ঞায়িত করুন
ডিফ load_memory_variables ( স্ব , inputs: dict [ str , যে কোন ] ) - > ডিক্ট [ str , str ] :
''' মেমরির জন্য ভেরিয়েবলকে কল করুন যেমন সত্তা কী'''
ডক = এনএলপি ( ইনপুট [ তালিকা ( ইনপুট কী ( ) ) [ 0 ] ] )
#একটি পৃথক ইউনিটের জন্য মেমরিতে সংরক্ষণ করার জন্য সত্তা কনফিগার করুন
সত্তা = [
স্ব . সত্তা [ str ( ent ) ] জন্য ent ভিতরে ডক ents যদি str ( ent ) ভিতরে স্ব . সত্তা
]
ফিরে { স্ব . মেমরি_কী : ' \n ' . যোগদান ( সত্তা ) }
# মেমরি ব্যবহার করতে save_context() সংজ্ঞায়িত করুন
ডিফ সংরক্ষণ_প্রসঙ্গ ( স্ব , inputs: dict [ str , যে কোন ] , আউটপুট: dict [ str , str ] ) - > কোনোটিই নয় :
'''এই চ্যাট থেকে স্মৃতিতে স্টোর পর্যবেক্ষণ'''
পাঠ্য = ইনপুট [ তালিকা ( ইনপুট কী ( ) ) [ 0 ] ]
ডক = এনএলপি ( পাঠ্য )
জন্য ent ভিতরে ডক ents :
ent_str = str ( ent )
যদি ent_str ভিতরে স্ব . সত্তা :
স্ব . সত্তা [ ent_str ] + = ' \n {পাঠ্য}'
অন্য :
স্ব . সত্তা [ ent_str ] = পাঠ্য

ধাপ 4: প্রম্পট টেমপ্লেট কনফিগার করা

এর পরে, সহজভাবে প্রম্পট টেমপ্লেটটি কনফিগার করুন যা ব্যবহারকারী/মানুষ দ্বারা প্রদত্ত ইনপুটের গঠন ব্যাখ্যা করে:

থেকে ল্যাংচেইন প্রম্পট . শীঘ্র আমদানি প্রম্পট টেমপ্লেট

টেমপ্লেট = '''নিম্নলিখিত একটি যন্ত্র এবং একটি মানুষের মধ্যে একটি মিথস্ক্রিয়া এটি বলে যে এটি জানে না যদি মেশিনটি উত্তরটি না জানে তবে মেশিন (AI) তার প্রসঙ্গ থেকে বিশদ প্রদান করে এবং যদি এটি কোনো প্রশ্নের উত্তর বুঝতে না পারে তবে এটি শুধু দুঃখিত বলে

সত্তার তথ্য:

{সত্তা}

যোগাযোগ:

মানুষ: {input}

এআই:'''


শীঘ্র = প্রম্পট টেমপ্লেট ( input_variables = [ 'সত্তা' , 'ইনপুট' ] , টেমপ্লেট = টেমপ্লেট )

ধাপ 5: মডেল পরীক্ষা করা

মডেলটি পরীক্ষা করার আগে, OpenAI() পদ্ধতি ব্যবহার করে LLM কনফিগার করুন এবং আর্গুমেন্ট সহ ConversationChain() ফাংশন সেট আপ করুন:

এলএলএম = OpenAI ( তাপমাত্রা = 0 )

কথোপকথন = কথোপকথন চেইন (

এলএলএম = এলএলএম , শীঘ্র = শীঘ্র , ভার্বোস = সত্য , স্মৃতি = SpacyEntityMemory ( )

)

কথোপকথন ভেরিয়েবলের সাথে predict() পদ্ধতিতে কল করার সময় ইনপুট আর্গুমেন্ট ব্যবহার করে মডেলকে তথ্য দিন:

কথোপকথন ভবিষ্যদ্বাণী ( ইনপুট = 'হ্যারিসন মেশিন লার্নিং পছন্দ করেন' )

আউটপুট

মডেলটি তথ্য শোষণ করেছে এবং এটি মেমরিতে সংরক্ষণ করেছে এবং কথোপকথন চালিয়ে যাওয়ার জন্য তথ্য সম্পর্কিত প্রশ্নও উত্থাপন করেছে:

ব্যবহারকারী মেমরিতে আরও তথ্য যোগ করতে বা তথ্য সম্পর্কে প্রশ্ন জিজ্ঞাসা করে মেমরি পরীক্ষা করতে মডেল থেকে প্রশ্নের উত্তর দিতে পারেন:

কথোপকথন ভবিষ্যদ্বাণী (

ইনপুট = 'হ্যারিসনের প্রিয় বিষয় কি'

)

মডেলটি পূর্ববর্তী তথ্যের উপর ভিত্তি করে আউটপুট দেয় এবং নিম্নলিখিত স্নিপেটটি দেখায় হিসাবে এটি স্ক্রিনে প্রদর্শন করে:

LangChain-এ একটি কাস্টম মেমরি টাইপ যোগ করার জন্য এটি সবই।

উপসংহার

LangChain-এ একটি কাস্টম মেমরি টাইপ যোগ করতে, কাস্টম মেমরি তৈরি করতে লাইব্রেরি আমদানি করার জন্য প্রয়োজনীয় মডিউলগুলি ইনস্টল করুন। spaCy হল গুরুত্বপূর্ণ লাইব্রেরি যা এই গাইডে ব্যবহার করা হচ্ছে তার NLP মডেল ব্যবহার করে একটি কাস্টম মেমরি যোগ করতে। এর পরে, চ্যাট ইন্টারফেসের কাঠামো দিতে কাস্টম মেমরি এবং প্রম্পট টেমপ্লেট কনফিগার করুন। একবার কনফিগারেশন সম্পন্ন হলে, সংরক্ষিত ডেটা সম্পর্কিত তথ্য জিজ্ঞাসা করে মডেলের মেমরি পরীক্ষা করুন।