כיצד להוסיף זיכרון לשרשרת עם מספר כניסות ב-LangChain?

Kyzd Lhwsyp Zykrwn Lsrsrt M Mspr Knyswt B Langchain



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

מדריך זה ימחיש את התהליך של הוספת זיכרון לשרשרת עם מספר כניסות ב-LangChain.

כיצד להוסיף זיכרון לשרשרת עם מספר כניסות ב-LangChain?

ניתן להוסיף את הזיכרון ל-LLMs או Chatbots כדי לאחסן את ההודעות או הנתונים העדכניים ביותר, כך שהמודל יוכל להבין את ההקשר של הפקודה. כדי ללמוד את התהליך של הוספת זיכרון לשרשרת עם מספר כניסות ב-LangChain, פשוט עברו על השלבים הבאים:







שלב 1: התקן מודולים

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



pip להתקין langchain



התקן את chromadb כדי לאחסן את הנתונים המשמשים את הזיכרון במאגר הווקטורים של Chroma:





pip להתקין chromadb

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



pip להתקין tiktoken

OpenAI הוא המודול שניתן להשתמש בו לבניית רשתות ו-LLMs בשיטת OpenAI():

pip להתקין openai

שלב 2: הגדר את הסביבה והעלאת נתונים

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

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

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

העלה את המסמכים באמצעות ספריית הקבצים לבניית השרשראות במסגרת LangChain:

מ גוגל. ET AL יְבוּא קבצים

הועלה = קבצים. להעלות ( )

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

לאחר העלאת המסמך בהצלחה, פשוט ייבא את הספריות הנדרשות ממודול Langchain:

מ langchain. הטבעות . openai יְבוּא OpenAIEbeddings

מ langchain. הטבעות . לִדבּוֹק יָחָד יְבוּא Cohere Embeddings

מ langchain. text_splitter יְבוּא CharacterTextSplitter

מ langchain. חנויות וקטורים . חיפוש_וקטור אלסטי יְבוּא ElasticVectorSearch

מ langchain. חנויות וקטורים יְבוּא Chroma

מ langchain. דוקסטור . מסמך יְבוּא מסמך

שלב 4: בניית זיכרון באמצעות מאגר נתונים Chroma

כעת, התחל לבנות את המרחב הווקטורי כדי לאחסן את ההטמעות והאסימונים של המסמך שהועלה קודם לכן:

עם לִפְתוֹחַ ( 'state_of_the_union.txt' ) כפי ש ו:
מצב האומה = ו. לקרוא ( )
text_splitter = CharacterTextSplitter ( chunk_size = 1000 , chunk_overlap = 0 )
טקסטים = text_splitter. split_text ( מצב האומה )

הטבעות = OpenAIEbeddings ( )

הגדר את מסד הנתונים של Chroma לאחסון הטקסט וההטבעות מהמסמך:

docsearch = Chroma. from_texts (

טקסטים , הטבעות , מטא נתונים = [ { 'מָקוֹר' : אני } ל אני ב טווח ( רק ( טקסטים ) ) ]

)

בדוק את הזיכרון על ידי שאילת הפקודה במשתנה השאילתה ולאחר מכן הפעל את שיטת similarity_search():

שאילתא = 'מתי הוקמה נאט'ו'

מסמכים = docsearch. חיפוש_דמיון ( שאילתא )

שלב 5: הגדרת תבנית הנחיות

שלב זה מסביר את תהליך קביעת התצורה של התבנית עבור ההנחיות על ידי ייבוא ​​הספריות הבאות:

מ langchain. שרשראות . שאלה_תשובה יְבוּא load_qa_chain

מ langchain. llms יְבוּא OpenAI

מ langchain. הנחיות יְבוּא PromptTemplate

מ langchain. זיכרון יְבוּא ConversationBufferMemory

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

תבנית = '''את דוגמנית שמדברת עם בן אדם
בהתחשב בנתחים שחולצו ממסמך ארוך ושאלה, צור תשובה סופית

{הֶקשֵׁר}

{היסט}
אנושי: {קלט}
צ'אטבוט:'''


מיידי = PromptTemplate (
משתני_קלט = [ 'היסט' , 'קֶלֶט' , 'הֶקשֵׁר' ] , תבנית = תבנית
)
זיכרון = ConversationBufferMemory ( זיכרון_מפתח = 'היסט' , input_key = 'קֶלֶט' )
שַׁרשֶׁרֶת = load_qa_chain (
OpenAI ( טֶמפֶּרָטוּרָה = 0 ) , סוג_שרשרת = 'דברים' , זיכרון = זיכרון , מיידי = מיידי
)

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

זה הזמן לבדוק את המודל על ידי שאילת השאלה באמצעות משתנה השאילתה ולאחר מכן ביצוע שיטת chain() עם הפרמטרים שלה:

שאילתא = 'מתי הוקמה נאט'ו'

שַׁרשֶׁרֶת ( { 'מסמכי_קלט' : מסמכים , 'קֶלֶט' : שאילתא } , החזר_בלבד_פלטים = נָכוֹן )

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

הדפס ( שַׁרשֶׁרֶת. זיכרון . בַּלָם )

זה הכל על הוספת זיכרון לשרשרת עם כניסות מרובות ב-LangChain.

סיכום

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