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

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

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

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

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

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

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

רכיבי LlamaIndex

‫AlloyDB Omni מציע את הממשקים הבאים של LlamaIndex:

  • מאגר וקטורים
  • Document Store
  • חנויות אינדקס
  • חנויות ב-Chat
  • כלי לקריאת מסמכים

מדריך להתחלת העבודה עם AlloyDB Omni

מאגר וקטורים

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

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

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

אחסון הטמעות וקטורים באמצעות המחלקה 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.

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

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

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

חנויות ב-Chat

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

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

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

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

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

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

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

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

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

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

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

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

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

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