Use sus propios datos con modelos de idiomas grandes (LLMS, OpenAI CHATGPT y otros) en entornos de tiempo de ejecución JS con soporte TypeScript.
Documentación: https://ts.llamaindex.ai/
Pruebe ejemplos en línea:
Llamaindex.ts tiene como objetivo ser un conjunto de bibliotecas ligero y fácil de usar para ayudarlo a integrar grandes modelos de idiomas en sus aplicaciones con sus propios datos.
Llamaindex.ts admite múltiples entornos JS, que incluyen:
Por ahora, el soporte del navegador es limitado debido a la falta de soporte para las API similares a AsyncLocalStorage
npm install llamaindex
pnpm install llamaindex
yarn add llamaindexVea nuestro documento oficial: https://ts.llamaindex.ai/docs/llamaindex/setup/getting-started
Cuando está importando llamaindex en un entorno no nodo.js (como Vercel Edge, Worksflare Workers, etc.) Algunas clases no se exportan desde el archivo de entrada de nivel superior.
La razón es que algunas clases solo son compatibles con Node.js Runtime, (por ejemplo, PDFReader ) que usa API específicas de Node.js (como fs , child_process , crypto ).
Si necesita alguna de esas clases, debe importarlas directamente a través de su ruta de archivo en el paquete. Aquí hay un ejemplo para importar la clase PineconeVectorStore :
import { PineconeVectorStore } from "llamaindex/storage/vectorStore/PineconeVectorStore" ; Como el PDFReader no funciona con el tiempo de ejecución de Edge, aquí le mostramos cómo usar el SimpleDirectoryReader con LlamaParseReader para cargar 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" } ) ,
} ,
} ) ;
}Nota : Las clases de lector deben agregarse explictamente al mapa
fileExtToReaderen la versión Edge delSimpleDirectoryReader.
Encontrará un ejemplo completo con llameAindexts aquí: https://github.com/run-llama/create_llama_projects/tree/main/nextjs-edge-llamaparse
Echa un vistazo a nuestro NextJS Playground en https://llama-playground.vercel.app/. La fuente está disponible en https://github.com/run-llama/ts-playground
Documento: un documento representa un archivo de texto, un archivo PDF u otros datos contiguos.
Nodo: el bloque de construcción de datos básico. Más comúnmente, estas son partes del documento divididas en piezas manejables que son lo suficientemente pequeñas como para ser alimentadas en un modelo de incrustación y LLM.
Incrustación: los incrustaciones son conjuntos de números de puntos flotantes que representan los datos en un nodo. Al comparar la similitud de los incrustaciones, podemos obtener una comprensión de la similitud de dos datos. Un caso de uso es comparar la incrustación de una pregunta con los incrustaciones de nuestros nodos para ver qué nodos pueden contener los datos necesarios para responder esa pregunta. Debido a que el contexto de servicio predeterminado es OpenAI, la incrustación predeterminada es OpenAIEmbedding . Si usa diferentes modelos, por ejemplo, a través de Ollama, use esta incrustación (ver todos aquí).
Índices: los índices almacenan los nodos y los incrustaciones de esos nodos. QueryEngines recuperan nodos de estos índices utilizando similitud de incrustación.
QueryEngine: los motores de consulta son los que generan la consulta que pone y le devuelve el resultado. Los motores de consulta generalmente combinan un indicador preconstruido con nodos seleccionados de su índice para darle al LLM el contexto que necesita para responder a su consulta. Para construir un motor de consulta a partir de su índice (recomendado), use el método asQueryEngine en su índice. Vea todos los motores de consulta aquí.
ChatEngine: un chatengine te ayuda a construir un chatbot que interactúe con tus índices. Vea todos los motores de chat aquí.
SimplePrompt: una definición de llamada de función estandarizada simple que toma entradas y las formatea en una plantilla literal. Los SimplePrompts se pueden especializar utilizando el curry y combinados utilizando otras funciones de SimplePrompt.
Consulte nuestra guía de contribución para obtener más información. ¡Se le recomienda encarecidamente que contribuya a llamaindex.ts!
¡Únete a nuestra discordia! https://discord.com/invite/en6d2hq4ax