โมดูลหลัก
เอกสารนี้ได้รับการแปลโดยอัตโนมัติและอาจมีข้อผิดพลาด อย่าลังเลที่จะเปิด Pull Request เพื่อแนะนำการเปลี่ยนแปลง.
LlamaIndex.TS มีโมดูลหลักหลายระดับ แยกเป็นโมดูลระดับสูงสำหรับเริ่มต้นใช้งานได้อย่างรวดเร็ว และโมดูลระดับต่ำสำหรับปรับแต่งส่วนประกอบหลักตามความต้องการของคุณ
โมดูลระดับสูง
เอกสาร: เอกสารแทนไฟล์ข้อความ ไฟล์ PDF หรือข้อมูลต่อเนื่องอื่น ๆ
โหนด: ส่วนประกอบข้อมูลพื้นฐาน โดยทั่วไปแล้วเป็นส่วนของเอกสารที่แบ่งออกเป็นส่วนย่อยที่สามารถจัดการได้และเล็กพอที่จะสามารถนำเข้าโมเดลฝังตัวและ LLM
อ่าน/โหลด: อ่านหรือโหลดเป็นสิ่งที่รับเอกสารในโลกจริงและแปลงเป็นคลาสเอกสารที่สามารถใช้ในดัชนีและคิวรีของคุณได้ เราสนับสนุนไฟล์ข้อความธรรมดาและไฟล์ PDF และอีกมากมาย
ดัชนี: ดัชนีเก็บโหนดและการฝังตัวของโหนดเหล่านั้น
เครื่องมือค้นหา: เครื่องมือค้นหาคือสิ่งที่สร้างคำค้นที่คุณใส่เข้าไปและให้ผลลัพธ์กลับมาให้คุณ เครื่องมือค้นหาทั่วไปจะรวมคำพูดที่สร้างไว้ล่วงหน้ากับโหนดที่เลือกจากดัชนีของคุณเพื่อให้ LLM มีบริบทที่จำเป็นในการตอบคำถามของคุณ
เครื่องมือแชท: เครื่องมือแชทช่วยให้คุณสร้างแชทบอทที่จะปฏิสัมพันธ์กับดัชนีของคุณ
โมดูลระดับต่ำ
LLM: คลาส LLM เป็นอินเตอร์เฟซที่รวมกันของผู้ให้บริการโมเดลภาษาขนาดใหญ่ เช่น OpenAI GPT-4, Anthropic Claude หรือ Meta LLaMA คุณสามารถสร้างคลาสย่อยขึ้นมาเพื่อเขียนตัวเชื่อมต่อกับโมเดลภาษาขนาดใหญ่ของคุณเอง
Embedding: การฝังข้อมูลแสดงในรูปแบบเวกเตอร์ที่ประกอบด้วยตัวเลขทศนิยม โมเดลฝังข้อความ text-embedding-ada-002 ของ OpenAI เป็นโมเดลฝังข้อมูลเริ่มต้นของเราและแต่ละโมเดลฝังข้อมูลจะประกอบด้วยตัวเลขทศนิยม 1,536 ตัวเลขทศนิยม โมเดลฝังข้อมูลยอดนิยมอีกตัวอย่างคือ BERT ซึ่งใช้ตัวเลขทศนิยม 768 ตัวเลขทศนิยมในการแสดงแต่ละโหนด โดยเรามีเครื่องมือหลายรายการที่ใช้ในการทำงานกับการฝังข้อมูลรวมถึงตัวเลือกการคำนวณความคล้ายคลึง 3 ตัวเลือกและ Maximum Marginal Relevance
TextSplitter/NodeParser: กลยุทธ์ในการแบ่งข้อความเป็นส่วนย่อยๆ เป็นสิ่งสำคัญอย่างมากต่อประสิทธิภาพของการค้นหาข้อมูลที่ฝังอยู่ ในปัจจุบันเรามีค่าเริ่มต้นในการแบ่งข้อความ แต่ไม่มีวิธีที่เหมาะกับทุกกรณี ขึ้นอยู่กับเอกสารต้นฉบับคุณอาจต้องการใช้ขนาดและกลยุทธ์ในการแบ่งที่แตกต่างกัน ในปัจจุบันเราสนับสนุนการแบ่งตามขนาดคงที่ การแบ่งตามขนาดคงที่พร้อมกับส่วนที่ซ้อนทับ การแบ่งตามประโยค และการแบ่งตามย่อหน้า ตัวแบ่งข้อความถูกใช้โดย NodeParser เมื่อแบ่ง
Document
เป็นNode
Retriever: Retriever เป็นส่วนที่เลือก Node ที่จะเรียกคืนจากดัชนี ที่นี่คุณอาจต้องการลองเรียกคืน Node มากหรือน้อยกว่านี้ การเปลี่ยนฟังก์ชันความคล้ายคลึงของคุณ หรือสร้าง Retriever เองสำหรับแต่ละกรณีการใช้งานในแอปพลิเคชันของคุณ เช่น คุณอาจต้องการ Retriever แยกสำหรับเนื้อหาของโค้ดกับเนื้อหาข้อความ
ResponseSynthesizer: ResponseSynthesizer รับผิดชอบในการรับสตริงคำถาม และใช้รายการ
Node
เพื่อสร้างคำตอบ สามารถทำได้หลายรูปแบบ เช่น การวนซ้ำผ่านทั้งหมดของเนื้อหาและปรับปรุงคำตอบ หรือสร้างต้นไม้ของสรุปและส่งคืนสรุปรากฐานStorage: ในบางจุดคุณอาจต้องการเก็บดัชนีของคุณ ข้อมูลและเวกเตอร์เพื่อไม่ต้องรันโมเดลฝังข้อมูลทุกครั้ง IndexStore, DocStore, VectorStore และ KVStore เป็นการแยกแยะที่ช่วยให้คุณทำได้ รวมกันเป็น StorageContext ในปัจจุบันเราอนุญาตให้คุณเก็บฝังข้อมูลของคุณในไฟล์บนระบบไฟล์ (หรือระบบไฟล์เสมือนในหน่วยความจำ) แต่เรากำลังเพิ่มการรวมระบบฐานข้อมูลเวกเตอร์อย่างต่อเนื่อง
"