এই পোস্টটি LangChain এ পুনরুদ্ধার ব্যবহার করার প্রক্রিয়া প্রদর্শন করবে।
LangChain এ Retrievers কিভাবে ব্যবহার করবেন?
পুনরুদ্ধারকারীরা মডেল এবং মানুষের মধ্যে ইন্টারফেস হিসাবে কাজ করে যাতে তারা প্রাকৃতিক ভাষায় প্রদত্ত ইনপুট ব্যবহার করে পছন্দসই আউটপুট পেতে এটি ব্যবহার করতে পারে। ভেক্টর স্টোরগুলি ডেটা সঞ্চয় করতে ব্যবহৃত হয় যা থেকে তথ্য/ডেটা পেতে/এক্সট্রাক্ট করতে ব্যবহার করা যেতে পারে।
যাইহোক, পুনরুদ্ধারকারীরা এই ডাটাবেসের চেয়ে বেশি সাধারণ। তারা কোনো ডেটা সঞ্চয় করে না এবং শুধুমাত্র ব্যবহারকারীদের জন্য ডেটা পেতে বা পুনরুদ্ধার করতে ব্যবহৃত হয়। LangChain এর মাধ্যমে পুনরুদ্ধার তৈরি এবং ব্যবহার করার প্রক্রিয়া শিখতে, নিম্নলিখিত পদক্ষেপগুলি দেখুন:
ধাপ 1: মডিউল ইনস্টল করুন
প্রথমে, প্রয়োজনীয় মডিউলগুলি ইনস্টল করুন যেমন LangChain এর লাইব্রেরি এবং নির্ভরতাগুলি প্রক্রিয়াটি চালিয়ে যেতে:
পিপ ইনস্টল ল্যাংচেইন
chromadb ভেক্টর স্টোর ইনস্টল করুন যা স্টোর থেকে ডেটা আনার জন্য পুনরুদ্ধারের জন্য ডেটাবেস ডেটাতে ব্যবহার করা যেতে পারে:
পিপ ইনস্টল chromadb
এখন, একটি পুনরুদ্ধার তৈরি করার আগে টেক্সট এমবেডিং ব্যবহার করার জন্য এর লাইব্রেরি পেতে OpenAI ফ্রেমওয়ার্ক ইনস্টল করুন:
পিপ ইনস্টল openai
সমস্ত প্রয়োজনীয় মডিউল ইনস্টল করার পরে, OpenAI API কী ব্যবহার করে কেবল পরিবেশ সেট আপ করুন:
আমাদের আমদানি করুনগেটপাস আমদানি করুন
os.environ [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'ওপেনএআই এপিআই কী:' )
ধাপ 2: ডেটাসেট আপলোড করুন
এখন, ক্লিক করার জন্য নিম্নলিখিত কোডটি কার্যকর করুন 'ফাইল বেছে নিন' বোতাম এবং স্থানীয় সিস্টেম থেকে নথি বা ফাইল আপলোড করুন:
uploaded = files.upload ( )
ধাপ 3: লাইব্রেরি আমদানি করুন
LangChain-এ পুনরুদ্ধার করতে এবং ব্যবহার করার জন্য প্রয়োজনীয় লাইব্রেরি আমদানি করুন যেমন “ তালিকা ', ' কলব্যাক ', এবং আরো অনেক:
টাইপিং থেকে import Any, List
langchain.schema ইমপোর্ট ডকুমেন্ট থেকে
langchain.callbacks.manager থেকে কলব্যাক আমদানি করুন
ধাপ 4: এক লাইন সূচক তৈরি করুন
এই পদক্ষেপটি পুনরুদ্ধারের জন্য সূচক তৈরি করে যা প্রয়োজনীয় লাইব্রেরিগুলি আমদানি করে ভেক্টর স্টোর গঠনের জন্য ডেটা পেতে ব্যবহার করা যেতে পারে:
langchain.llms আমদানি OpenAI থেকে
এখানে, ব্যবহার করে ডেটা লোড করুন টেক্সটলোডার() ধাপ 2 এ আপলোড করা ফাইলের পথ সহ পদ্ধতি:
langchain.document_loaders থেকে TextLoader আমদানি করুনলোডার = টেক্সটলোডার ( 'state_of_the_union.txt' , এনকোডিং = 'utf8' )
লাইব্রেরি আমদানি করুন VectorstoreIndexCreator ডাটাবেসের জন্য একটি সূচক তৈরি করতে ল্যাংচেইন থেকে:
langchain.indexes থেকে VectorstoreIndexCreator আমদানি করুনসংজ্ঞায়িত করুন সূচক ভেরিয়েবল ব্যবহার করে VectorstoreIndexCreator() পদ্ধতি ব্যবহার করে লোডার পরিবর্তনশীল:
index = VectorstoreIndexCreator ( ) .from_loaders ( [ লোডার ] )নথি থেকে ডেটা এনে সূচক পরীক্ষা করার জন্য ক্যোয়ারীটি প্রয়োগ করুন:
প্রশ্ন = 'রাষ্ট্রপতি জেলেনস্কি তার বক্তৃতায় কী বলেছিলেন'index.query ( প্রশ্ন )
কোন ডাটাবেস আছে সূচকের বিবরণ পান সূচক নিম্নলিখিত কোড ব্যবহার করে:
index.vectorstoreনিম্নলিখিত কোডটি সূচক, এর ধরন এবং ডাটাবেস সম্পর্কে সমস্ত বিবরণ ব্যাখ্যা করবে:
index.vectorstore.as_retriever ( )
ডকুমেন্টের নাম ব্যবহার করার জন্য সোর্স আর্গুমেন্ট ব্যবহার করে ডকুমেন্টের সারাংশের জন্য জিজ্ঞাসা করে query() পদ্ধতির সাথে সূচী ব্যবহার করুন:
index.query ( 'এই নথি থেকে ডেটার সাধারণ সারাংশ' , retriever_kwargs = { 'অনুসন্ধান_কোয়ার্গস' : { 'ছাঁকনি' : { 'উৎস' : 'state_of_the_union.txt' } } } )
ধাপ 5: এম্বেডিং তৈরি করুন
এর এমবেডিং তৈরি করার জন্য নথিটি লোড করুন এবং ভেক্টর স্টোর ব্যবহার করে সংখ্যাসূচক আকারে পাঠ্য সংরক্ষণ করুন:
ব্যবহার করে এম্বেড করার প্রক্রিয়া শুরু করুন text_splitter খণ্ডের আকার এবং ওভারল্যাপ আর্গুমেন্ট সহ:
langchain.text_splitter থেকে CharacterTextSplitter আমদানি করুন#Retriever ব্যবহার করার জন্য নথির ছোট অংশ তৈরি করতে text_splitter ব্যবহার করে
text_splitter = CharacterTextSplitter ( chunk_size = 1000 , খণ্ড_ওভারল্যাপ = 0 )
texts = text_splitter.split_documents ( নথি )
OpenAIEmbeddings() পদ্ধতি প্রয়োগ করুন যা LangChain থেকে আমদানি করা যেতে পারে:
langchain.embeddings থেকে OpenAIEmbeddings আমদানি করুনembeddings = OpenAIEembeddings ( )
নথি থেকে তৈরি এমবেডিং সংরক্ষণ করতে chromadb স্টোর ব্যবহার করুন:
langchain.vectorstores থেকে Chroma আমদানি করেdb = Chroma.from_documents ( পাঠ্য, এম্বেডিং )
ধাপ 6: রিট্রিভার পরীক্ষা করুন
একবার এম্বেডিংগুলি তৈরি এবং ডাটাবেসে সংরক্ষণ করা হলে কেবল পুনরুদ্ধার পরিবর্তনশীলটি সংজ্ঞায়িত করুন:
OpenAI() ফাংশন সহ RetrievalQA() পদ্ধতি ব্যবহার করে চেইনগুলিকে কল করুন এবং এর আর্গুমেন্ট হিসাবে পুনরুদ্ধার করুন:
qa = RetrievalQA.from_chain_type ( এলএলএম =ওপেনএআই ( ) , চেইন_টাইপ = 'জিনিসপত্র' , উদ্ধারকারী = উদ্ধারকারী )ব্যবহার করে উদ্ধারকারী পরীক্ষা করার জন্য ইনপুট প্রদান করুন প্রশ্ন qa.run() পদ্ধতির ভিতরে পরিবর্তনশীল:
প্রশ্ন = 'রাষ্ট্রপতি জেলেনস্কি তার বক্তৃতায় কী বলেছিলেন'qa.run ( প্রশ্ন )
সহজভাবে কাস্টমাইজ করুন VectorstoreIndexCreator () বিভিন্ন মান সেট করতে এর আর্গুমেন্ট ব্যবহার করে:
index_creator = VectorstoreIndexCreator (vectorstore_cls =ক্রোমা,
এমবেডিং =OpenAIEmbeddings ( ) ,
text_splitter =ক্যারেক্টার টেক্সট স্প্লিটার ( chunk_size = 1000 , খণ্ড_ওভারল্যাপ = 0 )
)
এটি ল্যাংচেইনে পুনরুদ্ধারকারীদের সাথে শুরু করার প্রক্রিয়া সম্পর্কে।
উপসংহার
LangChain-এ পুনরুদ্ধারকারীদের ব্যবহার করতে, OpenAI পরিবেশ সেট আপ করার জন্য প্রয়োজনীয় নির্ভরতাগুলি ইনস্টল করুন এবং তারপর পুনরুদ্ধারকারীদের পরীক্ষা করার জন্য নথিটি আপলোড করুন। এর পরে, একটি বিমূর্ত বেস ক্লাস বা ABC লাইব্রেরি ব্যবহার করে পুনরুদ্ধার তৈরি করুন এবং তারপরে ডেটা পুনরুদ্ধারের জন্য ডাটাবেসের জন্য সূচক তৈরি করুন। নথির জন্য এম্বেডিংগুলি কনফিগার করুন এবং ডাটাবেস থেকে তুলনামূলক ফলাফল পেতে পুনরুদ্ধার চালান। এই পোস্টটি LangChain-এ পুনরুদ্ধারকারীদের ব্যবহার করার প্রক্রিয়া সম্পর্কে বিস্তারিত বর্ণনা করেছে।