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 ที่ช่วยให้คุณสามารถแปลงข้อมูลที่ไม่มีโครงสร้างให้กลายเป็นกราฟความรู้แบบไดนามิกได้ โดยเครื่องมือนี้ผสานรวมกับแชทบอท Retrieval-Augmented Generation (RAG) ซึ่งช่วยให้สามารถค้นหาข้อมูลด้วยภาษาธรรมชาติและให้ข้อมูลเชิงลึกที่อธิบายได้เกี่ยวกับข้อมูลของคุณ


เริ่มต้นใช้งาน GraphRAG: เครื่องมือระบบนิเวศของ Neo4j

Neo4j LLM Knowledge Graph Builder คืออะไร?

Neo4j LLM Knowledge Graph Builder เป็นแอปพลิเคชันออนไลน์ที่สร้างสรรค์สำหรับเปลี่ยนข้อความที่ไม่มีโครงสร้างเป็นกราฟความรู้โดยไม่ต้องใช้โค้ดและ Cypher มอบประสบการณ์การแปลงข้อความเป็นกราฟที่น่าอัศจรรย์ โดยใช้โมเดล ML (LLMs: OpenAI, Gemini, Diffbot) เพื่อแปลง PDF หน้าเว็บ และวิดีโอ YouTube ให้เป็นกราฟความรู้ของเอนทิตีและความสัมพันธ์ของเอนทิตีเหล่านั้น


ส่วนหน้าเป็นแอปพลิเคชัน React ที่ใช้ Needle Starter Kit ของเราเป็นหลัก ส่วนหลังเป็นแอปพลิเคชัน Python FastAPI โดยใช้ โมดูล llm-graph-transformer ที่ Neo4j มีส่วนสนับสนุนใน LangChain


แอปพลิเคชันนี้มอบประสบการณ์ที่ราบรื่นโดยทำตามขั้นตอนง่าย ๆ สี่ขั้นตอน:


  1. การนำข้อมูลเข้ามา — รองรับแหล่งข้อมูลต่าง ๆ รวมถึงเอกสาร PDF หน้า Wikipedia วิดีโอ YouTube และอื่น ๆ อีกมากมาย
  2. การจดจำเอนทิตี — ใช้ LLM เพื่อระบุและแยกเอนทิตีและความสัมพันธ์จากข้อความที่ไม่มีโครงสร้าง
  3. การสร้างกราฟ — แปลงเอนทิตีและความสัมพันธ์ที่ได้รับการยอมรับเป็นรูปแบบกราฟ โดยใช้ความสามารถกราฟของ Neo4j
  4. อินเทอร์เฟซผู้ใช้ — มอบอินเทอร์เฟซเว็บที่ใช้งานง่ายเพื่อให้ผู้ใช้โต้ตอบกับแอปพลิเคชัน อำนวยความสะดวกในการอัปโหลดแหล่งข้อมูล การแสดงภาพกราฟที่สร้างขึ้น และการโต้ตอบกับตัวแทน RAG ความสามารถนี้มีความน่าสนใจเป็นพิเศษ เนื่องจากช่วยให้โต้ตอบกับข้อมูลได้อย่างเป็นธรรมชาติ คล้ายกับการสนทนากับกราฟความรู้โดยตรง โดยไม่ต้องมีความรู้ด้านเทคนิคใดๆ



มาลองดูกันเถอะ

เรามอบแอปพลิเคชันบน สภาพแวดล้อมโฮสต์ Neo4j โดยไม่ต้องใช้บัตรเครดิตและไม่ต้องใช้คีย์ LLM ไม่มีปัญหา

อีกวิธีหนึ่งคือการรันในเครื่องหรือภายในสภาพแวดล้อมของคุณ ให้ไปที่ ที่เก็บ GitHub สาธารณะและทำตามคำแนะนำทีละขั้นตอนที่เราจะครอบคลุมในโพสต์นี้


ก่อนที่จะเปิดและใช้ LLM Knowledge Graph Builder เรามาสร้างฐานข้อมูล Neo4j ใหม่กันก่อน โดยเราสามารถใช้ฐานข้อมูล AuraDB ฟรีได้โดยทำตามขั้นตอนเหล่านี้:


  • เข้าสู่ระบบหรือสร้างบัญชีที่ https://console.neo4j.io
  • ภายใต้อินสแตนซ์ สร้างฐานข้อมูล AuraDB ฟรีใหม่
  • ดาวน์โหลดไฟล์ข้อมูลรับรอง
  • รอจนกว่าอินสแตนซ์กำลังทำงาน


ตอนนี้เราได้รันฐานข้อมูล Neo4j และข้อมูลรับรองแล้ว เราสามารถเปิด LLM Knowledge Graph Builder และคลิก เชื่อมต่อกับ Neo4j ที่มุมขวาบนได้


วางไฟล์ข้อมูลรับรองที่ดาวน์โหลดไว้ก่อนหน้านี้ลงในกล่องโต้ตอบการเชื่อมต่อ ข้อมูลทั้งหมดควรได้รับการกรอกโดยอัตโนมัติ หรือคุณสามารถป้อนข้อมูลทั้งหมดด้วยตนเอง

การสร้างกราฟความรู้

กระบวนการเริ่มต้นด้วยการนำข้อมูลที่ไม่มีโครงสร้างของคุณเข้ามาใช้ จากนั้นจึงส่งต่อผ่าน LLM เพื่อระบุเอนทิตีสำคัญและความสัมพันธ์ของเอนทิตีเหล่านั้น


คุณสามารถลากและวางไฟล์ PDF และไฟล์อื่นๆ ลงในโซนอินพุตแรกทางด้านซ้ายได้ อินพุตที่สองจะให้คุณคัดลอก/วางลิงก์ไปยังวิดีโอ YouTube ที่คุณต้องการใช้ ในขณะที่อินพุตที่สามจะนำลิงก์ไปยังหน้า Wikipedia


สำหรับตัวอย่างนี้ ฉันจะโหลด PDF สองสามไฟล์ที่มีเกี่ยวกับบริษัทห่วงโซ่อุปทานชื่อ GraphACME บทความในสื่อจาก Forbes และ วิดีโอ YouTube เกี่ยวกับ Corporate Sustainability Due Diligence Directive (CSDDD) ตลอดจนสองหน้าจาก Wikipedia: Corporate Sustainability Due Diligence Directive และ บังคลาเทศ


ขณะอัปโหลดไฟล์ แอปพลิเคชันจะจัดเก็บแหล่งที่มาที่อัปโหลดเป็นโหนดเอกสารในกราฟโดยใช้ LangChain Document Loaders และ YouTube parsers เมื่ออัปโหลดไฟล์ทั้งหมดแล้ว คุณควรเห็นสิ่งที่คล้ายกับนี้:



สิ่งที่เราต้องทำตอนนี้คือเลือกโมเดลที่จะใช้ คลิก สร้างกราฟ และปล่อยให้สิ่งมหัศจรรย์จัดการส่วนที่เหลือให้กับคุณ!


หากคุณต้องการสร้างการเลือกไฟล์เท่านั้น คุณสามารถเลือกไฟล์ก่อน (โดยใช้ช่องทำเครื่องหมายในคอลัมน์แรกของตาราง) แล้วคลิก สร้างกราฟ


⚠️ โปรดทราบว่าหากคุณต้องการใช้โครงร่างกราฟที่กำหนดไว้ล่วงหน้าหรือของตนเอง คุณสามารถคลิกที่ไอคอนการตั้งค่าที่มุมขวาบนและเลือกโครงร่างกราฟที่กำหนดไว้ล่วงหน้าจากดรอปดาวน์ ใช้ของคุณเองโดยจดป้ายชื่อโหนดและความสัมพันธ์ ดึงโครงร่างกราฟที่มีอยู่จากฐานข้อมูล Neo4j ที่มีอยู่ หรือคัดลอก/วางข้อความและขอให้ LLM วิเคราะห์ข้อความนั้นและสร้างโครงร่างกราฟที่แนะนำ


ในขณะที่กำลังประมวลผลไฟล์ของคุณและสร้าง Knowledge Graph ให้ฉันสรุปสิ่งที่เกิดขึ้นภายใต้ประทุน:


  1. เนื้อหาถูกแบ่งออกเป็นชิ้นๆ
  2. ชิ้นส่วนต่างๆ จะถูกเก็บไว้ในกราฟและเชื่อมต่อกับโหนดเอกสารและเชื่อมต่อกันสำหรับรูปแบบ RAG ขั้นสูง
  3. ชิ้นส่วนที่มีความคล้ายคลึงกันมากจะเชื่อมโยงกันด้วยความสัมพันธ์ SIMILAR เพื่อสร้างกราฟ K-Nearest Neighbors
  4. การฝังจะถูกคำนวณและเก็บไว้ในชิ้นส่วนและดัชนีเวกเตอร์
  5. การใช้ llm-graph-transformer หรือ diffbot-graph-transformer ช่วยในการแยกเอนทิตีและความสัมพันธ์ออกจากข้อความ
  6. เอนทิตีจะถูกเก็บไว้ในกราฟและเชื่อมต่อกับชิ้นส่วนต้นกำเนิด

สำรวจกราฟความรู้ของคุณ

ข้อมูลที่ดึงมาจากเอกสารของคุณจะถูกจัดโครงสร้างเป็นรูปแบบกราฟ โดยที่เอนทิตีจะกลายเป็นโหนด และความสัมพันธ์จะกลายเป็นขอบที่เชื่อมต่อโหนดเหล่านี้ ข้อดีของการใช้ Neo4j อยู่ที่ความสามารถในการจัดเก็บและสอบถามเครือข่ายข้อมูลที่ซับซ้อนเหล่านี้ได้อย่างมีประสิทธิภาพ ทำให้กราฟความรู้ที่สร้างขึ้นนั้นมีประโยชน์ทันทีสำหรับแอปพลิเคชันต่างๆ


ก่อนที่เราจะใช้ตัวแทน RAG เพื่อถามคำถามเกี่ยวกับข้อมูลของเรา เราสามารถเลือกเอกสารหนึ่งฉบับ (หรือหลายฉบับ) ด้วยช่องทำเครื่องหมายและคลิก แสดงกราฟ ซึ่งจะแสดงเอนทิตีที่สร้างขึ้นสำหรับเอกสารที่คุณเลือก นอกจากนี้ คุณยังสามารถแสดงโหนดเอกสารและชิ้นส่วนในมุมมองนั้นได้อีกด้วย:



ปุ่ม Open Graph with Bloom จะเปิด Neo4j Bloom เพื่อช่วยให้คุณมองเห็นและนำทางกราฟความรู้ที่คุณเพิ่งสร้างขึ้นได้ การดำเนินการต่อไป — ลบไฟล์ — จะลบเอกสารและชิ้นส่วนที่เลือกออกจากกราฟ (และเอนทิตี หากคุณเลือกไว้ในตัวเลือก)

พูดคุยกับความรู้ของคุณ

ตอนนี้มาถึงส่วนสุดท้ายแล้ว: ตัวแทน RAG ที่คุณสามารถดูได้ในแผงด้านขวา

กระบวนการค้นหาข้อมูล — ทำงานอย่างไร?

รูปภาพด้านล่างนี้แสดงมุมมองที่เรียบง่ายของกระบวนการ GraphRAG



เมื่อผู้ใช้ถามคำถาม เราจะใช้ดัชนีเวกเตอร์ Neo4j พร้อมแบบสอบถามเพื่อค้นหาส่วนที่เกี่ยวข้องที่สุดสำหรับคำถามและเอนทิตีที่เชื่อมต่อกันซึ่งมีความลึกซึ้งถึง 2 ฮ็อป นอกจากนี้ เรายังสรุปประวัติการแชทและใช้เป็นองค์ประกอบเพื่อเสริมบริบทอีกด้วย


อินพุตและแหล่งที่มาต่างๆ (คำถาม ผลลัพธ์เวกเตอร์ ประวัติการแชท) จะถูกส่งไปยังโมเดล LLM ที่เลือกในคำสั่งที่กำหนดเอง โดยขอให้จัดเตรียมและจัดรูปแบบคำตอบสำหรับคำถามที่ถามโดยอิงตามองค์ประกอบและบริบทที่ให้มา แน่นอนว่าคำสั่งยังมีคุณสมบัติพิเศษอื่นๆ อีก เช่น การจัดรูปแบบ การขอให้อ้างอิงแหล่งที่มา การไม่คาดเดาหากไม่ทราบคำตอบ เป็นต้น คำสั่งและคำแนะนำฉบับสมบูรณ์สามารถพบได้ในไฟล์ QA_integration.py ในรูปแบบ FINAL_PROMPT

ถามคำถามที่เกี่ยวข้องกับข้อมูลของคุณ

ในตัวอย่างนี้ ฉันโหลดเอกสารภายในเกี่ยวกับบริษัทปลอมที่ชื่อ GraphACME (ตั้งอยู่ในยุโรป) ซึ่งจัดทำและบันทึกกลยุทธ์และผลิตภัณฑ์ในห่วงโซ่อุปทานทั้งหมด นอกจากนี้ ฉันยังโหลดบทความในสื่อและวิดีโอ YouTube ที่อธิบายถึง CSDDD ใหม่ ผลกระทบ และกฎระเบียบ ตอนนี้เราสามารถถามคำถามกับแชทบอตเกี่ยวกับความรู้ภายในบริษัท (ปลอม) ของเราได้แล้ว ไม่ว่าจะเป็นคำถามเกี่ยวกับกฎหมาย CSDDD หรือแม้แต่คำถามเกี่ยวกับทั้งสองอย่าง เช่น การถามถึงรายการผลิตภัณฑ์ที่ GraphACME ผลิตขึ้น ว่าผลิตภัณฑ์เหล่านี้จะได้รับผลกระทบจากกฎระเบียบ CSDDD หรือไม่ และหากเป็นเช่นนั้น จะส่งผลกระทบต่อบริษัทอย่างไร



ฟีเจอร์การแชท

ที่ด้านขวาของหน้าจอหลัก คุณจะสังเกตเห็นปุ่มสามปุ่มที่ติดอยู่กับหน้าต่างแชท:


  • ปิด จะปิดอินเทอร์เฟซแชทบอท
  • การล้างประวัติการแชท จะลบประวัติการแชทของเซสชันปัจจุบัน
  • การขยายหน้าต่าง จะเปิดอินเทอร์เฟซแชทบอทในโหมดเต็มหน้าจอ


คำตอบของตัวแทน RAG คุณจะพบคุณสมบัติสามประการหลังคำตอบ:


  • รายละเอียด จะเปิดหน้าต่างป๊อปอัปข้อมูลการเรียกค้นที่แสดงวิธีที่ตัวแทน RAG รวบรวมและใช้แหล่งข้อมูล (เอกสาร) ชิ้นส่วน และเอนทิตี รวมถึงข้อมูลเกี่ยวกับโมเดลที่ใช้และการใช้โทเค็นด้วย
  • การคัดลอก จะคัดลอกเนื้อหาการตอบกลับไปยังคลิปบอร์ด
  • Text-to-Speech จะอ่านเนื้อหาการตอบกลับออกเสียง




สรุป

หากต้องการเจาะลึก LLM Knowledge Graph Builder มากขึ้น GitHub Repository นำเสนอข้อมูลมากมาย รวมถึงโค้ดต้นฉบับและเอกสารประกอบ นอกจากนี้ เอกสารประกอบ ของเรายังให้คำแนะนำโดยละเอียดเกี่ยวกับการเริ่มต้นใช้งาน และ GenAI Ecosystem ยังนำเสนอข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับเครื่องมือและแอปพลิเคชันอื่นๆ ที่มีอยู่

อะไรต่อไป — ความสามารถในการสนับสนุนและการขยายผล

ประสบการณ์ของคุณกับ LLM Knowledge Graph Builder นั้นมีค่าอย่างยิ่ง หากคุณพบข้อบกพร่อง มีข้อเสนอแนะสำหรับฟีเจอร์ใหม่ ต้องการมีส่วนร่วม หรือต้องการเห็นการปรับปรุงบางอย่าง แพลตฟอร์มชุมชนเป็นสถานที่ที่สมบูรณ์แบบในการแบ่งปันความคิดของคุณ สำหรับผู้ที่เชี่ยวชาญในการเขียนโค้ด การมีส่วนร่วมโดยตรงบน GitHub ถือเป็นวิธีที่คุ้มค่าในการช่วยพัฒนาโครงการ อินพุตและการมีส่วนร่วมของคุณไม่เพียงแต่ช่วยปรับปรุงเครื่องมือเท่านั้น แต่ยังส่งเสริมให้เกิดชุมชนที่ทำงานร่วมกันและสร้างสรรค์อีกด้วย:

ทรัพยากร

เรียนรู้เพิ่มเติมเกี่ยวกับทรัพยากรใหม่สำหรับแอปพลิเคชัน GenAI: Neo4j GraphRAG Ecosystem Tools เครื่องมือโอเพ่นซอร์สเหล่านี้ทำให้สามารถเริ่มต้นใช้งานแอปพลิเคชัน GenAI ที่มีกราฟความรู้ได้อย่างง่ายดาย ซึ่งช่วยปรับปรุงคุณภาพการตอบสนองและความสามารถในการอธิบาย และเร่งการพัฒนาและการนำแอปพลิเคชันไปใช้

วีดีโอ

ลิงค์