ใช้ข้อมูลของคุณเองด้วยโมเดลภาษาขนาดใหญ่ (LLMS, OpenAI ChatGPT และอื่น ๆ ) ในสภาพแวดล้อม JS Runtime พร้อมการสนับสนุน TypeScript
เอกสาร: https://ts.llamaindex.ai/
ลองตัวอย่างออนไลน์:
llamaidex.ts ตั้งเป้าหมายที่จะเป็นชุดห้องสมุดที่มีน้ำหนักเบาและใช้งานง่ายเพื่อช่วยให้คุณรวมโมเดลภาษาขนาดใหญ่เข้ากับแอปพลิเคชันของคุณเข้ากับข้อมูลของคุณเอง
llamaidex.ts สนับสนุนสภาพแวดล้อม JS หลายแห่งรวมถึง:
สำหรับตอนนี้การสนับสนุนเบราว์เซอร์มี จำกัด เนื่องจากขาดการสนับสนุน APIs APIs Asynclocalstorage
npm install llamaindex
pnpm install llamaindex
yarn add llamaindexดูเอกสารอย่างเป็นทางการของเรา: https://ts.llamaindex.ai/docs/llamaindex/setup/getting-started
เมื่อคุณนำเข้า llamaindex ในสภาพแวดล้อมที่ไม่ใช่ node.js (เช่น vercel edge, คนงาน CloudFlare ฯลฯ ) บางคลาสจะไม่ถูกส่งออกจากไฟล์รายการระดับบนสุด
เหตุผลก็คือบางคลาสเข้ากันได้กับ Node.js Runtime เท่านั้น (เช่น PDFReader ) ซึ่งใช้ API เฉพาะ node.js (เช่น fs , child_process , crypto )
หากคุณต้องการคลาสเหล่านั้นคุณต้องนำเข้าแทนโดยตรงแม้ว่าเส้นทางไฟล์ของพวกเขาในแพ็คเกจ นี่คือตัวอย่างสำหรับการนำเข้าคลาส PineconeVectorStore :
import { PineconeVectorStore } from "llamaindex/storage/vectorStore/PineconeVectorStore" ; เนื่องจาก PDFReader ไม่ทำงานกับ Edge Runtime นี่เป็นวิธีการใช้ SimpleDirectoryReader กับ LlamaParseReader เพื่อโหลด PDFS:
import { SimpleDirectoryReader } from "llamaindex/readers/SimpleDirectoryReader" ;
import { LlamaParseReader } from "llamaindex/readers/LlamaParseReader" ;
export const DATA_DIR = "./data" ;
export async function getDocuments ( ) {
const reader = new SimpleDirectoryReader ( ) ;
// Load PDFs using LlamaParseReader
return await reader . loadData ( {
directoryPath : DATA_DIR ,
fileExtToReader : {
pdf : new LlamaParseReader ( { resultType : "markdown" } ) ,
} ,
} ) ;
}หมายเหตุ : คลาส Reader จะต้องเพิ่มลงในแผนที่
fileExtToReaderในเวอร์ชันขอบของSimpleDirectoryReader
คุณจะพบตัวอย่างที่สมบูรณ์กับ llamaindexts ที่นี่: https://github.com/run-llama/create_llama_projects/tree/main/nextjs-edge-llamaparse
ตรวจสอบสนามเด็กเล่น NextJS ของเราได้ที่ https://llama-playground.vercel.app/ แหล่งที่มาสามารถดูได้ที่ https://github.com/run-llama/ts-playground
เอกสาร: เอกสารแสดงไฟล์ข้อความไฟล์ PDF หรือข้อมูลที่ต่อเนื่องกันอื่น ๆ
โหนด: การสร้างข้อมูลพื้นฐาน โดยทั่วไปแล้วสิ่งเหล่านี้เป็นส่วนหนึ่งของเอกสารที่แบ่งออกเป็นชิ้นส่วนที่จัดการได้ซึ่งมีขนาดเล็กพอที่จะป้อนเข้าสู่รูปแบบการฝังและ LLM
EMBEDDING: EMBEDDINGS เป็นชุดของหมายเลขจุดลอยตัวซึ่งเป็นตัวแทนของข้อมูลในโหนด โดยการเปรียบเทียบความคล้ายคลึงกันของการฝังตัวเราสามารถทำความเข้าใจเกี่ยวกับความคล้ายคลึงกันของข้อมูลสองชิ้น กรณีการใช้งานหนึ่งคือการเปรียบเทียบการฝังคำถามกับการฝังของโหนดของเราเพื่อดูว่าโหนดใดที่อาจมีข้อมูลที่จำเป็นในการตอบคำถามนั้น เนื่องจากบริบทของบริการเริ่มต้นคือ OpenAI การฝังเริ่มต้นคือ OpenAIEmbedding หากใช้โมเดลที่แตกต่างกันพูดผ่าน Ollama ให้ใช้การฝังนี้ (ดูทั้งหมดที่นี่)
ดัชนี: ดัชนีเก็บโหนดและการฝังของโหนดเหล่านั้น QueryEngines ดึงโหนดจากดัชนีเหล่านี้โดยใช้การฝังความคล้ายคลึงกัน
QueryEngine: เครื่องยนต์แบบสอบถามเป็นสิ่งที่สร้างแบบสอบถามที่คุณใส่และมอบผลลัพธ์ให้คุณคืน โดยทั่วไปแล้วเครื่องยนต์แบบสอบถามจะรวมพรอมต์ที่สร้างไว้ล่วงหน้าเข้ากับโหนดที่เลือกจากดัชนีของคุณเพื่อให้บริบท LLM ที่จำเป็นในการตอบคำถามของคุณ ในการสร้างเครื่องมือค้นหาจากดัชนีของคุณ (แนะนำ) ให้ใช้วิธี asQueryEngine ในดัชนีของคุณ ดูเครื่องยนต์แบบสอบถามทั้งหมดที่นี่
ChatEngine: ChatEngine ช่วยให้คุณสร้างแชทบ็อตที่จะโต้ตอบกับดัชนีของคุณ ดูเอ็นจิ้นแชททั้งหมดที่นี่
SimplePrompt: นิยามการเรียกใช้ฟังก์ชั่นที่ได้มาตรฐานอย่างง่ายซึ่งใช้ในอินพุตและจัดรูปแบบพวกเขาในตัวอักษรเทมเพลต SimplePrompts สามารถพิเศษโดยใช้การแกงและรวมกันโดยใช้ฟังก์ชั่น SimplePrompt อื่น ๆ
โปรดดูคู่มือการสนับสนุนของเราสำหรับข้อมูลเพิ่มเติม คุณได้รับการสนับสนุนอย่างสูงให้มีส่วนร่วมใน llamaidex.ts!
กรุณาเข้าร่วม Discord ของเรา! https://discord.com/invite/en6d2hq4ax