paint-brush
Stăpânirea graficelor de cunoștințe LLM: construiți și implementați GraphRAG în doar 5 minutede@neo4j
366 lecturi
366 lecturi

Stăpânirea graficelor de cunoștințe LLM: construiți și implementați GraphRAG în doar 5 minute

de Neo4j7m2024/10/18
Read on Terminal Reader

Prea lung; A citi

Neo4j LLM Knowledge Graph Builder este o aplicație inovatoare pentru transformarea textului nestructurat într-un grafic de cunoștințe. Utilizează modele ML (LLM: OpenAI, Gemini, Diffbot) pentru a transforma PDF-uri, pagini web și videoclipuri YouTube. Această capacitate este deosebit de interesantă, deoarece permite interacțiunea intuitivă cu datele, asemănătoare cu a avea o conversație cu graficul de cunoștințe în sine.
featured image - Stăpânirea graficelor de cunoștințe LLM: construiți și implementați GraphRAG în doar 5 minute
Neo4j HackerNoon profile picture
0-item
1-item


LLM Knowledge Graph Builder este unul dintre instrumentele Ecosistem GraphRAG de la Neo4j, care vă permite să transformați datele nestructurate în grafice dinamice ale cunoștințelor. Este integrat cu un chatbot de generație crescută prin recuperare (RAG), permițând interogări în limbaj natural și informații explicabile asupra datelor dvs.


Începeți cu GraphRAG: Instrumentele ecosistemului Neo4j

Ce este Neo4j LLM Knowledge Graph Builder?

Neo4j LLM Knowledge Graph Builder este o aplicație online inovatoare pentru a transforma textul nestructurat într-un grafic de cunoștințe fără cod și fără Cypher, oferind o experiență magică de la text la grafic. Utilizează modele ML (LLM: OpenAI, Gemini, Diffbot) pentru a transforma PDF-uri, pagini web și videoclipuri YouTube într-un grafic de cunoștințe al entităților și al relațiilor lor.


Partea frontală este o aplicație React bazată pe Needle Starter Kit , iar partea din spate este o aplicație Python FastAPI. Utilizează modulul llm-graph-transformer cu care Neo4j l-a contribuit la LangChain.


Aplicația oferă o experiență perfectă, urmând patru pași simpli:


  1. Ingestie de date — Acceptă diverse surse de date, inclusiv documente PDF, pagini Wikipedia, videoclipuri YouTube și multe altele.
  2. Recunoașterea entităților — Folosește LLM-uri pentru a identifica și extrage entități și relații din text nestructurat.
  3. Construcție grafică — Convertește entitățile și relațiile recunoscute într-un format grafic, folosind capabilitățile grafice Neo4j.
  4. Interfață cu utilizatorul — Oferă o interfață web intuitivă pentru ca utilizatorii să interacționeze cu aplicația, facilitând încărcarea surselor de date, vizualizarea graficului generat și interacțiunea cu un agent RAG. Această capacitate este deosebit de interesantă, deoarece permite interacțiunea intuitivă cu datele, asemănătoare cu a avea o conversație cu graficul de cunoștințe în sine - nu sunt necesare cunoștințe tehnice.



Să-l încercăm

Oferim aplicația în mediul nostru găzduit de Neo4j, fără carduri de credit necesare și fără chei LLM - fără frecări.

Alternativ, pentru a-l rula local sau în mediul dvs., vizitați depozitul public GitHub și urmați instrucțiunile pas cu pas pe care le vom acoperi în această postare.


Înainte să deschidem și să folosim LLM Knowledge Graph Builder, să creăm o nouă bază de date Neo4j. Pentru asta, putem folosi o bază de date AuraDB gratuită urmând acești pași:


  • Conectează-te sau creează un cont la https://console.neo4j.io .
  • Sub Instanțe, creați o nouă bază de date gratuită AuraDB.
  • Descărcați fișierul de acreditări.
  • Așteptați până când instanța rulează.


Acum că avem baza de date Neo4j în funcțiune și acreditările noastre, putem deschide LLM Knowledge Graph Builder și faceți clic pe Conectare la Neo4j în colțul din dreapta sus.


Aruncați fișierul de acreditări descărcat anterior în dialogul de conectare. Toate informațiile trebuie completate automat. Alternativ, puteți introduce totul manual.

Crearea graficului de cunoștințe

Procesul începe cu asimilarea datelor dvs. nestructurate, care sunt apoi trecute prin LLM pentru a identifica entitățile cheie și relațiile lor.


Puteți trage și plasa PDF-uri și alte fișiere în prima zonă de introducere din stânga. A doua intrare vă va permite să copiați/lipiți linkul către un videoclip YouTube pe care doriți să îl utilizați, în timp ce a treia intrare necesită un link către o pagină Wikipedia.


Pentru acest exemplu, voi încărca câteva PDF-uri pe care le am despre o companie din lanțul de aprovizionare numită GraphACME, un articol de presă de la Forbes și un videoclip YouTube despre Directiva de due diligence în materie de durabilitate corporativă (CSDDD), precum și două pagini de pe Wikipedia: Directiva de due diligence privind sustenabilitatea corporativă și Bangladesh .


În timp ce încarcă fișierele, aplicația va stoca sursele încărcate ca noduri de document în grafic folosind LangChain Document Loaders și parsere YouTube. Odată ce toate fișierele au fost încărcate, ar trebui să vedeți ceva similar cu acesta:



Tot ce trebuie să facem acum este să selectăm modelul de utilizat, să facem clic pe Generare grafic și să lăsăm magia să facă restul pentru tine!


Dacă doriți doar să generați o selecție de fișiere, puteți selecta mai întâi fișierele (cu caseta de selectare din prima coloană a tabelului) și faceți clic pe Generare grafic .


⚠️ Rețineți că, dacă doriți să utilizați o schemă grafică predefinită sau propria dvs., puteți să dați clic pe pictograma de setare din colțul din dreapta sus și să selectați o schemă predefinită din meniul derulant, să utilizați propria dvs. notând etichetele și relațiile nodurilor, extrageți schema existentă dintr-o bază de date Neo4j existentă sau copiați/lipiți text și cereți LLM să o analizeze și să vină cu o schemă sugerată.


În timp ce vă procesează fișierele și vă creează Knowledge Graph, permiteți-mi să rezumam ce se întâmplă sub capotă:


  1. Conținutul este împărțit în bucăți.
  2. Bucățile sunt stocate în grafic și conectate la nodul document și unele la altele pentru modele RAG avansate.
  3. Bucățile foarte similare sunt conectate cu o relație SIMILĂ pentru a forma un grafic K-Nearest Neighbors.
  4. Înglobările sunt calculate și stocate în bucăți și index vectorial.
  5. Folosind llm-graph-transformer sau diffbot-graph-transformer, entitățile și relațiile sunt extrase din text.
  6. Entitățile sunt stocate în grafic și conectate la bucățile originare.

Explorați graficul dvs. de cunoștințe

Informațiile extrase din documentul dvs. sunt structurate într-un format grafic, unde entitățile devin noduri, iar relațiile se transformă în margini care conectează aceste noduri. Frumusețea utilizării Neo4j constă în capacitatea sa de a stoca și interoga eficient aceste rețele de date complexe, făcând graficul de cunoștințe generat imediat util pentru o varietate de aplicații.


Înainte de a folosi agentul RAG pentru a pune întrebări despre datele noastre, putem selecta un document (sau mai multe) cu caseta de selectare și faceți clic pe Afișare grafic . Aceasta va afișa entitățile create pentru documentele pe care le-ați selectat; De asemenea, puteți afișa documentul și nodul de bucăți în acea vizualizare:



Butonul Open Graph with Bloom va deschide Neo4j Bloom pentru a vă ajuta să vizualizați și să navigați în graficul de cunoștințe nou creat. Următoarea acțiune — Ștergeți fișierele — șterge documentele și bucățile selectate din grafic (și entitățile dacă le selectați în opțiuni).

Vorbește cu cunoștințele tale

Acum vine ultima parte: agentul RAG pe care îl puteți vedea în panoul din dreapta.

Procesul de recuperare – Cum funcționează?

Imaginea de mai jos prezintă o vedere simplificată a procesului GraphRAG.



Când utilizatorul pune o întrebare, folosim indexul vectorial Neo4j cu o interogare de recuperare pentru a găsi cele mai relevante bucăți pentru întrebare și entitățile lor conectate până la o adâncime de 2 hop. De asemenea, rezumăm istoricul chatului și îl folosim ca element pentru a îmbogăți contextul.


Diferitele intrări și surse (întrebarea, rezultatele vectorului, istoricul chatului) sunt toate trimise modelului LLM selectat într-un prompt personalizat, solicitând să furnizeze și să formateze un răspuns la întrebarea adresată pe baza elementelor și contextului furnizat. Desigur, promptul are mai multă magie, cum ar fi formatarea, solicitarea de a cita surse, pentru a nu specula dacă un răspuns nu este cunoscut etc. Promptul complet și instrucțiunile pot fi găsite ca FINAL_PROMPT în QA_integration.py .

Puneți întrebări legate de datele dvs

În acest exemplu, am încărcat documente interne despre o companie falsă numită GraphACME (cu sediul în Europa), producând și documentând întreaga strategie și produse pentru lanțul de aprovizionare. Am încărcat, de asemenea, un articol de presă și un videoclip YouTube care explică noul CSDDD, impactul și reglementarea acestuia. Acum îi putem adresa chatbot-ului întrebări despre cunoștințele noastre interne (false) ale companiei - întrebări despre legea CSDDD sau chiar întrebări despre ambele, cum ar fi solicitarea listei de produse pe care le produce GraphACME, dacă acestea vor fi afectate de regulamentul CSDDD și dacă da, cum va afecta compania.



Funcții de chat

În partea dreaptă a ecranului de start, veți observa trei butoane atașate ferestrei de chat:


  • Închidere va închide interfața chatbot.
  • Ștergeți istoricul de chat va șterge istoricul de chat al sesiunii curente.
  • Fereastra Maximizați va deschide interfața chatbot în modul ecran complet.


Pe răspunsurile agentului RAG, veți găsi trei caracteristici după răspuns:


  • Detaliile vor deschide o fereastră pop-up de recuperare a informațiilor care arată modul în care agentul RAG a colectat și utilizat surse (documente), fragmente și entități. Sunt incluse și informații despre modelul utilizat și consumul de token.
  • Copiere va copia conținutul răspunsului în clipboard.
  • Text-to-Speech va citi conținutul răspunsului cu voce tare.




Învelire

Pentru a aprofunda în LLM Knowledge Graph Builder, Depozitul GitHub oferă o mulțime de informații, inclusiv cod sursă și documentație. În plus, documentația noastră oferă îndrumări detaliate cu privire la început, iar GenAI Ecosystem oferă mai multe informații despre instrumentele și aplicațiile mai largi disponibile.

Ce urmează — Capacități de contribuție și extindere

Experiența dumneavoastră cu LLM Knowledge Graph Builder este neprețuită. Dacă întâmpinați erori, aveți sugestii pentru noi funcții, doriți să contribuiți sau doriți să vedeți anumite îmbunătățiri, platforma comunității este locul perfect pentru a vă împărtăși gândurile. Pentru cei adepți în codificare, contribuția directă pe GitHub poate fi o modalitate plină de satisfacții de a ajuta la dezvoltarea proiectului. Contribuțiile și contribuțiile dvs. nu numai că ajută la îmbunătățirea instrumentului, ci și la stimularea unei comunități colaborative și inovatoare:

Resurse

Aflați mai multe despre noile resurse pentru aplicațiile GenAI: Neo4j GraphRAG Ecosystem Tools . Aceste instrumente open-source facilitează începerea cu aplicațiile GenAI bazate pe grafice de cunoștințe, care ajută la îmbunătățirea calității răspunsului și explicabilitatea și accelerează dezvoltarea și adoptarea aplicațiilor.

Video

Legături