כיצד להשתמש בספריית 'asyncio' ב-LangChain?

Kyzd Lhstms Bspryyt Asyncio B Langchain



LangChain היא מסגרת לבניית מודלים של שפה גדולים באמצעות בינה מלאכותית, כך שהיא יכולה ליצור טקסט ולקיים אינטראקציה עם בני אדם. האסינציו היא הספרייה שניתן להשתמש בה כדי לקרוא למודל כמו LLM מספר פעמים באמצעות אותה פקודה או שאילתה. זה גם מספק דחיפה במהירות העבודה של מודל LLM שלנו כדי ליצור טקסט ביעילות.

מאמר זה מדגים כיצד להשתמש בספריית 'asyncio' ב-LangChain.







כיצד להשתמש/להפעיל את ספריית 'asyncio' ב-LangChain?

Async API יכול לשמש כתמיכה עבור LLMs כך לשימוש בספריית asyncio ב LangChain, פשוט עקוב אחר המדריך הזה:



התקן דרישות מוקדמות



התקן את מודול LangChain כדי להתחיל להשתמש בספריית asyncio ב-LangChain כדי לקרוא במקביל ל-LLMs:





צִפצוּף להתקין langchain



מודול OpenAI נדרש גם כדי לבנות LLMs באמצעות OpenAIEmbeddings:

צִפצוּף להתקין openai

לאחר ההתקנות, פשוט הגדר את מפתח ה-API של OpenAI באמצעות הקוד הבא:

לייבא אותנו
ייבוא ​​getpass

os.environ [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'מפתח API של OpenAI:' )

שימוש ב-asyncio לבניית LLM

ניתן להשתמש בספריית asyncio לתמיכה ב-LLMs מכיוון שהקוד הבא משתמש בה ב-LangChain:

יְבוּא זְמַן
ייבוא ​​אסינציו
#ייבוא ​​ספריות אסינציו מ-LangChain כדי להשתמש בו
מאת langchain.llms ייבוא ​​OpenAI

#הגדיר את הפונקציה לקבל את חותמת הזמן של יצירה סדרתית
def gener_serially ( ) :
llm = OpenAI ( טֶמפֶּרָטוּרָה = 0.9 )
ל _ ב טווח ( 5 ) :
resp = llm.generate ( [ 'מה אתה עושה?' ] )
הדפס ( resp.דורות [ 0 ] [ 0 ] .טֶקסט )

#הגדיר את הפונקציה כדי לקבל את חותמת הזמן של יצירה סינכרונית
async בהגדרת async_generate ( llm ) :
resp = await llm.generate ( [ 'מה אתה עושה?' ] )
הדפס ( resp.דורות [ 0 ] [ 0 ] .טֶקסט )

#הגדר את הפונקציה כדי לקבל את חותמת הזמן של יצירת נתונים במקביל
async def gener_concurrently ( ) :
llm = OpenAI ( טֶמפֶּרָטוּרָה = 0.9 )
משימות = [ async_generate ( llm ) ל _ ב טווח ( 10 ) ]
ממתין asyncio.gather ( * משימות )

#הגדר את הפלט המתקבל באמצעות ה-asyncio כדי לקבל פלט במקביל
s = time.perf_counter ( )
ממתין ליצור_במקביל ( )
חלף = time.perf_counter ( ) - ס
הדפס ( '\033[1m' + ו 'במקביל בוצע ב-{elapsed:0.2f} שניות.' + '\033[0m' )

#הגדר את חותמת הזמן עבור הפלט המתקבל כדי לקבל פלט טורי
s = time.perf_counter ( )
ליצור_סדרתי ( )
חלף = time.perf_counter ( ) - ס
הדפס ( '\033[1m' + ו 'הסדרה בוצעה ב-{elapsed:0.2f} שניות.' + '\033[0m' )

הקוד לעיל משתמש בספריית asyncio כדי למדוד את הזמן להפקת טקסטים באמצעות שתי פונקציות שונות כגון gener_serially() ו gener_concurrently() :

תְפוּקָה

צילום המסך הבא מציג שמורכבות הזמן הן עבור הפונקציות והן עבור מורכבות הזמן של יצירת טקסט במקביל טובה יותר מאשר יצירת טקסט סדרתי:

זה הכל על השימוש בספריית 'asyncio' לבניית LLMs ב-LangChain.

סיכום

כדי להשתמש בספריית asyncio ב-LangChain, פשוט התקן את מודולי LangChain ו-OpenAI כדי להתחיל בתהליך. ה-API של Async יכול להיות מועיל בעת בניית מודל LLM ליצירת צ'אטבוטים כדי ללמוד משיחות קודמות. מדריך זה הסביר את תהליך השימוש בספריית asyncio כדי לתמוך ב-LLMs המשתמשים במסגרת LangChain.