استخدم البيانات الخاصة بك مع نماذج لغة كبيرة (LLMs و Openai ChatGPT وغيرها) في بيئات وقت تشغيل JS مع دعم TypeScript.
الوثائق: https://ts.llamaindex.ai/
جرب الأمثلة على الإنترنت:
تهدف Llamaindex.ts إلى أن تكون مجموعة من المكتبات خفيفة الوزن وسهلة الاستخدام لمساعدتك على دمج نماذج اللغة الكبيرة في تطبيقاتك مع بياناتك الخاصة.
يدعم Llamaindex.ts بيئات JS متعددة ، بما في ذلك:
في الوقت الحالي ، يكون دعم المتصفح محدودًا بسبب عدم وجود دعم لواجهة برمجة التطبيقات الشبيهة بالشفقة
npm install llamaindex
pnpm install llamaindex
yarn add llamaindexانظر مستندنا الرسمي: https://ts.llamaindex.ai/docs/llamaindex/setup/getting-started
عندما تقوم باستيراد llamaindex في بيئة غير nonode.js (مثل Vercel Edge ، وعمال CloudFlare ، وما إلى ذلك) ، لا يتم تصدير بعض الفصول من ملف الدخول إلى أعلى مستوى.
والسبب هو أن بعض الفئات متوافقة فقط مع وقت تشغيل Node.js ، (مثل PDFReader ) التي تستخدم واجهات برمجة التطبيقات الخاصة Node.js (مثل fs ، child_process ، crypto ).
إذا كنت بحاجة إلى أي من هذه الفئات ، فيجب عليك استيرادها بدلاً من ذلك مباشرة على مسار الملف في الحزمة. إليك مثال لاستيراد فئة PineconeVectorStore :
import { PineconeVectorStore } from "llamaindex/storage/vectorStore/PineconeVectorStore" ; نظرًا لأن PDFReader لا يعمل مع وقت تشغيل Edge ، فإليك كيفية استخدام SimpleDirectoryReader مع LlamaParseReader لتحميل PDF:
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" } ) ,
} ,
} ) ;
}ملاحظة : يجب إضافة فئات القارئ بشكل مستشعر إلى خريطة
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.
التضمين: تضمينات هي مجموعات من أرقام النقاط العائمة التي تمثل البيانات في العقدة. بمقارنة تشابه التضمينات ، يمكننا استخلاص فهم تشابه قطعتين من البيانات. تتمثل إحدى حالات الاستخدام في مقارنة تضمين سؤال مع تضمينات العقد الخاصة بنا لمعرفة العقد التي قد تحتوي على البيانات اللازمة للإجابة على هذا السؤال. نظرًا لأن سياق الخدمة الافتراضية هو Openai ، فإن التضمين الافتراضي هو OpenAIEmbedding . إذا كنت تستخدم نماذج مختلفة ، على سبيل المثال من خلال Ollama ، استخدم هذا التضمين (انظر كل شيء هنا).
المؤشرات: تخزن المؤشرات العقد وتضمينات تلك العقد. استرداد QueryEngines العقد من هذه المؤشرات باستخدام تشابه التضمين.
QueryEngine: محركات الاستعلام هي ما يولد الاستعلام الذي وضعته ويعيدك النتيجة. تجمع محركات الاستعلام عمومًا بين مطالبة تم تصميمها مسبقًا مع العقد المحددة من الفهرس الخاص بك لإعطاء LLM السياق الذي يحتاجه للإجابة على استعلامك. لإنشاء محرك استعلام من الفهرس الخاص بك (موصى به) ، استخدم طريقة asQueryEngine على الفهرس الخاص بك. انظر جميع محركات الاستعلام هنا.
Chatengine: يساعدك Chatengine على بناء chatbot يتفاعل مع مؤشراتك. شاهد جميع محركات الدردشة هنا.
SimplePrompt: تعريف استدعاء وظيفي موحد بسيط يأخذ في المدخلات وتنسيقها في قالب حرفي. يمكن تخصص SimplePrompts باستخدام الكاري ودمجها باستخدام وظائف Simpleprompt الأخرى.
يرجى الاطلاع على دليل المساهمة لدينا لمزيد من المعلومات. أنت نشجعك بشدة على المساهمة في llamaindex.ts!
يرجى الانضمام إلى خلافنا! https://discord.com/invite/en6d2hq4ax