paint-brush
שליטה בגרפי ידע LLM: בנה והטמיע GraphRAG תוך 5 דקות בלבדעל ידי@neo4j
היסטוריה חדשה

שליטה בגרפי ידע LLM: בנה והטמיע GraphRAG תוך 5 דקות בלבד

על ידי Neo4j7m2024/10/18
Read on Terminal Reader

יותר מדי זמן; לקרוא

Neo4j LLM Knowledge Graph Builder הוא יישום חדשני להפיכת טקסט לא מובנה לגרף ידע. הוא משתמש במודלים של ML (LLMs: OpenAI, Gemini, Diffbot) כדי להפוך קובצי PDF, דפי אינטרנט וסרטוני YouTube. יכולת זו מרגשת במיוחד מכיוון שהיא מאפשרת אינטראקציה אינטואיטיבית עם הנתונים, בדומה לניהול שיחה עם גרף הידע עצמו.
featured image - שליטה בגרפי ידע LLM: בנה והטמיע GraphRAG תוך 5 דקות בלבד
Neo4j HackerNoon profile picture
0-item
1-item


LLM Knowledge Graph Builder הוא אחד מכלי ה-GraphRAG Ecosystem של Neo4j המאפשרים לך להפוך נתונים לא מובנים לגרפי ידע דינמיים. הוא משולב עם צ'אטבוט של דור אחזור (RAG), המאפשר שאילתות בשפה טבעית ותובנות הניתנות להסבר על הנתונים שלך.


התחל עם GraphRAG: הכלים האקולוגיים של Neo4j

מהו Neo4j LLM Knowledge Graph Builder?

Neo4j LLM Knowledge Graph Builder הוא יישום מקוון חדשני להפיכת טקסט לא מובנה לגרף ידע ללא קוד וללא Cypher, המספק חוויית טקסט-לגרף קסומה. היא משתמשת במודלים של ML (LLMs: OpenAI, Gemini, Diffbot) כדי להפוך קובצי PDF, דפי אינטרנט וסרטוני YouTube לגרף ידע של ישויות ומערכות היחסים ביניהן.


הקצה הקדמי הוא אפליקציית React המבוססת על ערכת ההתחלה של המחטים שלנו, והקצה האחורי הוא אפליקציית Python FastAPI. הוא משתמש במודול ה-llm-graph-transformer ש-Neo4j תרם ל-LangChain.


האפליקציה מספקת חוויה חלקה, לאחר ארבעה שלבים פשוטים:


  1. הטלת נתונים - תומך במקורות נתונים שונים, כולל מסמכי PDF, דפי ויקיפדיה, סרטוני YouTube ועוד.
  2. זיהוי ישויות - משתמש ב-LLMs כדי לזהות ולחלץ ישויות וקשרים מטקסט לא מובנה.
  3. בניית גרפים - ממירה ישויות וקשרים מוכרים לפורמט גרף, תוך שימוש ביכולות הגרף של Neo4j.
  4. ממשק משתמש - מספק ממשק אינטרנט אינטואיטיבי למשתמשים לאינטראקציה עם האפליקציה, מקל על העלאת מקורות נתונים, הדמיה של הגרף שנוצר ואינטראקציה עם סוכן RAG. יכולת זו מרגשת במיוחד מכיוון שהיא מאפשרת אינטראקציה אינטואיטיבית עם הנתונים, בדומה לניהול שיחה עם גרף הידע עצמו - אין צורך בידע טכני.



בואו ננסה את זה

אנו מספקים את האפליקציה בסביבה המתארחת ב-Neo4j שלנו ללא צורך בכרטיסי אשראי וללא מפתחות LLM - ללא חיכוכים.

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


לפני שנפתח ונשתמש ב-LLM Knowledge Graph Builder, בואו ניצור מסד נתונים חדש של Neo4j. לשם כך, אנו יכולים להשתמש במסד נתונים חינמי של AuraDB על ידי ביצוע השלבים הבאים:


  • התחבר או צור חשבון בכתובת https://console.neo4j.io .
  • תחת מופעים, צור מסד נתונים חינם של AuraDB.
  • הורד את קובץ האישורים.
  • המתן עד שהמופע יפעל.


כעת, כאשר מסד הנתונים Neo4j שלנו פועל והאישורים שלנו, אנו יכולים לפתוח את בונה גרפי הידע LLM, וללחוץ על התחבר ל-Neo4j בפינה השמאלית העליונה.


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

יצירת גרף הידע

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


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


לדוגמא זו, אטען כמה קובצי PDF שיש לי על חברת שרשרת אספקה בשם GraphACME, מאמר לעיתונות מ-Forbes וסרטון YouTube על ה-Corporate Sustainability Due Diligence Directive (CSDDD), וכן שני עמודים מויקיפדיה: הוראת בדיקת נאותות לקיימות תאגידית ובנגלדש .


בזמן העלאת הקבצים, האפליקציה תאחסן את המקורות שהועלו כצמתי מסמכים בגרף באמצעות LangChain Document Loaders ומנתחים של YouTube. ברגע שכל הקבצים הועלו, אתה אמור לראות משהו דומה לזה:



כל מה שאנחנו צריכים לעשות עכשיו זה לבחור את הדגם לשימוש, ללחוץ על Generate Graph ולתת לקסם לעשות את השאר בשבילך!


אם ברצונך ליצור רק מבחר קובץ, תוכל לבחור תחילה את הקבצים (עם תיבת הסימון בעמודה הראשונה של הטבלה) וללחוץ על Generate Graph .


⚠️ שימו לב שאם אתם רוצים להשתמש בסכמת גרף מוגדרת מראש או משלכם, תוכלו ללחוץ על סמל ההגדרה בפינה השמאלית העליונה ולבחור סכימה מוגדרת מראש מהתפריט הנפתח, השתמשו בעצמכם על ידי כתיבה תוויות הצומת והקשרים, משוך את הסכימה הקיימת ממסד נתונים קיים של Neo4j, או העתק/הדבק טקסט ובקש מה-LLM לנתח אותו ולהמציא סכימה מוצעת.


בזמן שהוא מעבד את הקבצים שלך ויוצר את גרף הידע שלך, הרשו לי לסכם את מה שקורה מתחת למכסה המנוע:


  1. התוכן מחולק לחלקים.
  2. נתחים מאוחסנים בגרף ומחוברים לצומת המסמך ואחד לשני לתבניות RAG מתקדמות.
  3. נתחים דומים מאוד קשורים ליחסים דומים ליצירת גרף K-Nearest Neighbours.
  4. הטבעות מחושבות ומאוחסנות בנתחים ובאינדקס הווקטור.
  5. באמצעות ה-llm-graph-transformer או diffbot-graph-transformer, ישויות וקשרים נשלפים מהטקסט.
  6. ישויות מאוחסנות בגרף ומחוברות לנתחים שמקורם.

חקור את גרף הידע שלך

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


לפני שנשתמש בסוכן RAG כדי לשאול שאלות על הנתונים שלנו, נוכל לבחור מסמך אחד (או רבים) עם תיבת הסימון וללחוץ על הצג גרף . פעולה זו תציג את הישויות שנוצרו עבור המסמכים שבחרת; אתה יכול גם להציג את צומת המסמך והנתחים בתצוגה זו:



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

דבר עם הידע שלך

עכשיו מגיע החלק האחרון: סוכן RAG שתוכלו לראות בחלונית הימנית.

תהליך האחזור - איך זה עובד?

התמונה למטה מציגה תצוגה פשוטה של תהליך GraphRAG.



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


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

שאל שאלות הקשורות לנתונים שלך

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



תכונות צ'אט

בצד ימין של מסך הבית, תבחינו בשלושה כפתורים המצורפים לחלון הצ'אט:


  • סגור יסגור את ממשק הצ'אטבוט.
  • ניקוי היסטוריית הצ'אט ימחק את היסטוריית הצ'אט של ההפעלה הנוכחית.
  • חלון מקסימום יפתח את ממשק הצ'אטבוט במצב מסך מלא.


על התשובות של סוכן RAG, תמצא שלוש תכונות לאחר התגובה:


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




סיכום

כדי לצלול עמוק יותר לתוך LLM Knowledge Graph Builder, מאגר GitHub מציע שפע של מידע, כולל קוד מקור ותיעוד. בנוסף, התיעוד שלנו מספק הנחיות מפורטות לתחילת העבודה, ו- GenAI Ecosystem מציעה תובנות נוספות לגבי הכלים והיישומים הרחבים יותר הזמינים.

מה הלאה - יכולות תרומה והרחבה

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

אֶמְצָעִי

למד עוד על משאבים חדשים עבור יישומי GenAI: Neo4j GraphRAG Ecosystem Tools . כלי הקוד הפתוח הללו מקלים על תחילת העבודה עם יישומי GenAI המבוססים על גרפי ידע, שעוזרים לשפר את איכות התגובה ויכולת ההסבר ולהאיץ את פיתוח ואימוץ האפליקציות.

וִידֵאוֹ

קישורים