כיצד להשתמש ב-Async API Agent ב-LangChain?

Kyzd Lhstms B Async Api Agent B Langchain



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

מתאר מהיר

פוסט זה מכיל את הסעיפים הבאים:

כיצד להשתמש ב-Async API Agent ב-LangChain?

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







שלב 1: התקנת מסגרות

קודם כל, התקן את מסגרת LangChain כדי לקבל את התלות שלה ממנהל החבילות של Python:



pip להתקין langchain



לאחר מכן, התקן את מודול OpenAI כדי לבנות את מודל השפה כמו llm ולהגדיר את הסביבה שלו:





pip להתקין openai

שלב 2: OpenAI Environment

השלב הבא לאחר התקנת המודולים הוא הקמת הסביבה באמצעות מפתח ה-API של OpenAI ו Serper API כדי לחפש נתונים מגוגל:



יְבוּא אתה
יְבוּא getpass

אתה . בְּעֵרֶך [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'מפתח API של OpenAI:' )
אתה . בְּעֵרֶך [ 'SERPER_API_KEY' ] = getpass . getpass ( 'מפתח API של Serper:' )

שלב 3: ייבוא ​​ספריות

כעת כשהסביבה מוגדרת, פשוט ייבא את הספריות הנדרשות כמו asyncio וספריות אחרות באמצעות התלות של LangChain:

מ langchain. סוכנים יְבוּא initialize_agent , load_tools
יְבוּא זְמַן
יְבוּא אסינציו
מ langchain. סוכנים יְבוּא AgentType
מ langchain. llms יְבוּא OpenAI
מ langchain. התקשרויות חוזרות . stdout יְבוּא StdOutCallbackHandler
מ langchain. התקשרויות חוזרות . נותבים יְבוּא LangChainTracer
מ aiohttp יְבוּא ClientSession

שלב 4: שאלות התקנה

הגדר מערך שאלות המכיל מספר שאילתות הקשורות לדומיינים או לנושאים שונים שניתן לחפש באינטרנט (Google):

שאלות = [
'מי המנצח באליפות ארה'ב הפתוחה ב-2021' ,
'מה הגיל של החבר של אוליביה ויילד' ,
'מי הזוכה בתואר העולם בנוסחה 1' ,
'מי זכה בגמר הנשים הפתוחה ב-2021' ,
'מי בעלה של ביונסה ומה גילו' ,
]

שיטה 1: שימוש בביצוע סדרתי

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

llm = OpenAI ( טֶמפֶּרָטוּרָה = 0 )
כלים = load_tools ( [ 'google-header' , 'ללמ-מתמטיקה' ] , llm = llm )
סוֹכֵן = initialize_agent (
כלים , llm , סוֹכֵן = AgentType. ZERO_SHOT_REACT_DESCRIPTION , מִלוּלִי = נָכוֹן
)
ס = זְמַן . perf_counter ( )
#configuring מונה זמן כדי לקבל את הזמן המשמש לתהליך המלא
ל ש ב שאלות:
סוֹכֵן. לָרוּץ ( ש )
חלף = זְמַן . perf_counter ( ) - ס
#הדפס את הזמן הכולל שבו השתמש הסוכן לקבלת התשובות
הדפס ( ו 'הסדרה בוצעה ב-{elapsed:0.2f} שניות.' )

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

שיטה 2: שימוש בביצוע במקביל

שיטת הביצוע במקביל לוקחת את כל השאלות ומקבלת את תשובותיהן בו זמנית.

llm = OpenAI ( טֶמפֶּרָטוּרָה = 0 )
כלים = load_tools ( [ 'google-header' , 'ללמ-מתמטיקה' ] , llm = llm )
#הגדרת סוכן באמצעות הכלים לעיל כדי לקבל תשובות במקביל
סוֹכֵן = initialize_agent (
כלים , llm , סוֹכֵן = AgentType. ZERO_SHOT_REACT_DESCRIPTION , מִלוּלִי = נָכוֹן
)
#configuring מונה זמן כדי לקבל את הזמן המשמש לתהליך המלא
ס = זְמַן . perf_counter ( )
משימות = [ סוֹכֵן. מַחֲלָה ( ש ) ל ש ב שאלות ]
ממתין לאסינציו. לאסוף ( *משימות )
חלף = זְמַן . perf_counter ( ) - ס
#הדפס את הזמן הכולל שבו השתמש הסוכן לקבלת התשובות
הדפס ( ו 'בוצע במקביל תוך {elapsed:0.2f} שניות' )

תְפוּקָה
הביצוע במקביל מחלץ את כל הנתונים בו-זמנית ולוקח הרבה פחות זמן מהביצוע הסדרתי:

זה הכל על השימוש בסוכן Async API ב-LangChain.

סיכום

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