בדף הזה מתוארים כמה תרחישי שימוש ליצירת אפליקציות מבוססות-LLM באמצעות LlamaIndex שמשולב עם Cloud SQL ל-PostgreSQL. כדי לעזור לכם לבחון גישות שונות או לפתח את האפליקציה שלכם, אנחנו מספקים קישורים לקובצי notebook ב-GitHub.
LlamaIndex הוא מסגרת תזמור של AI גנרטיבי שמאפשרת לכם לחבר ולשלב מקורות נתונים עם מודלים גדולים של שפה (LLM). אתם יכולים להשתמש ב-LlamaIndex כדי לבנות אפליקציות שמאפשרות לגשת למידע מנתונים פרטיים או מנתונים ספציפיים לדומיין ולשאול עליהם שאלות באמצעות שאילתות בשפה טבעית.
LlamaIndex משמש כגשר בין נתונים מותאמים אישית לבין מודלים מסוג LLM, ומאפשר פיתוח של אפליקציות עוזרות ידע עם יכולות של יצירה משופרת באמצעות אחזור (RAG).
LlamaIndex מתאים במיוחד לאפליקציות שמתמקדות במסמכים, כי הוא שם דגש על ניהול מסמכים מובנה, שמפשט את תהליך יצירת האינדקס והאחזור. המסגרת הזו כוללת מנגנוני שאילתות שעברו אופטימיזציה כדי לשפר את המהירות והרלוונטיות של הגישה למידע, וגם טיפול חזק במטא-נתונים לסינון מדויק.
מידע נוסף על מסגרת LlamaIndex זמין במסמכי העזרה של מוצר LlamaIndex.
רכיבי LlamaIndex
Cloud SQL ל-PostgreSQL מציע את הממשקים הבאים של LlamaIndex:
- מאגר וקטורים
- Document Store
- חנויות אינדקס
- חנויות ב-Chat
- Document Reader
מדריך למתחילים בנושא Cloud SQL ל-PostgreSQL
מאגר וקטורים
השילוב הזה של LlamaIndex מאפשר לכם להשתמש באופי החזק והניתן להרחבה של Cloud SQL ל-PostgreSQL כדי לאחסן ולנהל את נתוני LlamaIndex. שילוב של יכולות האינדוקס והשאילתות של LlamaIndex עם הביצועים הגבוהים והמהימנות של Cloud SQL for PostgreSQL מאפשר לכם ליצור אפליקציות יעילות יותר ועם יכולת התאמה לעומס (scaling) שמבוססות על LLM.
LlamaIndex מפרק מסמך – doc, טקסט ו-PDF – לרכיבי מסמך שנקראים צמתים. VectorStore יכול להכיל רק את וקטורי ההטמעה של תוכן הצמתים שהוזן ואת הטקסט של הצמתים. צומת (node) הוא מושג חשוב שמכיל תוכן טקסטואלי, הטמעות של וקטורים ומטא-נתונים. אפשר להחיל מסננים על שדות המטא-נתונים האלה כדי להגביל את אחזור הצמתים רק לאלה שתואמים לקריטריונים ספציפיים של מטא-נתונים.
כדי לעבוד עם מאגרי וקטורים ב-Cloud SQL ל-PostgreSQL, משתמשים במחלקה PostgresVectorStore.
מידע נוסף זמין במאמר בנושא LlamaIndex
Vector Stores.
אחסון הטמעות וקטורים באמצעות המחלקה PostgresVectorStore
במאמר Cloud SQL ל-PostgreSQL בנושא מאגר וקטורים מוסבר איך לבצע את הפעולות הבאות:
- אתחול טבלה לאחסון הטמעות וקטוריות
- יוצרים מופע של מחלקת הטמעה באמצעות כל מודל הטמעה של Llama Index.
- מאתחלים מאגר וקטורים של
PostgresVectorStoreשמוגדר כברירת מחדל. - יוצרים אינדקס ומריצים עליו שאילתה ממאגר הווקטורים באמצעות VectorStoreIndex.
- אפשר ליצור מאגר וקטורים בהתאמה אישית כדי לאחסן ולסנן מטא-נתונים בצורה יעילה.
- מוסיפים אינדקס ANN כדי לשפר את זמן האחזור של החיפוש.
מאגרי מסמכים ומאגרי אינדקסים
השילוב של LlamaIndex Document Stores מנהל אחסון ואחזור של מסמכים מובְנים, ומבצע אופטימיזציה ליכולות של LlamaIndex שמתמקדות במסמכים. Document Store stores the content related to the vectors in the vector store.
מידע נוסף זמין במסמכי העזרה של המוצר LlamaIndex Document Stores.
מאגרי אינדקסים מאפשרים לנהל אינדקסים כדי להריץ שאילתות במהירות ולאחזר נתונים, למשל סיכום, מילת מפתח ואינדקס עץ. Index ב-LlamaIndex הוא אחסון קל משקל רק למטא-נתונים של הצומת. כשמעדכנים את המטא-נתונים של צומת, לא צריך ליצור מחדש את האינדקס (לקרוא את הטמעת הדור) של הצומת המלא או של כל הצמתים במסמך.
מידע נוסף זמין במאמר LlamaIndex Index Stores.
אחסון מסמכים ואינדקסים
במחברת Cloud SQL ל-PostgreSQL בנושא Document Stores מוסבר איך להשתמש ב-Cloud SQL ל-PostgreSQL כדי לאחסן מסמכים ואינדקסים באמצעות המחלקות PostgresDocumentStore ו-PostgresIndexStore. תלמדו איך:
- יצירת
PostgresEngineבאמצעותPostgresEngine.from_instance(). - יוצרים טבלאות עבור DocumentStore ו-IndexStore.
- מאתחלים
PostgresDocumentStoreשמוגדר כברירת מחדל. - הגדרת Postgres
IndexStore. - הוספת מסמכים ל-
Docstore. - שימוש במאגרי מסמכים עם כמה אינדקסים.
- טעינת אינדקסים קיימים.
חנויות ב-Chat
מאגרי מידע של צ'אט שומרים את היסטוריית השיחות וההקשר שלהן באפליקציות שמבוססות על צ'אט, וכך מאפשרים אינטראקציות מותאמות אישית. מאגרי צ'אט מספקים מאגר מרכזי שבו נשמרות הודעות צ'אט משיחה מסוימת, ואפשר לשלוף אותן. כך מודל ה-LLM יכול לשמור על ההקשר ולספק תשובות רלוונטיות יותר בהתבסס על הדיאלוג המתמשך.
מודלים גדולים של שפה (LLM) הם בלי שמירת מצב כברירת מחדל, כלומר הם לא שומרים קלט קודם אלא אם הקלט הזה מסופק במפורש בכל פעם. כשמשתמשים במאגר שיחות, אפשר לשמור את ההקשר של השיחה, וכך המודל יכול ליצור עם הזמן תשובות רלוונטיות ועקביות יותר.
מודול הזיכרון ב-LlamaIndex מאפשר אחסון ושליפה יעילים של הקשר בשיחה, וכך מאפשר אינטראקציות מותאמות אישית ומודעות להקשר באפליקציות צ'אט. אפשר לשלב את מודול הזיכרון ב-LlamaIndex עם ChatStore ועם ChatMemoryBuffer.
מידע נוסף זמין במאמר LlamaIndex
Chat Stores.
שמירת היסטוריית הצ'אט
במחברת Cloud SQL ל-PostgreSQL לאחסון נתוני צ'אטים מוסבר איך להשתמש ב-Cloud SQL ל-PostgreSQL כדי לאחסן את היסטוריית הצ'אטים באמצעות המחלקה PostgresChatStore. תלמדו איך:
- יצירת
PostgresEngineבאמצעותPostgresEngine.from_instance(). - אתחול של
PostgresChatStore.כברירת מחדל - יצירת
ChatMemoryBuffer. - יוצרים מופע של מחלקת LLM.
- שימוש ב-
PostgresChatStoreללא הקשר של אחסון. - משתמשים ב-
PostgresChatStoreעם הקשר של אחסון. - איך יוצרים את Chat Engine ומשתמשים בו
Document Reader
הכלי Document Reader מאחזר ביעילות נתונים מ-Cloud SQL ל-PostgreSQL ומשנה אותם לפורמטים שתואמים ל-LlamaIndex לצורך יצירת אינדקס. הממשק של קורא המסמכים מספק שיטות לטעינת נתונים ממקור כ-Documents. Document
היא מחלקה שמאחסנת קטע טקסט ומטא-נתונים משויכים. אתם יכולים להשתמש ב-Document Readers כדי לטעון מסמכים שאתם רוצים לאחסן ב-Document Stores או להשתמש בהם כדי ליצור אינדקסים.
מידע נוסף זמין במאמר בנושא LlamaIndex Document Reader.
אחזור נתונים כמסמכים
במחברת Cloud SQL ל-PostgreSQL של Document Reader מוסבר איך להשתמש ב-Cloud SQL ל-PostgreSQL כדי לאחזר נתונים כמסמכים באמצעות המחלקה PostgresReader. תלמדו איך:
- יצירת
PostgresEngineבאמצעותPostgresEngine.from_instance(). - יצירת
PostgresReader. - טוענים מסמכים באמצעות הארגומנט
table_name. - טעינת מסמכים באמצעות שאילתת SQL.
- הגדרת פורמט תוכן הדף.
- טוענים את המסמכים.