Verwenden Sie Ihre eigenen Daten mit großen Sprachmodellen (LLMs, OpenAI CHATGPT und anderen) in JS -Laufzeitumgebungen mit TypeScript -Unterstützung.
Dokumentation: https://ts.llamaindex.ai/
Probieren Sie Beispiele online aus:
Llamaindex.ts zielt darauf ab, ein leichtes, einfach zu verwendender Bibliotheken zu sein, um Sie mit Ihren eigenen Daten in Ihre Anwendungen in Ihre Anwendungen integrieren zu können.
Llamaindex.ts unterstützt mehrere JS -Umgebungen, darunter:
Derzeit ist die Browserunterstützung aufgrund der mangelnden Unterstützung für Asynclocalstorage-ähnliche APIs begrenzt
npm install llamaindex
pnpm install llamaindex
yarn add llamaindexSiehe unser offizielles Dokument: https://ts.llamaindex.ai/docs/llamaindex/setup/getting-started
Wenn Sie llamaindex in einer nicht-node.js-Umgebung (wie Vercel Edge, Cloudflare-Mitarbeiter usw.) importieren, werden einige Klassen nicht aus der Einstiegsdatei auf der obersten Ebene exportiert.
Der Grund dafür ist, dass einige Klassen nur mit der Laufzeit von Node.js (z. B. PDFReader ) kompatibel sind, die node.js spezifische APIs (wie fs , child_process , crypto ) verwendet.
Wenn Sie einen dieser Klassen benötigen, müssen Sie sie stattdessen direkt über ihren Dateipfad im Paket importieren. Hier ist ein Beispiel für den Importieren der Klasse PineconeVectorStore :
import { PineconeVectorStore } from "llamaindex/storage/vectorStore/PineconeVectorStore" ; Da der PDFReader nicht mit der Edge -Laufzeit arbeitet, verwenden Sie den SimpleDirectoryReader mit dem LlamaParseReader , um PDFs zu laden:
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" } ) ,
} ,
} ) ;
}HINWEIS : Die Leserklassen müssen in der Edge -Version des
fileExtToReaderin der Edgeversion desSimpleDirectoryReaderexplizit hinzugefügt werden.
Sie finden hier ein komplett
Schauen Sie sich unseren NextJS-Spielplatz unter https://llama-playground.vercel.app/ an. Die Quelle ist unter https://github.com/run-lama/ts-playground erhältlich
Dokument: Ein Dokument repräsentiert eine Textdatei, eine PDF -Datei oder ein anderes zusammenhängendes Datenstück.
Knoten: Der grundlegende Datenbaustein. Am häufigsten sind dies Teile des Dokuments, die in überschaubare Teile aufgeteilt sind, die klein genug sind, um in ein Einbettungsmodell und LLM eingespeist zu werden.
Einbettung: Einbettungen sind Sätze von schwimmenden Punktnummern, die die Daten in einem Knoten darstellen. Durch den Vergleich der Ähnlichkeit von Einbettungen können wir ein Verständnis der Ähnlichkeit zweier Datenstücke ableiten. Ein Anwendungsfall besteht darin, die Einbettung einer Frage mit den Einbettungen unserer Knoten zu vergleichen, um festzustellen, welche Knoten die Daten enthalten können, die zur Beantwortung dieser Frage erforderlich sind. Da der Standard -Service -Kontext offen ist, ist die Standardeinbettung OpenAIEmbedding . Wenn Sie verschiedene Modelle verwenden, sagen Sie durch Ollama diese Einbettung (siehe alle hier).
Indizes: Indizes speichern die Knoten und Einbettungen dieser Knoten. QueryEngines holen Knoten aus diesen Indizes mit der Einbettung der Ähnlichkeit ab.
QueryEngine: Abfragemotoren generieren die Abfrage, die Sie eingeben, und geben Ihnen das Ergebnis zurück. Abfragemotoren kombinieren im Allgemeinen eine vorgefertigte Eingabeaufforderung mit ausgewählten Knoten aus Ihrem Index, um dem LLM den Kontext zu geben, den es benötigt, um Ihre Abfrage zu beantworten. Verwenden Sie die asQueryEngine -Methode für Ihren Index, um eine Abfrage -Engine aus Ihrem Index zu erstellen (empfohlen). Sehen Sie hier alle Anfragemotoren.
ChatEngine: Mit einem Chategine können Sie einen Chatbot erstellen, der mit Ihren Indizes interagiert. Hier finden Sie alle Chat -Motoren.
SimplePrompt: Eine einfache standardisierte Funktionsaufrufdefinition, die Eingaben aufnimmt und in einer Vorlage buchstäblich formatiert. SimplePrompts können mit Currying spezialisiert und unter Verwendung anderer SimplePrompt -Funktionen kombiniert werden.
Weitere Informationen finden Sie in unserem beitragenden Leitfaden. Sie werden sehr ermutigt, zu llamaindex.ts beizutragen!
Bitte schließen Sie sich unserer Zwietracht an! https://discord.com/invite/en6d2hq4ax