দুটি পদ্ধতি, embed_query() এবং embed_documents(), বেস ক্লাস দ্বারা প্রদান করা হয়। এর মধ্যে প্রথমটি একটি একক নথিতে কাজ করে, যেখানে অন্যটি অনেকগুলি নথিতে কাজ করতে পারে।
এই নিবন্ধটি OpenAI টেক্সট এম্বেডিং ব্যবহার করে LangChain-এ এম্বেডিংয়ের ব্যবহারিক প্রদর্শনকে বোঝায়।
উদাহরণ: OpenAI টেক্সট এম্বেডিং ব্যবহার করে একটি একক ইনপুট পাঠ্য প্রাপ্ত করা
প্রথম উদাহরণের জন্য, আমরা একটি একক পাঠ্য স্ট্রিং ইনপুট করি এবং এটির জন্য OpenAI পাঠ্য এমবেডিং পুনরুদ্ধার করি। প্রয়োজনীয় লাইব্রেরি ইনস্টল করে প্রোগ্রাম শুরু হয়।
আমাদের প্রজেক্টে প্রথম যে লাইব্রেরিটি ইনস্টল করতে হবে তা হল LangChain। এটি পাইথন স্ট্যান্ডার্ড লাইব্রেরির সাথে আসে না তাই আমাদের এটি আলাদাভাবে ইনস্টল করতে হবে। যেহেতু langchain PyPi এ উপলব্ধ, তাই আমরা টার্মিনালে পিপ কমান্ড ব্যবহার করে সহজেই এটি ইনস্টল করতে পারি। এইভাবে, আমরা ল্যাংচেইন লাইব্রেরি ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালাই:
$ pip ল্যাংচেইন ইনস্টল করুন
প্রয়োজনীয়তা সন্তুষ্ট হওয়ার সাথে সাথে লাইব্রেরি ইনস্টল করা হয়।
আমাদের প্রকল্পে ওপেনএআই লাইব্রেরি ইনস্টল করা দরকার যাতে আমরা ওপেনএআই মডেলগুলি অ্যাক্সেস করতে পারি। এই লাইব্রেরিটি পিপ কমান্ড লিখে উদ্বোধন করা যেতে পারে:
$pip ওপেনই ইনস্টল করুনএখন, উভয় প্রয়োজনীয় লাইব্রেরি আমাদের প্রকল্প ফাইলে ইনস্টল করা হয়েছে। আমাদের প্রয়োজনীয় মডিউল আমদানি করতে হবে।
থেকে ল্যাংচেইন এমবেডিং . openai আমদানি OpenAIEmbeddings
আমদানি আপনি
আপনি . আন্দাজ [ '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' এবং গোপন কীটি 'মান' সেট করা আছে।
মডেল = OpenAIEmbeddings ( )input_text = 'এটি প্রদর্শনের জন্য।'
ফলাফল = মডেল. embed_query ( input_text )
ছাপা ( ফলাফল )
ছাপা ( কেবল ( ফলাফল ) )
আমরা ইতিমধ্যেই OpenAI এম্বেডিং র্যাপারের সাথে ইন্টারফেস করেছি। তারপরে, আমরা OpenAIEmbedding ক্লাসের কনস্ট্রাক্টরকে কল করি। OpenAI বিভিন্ন ধরণের এমবেডিং মডেল সরবরাহ করে তবে আপনাকে তাদের জন্য অর্থ প্রদান করতে হবে। এখানে, আমরা OpenAI-এর ডিফল্ট এমবেডিং মডেলের সাথে যাই, অর্থাৎ টেক্সট-এমবেডিং-এডা-002, যা বিনামূল্যে। আপনি যখন প্যারামিটার হিসাবে কোনো মডেলের নাম প্রদান করেন না, তখন ডিফল্ট মডেল ব্যবহার করা হয়।
তারপর, আমরা যে টেক্সট এর এমবেডিং পেতে হবে তা নির্দিষ্ট করি। পাঠ্যটি 'এটি প্রদর্শনের জন্য' হিসাবে নির্দিষ্ট করা হয়েছে৷ এবং এটি input_text ভেরিয়েবলে সংরক্ষণ করুন। এর পরে, প্রদত্ত টেক্সট এমবেড করার জন্য embed_query() পদ্ধতিটি ব্যবহৃত মডেলের সাথে বলা হয় এবং input_text যেটিতে টেক্সট স্ট্রিং রয়েছে যা একটি প্যারামিটার হিসাবে দেওয়া এমবেডিং পুনরুদ্ধার করে। পুনরুদ্ধার করা এমবেডিং ফলাফল বস্তুতে বরাদ্দ করা হয়।
অবশেষে, ফলাফলটি দেখার জন্য, আমাদের কাছে পাইথনের প্রিন্ট() পদ্ধতি রয়েছে। প্রিন্ট() পদ্ধতিতে আমরা যে মানটি প্রদর্শন করতে চাই তা সঞ্চয় করে এমন বস্তুটি আমাদের কেবল পাস করতে হবে। অতএব, আমরা এই ফাংশনটি দুবার আহ্বান করি; প্রথমে ভাসমান সংখ্যার তালিকা প্রদর্শন করতে এবং দ্বিতীয়টি এটির সাথে len() পদ্ধতি ব্যবহার করে এই মানগুলির দৈর্ঘ্য প্রিন্ট করতে।
ভাসমান মানগুলির তালিকা এই মানগুলির দৈর্ঘ্য সহ নিম্নলিখিত স্ন্যাপশটে দেখা যেতে পারে:
উদাহরণ: OpenAI টেক্সট এম্বেডিং ব্যবহার করে একাধিক ইনপুট টেক্সট/ডকুমেন্ট প্রাপ্ত করা
একটি একক ইনপুট পাঠ্যের জন্য এমবেডিং প্রাপ্ত করা ছাড়াও, আমরা একাধিক ইনপুট স্ট্রিংগুলির জন্য এটি পুনরুদ্ধার করতে পারি। আমরা এই দৃষ্টান্তে এটি বাস্তবায়ন.
আমরা ইতিমধ্যে পূর্ববর্তী চিত্রে লাইব্রেরি ইনস্টল করেছি। আরেকটি লাইব্রেরি যা আমাদের এখানে ইনস্টল করতে হবে তা হল পাইথনের টিকটকেন লাইব্রেরি। এটি ইনস্টল করার জন্য টার্মিনালে কমান্ডটি লিখুন:
$ pip টিকটকেন ইনস্টল করুনটিকটকেন প্যাকেজ হল একটি বাইট পেয়ার এনকোডিং টোকেনাইজার। এটি OpenAI মডেলগুলির সাথে ব্যবহার করা হয় এবং পাঠ্যকে টোকেনে বিভক্ত করে। এটি ব্যবহার করা হয় কারণ প্রদত্ত স্ট্রিংগুলি নির্দিষ্ট OpenAI মডেলের জন্য কখনও কখনও একটু লম্বা হয়। সুতরাং, এটি পাঠ্যকে বিভক্ত করে এবং টোকেনে এনকোড করে। এখন, মূল প্রকল্পে কাজ করা যাক।
থেকে ল্যাংচেইন এমবেডিং . openai আমদানি OpenAIEmbeddingsমডেল = OpenAIEmbeddings ( openai_api_key = 'sk-YOUR_API_KEY'
স্ট্রিং = [' এই হয় জন্য প্রদর্শন. ', ' এই স্ট্রিং হয় এছাড়াও জন্য প্রদর্শন. ', ' এই হয় আরেকটি ডেমো স্ট্রিং . ', ' এইটা হয় শেষ স্ট্রিং . ']
ফলাফল = model.embed_documents(স্ট্রিং)
মুদ্রণ (ফলাফল)
মুদ্রণ (লেন (ফলাফল))
OpenAIEmbeddings ক্লাসটি 'langchain.embeddings.openai' প্যাকেজ থেকে আমদানি করা হয়। পূর্ববর্তী উদাহরণে, আমরা পরিবেশ পরিবর্তনশীল হিসাবে API কী সেট করেছি। কিন্তু এটির জন্য, আমরা এটি সরাসরি কনস্ট্রাক্টরের কাছে প্রেরণ করি। সুতরাং, আমাদের এখানে 'os' মডিউল আমদানি করতে হবে না।
ওপেনএআই মডেল যা ওপেনএআইইএমবেডিংস চালু করার পরে, আমরা এটিতে গোপন API কী পাস করি। পরের লাইনে, টেক্সট স্ট্রিংগুলি নির্দিষ্ট করা হয়েছে। এখানে, আমরা অবজেক্ট স্ট্রিং-এ চারটি টেক্সট স্ট্রিং সংরক্ষণ করি। এই স্ট্রিংগুলি হল 'এটি প্রদর্শনের জন্য', 'এই স্ট্রিংটি প্রদর্শনের জন্যও', 'এটি আরেকটি ডেমো স্ট্রিং', এবং 'এটি শেষ স্ট্রিং।'
আপনি প্রতিটিকে কমা দিয়ে আলাদা করে একাধিক স্ট্রিং নির্দিষ্ট করতে পারেন। পূর্ববর্তী উদাহরণে, embed_text() পদ্ধতিটি বলা হয়েছে কিন্তু আমরা এখানে এটি ব্যবহার করতে পারি না কারণ এটি শুধুমাত্র একক পাঠ্য স্ট্রিং এর জন্য কাজ করে। একাধিক স্ট্রিং এম্বেড করার জন্য, আমাদের যে পদ্ধতিটি রয়েছে তা হল embed_document()। সুতরাং, আমরা এটিকে একটি যুক্তি হিসাবে নির্দিষ্ট OpenAI মডেল এবং পাঠ্য স্ট্রিং সহ কল করি। ফলাফল বস্তুতে আউটপুট রাখা হয়। অবশেষে, আউটপুট প্রদর্শনের জন্য, পাইথন প্রিন্ট() পদ্ধতিটি অবজেক্ট ফলাফলের সাথে এর প্যারামিটার হিসাবে ব্যবহার করা হয়। এছাড়াও, আমরা এই ভাসমান মানগুলির দৈর্ঘ্য দেখতে চাই। সুতরাং, আমরা print() পদ্ধতির মধ্যে len() মেথড চালু করি।
পুনরুদ্ধার করা আউটপুট নিম্নলিখিত ছবিতে প্রদান করা হয়েছে:
উপসংহার
এই পোস্টটি ল্যাংচেইনে এম্বেড করার ধারণা নিয়ে আলোচনা করেছে। আমরা শিখেছি এমবেডিং কি এবং এটি কিভাবে কাজ করে। টেক্সট স্ট্রিং এম্বেড করার একটি ব্যবহারিক বাস্তবায়ন এখানে দেখানো হয়েছে। আমরা দুটি চিত্র তুলে ধরেছি। প্রথম উদাহরণটি একটি একক টেক্সট স্ট্রিং এর এমবেডিং পুনরুদ্ধার করার জন্য কাজ করেছে এবং দ্বিতীয় উদাহরণটি বোঝা গেছে কিভাবে OpenAI এম্বেডিং মডেল ব্যবহার করে একাধিক ইনপুট স্ট্রিং এর এমবেডিং পাওয়া যায়।