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

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

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

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

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

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

רכיבי LlamaIndex

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

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

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

מאגר וקטורים

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

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

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

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

ב-AlloyDB notebook למאגר וקטורים מוסבר איך:

  • אתחול טבלה לאחסון הטמעות וקטורים
  • יוצרים מופע של מחלקת הטמעה באמצעות כל מודל הטמעה של Llama Index.
  • מאתחלים מאגר וקטורים של AlloyDBVectorStore שמוגדר כברירת מחדל.
  • יוצרים אינדקס ממאגר הווקטורים ושולחים אליו שאילתה באמצעות VectorStoreIndex.
  • ליצור מאגר וקטורים מותאם אישית כדי לאחסן ולסנן מטא-נתונים ביעילות.
  • כדי לשפר את זמן האחזור של החיפוש, מוסיפים אינדקס ANN.

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

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

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

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

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

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

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

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

חנויות צ'אט

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

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

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

שמירת היסטוריית השיחות

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

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

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

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

מידע נוסף זמין במאמר כלי לקריאת מסמכים של LlamaIndex.

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

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

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

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