בדף הזה מתוארים כמה תרחישים לדוגמה לבניית אפליקציות מבוססות-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.
מאגר וקטורים
השילוב הזה של LlamaIndex מאפשר לכם להשתמש באופי החזק והניתן להרחבה של Cloud SQL ל-PostgreSQL כדי לאחסן ולנהל את הנתונים של LlamaIndex. שילוב היכולות של LlamaIndex ליצירת אינדקסים ולשאילתות עם הביצועים הגבוהים והמהימנות של Cloud SQL ל-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 for 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 לזיכרונות של Chat מוסבר איך להשתמש ב-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 for PostgreSQL notebook for Document Reader מוסבר איך להשתמש ב-Cloud SQL ל-PostgreSQL כדי לאחזר נתונים כמסמכים באמצעות המחלקה PostgresReader. תלמדו איך:
- יצירת
PostgresEngineבאמצעותPostgresEngine.from_instance(). - יצירת
PostgresReader. - טוענים מסמכים באמצעות הארגומנט
table_name. - טעינת מסמכים באמצעות שאילתת SQL.
- הגדרת פורמט תוכן הדף.
- טוענים את המסמכים.