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

בחירת גרסה של מאמר העזרה:

בדף הזה מתוארים כמה תרחישים לדוגמה ליצירת אפליקציות מבוססות-LLM באמצעות LlamaIndex שמשולב עם AlloyDB Omni. קישורים ל-notebooks ב-GitHub מסופקים כדי לעזור לכם לבחון גישות או לפתח את האפליקציה שלכם.

‫LlamaIndex הוא מסגרת תזמור של AI גנרטיבי שמאפשרת לחבר ולשלב מקורות נתונים עם מודלים גדולים של שפה (LLM). אתם יכולים להשתמש ב-LlamaIndex כדי ליצור אפליקציות שניגשות למידע מנתונים פרטיים או ספציפיים לדומיין, ומריצות עליהם שאילתות בשפה טבעית.

‫LlamaIndex משמש כגשר בין נתונים מותאמים אישית לבין מודלים של LLM, ומאפשר פיתוח של אפליקציות של עוזרים חכמים עם יכולות של שליפה משופרת (RAG).

‫LlamaIndex מתאים במיוחד לאפליקציות שמתמקדות במסמכים, כי הוא שם דגש על ניהול מסמכים מובנה שמפשט את תהליך היצירה של אינדקסים ואת תהליך השליפה. המסגרת הזו כוללת מנגנוני שאילתות שעברו אופטימיזציה כדי לשפר את המהירות והרלוונטיות של הגישה למידע, וגם טיפול חזק במטא-נתונים לצורך סינון מדויק.

מידע נוסף על מסגרת LlamaIndex זמין במסמכי התיעוד של מוצר LlamaIndex.

רכיבים של LlamaIndex

ב-AlloyDB Omni יש את הממשקים הבאים של LlamaIndex:

  • מאגר וקטורים
  • Document Store
  • חנויות אינדקס
  • חנויות צ'אט
  • כלי לקריאת מסמכים

המדריך למתחילים של AlloyDB Omni מסביר איך משתמשים ב-LlamaIndex.

מאגר וקטורים

השילוב הזה של LlamaIndex מאפשר לכם להשתמש באופי היציב והסקלאבילי של AlloyDB Omni כדי לאחסן ולנהל את הנתונים של LlamaIndex. שילוב היכולות של LlamaIndex ליצירת אינדקסים ולשאילת שאילתות עם הביצועים הגבוהים והאמינות של AlloyDB Omni מאפשר לכם ליצור אפליקציות יעילות יותר וניתנות להרחבה שמבוססות על LLM.

‫LlamaIndex מפרק מסמך (doc, טקסט ו-PDF) לרכיבי מסמך שנקראים צמתים. ה-VectorStore יכול להכיל רק את וקטורי ההטמעה של תוכן הצמתים שהוטמעו ואת הטקסט של הצמתים. צומת מכיל תוכן טקסט, הטמעות וקטורים ומטא-נתונים. אתם יכולים להחיל מסננים על שדות המטא-נתונים האלה כדי להגביל את אחזור הצמתים רק לאלה שתואמים לקריטריונים שצוינו של המטא-נתונים.

כדי לעבוד עם מאגרי וקטורים ב-AlloyDB Omni, משתמשים במחלקה AlloyDBVectorStore. מידע נוסף זמין במאמר LlamaIndex Vector Stores.

אחסון הטמעות וקטורים באמצעות המחלקה AlloyDBVectorStore

במחברת AlloyDB Omni של מאגר הווקטורים מוסבר איך:

  • יוצרים AlloyDBEngine כדי להתחבר למכונת AlloyDB Omni באמצעות AlloyDBEngine.from_connection_string().
  • מא初始化 טבלה לאחסון הטמעות וקטוריות.
  • יוצרים מופע של מחלקת הטמעה באמצעות כל מודל הטמעה של Llama Index.
  • מאתחלים מאגר וקטורים AlloyDBVectorStore שמוגדר כברירת מחדל.
  • יוצרים אינדקס ממאגר הווקטורים ושולחים אליו שאילתות באמצעות VectorStoreIndex.
  • יוצרים מאגר וקטורים בהתאמה אישית כדי לאחסן ולסנן מטא-נתונים.
  • כדי לשפר את זמן האחזור של החיפוש, כדאי להוסיף אינדקס ANN.

מאגרי מסמכים ואינדקסים

השילוב של LlamaIndex Document Stores מנהל את האחסון והאחזור של מסמכים מובְנים, ומבצע אופטימיזציה ליכולות של LlamaIndex שמתמקדות במסמכים. ‫Document Store מאחסן את התוכן שקשור לווקטורים במאגר הווקטורים.

מידע נוסף זמין במסמכי התיעוד של המוצר LlamaIndex Document Stores.

מאגרי אינדקסים מאפשרים לנהל אינדקסים כדי להריץ שאילתות במהירות ולאחזר נתונים, למשל סיכום, מילות מפתח ואינדקס עץ. ‫Index ב-LlamaIndex הוא אחסון קל משקל רק למטא-נתונים של הצומת. עדכונים במטא-נתונים של צומת לא דורשים הוספה מחדש לאינדקס (קריאת יצירת הטמעה) של הצומת המלא או של כל הצמתים במסמך.

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

אחסון מסמכים ואינדקסים

בNotebook של AlloyDB Omni למאגרי מסמכים מוסבר איך משתמשים ב-AlloyDB Omni כדי לאחסן מסמכים ואינדקסים באמצעות המחלקות AlloyDBDocumentStore ו-AlloyDBIndexStore. אתם תלמדו איך:

  • יוצרים AlloyDBEngine כדי להתחבר למכונת AlloyDB Omni באמצעות AlloyDBEngine.from_connection_string().
  • יוצרים טבלאות עבור DocumentStore ו-IndexStore.
  • מפעילים ברירת מחדל של AlloyDBDocumentStore.
  • הגדרת AlloyDBIndexStore.
  • מוסיפים מסמכים אל Docstore.
  • שימוש במאגרי מסמכים עם כמה אינדקסים.
  • טוענים את האינדקסים הקיימים.

חנות צ'אט

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

מודלים גדולים של שפה (LLM) הם חסרי מצב כברירת מחדל, כלומר הם לא שומרים קלטים קודמים אלא אם הקלטים האלה מסופקים באופן מפורש בכל פעם. אם משתמשים במאגר צ'אטים, אפשר לשמור את ההקשר של השיחה, וכך המודל יכול ליצור תשובות רלוונטיות ועקביות יותר לאורך זמן.

מודול הזיכרון ב-LlamaIndex מאפשר אחסון ושליפה יעילים של הקשר השיחה, וכך מאפשר אינטראקציות מותאמות אישית ומודעות להקשר באפליקציות צ'אט. אפשר לשלב את מודול הזיכרון ב-LlamaIndex עם ChatStore ועם ChatMemoryBuffer. מידע נוסף זמין במאמר בנושא LlamaIndex Chat Stores.

שמירת היסטוריית הצ'אט

בNotebook של AlloyDB Omni ל-Chat Stores מוסבר איך משתמשים ב-AlloyDB Omni כדי לאחסן את היסטוריית הצ'אטים באמצעות המחלקה AlloyDBChatStore. אתם תלמדו איך:

  • יוצרים AlloyDBEngine כדי להתחבר למכונה של AlloyDB Omni באמצעות AlloyDBEngine.from_connection_string().
  • מפעילים ברירת מחדל של AlloyDBChatStore.
  • יוצרים ChatMemoryBuffer.
  • יוצרים מופע של מחלקת LLM.
  • משתמשים ב-AlloyDBChatStore בלי הקשר של אחסון.
  • משתמשים ב-AlloyDBChatStore עם הקשר של אחסון.
  • ליצור את מנוע הצ'אט ולהשתמש בו.

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

הכלי לקריאת מסמכים מאחזר ביעילות נתונים מ-AlloyDB Omni וממיר אותם לפורמטים שתואמים ל-LlamaIndex לצורך הוספה לאינדקס. הממשק של Document Reader מספק שיטות לטעינת נתונים ממקור בתור Documents.

‫Document הוא מחלקה שמאחסנת קטע טקסט ומטא-נתונים משויכים. אתם יכולים להשתמש בכלים לקריאת מסמכים כדי לטעון מסמכים שאתם רוצים לשמור במאגרי מסמכים או להשתמש בהם כדי ליצור אינדקסים.

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

בAlloyDB Omni notebook לכלי לקריאת מסמכים מוסבר איך להשתמש ב-AlloyDB Omni כדי לאחזר נתונים כמסמכים באמצעות המחלקה AlloyDBReader. תלמדו איך:

  • יוצרים AlloyDBEngine כדי להתחבר למכונת AlloyDB Omni באמצעות AlloyDBEngine.from_connection_string().
  • יצירת AlloyDBReader.
  • טוענים מסמכים באמצעות הארגומנט table_name.
  • טעינת מסמכים באמצעות שאילתת SQL.
  • הגדרת פורמט תוכן הדף.
  • טוענים את המסמכים.

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