Gunakan data Anda sendiri dengan model bahasa besar (LLM, OpenAI ChatGPT dan lainnya) di lingkungan runtime JS dengan dukungan TypeScript.
Dokumentasi: https://ts.llamaindex.ai/
Coba contoh online:
Llamaindex.ts bertujuan untuk menjadi serangkaian perpustakaan yang ringan dan mudah digunakan untuk membantu Anda mengintegrasikan model bahasa besar ke dalam aplikasi Anda dengan data Anda sendiri.
Llamaindex.ts mendukung beberapa lingkungan JS, termasuk:
Untuk saat ini, dukungan browser terbatas karena kurangnya dukungan untuk API seperti asynclocalstorage
npm install llamaindex
pnpm install llamaindex
yarn add llamaindexLihat dokumen resmi kami: https://ts.llamaindex.ai/docs/llamaindex/setup/getting-started
Ketika Anda mengimpor llamaindex di lingkungan non-node.js (seperti Vercel Edge, CloudFlare Workers, dll.) Beberapa kelas tidak diekspor dari file entri tingkat atas.
Alasannya adalah bahwa beberapa kelas hanya kompatibel dengan runtime Node.js, (misalnya PDFReader ) yang menggunakan API spesifik Node.js (seperti fs , child_process , crypto ).
Jika Anda membutuhkan salah satu dari kelas -kelas itu, Anda harus mengimpornya secara langsung melalui jalur file mereka dalam paket. Berikut adalah contoh untuk mengimpor kelas PineconeVectorStore :
import { PineconeVectorStore } from "llamaindex/storage/vectorStore/PineconeVectorStore" ; Karena PDFReader tidak bekerja dengan runtime tepi, inilah cara menggunakan SimpleDirectoryReader dengan LlamaParseReader untuk memuat 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" } ) ,
} ,
} ) ;
}Catatan : Kelas pembaca harus ditambahkan secara eksplisit ke peta
fileExtToReaderdi versi tepi dariSimpleDirectoryReader.
Anda akan menemukan contoh lengkap dengan llamaindexts di sini: https://github.com/run-llama/create_llama_projects/tree/main/nextjs-edge-llamaparse
Lihatlah taman bermain NextJS kami di https://llama-playground.vercel.app/. Sumber ini tersedia di https://github.com/run-llama/ts-playground
Dokumen: Dokumen mewakili file teks, file PDF atau bagian data yang berdekatan.
Node: Blok pembangunan data dasar. Paling umum, ini adalah bagian dari dokumen yang dibagi menjadi potongan -potongan yang dapat dikelola yang cukup kecil untuk dimasukkan ke dalam model embedding dan LLM.
Embedding: Embeddings adalah set angka titik mengambang yang mewakili data dalam suatu node. Dengan membandingkan kesamaan embeddings, kita dapat memperoleh pemahaman tentang kesamaan dua potong data. Salah satu kasus penggunaan adalah membandingkan embedding pertanyaan dengan embeddings node kami untuk melihat node mana yang mungkin berisi data yang diperlukan untuk menjawab pertanyaan itu. Karena konteks layanan default adalah OpenAI, embedding default adalah OpenAIEmbedding . Jika menggunakan model yang berbeda, katakanlah melalui Ollama, gunakan embedding ini (lihat semua di sini).
Indeks: Indeks menyimpan node dan embedding dari node tersebut. QueryEngines mengambil node dari indeks ini menggunakan kesamaan embedding.
QueryEngine: Mesin kueri adalah apa yang menghasilkan kueri yang Anda masukkan dan mengembalikan hasilnya. Mesin kueri umumnya menggabungkan prompt yang telah dibangun dengan node yang dipilih dari indeks Anda untuk memberikan konteks konteks yang dibutuhkannya untuk menjawab kueri Anda. Untuk membangun mesin kueri dari indeks Anda (disarankan), gunakan metode asQueryEngine pada indeks Anda. Lihat semua mesin kueri di sini.
Chatengine: Chatengine membantu Anda membangun chatbot yang akan berinteraksi dengan indeks Anda. Lihat semua mesin obrolan di sini.
SimplePrompt: Definisi panggilan fungsi standar sederhana yang mengambil input dan memformatnya dalam templat literal. Prompt sederhana dapat dikhususkan menggunakan kari dan dikombinasikan menggunakan fungsi prompt sederhana lainnya.
Silakan lihat panduan berkontribusi kami untuk informasi lebih lanjut. Anda sangat terdorong untuk berkontribusi pada llamaindex.ts!
Silakan bergabung dengan perselisihan kami! https://discord.com/invite/en6d2hq4ax