פיתוח אפליקציות מבוססות-LLM באמצעות LlamaIndex

בדף הזה מתוארים כמה תרחישים לדוגמה לבניית אפליקציות מבוססות-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
  • כלי לקריאת מסמכים

במדריך למתחילים בנושא 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 שמוגדר כברירת מחדל.
  • הגדרת PostgresIndexStore.
  • הוספת מסמכים אל Docstore.
  • שימוש במאגרי מסמכים עם כמה אינדקסים.
  • טעינת אינדקסים קיימים.

חנויות ב-Chat

מאגרי 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.

כלי לקריאת מסמכים

הכלי לקריאת מסמכים מאחזר ביעילות נתונים מ-Cloud SQL ל-PostgreSQL ומשנה את הפורמטים שלהם כך שיהיו תואמים ל-LlamaIndex לצורך יצירת אינדקס. הממשק של כלי לקריאת מסמכים מספק שיטות לטעינת נתונים ממקור כ-Documents. ‫Document היא מחלקה שמאחסנת קטע טקסט ומטא-נתונים שמשויכים אליו. אתם יכולים להשתמש ב-Document Readers כדי לטעון מסמכים שאתם רוצים לאחסן ב-Document Stores או להשתמש בהם כדי ליצור Indexes.

מידע נוסף זמין במאמר בנושא LlamaIndex Document Reader.

אחזור נתונים כמסמכים

ב-Cloud SQL ל-PostgreSQL notebook של כלי לקריאת מסמכים מוסבר איך להשתמש ב-Cloud SQL ל-PostgreSQL כדי לאחזר נתונים כמסמכים באמצעות המחלקה PostgresReader. תלמדו איך:

  • יצירת PostgresEngine באמצעות PostgresEngine.from_instance().
  • יצירת PostgresReader.
  • טוענים מסמכים באמצעות הארגומנט table_name.
  • טעינת מסמכים באמצעות שאילתת SQL.
  • הגדרת פורמט תוכן הדף.
  • טוענים את המסמכים.

המאמרים הבאים