מתחילים עם סוכנים ב-LangChain?

Mthylym M Swknym B Langchain



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

מתאר מהיר

פוסט זה ידגים את הדברים הבאים:







מהם סוכנים בעיבוד שפה טבעית (NLP)



תחילת העבודה עם סוכנים ב-LangChain



סיכום





מהם סוכנים בעיבוד שפה טבעית (NLP)?

סוכנים הם המרכיבים החיוניים של יישום השפה הטבעית והם משתמשים בהבנת השפה הטבעית (NLU) כדי להבין שאילתות. סוכנים אלה הם תוכניות הפועלות כמו תבנית שיחה לקיום אינטראקציה עם בני אדם באמצעות רצף המשימות. סוכנים משתמשים במספר כלים שיכולים להיקרא על ידי הסוכן כדי לבצע מספר פעולות או לציין את המשימה הבאה לביצוע.

תחילת העבודה עם סוכנים ב-LangChain

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



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

ראשית, התחל עם תהליך התקנת מסגרת LangChain באמצעות ' צִפצוּף ' הפקודה כדי לקבל את התלות הנדרשת לשימוש בסוכנים:

pip להתקין langchain

התקן את מודול OpenAI לבניית ה-LLM והשתמש בו כדי להגדיר את הסוכנים ב-LangChain:

pip להתקין openai

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

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

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

שלב 2: הגדר את מודל הצ'אט

ייבא את מודול ChatOpenAI מה-LangChain כדי לבנות את ה-LLM באמצעות הפונקציה שלו:

מ langchain. chat_models יְבוּא ChatOpenAI

llm = ChatOpenAI ( טֶמפֶּרָטוּרָה = 0 )

ייבוא ​​כלים עבור הסוכן כדי להגדיר את המשימות או הפעולות הדרושות לביצוע על ידי הסוכן. הקוד הבא משתמש בשיטת get_word_length() כדי לקבל את אורך המילה שסופק על ידי המשתמש:

מ langchain. סוכנים יְבוּא כְּלִי

@ כְּלִי

def get_word_length ( מִלָה: str ) - > int :

'''מקבל את אורך המילה'''

לַחֲזוֹר רק ( מִלָה )

כלים = [ get_word_length ]

הגדר את התבנית או המבנה עבור מודל הצ'אט כדי ליצור ממשק לקיום צ'אט:

מ langchain. הנחיות יְבוּא ChatPromptTemplate , MessagesPlaceholder

מיידי = ChatPromptTemplate. מ_הודעות ( [

( 'מערכת' , 'העוזר שלך די מדהים, אבל צריך שיפור בחישוב אורכים' ) ,

( 'מִשׁתַמֵשׁ' , '{קֶלֶט}' ) ,

MessagesPlaceholder ( שם משתנה = 'agent_scratchpad' ) ,

] )

שלב 3: סוכן בנייה

ייבא את ספריית הכלים לבניית ה-LLM עם כלים באמצעות פונקציות OpenAI ממודול LangChain:

מ langchain. כלים . לְדַקלֵם יְבוּא format_tool_to_openai_function

llm_with_tools = llm. לִקְשׁוֹר (

פונקציות = [ format_tool_to_openai_function ( ט ) ל ט ב כלים ]

)

הגדר את הסוכן באמצעות סוכן הפונקציות OpenAI להשתמש במנתח הפלט כדי להגדיר את רצפי הפעולות/משימות:

מ langchain. סוכנים . format_scratchpad יְבוּא format_to_openai_functions

מ langchain. סוכנים . output_parsers יְבוּא OpenAIFunctionsAgentOutputParser

סוֹכֵן = {

'קֶלֶט' : למבדה x: x [ 'קֶלֶט' ] ,

'agent_scratchpad' : למבדה x: format_to_openai_functions ( איקס [ 'צעדי_ביניים' ] )

} | הנחיה | llm_with_tools | OpenAIFunctionsAgentOutputParser ( )

שלב 4: הזמנת הסוכן

השלב הבא משתמש בפונקציה invoke() כדי לקרוא לסוכן באמצעות הארגומנטים input ו-intermediate_steps:

סוֹכֵן. לעורר ( {

'קֶלֶט' : 'כמה אותיות במילה טוב' ,

'צעדי_ביניים' : [ ]

} )

שלב 5: הגדר את כלי סוכן

לאחר מכן, פשוט ייבא את ספריית AgentFinish כדי להגדיר את intermediate_steps על ידי שילוב כל השלבים ברצף להשלמת הפעילות:

מ langchain. סכֵימָה . סוֹכֵן יְבוּא AgentFinish
שלבי_ביניים = [ ]
בזמן נָכוֹן :
תְפוּקָה = סוֹכֵן. לעורר ( {
'קֶלֶט' : 'אותיות בטוב' ,
'צעדי_ביניים' : שלבי_ביניים
} )
אם זה דוגמה ( תְפוּקָה , AgentFinish ) :
תוצאה סופית = תְפוּקָה. return_values [ 'תְפוּקָה' ]
לשבור
אַחֵר :
הדפס ( תְפוּקָה. כְּלִי , תְפוּקָה. כלי_קלט )
כְּלִי = {
'קבל_אורך_מילה' : get_word_length
} [ תְפוּקָה. כְּלִי ]
תַצְפִּית = כְּלִי. לָרוּץ ( תְפוּקָה. כלי_קלט )
שלבי_ביניים. לְצַרֵף ( ( תְפוּקָה , תַצְפִּית ) )
הדפס ( תוצאה סופית )

שלב 6: בדיקת הסוכן

כעת, הפעל את הסוכן על ידי קריאה לשיטת AgentExecutor() לאחר ייבוא ​​הספרייה שלו מה-LangChain:

מ langchain. סוכנים יְבוּא AgentExecutor

agent_executor = AgentExecutor ( סוֹכֵן = סוֹכֵן , כלים = כלים , מִלוּלִי = נָכוֹן )

בסוף, הפעל את ה-agent_executor עם ארגומנט הקלט כדי להזין את השאילתה עבור הסוכן:

agent_executor. לעורר ( { 'קֶלֶט' : 'כמה אותיות במילה טוב' } )

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

זה הכל על תחילת העבודה עם הסוכנים במסגרת LangChain.

סיכום

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