كيفية استخدام حفلات الزفاف في LangChain

Kyfyt Astkhdam Hflat Alzfaf Fy Langchain



التضمينات عبارة عن فهرس لارتباط السلسلة النصية ويتم التعبير عنها بواسطة متجه (قائمة) من الأعداد الصحيحة ذات الفاصلة العائمة. تعمل المسافة بين متجهين كمقياس لمدى ارتباطهما الوثيق ؛ كلما كانت المسافة أصغر ، كلما اقتربت الصلة. تم تصميم فئة LangChain Embedding لتكون بمثابة واجهة لتضمين خدمات مثل OpenAI و HuggingFace وغيرها.

يتم توفير طريقتين ، embed_query () و embed_documents () ، بواسطة الفئة الأساسية. يعمل أولهما على مستند واحد ، بينما يمكن تشغيل المستند الآخر على العديد من المستندات.

تستوعب هذه المقالة الشرح العملي للتضمين في LangChain باستخدام زخارف نص OpenAI.







مثال: الحصول على نص إدخال فردي باستخدام دمج نص OpenAI

بالنسبة إلى الرسم التوضيحي الأول ، نقوم بإدخال سلسلة نصية واحدة واسترداد نص OpenAI المضمن لها. يبدأ البرنامج بتثبيت المكتبات المطلوبة.



المكتبة الأولى التي نحتاج إلى تثبيتها في مشروعنا هي LangChain. لا يأتي مع مكتبة Python القياسية لذلك علينا تثبيته بشكل منفصل. نظرًا لأن langchain متاح على PyPi ، فيمكننا تثبيته بسهولة باستخدام الأمر pip على الجهاز. وبالتالي ، نقوم بتشغيل الأمر التالي لتثبيت مكتبة LangChain:



تثبيت langchain $ pip

يتم تركيب المكتبة بمجرد استيفاء المتطلبات.





نحتاج أيضًا إلى تثبيت مكتبة OpenAI في مشروعنا حتى نتمكن من الوصول إلى نماذج OpenAI. يمكن افتتاح هذه المكتبة عن طريق كتابة أمر النقطة:

تثبيت Openai بالدولار الأمريكي

الآن ، تم تثبيت كلتا المكتبتين المطلوبتين في ملف مشروعنا. علينا استيراد الوحدات المطلوبة.



من لانجشين. حفلات الزفاف . أوبناي يستورد OpenAIE حفلات الزفاف

يستورد أنت

أنت . تقريبًا [ 'OPENAI_API_KEY' ] = 'sk-YOUR_API_KEY'

للحصول على حفلات زفاف OpenAI ، يتعين علينا استيراد فئة OpenAIEmbeddings من الحزمة “langchain.embeddings.openai”. بعد ذلك ، قمنا بتعيين مفتاح API كمتغير البيئة. نحتاج إلى مفتاح API السري للوصول إلى نماذج OpenAI المختلفة. يمكن إنشاء هذا المفتاح من منصة OpenAI. ما عليك سوى الاشتراك والحصول على مفتاح سري من قسم 'عرض المفتاح السري' في ملفك الشخصي. يمكن استخدام هذا المفتاح عبر مشاريع مختلفة لعميل معين.

تُستخدم متغيرات البيئة لتخزين مفاتيح API لبيئة معينة بدلاً من ترميزها في الوظائف. لذلك ، لتعيين مفتاح API كمتغير البيئة ، يتعين علينا استيراد وحدة 'نظام التشغيل'. يتم استخدام طريقة os.environ () لتعيين مفتاح API كمتغير البيئة. يحتوي على اسم وقيمة. الاسم الذي قمنا بتعيينه هو 'OPENAI_API_KEY' ويتم تعيين مفتاح السر على 'القيمة'.

نموذج = OpenAIE حفلات الزفاف ( )

أدخل نصآ = 'هذا للتظاهر'.

حصيلة = نموذج. embed_query ( أدخل نصآ )

مطبعة ( حصيلة )

مطبعة ( فقط ( حصيلة ) )

لقد تعاملنا بالفعل مع برنامج تضمين تضمين OpenAI. بعد ذلك ، نسمي مُنشئ فئة OpenAIEmbedding. يوفر OpenAI مجموعة متنوعة من نماذج التضمين ولكن عليك أن تدفع مقابلها. هنا ، نذهب مع نموذج التضمين الافتراضي لـ OpenAI ، أي text-embedding-ada-002 ، وهو مجاني. عندما لا تقوم بتوفير أي اسم نموذج كمعامل ، يتم استخدام النموذج الافتراضي.

ثم نحدد النص الذي يجب أن نحصل على التضمين له. تم تحديد النص على أنه 'هذا للتوضيح'. وتخزينها في متغير input_text. بعد ذلك ، يتم استدعاء طريقة embed_query () لتضمين النص المقدم بالنموذج المستخدم ونص الإدخال الذي يحتوي على سلسلة نصية لاسترداد التضمين الذي يتم توفيره كمعامل. يتم تعيين الزخارف المسترجعة إلى كائن النتيجة.

أخيرًا ، لعرض النتيجة ، لدينا طريقة بايثون print (). علينا ببساطة تمرير الكائن الذي يخزن القيمة التي نريد عرضها إلى طريقة print (). ومن ثم ، فإننا نستدعي هذه الوظيفة مرتين ؛ أولاً لعرض قائمة الأرقام العائمة وثانيًا لطباعة طول هذه القيم باستخدام طريقة len () معها.

يمكن رؤية قائمة القيم العائمة في اللقطة التالية بطول هذه القيم:

مثال: الحصول على نص / مستند إدخال متعدد باستخدام دمج نص OpenAI

بصرف النظر عن الحصول على التضمين لنص إدخال واحد ، يمكننا أيضًا استرداده لسلاسل إدخال متعددة. ننفذ هذا في هذا الرسم التوضيحي.

لقد قمنا بالفعل بتثبيت المكتبات في الرسم التوضيحي السابق. مكتبة أخرى نحتاج إلى تثبيتها هنا هي مكتبة تيكتوكين في Python. اكتب الأمر على الجهاز لتثبيته:

تثبيت $ Pip tiktoken

حزمة tiktoken هي رمز مميز لتشفير زوج البايت. يتم استخدامه مع نماذج OpenAI ويقوم بتقسيم النص إلى رموز مميزة. يتم استخدام هذا لأن السلاسل المتوفرة تكون أحيانًا طويلة بعض الشيء لنموذج OpenAI المحدد. لذلك ، يقوم بتقسيم النص وترميزه إلى رموز مميزة. الآن ، دعونا نعمل على المشروع الرئيسي.

من لانجشين. حفلات الزفاف . أوبناي يستورد OpenAIE حفلات الزفاف

نموذج = OpenAIE حفلات الزفاف ( openai_api_key = 'sk-YOUR_API_KEY'

سلاسل = ['
هذا يكون ل توضيح. '،' هذا خيط يكون أيضًا ل توضيح. '،' هذا يكون عرض آخر خيط . '،' هذا يكون آخر خيط . ']

النتيجة = model.embed_documents (سلاسل)

طباعة (نتيجة)

طباعة (لين (نتيجة))

يتم استيراد فئة OpenAIEmbeddings من الحزمة “langchain.embeddings.openai”. في المثال السابق ، قمنا بتعيين مفتاح API كمتغير البيئة. لكن بالنسبة لهذا ، نمرره مباشرة إلى المنشئ. لذلك ، لا يتعين علينا استيراد وحدة 'نظام التشغيل' هنا.

بعد استدعاء نموذج OpenAI وهو OpenAIEmbeddings ، نقوم بتمرير مفتاح API السري إليه. في السطر التالي ، يتم تحديد سلاسل النص. هنا ، نقوم بتخزين أربع سلاسل نصية في سلاسل الكائن. هذه السلاسل هي 'هذا للتوضيح' ، و 'هذه السلسلة أيضًا للشرح' ، و 'هذه سلسلة تجريبية أخرى' ، و 'هذه السلسلة هي الأخيرة.'

يمكنك تحديد عدة سلاسل ببساطة عن طريق فصل كل منها بفاصلة. في المثال السابق ، تم استدعاء طريقة embed_text () ولكن لا يمكننا استخدامها هنا لأنها تعمل فقط مع سلسلة نصية واحدة. لتضمين سلاسل متعددة ، الطريقة التي لدينا هي embed_document (). لذلك ، نسميها بنموذج OpenAI المحدد والسلاسل النصية كوسيطة. يتم الاحتفاظ بالإخراج في كائن النتيجة. أخيرًا ، لعرض الإخراج ، يتم استخدام طريقة Python print () مع نتيجة الكائن كمعامل لها. أيضًا ، نريد أن نرى طول هذه القيم العائمة. وبالتالي ، فإننا نستدعي طريقة len () ضمن طريقة print ().

يتم توفير المخرجات المستردة في الصورة التالية:

خاتمة

ناقش هذا المنشور مفهوم التضمين في LangChain. تعلمنا ما هو التضمين وكيف يعمل. يظهر هنا تطبيق عملي لتضمين سلاسل النص. قمنا بتنفيذ اثنين من الرسوم التوضيحية. عمل المثال الأول على استرجاع تضمين سلسلة نصية واحدة والمثال الثاني فهم كيفية الحصول على تضمين سلاسل إدخال متعددة باستخدام نموذج تضمين OpenAI.