كيفية استخدام مكتبة 'asyncio' في LangChain؟

Kyfyt Astkhdam Mktbt Asyncio Fy Langchain



LangChain هو إطار عمل لبناء نماذج لغوية كبيرة باستخدام الذكاء الاصطناعي حتى يتمكن من إنشاء نص والتفاعل مع البشر. Asyncio هي المكتبة التي يمكن استخدامها لاستدعاء نموذج مثل LLM عدة مرات باستخدام نفس الأمر أو الاستعلام. كما أنه يوفر زيادة في سرعة عمل نموذج LLM الخاص بنا لإنشاء النص بكفاءة.

توضح هذه المقالة كيفية استخدام مكتبة 'asyncio' في LangChain.







كيفية استخدام/تنفيذ مكتبة 'asyncio' في LangChain؟

يمكن استخدام Async API كدعم لمجالات LLM، لذا لاستخدام مكتبة asyncio في LangChain، ما عليك سوى اتباع هذا الدليل:



تثبيت المتطلبات الأساسية



قم بتثبيت وحدة LangChain لبدء استخدام مكتبة asyncio في LangChain لاستدعاء LLMs بشكل متزامن:





نقطة ثَبَّتَ com.langchain



وحدة OpenAI مطلوبة أيضًا لبناء LLMs باستخدام OpenAIEmbeddings:

نقطة ثَبَّتَ openai

بعد التثبيت، ما عليك سوى تكوين مفتاح OpenAI API باستخدام الكود التالي:

استيراد لنا
استيراد getpass

os.environ [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'مفتاح واجهة برمجة تطبيقات OpenAI:' )

استخدام asyncio لبناء LLM

يمكن استخدام مكتبة asyncio لدعم LLMs حيث يستخدمها الكود التالي في LangChain:

يستورد وقت
استيراد غير متزامن
# استيراد مكتبات غير متزامنة من LangChain لاستخدامها
من langchain.llms قم باستيراد OpenAI

# تحديد الوظيفة للحصول على الطابع الزمني للجيل التسلسلي
def generator_serial ( ) :
llm = OpenAI ( درجة حرارة = 0.9 )
ل _ في يتراوح ( 5 ) :
resp = llm.generate ( [ 'ماذا تفعل؟' ] )
مطبعة ( resp.أجيال [ 0 ] [ 0 ] .نص )

# تحديد الوظيفة للحصول على الطابع الزمني للإنشاء المتزامن
غير متزامن ديف async_generate ( LLM ) :
resp = انتظر llm.generate ( [ 'ماذا تفعل؟' ] )
مطبعة ( resp.أجيال [ 0 ] [ 0 ] .نص )

#define الوظيفة للحصول على الطابع الزمني لإنشاء البيانات بشكل متزامن
غير متزامن def generator_concurrently ( ) :
llm = OpenAI ( درجة حرارة = 0.9 )
المهام = [ async_generate ( LLM ) ل _ في يتراوح ( 10 ) ]
في انتظار asyncio.gather ( * مهام )

# قم بتكوين الإخراج الناتج باستخدام غير المتزامن للحصول على الإخراج المتزامن
s = time.perf_counter ( )
انتظر إنشاء_متزامن ( )
المنقضي = time.perf_counter ( ) - س
مطبعة ( '\033[1م' + و 'تم التنفيذ المتزامن خلال {elapsed:0.2f} ثانية.' + '\033[0م' )

# قم بتكوين الطابع الزمني للإخراج الناتج للحصول على الإخراج التسلسلي
s = time.perf_counter ( )
create_serially ( )
المنقضي = time.perf_counter ( ) - س
مطبعة ( '\033[1م' + و 'تم تنفيذ المسلسل خلال {elapsed:0.2f} ثانية.' + '\033[0م' )

يستخدم الكود أعلاه مكتبة asyncio لقياس الوقت اللازم لإنشاء النصوص باستخدام وظيفتين متميزتين مثل توليد_التسلسل () و إنشاء_متزامن() :

انتاج |

تعرض لقطة الشاشة التالية أن التعقيد الزمني لكل من الوظائف والتعقيد الزمني لإنشاء النص المتزامن أفضل من إنشاء النص التسلسلي:

يتعلق الأمر كله باستخدام مكتبة 'asyncio' لإنشاء LLMs في LangChain.

خاتمة

لاستخدام مكتبة asyncio في LangChain، ما عليك سوى تثبيت وحدات LangChain وOpenAI لبدء العملية. يمكن أن تكون Async API مفيدة أثناء إنشاء نموذج LLM لإنشاء روبوتات الدردشة للتعلم من المحادثات السابقة. لقد شرح هذا الدليل عملية استخدام مكتبة asyncio لدعم LLMs باستخدام إطار عمل LangChain.