TypeScriptサポートを備えたJSランタイム環境で、大規模な言語モデル(LLMS、Openai ChatGptなど)を使用して独自のデータを使用します。
ドキュメント:https://ts.llamaindex.ai/
オンラインで例を試してみてください:
llamaindex.tsは、大規模な言語モデルを独自のデータにアプリケーションに統合するのに役立つ、軽量で使いやすいライブラリのセットであることを目指しています。
llamaindex.tsは、以下を含む複数のJS環境をサポートしています
今のところ、ブラウザのサポートは、asynclocalStorageのようなAPIのサポートがないために制限されています
npm install llamaindex
pnpm install llamaindex
yarn add llamaindex公式ドキュメントを参照してください:https://ts.llamaindex.ai/docs/llamaindex/setup/getting-started
NONDODE.JS環境(Vercel Edge、CloudFlare Workersなど)にllamaindexをインポートする場合、一部のクラスはトップレベルのエントリファイルからエクスポートされません。
その理由は、一部のクラスは、node.js固有のAPI( fs 、 child_process 、 crypto )を使用するnode.jsランタイム(たとえばPDFReader )とのみ互換性があるためです。
これらのクラスが必要な場合は、パッケージ内のファイルパスを使用して、代わりに直接インポートする必要があります。 PineconeVectorStoreクラスをインポートする例は次のとおりです。
import { PineconeVectorStore } from "llamaindex/storage/vectorStore/PineconeVectorStore" ; PDFReader Edgeランタイムで動作していないため、PDFSをロードするためにLlamaParseReaderを使用してSimpleDirectoryReader使用する方法を次に示します。
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" } ) ,
} ,
} ) ;
}注:Readerクラスは、
SimpleDirectoryReaderのEDGEバージョンのfileExtToReaderマップに描写する必要があります。
llamaindextsの完全な例は、https://github.com/run-llama/create_llama_projects/tree/main/nextjs-eded-llamaparseです
https://llama-playground.vercel.app/のNextJSプレイグラウンドをご覧ください。ソースは、https://github.com/run-llama/ts-playgroundで入手できます
ドキュメント:ドキュメントは、テキストファイル、PDFファイル、またはその他の隣接するデータを表します。
ノード:基本データビルディングブロック。最も一般的には、これらはドキュメントの一部であり、埋め込みモデルとLLMに供給されるほど小さい管理可能な部分に分割されています。
埋め込み:埋め込みは、ノード内のデータを表すフローティングポイント番号のセットです。埋め込みの類似性を比較することにより、2つのデータの類似性の理解を導き出すことができます。 1つのユースケースは、質問の埋め込みをノードの埋め込みと比較して、どのノードにその質問に答えるために必要なデータが含まれているかを確認することです。デフォルトのサービスコンテキストはOpenAIであるため、デフォルトの埋め込みはOpenAIEmbeddingです。別のモデルを使用している場合、たとえばOllamaを介して、この埋め込みを使用します(こちらをすべて参照)。
インデックス:インデックスは、ノードとそれらのノードの埋め込みを保存します。 QueryEnginesは、埋め込みの類似性を使用して、これらのインデックスからノードを取得します。
QueryEngine:クエリエンジンは、入力したクエリを生成し、結果を返すものです。クエリエンジンは通常、事前に構築されたプロンプトと選択したノードをインデックスから組み合わせて、LLMにクエリに答えるために必要なコンテキストを提供します。インデックスからクエリエンジンを構築するには(推奨)、インデックスでasQueryEngineメソッドを使用します。ここですべてのクエリエンジンを参照してください。
ChatEngine:ChatEngineは、インデックスと対話するチャットボットを構築するのに役立ちます。ここではすべてのチャットエンジンをご覧ください。
SimplePrompt:入力を取り入れ、テンプレートリテラルでフォーマットする単純な標準化された関数コール定義。 SimplePromptsは、カレーを使用して専門化し、他のSimplePrompt関数を使用して組み合わせることができます。
詳細については、寄稿ガイドをご覧ください。 llamaindex.tsに貢献することを強くお勧めします!
私たちの不一致に参加してください! https://discord.com/invite/en6d2hq4ax