Utilisez vos propres données avec des modèles de grandes langues (LLMS, Openai Chatgpt et autres) dans des environnements d'exécution JS avec une prise en charge de TypeScript.
Documentation: https://ts.llamaindex.ai/
Essayez des exemples en ligne:
Llamaindex.ts vise à être un ensemble léger et facile à utiliser des bibliothèques pour vous aider à intégrer de grands modèles de langage dans vos applications avec vos propres données.
Llamaindex.ts prend en charge plusieurs environnements JS, notamment:
Pour l'instant, le support du navigateur est limité en raison du manque de support pour les API de type Asynclocalstorage
npm install llamaindex
pnpm install llamaindex
yarn add llamaindexVoir notre document officiel: https://ts.llamaindex.ai/docs/llamaindex/setup/getting-started
Lorsque vous importez llamaindex dans un environnement non Node.js (tel que Vercel Edge, CloudFlare Workers, etc.), certaines classes ne sont pas exportées à partir du fichier d'entrée de niveau supérieur.
La raison en est que certaines classes ne sont compatibles qu'avec Runtime Node.js (par exemple PDFReader ) qui utilise des API spécifiques de Node.js (comme fs , child_process , crypto ).
Si vous avez besoin de ces classes, vous devez les importer à la place directement à la fois que leur chemin de fichier dans le package. Voici un exemple d'importation de la classe PineconeVectorStore :
import { PineconeVectorStore } from "llamaindex/storage/vectorStore/PineconeVectorStore" ; Comme le PDFReader ne travaille pas avec le runtime Edge, voici comment utiliser le SimpleDirectoryReader avec le LlamaParseReader pour charger les 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" } ) ,
} ,
} ) ;
}Remarque : les classes de lecture doivent être ajoutées de manière explicable à la carte
fileExtToReaderdans la version Edge du facteurSimpleDirectoryReader.
Vous trouverez un exemple complet avec llamaindexts ici: https://github.com/run-llama/create_llama_projects/tree/main/nextjs-edge-llamaparse
Consultez notre terrain de jeu NextJS à https://llama-playground.vercel.app/. La source est disponible sur https://github.com/run-llama/ts-playground
Document: Un document représente un fichier texte, un fichier PDF ou d'autres données contiguës.
Node: le bloc de construction de données de base. Le plus souvent, ce sont des parties du document divisé en pièces gérables qui sont suffisamment petites pour être introduites dans un modèle d'incorporation et LLM.
Incorporer: les intégres sont des ensembles de nombres de points flottants qui représentent les données dans un nœud. En comparant la similitude des intérêts, nous pouvons dériver une compréhension de la similitude de deux éléments de données. Un cas d'utilisation consiste à comparer l'incorporation d'une question avec les intérêts de nos nœuds pour voir quels nœuds peuvent contenir les données nécessaires pour répondre à cette question. Étant donné que le contexte de service par défaut est OpenAI, l'intégration par défaut est OpenAIEmbedding . Si vous utilisez différents modèles, par exemple via Olllama, utilisez cette intégration (voir tout ici).
Indices: les indices stockent les nœuds et les intérêts de ces nœuds. Les requêtes récupèrent les nœuds de ces indices en utilisant la similitude d'intégration.
QueryEngine: Les moteurs de requête sont ce qui génère la requête que vous mettez et vous redonnez le résultat. Les moteurs de requête combinent généralement une invite prédéfinie avec des nœuds sélectionnés de votre index pour donner au LLM le contexte dont il a besoin pour répondre à votre requête. Pour créer un moteur de requête à partir de votre index (recommandé), utilisez la méthode asQueryEngine sur votre index. Voir tous les moteurs de requête ici.
Chatengine: Un chatengin vous aide à construire un chatbot qui interagira avec vos indices. Voir tous les moteurs de chat ici.
SimplePrompt: une définition d'appel de fonction standardisée simple qui prend les entrées et les formats dans un modèle littéral. SimplePrompts peut être spécialisé en utilisant le curry et combiné à l'aide d'autres fonctions SimplePrompt.
Veuillez consulter notre guide de contribution pour plus d'informations. Vous êtes fortement encouragé à contribuer à Llamaindex.ts!
Veuillez rejoindre notre discorde! https://discord.com/invite/en6d2hq4ax