בדף הזה מוסבר איך ליצור אפליקציות מבוססות-LLM באמצעות LangChain. הסקירות הכלליות בדף הזה מקשרות למדריכים לפרוצדורות ב-GitHub.
מה זה LangChain?
LangChain הוא framework לניהול LLM שעוזר למפתחים ליצור אפליקציות של AI גנרטיבי או תהליכי עבודה של RAG (שליפה משופרת גנרטיבית). הוא מספק את המבנה, הכלים והרכיבים לייעול תהליכי עבודה מורכבים של מודלים גדולים של שפה (LLM). מידע נוסף על מודלים של שפה גדולה (LLM), על תרחישי השימוש בהם ועל המודלים והשירותים הספציפיים ש-Google מציעה זמין בסקירה הכללית על מושגים ושירותים של LLM ב- Google Cloud.
מידע נוסף על LangChain זמין בדף Google LangChain. מידע נוסף על מסגרת LangChain זמין במסמכי העזרה של המוצר LangChain.
רכיבי LangChain ל-AlloyDB
כאן אפשר ללמוד איך להשתמש ב-LangChain עם AlloyDB. במדריך הזה ליצירת אפליקציה מהירה, יוצרים אפליקציה שמקבלת גישה למערך נתונים של סרטים ב-Netflix, כדי שהמשתמשים יוכלו לקיים אינטראקציה עם נתוני הסרטים.
מאגר וקטורים ל-AlloyDB
מאגר וקטורים מאחזר ומאחסן מסמכים ומטא-נתונים ממסד נתונים וקטורי. מאגר וקטורים מאפשר לאפליקציה לבצע חיפושים סמנטיים שמפרשים את המשמעות של שאילתת משתמש. סוג החיפוש הזה נקרא חיפוש וקטורי, והוא יכול למצוא נושאים שתואמים לשאילתה מבחינה מושגית. בזמן השאילתה, מאגר הווקטורים מאחזר את וקטורי ההטמעה שהכי דומים להטמעה של בקשת החיפוש. ב-LangChain, מאגר וקטורים אחראי לאחסון נתונים מוטמעים ולביצוע חיפוש וקטורים בשבילכם.
כדי לעבוד עם מאגר וקטורים ב-AlloyDB, משתמשים במחלקה AlloyDBVectorStore.
מידע נוסף זמין במסמכי העזרה של המוצר בנושא מאגרי וקטורים של LangChain.
מדריך להליך של חנות וקטורים
במדריך ל-AlloyDB בנושא מאגר וקטורים מוסבר איך:
- התקנת חבילת השילוב ו-LangChain
- יוצרים אובייקט
AlloyDBEngineומגדירים מאגר חיבורים למסד הנתונים שלכם ב-AlloyDB - אתחול טבלה במאגר הווקטורים
- הגדרת שירות הטמעה באמצעות
VertexAIEmbeddings - אתחול
AlloyDBVectorStore - הוספה ומחיקה של מסמכים
- חיפוש מסמכים דומים
- הוספת אינדקס וקטורי כדי לשפר את ביצועי החיפוש
- יצירת מאגר וקטורים מותאם אישית כדי להתחבר למסד נתונים קיים של AlloyDB ל-PostgreSQL שיש בו טבלה עם הטמעות וקטורים
רכיב טעינה של מסמכים ל-AlloyDB
טוען המסמכים שומר, טוען ומוחק אובייקטים של LangChain Document
לדוגמה, אפשר לטעון נתונים לעיבוד ב-embeddings ולאחסן אותם במאגר וקטורים או להשתמש בהם ככלי כדי לספק הקשר ספציפי לשרשרות.
כדי לטעון מסמכים מ-AlloyDB, משתמשים במחלקה AlloyDBLoader. AlloyDBLoader מחזירה רשימה של מסמכים מטבלה, כשהעמודה הראשונה משמשת לתוכן הדף וכל שאר העמודות משמשות למטא-נתונים. בטבלת ברירת המחדל, העמודה הראשונה היא תוכן הדף והעמודה השנייה היא מטא-נתוני JSON. כל שורה הופכת למסמך. הוראות להתאמה אישית של ההגדרות האלה מפורטות במדריך התהליך.
אפשר להשתמש במחלקה AlloyDBSaver כדי לשמור ולמחוק מסמכים.
מידע נוסף זמין במאמר בנושא LangChain Document loaders.
מדריך להעלאת מסמכים
במדריך AlloyDB לטעינת מסמכים מוסבר איך לבצע את הפעולות הבאות:
- התקנת חבילת השילוב ו-LangChain
- טעינת מסמכים מטבלה
- הוספת מסנן לרכיב טעינה
- התאמה אישית של החיבור והאימות
- התאמה אישית של מבנה המסמך על ידי ציון תוכן ומטא-נתונים של הלקוח
- איך משתמשים ב-
AlloyDBSaverומתאימים אותו אישית כדי לאחסן ולמחוק מסמכים
היסטוריית הודעות צ'אט ב-AlloyDB
אפליקציות של שאלות ותשובות צריכות היסטוריה של מה שנאמר בשיחה כדי לספק לאפליקציה הקשר למענה על שאלות נוספות מהמשתמש. המחלקה ChatMessageHistory של LangChain מאפשרת לאפליקציה לשמור הודעות במסד נתונים ולאחזר אותן כשצריך כדי לגבש תשובות נוספות. הודעה יכולה להיות שאלה, תשובה, הצהרה, ברכה או כל קטע טקסט אחר שהמשתמש או האפליקציה מספקים במהלך השיחה. המחלקה ChatMessageHistory שומרת כל הודעה ומקשרת בין ההודעות בכל שיחה.
AlloyDB מרחיב את המחלקה הזו באמצעות AlloyDBChatMessageHistory.
מדריך להפעלת היסטוריית ההודעות בצ'אט
במדריך AlloyDB להיסטוריית הודעות בצ'אט מוסבר איך:
- התקנת חבילת השילוב ו-LangChain
- יוצרים אובייקט
AlloyDBEngineומגדירים מאגר חיבורים למסד הנתונים שלכם ב-AlloyDB - הפעלת טבלה
- הפעלת האתחול של המחלקה
AlloyDBChatMessageHistoryכדי להוסיף ולמחוק הודעות - יצירת שרשרת להיסטוריית ההודעות באמצעות LangChain Expression Language (LCEL)