mirror of
https://github.com/run-llama/LlamaIndexTS.git
synced 2026-07-01 22:14:03 -04:00
Compare commits
60 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 335f2df626 | |||
| ee963644bf | |||
| cb256f24ae | |||
| 1ccc04ecb5 | |||
| 034639153b | |||
| 1914b52708 | |||
| cb021e7196 | |||
| c2aa836b35 | |||
| 3b0f55f1ea | |||
| a9c6144eec | |||
| 3564244ced | |||
| d952e68ec4 | |||
| 5c026e839f | |||
| 9c1c5b4d50 | |||
| c902fcbc33 | |||
| 88d776f392 | |||
| 6fcc6bcb84 | |||
| be74207945 | |||
| 6be223dfad | |||
| 4cbfdb5f5c | |||
| 9767d1c004 | |||
| e831b28627 | |||
| cc50c9c2d4 | |||
| 954140776e | |||
| 6d37d440a6 | |||
| e724f7e9f2 | |||
| 1b029ae525 | |||
| d1db2189c9 | |||
| 2c5b4030c9 | |||
| 96eb597059 | |||
| 04098d55ff | |||
| 335a6b9e88 | |||
| c2a345ebb1 | |||
| d3fa729a30 | |||
| c7c08005ec | |||
| bb0ae5e321 | |||
| f4588bc770 | |||
| b49037612d | |||
| a87efb91a4 | |||
| 6a4a73760b | |||
| 1564831158 | |||
| 4d94f6e50d | |||
| 7bd5d9340c | |||
| d924c63162 | |||
| 83cff1277c | |||
| 1c908fd852 | |||
| 56f367f08d | |||
| cb608b5d01 | |||
| bd55bcffff | |||
| 6d4d96f8fe | |||
| b6ea2bf964 | |||
| 15563a0f70 | |||
| bd940d1d43 | |||
| 9f8ad37b79 | |||
| 7265f74c24 | |||
| e3f1b85846 | |||
| e38e474f86 | |||
| 2019a041f7 | |||
| 067a4894fe | |||
| 21769c8ad9 |
@@ -25,4 +25,4 @@ jobs:
|
||||
run: pnpm run build
|
||||
|
||||
- name: Pre Release
|
||||
run: pnpx pkg-pr-new publish ./packages/* ./packages/providers/*
|
||||
run: pnpx pkg-pr-new publish --pnpm ./packages/* ./packages/providers/* ./packages/providers/storage/*
|
||||
|
||||
@@ -83,11 +83,6 @@ jobs:
|
||||
run: pnpm install
|
||||
- name: Build
|
||||
run: pnpm run build
|
||||
- name: Use Build For Examples
|
||||
run: |
|
||||
pnpm link ../packages/llamaindex/
|
||||
cd readers && pnpm link ../../packages/llamaindex/
|
||||
working-directory: ./examples
|
||||
- name: Run Type Check
|
||||
run: pnpm run type-check
|
||||
- name: Run Circular Dependency Check
|
||||
@@ -103,6 +98,7 @@ jobs:
|
||||
- nextjs-node-runtime
|
||||
- waku-query-engine
|
||||
- llama-parse-browser
|
||||
- vite-import-llamaindex
|
||||
runs-on: ubuntu-latest
|
||||
name: Build LlamaIndex Example (${{ matrix.packages }})
|
||||
steps:
|
||||
@@ -121,6 +117,30 @@ jobs:
|
||||
run: pnpm run build
|
||||
working-directory: e2e/examples/${{ matrix.packages }}
|
||||
|
||||
size-limit:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name == 'pull_request'
|
||||
name: Size Limit
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: pnpm/action-setup@v4
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: ".nvmrc"
|
||||
cache: "pnpm"
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
- name: Build llamaindex
|
||||
run: pnpm run build
|
||||
- uses: andresz1/size-limit-action@94bc357df29c36c8f8d50ea497c3e225c3c95d1d
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
directory: e2e/examples/vite-import-llamaindex
|
||||
skip_step: "install"
|
||||
build_script: build
|
||||
package_manager: pnpm
|
||||
|
||||
typecheck-examples:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
|
||||
+1
-3
@@ -1,3 +1 @@
|
||||
pnpm format
|
||||
pnpm lint
|
||||
npx lint-staged
|
||||
pnpm run lint-staged
|
||||
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
LlamaIndexTS
|
||||
Vendored
+2
-1
@@ -14,5 +14,6 @@
|
||||
"[json]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
"prettier.prettierPath": "./node_modules/prettier"
|
||||
"prettier.prettierPath": "./node_modules/prettier",
|
||||
"prettier.configPath": "prettier.config.mjs"
|
||||
}
|
||||
|
||||
@@ -41,8 +41,15 @@ pnpm install
|
||||
|
||||
### Build the packages
|
||||
|
||||
You'll need Turbo to build the packages. If you don't have it, you can run it with `pnpx`.
|
||||
|
||||
To build all packages, run:
|
||||
|
||||
```shell
|
||||
# Build all packages
|
||||
pnpx turbo build --filter "./packages/*"
|
||||
|
||||
# Or if you have turbo installed, you can run:
|
||||
turbo build --filter "./packages/*"
|
||||
```
|
||||
|
||||
|
||||
@@ -65,44 +65,18 @@ yarn add llamaindex
|
||||
|
||||
See our official document: <https://ts.llamaindex.ai/docs/llamaindex/getting_started/>
|
||||
|
||||
### Tips when using in non-Node.js environments
|
||||
### Adding provider packages
|
||||
|
||||
When you are importing `llamaindex` in a non-Node.js environment(such as Vercel Edge, Cloudflare Workers, etc.)
|
||||
Some classes are not exported from top-level entry file.
|
||||
In most cases, you'll also need to install provider packages to use LlamaIndexTS. These are for adding AI models, file readers for ingestion or storing documents, e.g. in vector databases.
|
||||
|
||||
The reason is that some classes are only compatible with Node.js runtime,(e.g. `PDFReader`) which uses Node.js specific APIs(like `fs`, `child_process`, `crypto`).
|
||||
For example, to use the OpenAI LLM, you would install the following package:
|
||||
|
||||
If you need any of those classes, you have to import them instead directly though their file path in the package.
|
||||
Here's an example for importing the `PineconeVectorStore` class:
|
||||
|
||||
```typescript
|
||||
import { PineconeVectorStore } from "llamaindex/vector-store/PineconeVectorStore";
|
||||
```shell
|
||||
npm install @llamaindex/openai
|
||||
pnpm install @llamaindex/openai
|
||||
yarn add @llamaindex/openai
|
||||
```
|
||||
|
||||
As the `PDFReader` is not working with the Edge runtime, here's how to use the `SimpleDirectoryReader` with the `LlamaParseReader` to load PDFs:
|
||||
|
||||
```typescript
|
||||
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" }),
|
||||
},
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
> _Note_: Reader classes have to be added explictly to the `fileExtToReader` map in the Edge version of the `SimpleDirectoryReader`.
|
||||
|
||||
You'll find a complete example with LlamaIndexTS here: https://github.com/run-llama/create_llama_projects/tree/main/nextjs-edge-llamaparse
|
||||
|
||||
## Playground
|
||||
|
||||
Check out our NextJS playground at https://llama-playground.vercel.app/. The source is available at https://github.com/run-llama/ts-playground
|
||||
|
||||
@@ -1,5 +1,127 @@
|
||||
# @llamaindex/doc
|
||||
|
||||
## 0.1.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [cb256f2]
|
||||
- Updated dependencies [cb021e7]
|
||||
- @llamaindex/openai@0.1.55
|
||||
- @llamaindex/core@0.5.3
|
||||
- llamaindex@0.9.4
|
||||
- @llamaindex/cloud@3.0.4
|
||||
- @llamaindex/node-parser@1.0.3
|
||||
- @llamaindex/readers@2.0.3
|
||||
|
||||
## 0.1.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [d952e68]
|
||||
- @llamaindex/core@0.5.2
|
||||
- @llamaindex/cloud@3.0.3
|
||||
- llamaindex@0.9.3
|
||||
- @llamaindex/node-parser@1.0.2
|
||||
- @llamaindex/openai@0.1.54
|
||||
- @llamaindex/readers@2.0.2
|
||||
|
||||
## 0.1.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [c902fcb]
|
||||
- Updated dependencies [88d776f]
|
||||
- @llamaindex/cloud@3.0.2
|
||||
- llamaindex@0.9.2
|
||||
|
||||
## 0.1.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6d37d44]
|
||||
- llamaindex@0.9.1
|
||||
- @llamaindex/cloud@3.0.1
|
||||
- @llamaindex/core@0.5.1
|
||||
- @llamaindex/node-parser@1.0.1
|
||||
- @llamaindex/openai@0.1.53
|
||||
- @llamaindex/readers@2.0.1
|
||||
- @llamaindex/workflow@0.0.11
|
||||
|
||||
## 0.1.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 6a4a737: Remove re-exports from llamaindex main package
|
||||
- f4588bc: Remove readers package from llamaindex
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- c7c0800: fix: fumadoc build fail
|
||||
- a87efb9: docs: update chat engine docs
|
||||
- 7bd5d93: docs: update workflow doc
|
||||
- Updated dependencies [6a4a737]
|
||||
- Updated dependencies [d924c63]
|
||||
- Updated dependencies [b490376]
|
||||
- Updated dependencies [f4588bc]
|
||||
- llamaindex@0.9.0
|
||||
- @llamaindex/core@0.5.0
|
||||
- @llamaindex/cloud@3.0.0
|
||||
- @llamaindex/node-parser@1.0.0
|
||||
- @llamaindex/openai@0.1.52
|
||||
- @llamaindex/readers@2.0.0
|
||||
|
||||
## 0.0.41
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [1c908fd]
|
||||
- @llamaindex/openai@0.1.51
|
||||
- @llamaindex/node-parser@0.0.24
|
||||
- @llamaindex/workflow@0.0.10
|
||||
- @llamaindex/readers@1.0.25
|
||||
- @llamaindex/cloud@2.0.24
|
||||
- @llamaindex/core@0.4.23
|
||||
- llamaindex@0.8.37
|
||||
|
||||
## 0.0.40
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [cb608b5]
|
||||
- @llamaindex/openai@0.1.50
|
||||
- @llamaindex/node-parser@0.0.23
|
||||
- @llamaindex/workflow@0.0.9
|
||||
- @llamaindex/readers@1.0.24
|
||||
- @llamaindex/cloud@2.0.23
|
||||
- @llamaindex/core@0.4.22
|
||||
- llamaindex@0.8.36
|
||||
|
||||
## 0.0.39
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 6d4d96f: chore: update examples and docs to use unified imports
|
||||
- Updated dependencies [15563a0]
|
||||
- @llamaindex/openai@0.1.49
|
||||
- llamaindex@0.8.35
|
||||
|
||||
## 0.0.38
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [9f8ad37]
|
||||
- Updated dependencies [7265f74]
|
||||
- llamaindex@0.8.34
|
||||
- @llamaindex/openai@0.1.48
|
||||
|
||||
## 0.0.37
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2019a04]
|
||||
- @llamaindex/openai@0.1.47
|
||||
- llamaindex@0.8.33
|
||||
|
||||
## 0.0.36
|
||||
|
||||
### Patch Changes
|
||||
|
||||
+14
-13
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@llamaindex/doc",
|
||||
"version": "0.0.36",
|
||||
"version": "0.1.4",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "pnpm run build:docs && next build",
|
||||
@@ -28,25 +28,26 @@
|
||||
"@radix-ui/react-slot": "^1.1.0",
|
||||
"@radix-ui/react-tooltip": "^1.1.4",
|
||||
"@vercel/functions": "^1.5.0",
|
||||
"@scalar/api-client-react": "^1.1.25",
|
||||
"ai": "^3.4.33",
|
||||
"class-variance-authority": "^0.7.0",
|
||||
"clsx": "2.1.1",
|
||||
"foxact": "^0.2.41",
|
||||
"framer-motion": "^11.11.17",
|
||||
"fumadocs-core": "14.6.0",
|
||||
"fumadocs-docgen": "1.3.2",
|
||||
"fumadocs-mdx": "^11.1.2",
|
||||
"fumadocs-openapi": "^5.8.2",
|
||||
"fumadocs-twoslash": "^2.0.2",
|
||||
"fumadocs-typescript": "^3.0.2",
|
||||
"fumadocs-ui": "14.6.0",
|
||||
"fumadocs-core": "^14.7.7",
|
||||
"fumadocs-docgen": "^1.3.7",
|
||||
"fumadocs-mdx": "^11.5.3",
|
||||
"fumadocs-openapi": "^5.12.0",
|
||||
"fumadocs-twoslash": "^2.0.3",
|
||||
"fumadocs-typescript": "^3.0.3",
|
||||
"fumadocs-ui": "^14.7.7",
|
||||
"hast-util-to-jsx-runtime": "^2.3.2",
|
||||
"llamaindex": "workspace:*",
|
||||
"lucide-react": "^0.460.0",
|
||||
"next": "15.0.3",
|
||||
"next": "15.1.7",
|
||||
"next-themes": "^0.4.3",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
"react-icons": "^5.3.0",
|
||||
"react-monaco-editor": "^0.56.2",
|
||||
"react-text-transition": "^3.1.0",
|
||||
@@ -54,8 +55,8 @@
|
||||
"rehype-katex": "^7.0.1",
|
||||
"remark-math": "^6.0.0",
|
||||
"rimraf": "^6.0.1",
|
||||
"shiki": "1.23.1",
|
||||
"shiki-magic-move": "^0.5.0",
|
||||
"shiki": "^2.3.2",
|
||||
"shiki-magic-move": "^1.0.0",
|
||||
"swr": "^2.2.5",
|
||||
"tailwind-merge": "^2.5.2",
|
||||
"tailwindcss-animate": "^1.0.7",
|
||||
|
||||
@@ -76,15 +76,19 @@ export default function HomePage() {
|
||||
>
|
||||
<MagicMove
|
||||
code={[
|
||||
`import { OpenAI } from "llamaindex";
|
||||
`import { OpenAI } from "@llamaindex/openai";
|
||||
|
||||
const llm = new OpenAI();
|
||||
const response = await llm.complete({ prompt: "How are you?" });`,
|
||||
`import { OpenAI } from "llamaindex";
|
||||
`import { OpenAI } from "@llamaindex/openai";
|
||||
|
||||
const llm = new OpenAI();
|
||||
const response = await llm.chat({
|
||||
messages: [{ content: "Tell me a joke.", role: "user" }],
|
||||
});`,
|
||||
`import { OpenAI, ChatMemoryBuffer } from "llamaindex";
|
||||
`import { ChatMemoryBuffer } from "llamaindex";
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
|
||||
const llm = new OpenAI({ model: 'gpt4o-turbo' });
|
||||
const buffer = new ChatMemoryBuffer({
|
||||
tokenLimit: 128_000,
|
||||
@@ -94,7 +98,9 @@ const response = await llm.chat({
|
||||
messages: buffer.getMessages(),
|
||||
stream: true
|
||||
});`,
|
||||
`import { OpenAIAgent, ChatMemoryBuffer } from "llamaindex";
|
||||
`import { ChatMemoryBuffer } from "llamaindex";
|
||||
import { OpenAIAgent } from "@llamaindex/openai";
|
||||
|
||||
const agent = new OpenAIAgent({
|
||||
llm,
|
||||
tools: [...myTools]
|
||||
|
||||
@@ -5,4 +5,24 @@ title: Gemini Agent
|
||||
import { DynamicCodeBlock } from 'fumadocs-ui/components/dynamic-codeblock';
|
||||
import CodeSourceGemini from "!raw-loader!../../../../../../../examples/gemini/agent.ts";
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/google
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/google
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/google
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Source
|
||||
|
||||
<DynamicCodeBlock lang="ts" code={CodeSourceGemini} />
|
||||
|
||||
@@ -12,9 +12,8 @@ Here's a simple example of how to use the Context-Aware Agent:
|
||||
import {
|
||||
Document,
|
||||
VectorStoreIndex,
|
||||
OpenAIContextAwareAgent,
|
||||
OpenAI,
|
||||
} from "llamaindex";
|
||||
import { OpenAI, OpenAIContextAwareAgent } from "@llamaindex/openai";
|
||||
|
||||
async function createContextAwareAgent() {
|
||||
// Create and index some documents
|
||||
@@ -58,4 +57,3 @@ In this example, the Context-Aware Agent uses the retriever to fetch relevant co
|
||||
## Available Context-Aware Agents
|
||||
|
||||
- `OpenAIContextAwareAgent`: A context-aware agent using OpenAI's models.
|
||||
- `AnthropicContextAwareAgent`: A context-aware agent using Anthropic's models.
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
title: Local LLMs
|
||||
---
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
LlamaIndex.TS supports OpenAI and [other remote LLM APIs](other_llms). You can also run a local LLM on your machine!
|
||||
|
||||
## Using a local model via Ollama
|
||||
@@ -24,7 +26,23 @@ The first time you run it will also automatically download and install the model
|
||||
|
||||
### Switch the LLM in your code
|
||||
|
||||
To tell LlamaIndex to use a local LLM, use the `Settings` object:
|
||||
To switch the LLM in your code, you first need to make sure to install the package for the Ollama model provider:
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install @llamaindex/ollama
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add @llamaindex/ollama
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add @llamaindex/ollama
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
Then, to tell LlamaIndex to use a local LLM, use the `Settings` object:
|
||||
|
||||
```javascript
|
||||
Settings.llm = new Ollama({
|
||||
@@ -34,7 +52,25 @@ Settings.llm = new Ollama({
|
||||
|
||||
### Use local embeddings
|
||||
|
||||
If you're doing retrieval-augmented generation, LlamaIndex.TS will also call out to OpenAI to index and embed your data. To be entirely local, you can use a local embedding model like this:
|
||||
If you're doing retrieval-augmented generation, LlamaIndex.TS will also call out to OpenAI to index and embed your data. To be entirely local, you can use a local embedding model from Huggingface like this:
|
||||
|
||||
First install the Huggingface model provider package:
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install @llamaindex/huggingface
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add @llamaindex/huggingface
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add @llamaindex/huggingface
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
And then set the embedding model in your code:
|
||||
|
||||
```javascript
|
||||
Settings.embedModel = new HuggingFaceEmbedding({
|
||||
|
||||
@@ -7,14 +7,36 @@ import CodeSource from "!raw-loader!../../../../../../../examples/mistral";
|
||||
|
||||
By default LlamaIndex.TS uses OpenAI's LLMs and embedding models, but we support [lots of other LLMs](../modules/llms) including models from Mistral (Mistral, Mixtral), Anthropic (Claude) and Google (Gemini).
|
||||
|
||||
If you don't want to use an API at all you can [run a local model](../../examples/local_llm)
|
||||
If you don't want to use an API at all you can [run a local model](../../examples/local_llm).
|
||||
|
||||
This example runs you through the process of setting up a Mistral model:
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/mistral
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/mistral
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/mistral
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Using another LLM
|
||||
|
||||
You can specify what LLM LlamaIndex.TS will use on the `Settings` object, like this:
|
||||
|
||||
```typescript
|
||||
import { MistralAI, Settings } from "llamaindex";
|
||||
import { MistralAI } from "@llamaindex/mistral";
|
||||
import { Settings } from "llamaindex";
|
||||
|
||||
Settings.llm = new MistralAI({
|
||||
model: "mistral-tiny",
|
||||
@@ -29,7 +51,8 @@ You can see examples of other APIs we support by checking out "Available LLMs" i
|
||||
A frequent gotcha when trying to use a different API as your LLM is that LlamaIndex will also by default index and embed your data using OpenAI's embeddings. To completely switch away from OpenAI you will need to set your embedding model as well, for example:
|
||||
|
||||
```typescript
|
||||
import { MistralAIEmbedding, Settings } from "llamaindex";
|
||||
import { MistralAIEmbedding } from "@llamaindex/mistral";
|
||||
import { Settings } from "llamaindex";
|
||||
|
||||
Settings.embedModel = new MistralAIEmbedding();
|
||||
```
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
---
|
||||
title: Installation
|
||||
description: Install llamaindex by running a single command.
|
||||
description: How to install llamaindex packages.
|
||||
---
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
To install llamaindex, run the following command:
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex
|
||||
@@ -19,6 +21,25 @@ import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
In most cases, you'll also need an LLM package to use LlamaIndex. For example, to use the OpenAI LLM, you would install the following:
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add @llamaindex/openai
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
Go to [Using other LLM APIs](/docs/llamaindex/examples/other_llms) to find out how to use other LLMs.
|
||||
|
||||
|
||||
## What's next?
|
||||
|
||||
<Cards>
|
||||
|
||||
@@ -70,10 +70,8 @@ In Cloudflare Worker and similar serverless JS environment, you need to be aware
|
||||
|
||||
- Some Node.js modules are not available in Cloudflare Worker, such as `node:fs`, `node:child_process`, `node:cluster`...
|
||||
- You are recommend to design your code using network request, such as use `fetch` API to communicate with database, insteadof a long-running process in Node.js.
|
||||
- Some of LlamaIndex.TS modules are not available in Cloudflare Worker, for example `SimpleDirectoryReader` (requires `node:fs`), Some multimodal API that relies on [`onnxruntime-node`](https://www.npmjs.com/package/onnxruntime-node)(we might port to HTTP based module in the future).
|
||||
- `@llamaindex/core` is designed to work in all JavaScript environment, including Cloudflare Worker. If you find any issue, please report to us.
|
||||
- Some of LlamaIndex.TS packages are not available in Cloudflare Worker, for example `@llamaindex/readers` and `@llamaindex/huggingface`.
|
||||
- The main `llamaindex` is designed to work in all JavaScript environment, including Cloudflare Worker. If you find any issue, please report to us.
|
||||
- `@llamaindex/env` is a JS environment binding module, which polyfill some Node.js/Modern Web API (for example, we have a memory based `fs` module, and Crypto API polyfill). It is designed to work in all JavaScript environment, including Cloudflare Worker.
|
||||
|
||||
## Known issues
|
||||
|
||||
- `llamaindex` not work perfectly in Cloudflare Worker, bundle size will be larger than 1MB, which is the limit of Cloudflare Worker. You will need import submodule instead of the whole `llamaindex` module.
|
||||
|
||||
@@ -9,7 +9,7 @@ LlamaIndex.TS is written in TypeScript and designed to be used in TypeScript pro
|
||||
We do lots of work on strong typing to make sure you have a great typing experience with LlamaIndex.TS.
|
||||
|
||||
```ts twoslash
|
||||
import { PromptTemplate } from '@llamaindex/core/prompts'
|
||||
import { PromptTemplate } from 'llamaindex'
|
||||
const promptTemplate = new PromptTemplate({
|
||||
template: `Context information from multiple sources is below.
|
||||
---------------------
|
||||
@@ -29,7 +29,7 @@ promptTemplate.format({
|
||||
```
|
||||
|
||||
```ts twoslash
|
||||
import { FunctionTool } from '@llamaindex/core/tools'
|
||||
import { FunctionTool } from 'llamaindex'
|
||||
import { z } from 'zod'
|
||||
|
||||
// ---cut-before---
|
||||
|
||||
@@ -15,7 +15,7 @@ In LlamaIndex, an agent is a semi-autonomous piece of software powered by an LLM
|
||||
You'll need to have a recent version of [Node.js](https://nodejs.org/en) installed. Then you can install LlamaIndex.TS by running
|
||||
|
||||
```bash
|
||||
npm install llamaindex
|
||||
npm install llamaindex @llamaindex/openai @llamaindex/readers @llamaindex/huggingface
|
||||
```
|
||||
|
||||
## Choose your model
|
||||
|
||||
@@ -31,7 +31,8 @@ First we'll need to pull in our dependencies. These are:
|
||||
- Dotenv to load our API key from the .env file
|
||||
|
||||
```javascript
|
||||
import { OpenAI, FunctionTool, OpenAIAgent, Settings } from "llamaindex";
|
||||
import { FunctionTool, Settings } from "llamaindex";
|
||||
import { OpenAI, OpenAIAgent } from "@llamaindex/openai";
|
||||
import "dotenv/config";
|
||||
```
|
||||
|
||||
|
||||
@@ -13,22 +13,34 @@ To learn more about RAG, we recommend this [introduction](https://docs.llamainde
|
||||
|
||||
We're going to start with the same agent we [built in step 1](https://github.com/run-llama/ts-agents/blob/main/1_agent/agent.ts), but make a few changes. You can find the finished version [in the repository](https://github.com/run-llama/ts-agents/blob/main/2_agentic_rag/agent.ts).
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/openai @llamaindex/huggingface
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/openai @llamaindex/huggingface
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/openai @llamaindex/huggingface
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
|
||||
### New dependencies
|
||||
|
||||
We'll be bringing in `SimpleDirectoryReader`, `HuggingFaceEmbedding`, `VectorStoreIndex`, and `QueryEngineTool`, `OpenAIContextAwareAgent` from LlamaIndex.TS, as well as the dependencies we previously used.
|
||||
|
||||
```javascript
|
||||
import {
|
||||
OpenAI,
|
||||
FunctionTool,
|
||||
OpenAIAgent,
|
||||
OpenAIContextAwareAgent,
|
||||
Settings,
|
||||
SimpleDirectoryReader,
|
||||
HuggingFaceEmbedding,
|
||||
VectorStoreIndex,
|
||||
QueryEngineTool,
|
||||
} from "llamaindex";
|
||||
import { FunctionTool, QueryEngineTool, Settings, VectorStoreIndex } from "llamaindex";
|
||||
import { OpenAI, OpenAIAgent } from "@llamaindex/openai";
|
||||
import { HuggingFaceEmbedding } from "@llamaindex/huggingface";
|
||||
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
|
||||
```
|
||||
|
||||
### Add an embedding model
|
||||
|
||||
@@ -10,7 +10,7 @@ import { Accordion, Accordions } from 'fumadocs-ui/components/accordion';
|
||||
<Accordions>
|
||||
<Accordion title="Install @llamaindex/readers">
|
||||
|
||||
If you want to only use reader modules, you can install `@llamaindex/readers`
|
||||
If you want to use the reader module, you need to install `@llamaindex/readers`
|
||||
|
||||
<Tabs groupId="install-llamaindex" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
@@ -31,72 +31,73 @@ import { Accordion, Accordions } from 'fumadocs-ui/components/accordion';
|
||||
|
||||
We offer readers for different file formats.
|
||||
|
||||
<Tabs groupId="llamaindex-or-readers" items={["llamaindex", "@llamaindex/readers"]} persist>
|
||||
```ts twoslash tab="llamaindex"
|
||||
import { CSVReader } from 'llamaindex'
|
||||
import { PDFReader } from 'llamaindex'
|
||||
import { JSONReader } from 'llamaindex'
|
||||
import { MarkdownReader } from 'llamaindex'
|
||||
import { HTMLReader } from 'llamaindex'
|
||||
// you can find more readers in the documentation
|
||||
```
|
||||
|
||||
```ts twoslash tab="@llamaindex/readers"
|
||||
import { CSVReader } from '@llamaindex/readers/csv'
|
||||
import { PDFReader } from '@llamaindex/readers/pdf'
|
||||
import { JSONReader } from '@llamaindex/readers/json'
|
||||
import { MarkdownReader } from '@llamaindex/readers/markdown'
|
||||
import { HTMLReader } from '@llamaindex/readers/html'
|
||||
// you can find more readers in the documentation
|
||||
```
|
||||
|
||||
</Tabs>
|
||||
```ts twoslash
|
||||
import { CSVReader } from '@llamaindex/readers/csv'
|
||||
import { PDFReader } from '@llamaindex/readers/pdf'
|
||||
import { JSONReader } from '@llamaindex/readers/json'
|
||||
import { MarkdownReader } from '@llamaindex/readers/markdown'
|
||||
import { HTMLReader } from '@llamaindex/readers/html'
|
||||
// you can find more readers in the documentation
|
||||
```
|
||||
|
||||
## SimpleDirectoryReader
|
||||
|
||||
`SimpleDirectoryReader` is the simplest way to load data from local files into LlamaIndex.
|
||||
|
||||
<Tabs groupId="llamaindex-or-readers" items={["llamaindex", "@llamaindex/readers"]} persist>
|
||||
```ts twoslash
|
||||
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
|
||||
|
||||
```ts twoslash tab="llamaindex"
|
||||
import { SimpleDirectoryReader } from "llamaindex";
|
||||
|
||||
const reader = new SimpleDirectoryReader()
|
||||
const documents = await reader.loadData("./data")
|
||||
// ^?
|
||||
const reader = new SimpleDirectoryReader()
|
||||
const documents = await reader.loadData("./data")
|
||||
// ^?
|
||||
|
||||
|
||||
const texts = documents.map(doc => doc.getText())
|
||||
// ^?
|
||||
```
|
||||
|
||||
```ts twoslash tab="@llamaindex/readers"
|
||||
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
|
||||
|
||||
const reader = new SimpleDirectoryReader()
|
||||
const documents = await reader.loadData("./data")
|
||||
// ^?
|
||||
const texts = documents.map(doc => doc.getText())
|
||||
// ^?
|
||||
```
|
||||
|
||||
|
||||
const texts = documents.map(doc => doc.getText())
|
||||
// ^?
|
||||
```
|
||||
## Tips when using in non-Node.js environments
|
||||
|
||||
When using `@llamaindex/readers` in a non-Node.js environment (such as Vercel Edge, Cloudflare Workers, etc.)
|
||||
Some classes are not exported from top-level entry file.
|
||||
|
||||
The reason is that some classes are only compatible with Node.js runtime, (e.g. `PDFReader`) which uses Node.js specific APIs (like `fs`, `child_process`, `crypto`).
|
||||
|
||||
If you need any of those classes, you have to import them instead directly through their file path in the package.
|
||||
|
||||
As the `PDFReader` is not working with the Edge runtime, here's how to use the `SimpleDirectoryReader` with the `LlamaParseReader` to load PDFs:
|
||||
|
||||
```typescript
|
||||
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
|
||||
import { LlamaParseReader } from "@llamaindex/cloud";
|
||||
|
||||
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" }),
|
||||
},
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
> _Note_: Reader classes have to be added explicitly to the `fileExtToReader` map in the Edge version of the `SimpleDirectoryReader`.
|
||||
|
||||
You'll find a complete example with LlamaIndexTS here: https://github.com/run-llama/create_llama_projects/tree/main/nextjs-edge-llamaparse
|
||||
|
||||
</Tabs>
|
||||
|
||||
## Load file natively using Node.js Customization Hooks
|
||||
|
||||
We have a helper utility to allow you to import a file in Node.js script.
|
||||
|
||||
<Tabs groupId="llamaindex-or-readers" items={["llamaindex", "@llamaindex/readers"]} persist>
|
||||
```shell tab="llamaindex"
|
||||
node --import llamaindex/register ./script.js
|
||||
```
|
||||
|
||||
```shell tab="@llamaindex/readers"
|
||||
node --import @llamaindex/readers/node ./script.js
|
||||
```
|
||||
</Tabs>
|
||||
```shell
|
||||
node --import @llamaindex/readers/node ./script.js
|
||||
```
|
||||
|
||||
```ts
|
||||
import csv from './path/to/data.csv';
|
||||
|
||||
@@ -15,7 +15,7 @@ By default, we will use `Settings.nodeParser` to split the document into nodes.
|
||||
|
||||
```ts twoslash
|
||||
import { TextFileReader } from '@llamaindex/readers/text'
|
||||
import { SentenceSplitter } from '@llamaindex/core/node-parser';
|
||||
import { SentenceSplitter } from 'llamaindex';
|
||||
import { Settings } from 'llamaindex';
|
||||
|
||||
const nodeParser = new SentenceSplitter();
|
||||
@@ -28,7 +28,7 @@ Settings.nodeParser = nodeParser;
|
||||
The underlying text splitter will split text by sentences. It can also be used as a standalone module for splitting raw text.
|
||||
|
||||
```ts twoslash
|
||||
import { SentenceSplitter } from "@llamaindex/core/node-parser";
|
||||
import { SentenceSplitter } from "llamaindex";
|
||||
|
||||
const splitter = new SentenceSplitter({ chunkSize: 1 });
|
||||
|
||||
@@ -42,7 +42,7 @@ The `MarkdownNodeParser` is a more advanced `NodeParser` that can handle markdow
|
||||
|
||||
<Tabs items={["with reader", "with node:fs"]}>
|
||||
```ts twoslash tab="with reader"
|
||||
import { MarkdownNodeParser } from "@llamaindex/core/node-parser";
|
||||
import { MarkdownNodeParser } from "llamaindex";
|
||||
import { MarkdownReader } from '@llamaindex/readers/markdown'
|
||||
|
||||
const reader = new MarkdownReader();
|
||||
@@ -56,8 +56,7 @@ The `MarkdownNodeParser` is a more advanced `NodeParser` that can handle markdow
|
||||
|
||||
```ts twoslash tab="with node:fs"
|
||||
import fs from 'node:fs/promises';
|
||||
import { MarkdownNodeParser } from "@llamaindex/core/node-parser";
|
||||
import { Document } from '@llamaindex/core/schema';
|
||||
import { MarkdownNodeParser, Document } from "llamaindex";
|
||||
|
||||
const markdownNodeParser = new MarkdownNodeParser();
|
||||
const text = await fs.readFile('path/to/file.md', 'utf-8');
|
||||
@@ -82,7 +81,7 @@ It will split the code by AST nodes and then parse the nodes into a `Document` o
|
||||
import TS from "tree-sitter-typescript";
|
||||
|
||||
const parser = new Parser();
|
||||
parser.setLanguage(TS.typescript);
|
||||
parser.setLanguage(TS.typescript as Parser.Language);
|
||||
const codeSplitter = new CodeSplitter({
|
||||
getParser: () => parser,
|
||||
});
|
||||
@@ -100,7 +99,7 @@ It will split the code by AST nodes and then parse the nodes into a `Document` o
|
||||
import TS from "tree-sitter-typescript";
|
||||
|
||||
const parser = new Parser();
|
||||
parser.setLanguage(TS.typescript);
|
||||
parser.setLanguage(TS.typescript as Parser.Language);
|
||||
const codeSplitter = new CodeSplitter({
|
||||
getParser: () => parser,
|
||||
});
|
||||
|
||||
@@ -20,5 +20,5 @@ LlamaIndex.TS provides tools for beginners, advanced users, and everyone in betw
|
||||
className="w-full h-[440px]"
|
||||
aria-label="LlamaIndex.TS Starter"
|
||||
aria-description="This is a starter example for LlamaIndex.TS, it shows the basic usage of the library."
|
||||
src="https://stackblitz.com/github/run-llama/LlamaIndexTS/tree/main/examples?file=starter.ts"
|
||||
src="https://stackblitz.com/github/run-llama/LlamaIndexTS/tree/main/examples?embed=1&file=starter.ts"
|
||||
/>
|
||||
|
||||
@@ -69,7 +69,7 @@ streamText({
|
||||
For production deployments, you can use LlamaCloud to store and manage your documents:
|
||||
|
||||
```typescript
|
||||
import { LlamaCloudIndex } from "llamaindex";
|
||||
import { LlamaCloudIndex } from "@llamaindex/cloud";
|
||||
|
||||
// Create a LlamaCloud index
|
||||
const index = await LlamaCloudIndex.fromDocuments({
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"what-is-llamaindex",
|
||||
"index",
|
||||
"getting_started",
|
||||
"migration",
|
||||
"guide",
|
||||
"examples",
|
||||
"modules",
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
---
|
||||
title: Migrating from v0.8 to v0.9
|
||||
---
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
Version 0.9 of LlamaIndex.TS introduces significant architectural changes to improve package size and runtime compatibility. The main goals of this release are:
|
||||
|
||||
1. Reduce the package size of the main `llamaindex` package by moving dependencies into provider packages, making it more suitable for serverless environments
|
||||
2. Enable consistent code across different environments by using unified imports (no separate imports for Node.js and Edge runtimes)
|
||||
|
||||
## Major Changes
|
||||
|
||||
### Installing Provider Packages
|
||||
|
||||
In v0.9, you need to explicitly install the provider packages you want to use. The main `llamaindex` package no longer includes these dependencies by default.
|
||||
|
||||
### Updating Imports
|
||||
|
||||
You'll need to update your imports to get classes directly from their respective provider packages. Here's how to migrate different components:
|
||||
|
||||
### 1. AI Model Providers
|
||||
|
||||
Previously:
|
||||
```typescript
|
||||
import { OpenAI } from "llamaindex";
|
||||
```
|
||||
|
||||
Now:
|
||||
```typescript
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
```
|
||||
|
||||
> Note: This examples requires installing the `@llamaindex/openai` package:
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add @llamaindex/openai
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
For more details on available AI model providers and their configuration, see the [LLMs documentation](/docs/llamaindex/modules/llms) and the [Embedding Models documentation](/docs/llamaindex/modules/embeddings).
|
||||
|
||||
### 2. Storage Providers
|
||||
|
||||
Previously:
|
||||
```typescript
|
||||
import { PineconeVectorStore } from "llamaindex";
|
||||
```
|
||||
|
||||
Now:
|
||||
```typescript
|
||||
import { PineconeVectorStore } from "@llamaindex/pinecone";
|
||||
```
|
||||
|
||||
For more information about available storage options, refer to the [Data Stores documentation](/docs/llamaindex/modules/data_stores).
|
||||
|
||||
### 3. Data Loaders
|
||||
|
||||
Previously:
|
||||
```typescript
|
||||
import { SimpleDirectoryReader } from "llamaindex";
|
||||
```
|
||||
|
||||
Now:
|
||||
```typescript
|
||||
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
|
||||
```
|
||||
|
||||
For more details about available data loaders and their usage, check the [Loading Data](/docs/llamaindex/guide/loading).
|
||||
|
||||
### 4. Prefer using `llamaindex` instead of `@llamaindex/core`
|
||||
|
||||
`llamaindex` is now re-exporting most of `@llamaindex/core`. To simplify imports, just use `import { ... } from "llamaindex"` instead of `import { ... } from "@llamaindex/core"`. This is possible because `llamaindex` is now a smaller package.
|
||||
|
||||
We might change imports internally in `@llamaindex/core` in the future. Let us know if you're missing something.
|
||||
|
||||
## Benefits of the Changes
|
||||
|
||||
- **Smaller Bundle Size**: By moving dependencies to separate packages, your application only includes the features you actually use
|
||||
- **Runtime Consistency**: The same code works across different environments without environment-specific imports
|
||||
- **Improved Serverless Support**: Reduced package size makes it easier to deploy to serverless environments with size limitations
|
||||
|
||||
## Need Help?
|
||||
|
||||
If you encounter any issues during migration, please:
|
||||
1. Check our [GitHub repository](https://github.com/run-llama/LlamaIndexTS) for the latest updates
|
||||
2. Join our [Discord community](https://discord.gg/dGcwcsnxhU) for support
|
||||
3. Open an issue on GitHub if you find a bug or have a feature request
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"title": "Migration",
|
||||
"description": "Migration between different versions",
|
||||
"pages": ["0.8-to-0.9"]
|
||||
}
|
||||
@@ -12,9 +12,26 @@ const chatEngine = new ContextChatEngine({ retriever });
|
||||
const response = await chatEngine.chat({ message: query });
|
||||
```
|
||||
|
||||
In short, you can use the chat engine by calling `index.asChatEngine()`. It will return a `ContextChatEngine` to start chatting.
|
||||
|
||||
```typescript
|
||||
const chatEngine = index.asChatEngine();
|
||||
```
|
||||
|
||||
You can also pass in options to the chat engine.
|
||||
|
||||
```typescript
|
||||
const chatEngine = index.asChatEngine({
|
||||
similarityTopK: 5,
|
||||
systemPrompt: "You are a helpful assistant.",
|
||||
});
|
||||
```
|
||||
|
||||
|
||||
The `chat` function also supports streaming, just add `stream: true` as an option:
|
||||
|
||||
```typescript
|
||||
const chatEngine = index.asChatEngine();
|
||||
const stream = await chatEngine.chat({ message: query, stream: true });
|
||||
for await (const chunk of stream) {
|
||||
process.stdout.write(chunk.response);
|
||||
|
||||
@@ -6,10 +6,28 @@ A simple JSON data loader with various options.
|
||||
Either parses the entire string, cleaning it and treat each line as an embedding or performs a recursive depth-first traversal yielding JSON paths.
|
||||
Supports streaming of large JSON data using [@discoveryjs/json-ext](https://github.com/discoveryjs/json-ext)
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/readers
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/readers
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/readers
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Usage
|
||||
|
||||
```ts
|
||||
import { JSONReader } from "llamaindex";
|
||||
import { JSONReader } from "@llamaindex/readers/json";
|
||||
|
||||
const file = "../../PATH/TO/FILE";
|
||||
const content = new TextEncoder().encode("JSON_CONTENT");
|
||||
|
||||
@@ -4,6 +4,24 @@ title: Image Retrieval
|
||||
|
||||
LlamaParse `json` mode supports extracting any images found in a page object by using the `getImages` function. They are downloaded to a local folder and can then be sent to a multimodal LLM for further processing.
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/cloud @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/cloud @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/cloud @llamaindex/openai
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Usage
|
||||
|
||||
We use the `getImages` method to input our array of JSON objects, download the images to a specified folder and get a list of ImageNodes.
|
||||
@@ -19,14 +37,10 @@ const imageDicts = await reader.getImages(jsonObjs, "images");
|
||||
You can create an index across both text and image nodes by requesting alternative text for the image from a multimodal LLM.
|
||||
|
||||
```ts
|
||||
import {
|
||||
Document,
|
||||
ImageNode,
|
||||
LlamaParseReader,
|
||||
OpenAI,
|
||||
VectorStoreIndex,
|
||||
} from "llamaindex";
|
||||
import { createMessageContent } from "llamaindex/synthesizers/utils";
|
||||
import { Document, ImageNode, VectorStoreIndex } from "llamaindex";
|
||||
import { LlamaParseReader } from "@llamaindex/cloud";
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
import { createMessageContent } from "llamaindex";
|
||||
|
||||
const reader = new LlamaParseReader();
|
||||
async function main() {
|
||||
|
||||
+22
-1
@@ -4,12 +4,32 @@ title: JSON Mode
|
||||
|
||||
In JSON mode, LlamaParse will return a data structure representing the parsed object.
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/cloud
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/cloud
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/cloud
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Usage
|
||||
|
||||
For Json mode, you need to use `loadJson`. The `resultType` is automatically set with this method.
|
||||
More information about indexing the results on the next page.
|
||||
|
||||
```ts
|
||||
import { LlamaParseReader } from "@llamaindex/cloud";
|
||||
|
||||
const reader = new LlamaParseReader();
|
||||
async function main() {
|
||||
// Load the file and return an array of json objects
|
||||
@@ -59,7 +79,8 @@ All Readers share a `loadData` method with `SimpleDirectoryReader` that promises
|
||||
However, a simple work around is to create a new reader class that extends `LlamaParseReader` and adds a new method or overrides `loadData`, wrapping around JSON mode, extracting the required values, and returning a Document object.
|
||||
|
||||
```ts
|
||||
import { LlamaParseReader, Document } from "llamaindex";
|
||||
import { Document } from "llamaindex";
|
||||
import { LlamaParseReader } from "@llamaindex/cloud";
|
||||
|
||||
class LlamaParseReaderWithJson extends LlamaParseReader {
|
||||
// Override the loadData method
|
||||
|
||||
@@ -11,6 +11,38 @@ Document stores contain ingested document chunks, i.e. [Node](/docs/llamaindex/m
|
||||
|
||||
Check the [LlamaIndexTS Github](https://github.com/run-llama/LlamaIndexTS) for the most up to date overview of integrations.
|
||||
|
||||
## Using PostgreSQL as Document Store
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/postgres
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/postgres
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/postgres
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
You can configure the `schemaName`, `tableName`, `namespace`, and
|
||||
`connectionString`. If a `connectionString` is not
|
||||
provided, it will use the environment variables `PGHOST`, `PGUSER`,
|
||||
`PGPASSWORD`, `PGDATABASE` and `PGPORT`.
|
||||
|
||||
```typescript
|
||||
import { Document, VectorStoreIndex, storageContextFromDefaults } from "llamaindex";
|
||||
import { PostgresDocumentStore } from "@llamaindex/postgres";
|
||||
|
||||
const storageContext = await storageContextFromDefaults({
|
||||
docStore: new PostgresDocumentStore(),
|
||||
});
|
||||
```
|
||||
|
||||
## API Reference
|
||||
|
||||
- [BaseDocumentStore](/docs/api/classes/BaseDocumentStore)
|
||||
|
||||
@@ -5,9 +5,13 @@ title: Storage
|
||||
Storage in LlamaIndex.TS works automatically once you've configured a
|
||||
`StorageContext` object.
|
||||
|
||||
Per default a local directory is used for storage. Depening on the storage type (i.e. doc stores, index stores or vector stores), you can configure a different persistence layer.
|
||||
Most commonly a vector database is used as vector store.
|
||||
|
||||
|
||||
## Local Storage
|
||||
|
||||
You can configure the `persistDir` and attach it to an index.
|
||||
You can configure the `persistDir` to define where to store the data locally.
|
||||
|
||||
```typescript
|
||||
import {
|
||||
@@ -26,33 +30,6 @@ const index = await VectorStoreIndex.fromDocuments([document], {
|
||||
});
|
||||
```
|
||||
|
||||
## PostgreSQL Storage
|
||||
|
||||
You can configure the `schemaName`, `tableName`, `namespace`, and
|
||||
`connectionString`. If a `connectionString` is not
|
||||
provided, it will use the environment variables `PGHOST`, `PGUSER`,
|
||||
`PGPASSWORD`, `PGDATABASE` and `PGPORT`.
|
||||
|
||||
```typescript
|
||||
import {
|
||||
Document,
|
||||
VectorStoreIndex,
|
||||
PostgresDocumentStore,
|
||||
PostgresIndexStore,
|
||||
storageContextFromDefaults,
|
||||
} from "llamaindex";
|
||||
|
||||
const storageContext = await storageContextFromDefaults({
|
||||
docStore: new PostgresDocumentStore(),
|
||||
indexStore: new PostgresIndexStore(),
|
||||
});
|
||||
|
||||
const document = new Document({ text: "Test Text" });
|
||||
const index = await VectorStoreIndex.fromDocuments([document], {
|
||||
storageContext,
|
||||
});
|
||||
```
|
||||
|
||||
## API Reference
|
||||
|
||||
- [StorageContext](/docs/api/interfaces/StorageContext)
|
||||
|
||||
@@ -11,6 +11,38 @@ Index stores are underlying storage components that contain metadata(i.e. inform
|
||||
|
||||
Check the [LlamaIndexTS Github](https://github.com/run-llama/LlamaIndexTS) for the most up to date overview of integrations.
|
||||
|
||||
## Using PostgreSQL as Index Store
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/postgres
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/postgres
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/postgres
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
You can configure the `schemaName`, `tableName`, `namespace`, and
|
||||
`connectionString`. If a `connectionString` is not
|
||||
provided, it will use the environment variables `PGHOST`, `PGUSER`,
|
||||
`PGPASSWORD`, `PGDATABASE` and `PGPORT`.
|
||||
|
||||
```typescript
|
||||
import { Document, VectorStoreIndex, storageContextFromDefaults } from "llamaindex";
|
||||
import { PostgresIndexStore } from "@llamaindex/postgres";
|
||||
|
||||
const storageContext = await storageContextFromDefaults({
|
||||
indexStore: new PostgresIndexStore(),
|
||||
});
|
||||
```
|
||||
|
||||
## API Reference
|
||||
|
||||
- [BaseIndexStore](/docs/api/classes/BaseIndexStore)
|
||||
|
||||
@@ -21,4 +21,4 @@ Check the [LlamaIndexTS Github](https://github.com/run-llama/LlamaIndexTS) for t
|
||||
|
||||
## API Reference
|
||||
|
||||
- [VectorStoreBase](/docs/api/classes/VectorStoreBase)
|
||||
- [BaseVectorStore](/docs/api/classes/BaseVectorStore)
|
||||
|
||||
@@ -11,11 +11,30 @@ docker pull qdrant/qdrant
|
||||
docker run -p 6333:6333 qdrant/qdrant
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/qdrant
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/qdrant
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/qdrant
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Importing the modules
|
||||
|
||||
```ts
|
||||
import fs from "node:fs/promises";
|
||||
import { Document, VectorStoreIndex, QdrantVectorStore } from "llamaindex";
|
||||
import { Document, VectorStoreIndex } from "llamaindex";
|
||||
import { QdrantVectorStore } from "@llamaindex/qdrant";
|
||||
```
|
||||
|
||||
## Load the documents
|
||||
@@ -60,7 +79,8 @@ console.log(response.toString());
|
||||
|
||||
```ts
|
||||
import fs from "node:fs/promises";
|
||||
import { Document, VectorStoreIndex, QdrantVectorStore } from "llamaindex";
|
||||
import { Document, VectorStoreIndex } from "llamaindex";
|
||||
import { QdrantVectorStore } from "@llamaindex/qdrant";
|
||||
|
||||
async function main() {
|
||||
const path = "node_modules/llamaindex/examples/abramov.txt";
|
||||
|
||||
+2
-7
@@ -14,13 +14,8 @@ Our metadata extractor modules include the following "feature extractors":
|
||||
Then you can chain the `Metadata Extractors` with the `IngestionPipeline` to extract metadata from a set of documents.
|
||||
|
||||
```ts
|
||||
import {
|
||||
IngestionPipeline,
|
||||
TitleExtractor,
|
||||
QuestionsAnsweredExtractor,
|
||||
Document,
|
||||
OpenAI,
|
||||
} from "llamaindex";
|
||||
import { Document, IngestionPipeline, TitleExtractor, QuestionsAnsweredExtractor } from "llamaindex";
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
|
||||
async function main() {
|
||||
const pipeline = new IngestionPipeline({
|
||||
|
||||
+24
-9
@@ -5,13 +5,27 @@ title: DeepInfra
|
||||
To use DeepInfra embeddings, you need to import `DeepInfraEmbedding` from llamaindex.
|
||||
Check out available embedding models [here](https://deepinfra.com/models/embeddings).
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/deepinfra
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/deepinfra
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/deepinfra
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
```ts
|
||||
import {
|
||||
DeepInfraEmbedding,
|
||||
Settings,
|
||||
Document,
|
||||
VectorStoreIndex,
|
||||
} from "llamaindex";
|
||||
import { Document, Settings, VectorStoreIndex } from "llamaindex";
|
||||
import { DeepInfraEmbedding } from "@llamaindex/deepinfra";
|
||||
|
||||
// Update Embed Model
|
||||
Settings.embedModel = new DeepInfraEmbedding();
|
||||
@@ -33,7 +47,7 @@ By default, DeepInfraEmbedding is using the sentence-transformers/clip-ViT-B-32
|
||||
For example:
|
||||
|
||||
```ts
|
||||
import { DeepInfraEmbedding } from "llamaindex";
|
||||
import { DeepInfraEmbedding } from "@llamaindex/deepinfra";
|
||||
|
||||
const model = "intfloat/e5-large-v2";
|
||||
Settings.embedModel = new DeepInfraEmbedding({
|
||||
@@ -46,7 +60,8 @@ You can also set the `maxRetries` and `timeout` parameters when initializing `De
|
||||
For example:
|
||||
|
||||
```ts
|
||||
import { DeepInfraEmbedding, Settings } from "llamaindex";
|
||||
import { Settings } from "llamaindex";
|
||||
import { DeepInfraEmbedding } from "@llamaindex/deepinfra";
|
||||
|
||||
const model = "intfloat/e5-large-v2";
|
||||
const maxRetries = 5;
|
||||
@@ -62,7 +77,7 @@ Settings.embedModel = new DeepInfraEmbedding({
|
||||
Standalone usage:
|
||||
|
||||
```ts
|
||||
import { DeepInfraEmbedding } from "llamaindex";
|
||||
import { DeepInfraEmbedding } from "@llamaindex/deepinfra";
|
||||
import { config } from "dotenv";
|
||||
// For standalone usage, you need to configure DEEPINFRA_API_TOKEN in .env file
|
||||
config();
|
||||
|
||||
+22
-3
@@ -2,10 +2,29 @@
|
||||
title: Gemini
|
||||
---
|
||||
|
||||
To use Gemini embeddings, you need to import `GeminiEmbedding` from `llamaindex`.
|
||||
To use Gemini embeddings, you need to import `GeminiEmbedding` from `@llamaindex/google`.
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/google
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/google
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/google
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
```ts
|
||||
import { GeminiEmbedding, Settings } from "llamaindex";
|
||||
import { Document, Settings, VectorStoreIndex } from "llamaindex";
|
||||
import { GeminiEmbedding, GEMINI_MODEL } from "@llamaindex/google";
|
||||
|
||||
// Update Embed Model
|
||||
Settings.embedModel = new GeminiEmbedding();
|
||||
@@ -27,7 +46,7 @@ Per default, `GeminiEmbedding` is using the `gemini-pro` model. You can change t
|
||||
For example:
|
||||
|
||||
```ts
|
||||
import { GEMINI_MODEL, GeminiEmbedding } from "llamaindex";
|
||||
import { GEMINI_MODEL, GeminiEmbedding } from "@llamaindex/google";
|
||||
|
||||
Settings.embedModel = new GeminiEmbedding({
|
||||
model: GEMINI_MODEL.GEMINI_PRO_LATEST,
|
||||
|
||||
+23
-2
@@ -2,10 +2,29 @@
|
||||
title: HuggingFace
|
||||
---
|
||||
|
||||
To use HuggingFace embeddings, you need to import `HuggingFaceEmbedding` from `llamaindex`.
|
||||
To use HuggingFace embeddings, you need to import `HuggingFaceEmbedding` from `@llamaindex/huggingface`.
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/huggingface
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/huggingface
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/huggingface
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
```ts
|
||||
import { HuggingFaceEmbedding, Settings } from "llamaindex";
|
||||
import { Document, Settings, VectorStoreIndex } from "llamaindex";
|
||||
import { HuggingFaceEmbedding } from "@llamaindex/huggingface";
|
||||
|
||||
// Update Embed Model
|
||||
Settings.embedModel = new HuggingFaceEmbedding();
|
||||
@@ -29,6 +48,8 @@ If you're not using a quantized model, set the `quantized` parameter to `false`.
|
||||
For example, to use the not quantized `BAAI/bge-small-en-v1.5` model, you can use the following code:
|
||||
|
||||
```ts
|
||||
import { HuggingFaceEmbedding } from "@llamaindex/huggingface";
|
||||
|
||||
Settings.embedModel = new HuggingFaceEmbedding({
|
||||
modelType: "BAAI/bge-small-en-v1.5",
|
||||
quantized: false,
|
||||
|
||||
+21
-2
@@ -2,10 +2,29 @@
|
||||
title: MistralAI
|
||||
---
|
||||
|
||||
To use MistralAI embeddings, you need to import `MistralAIEmbedding` from `llamaindex`.
|
||||
To use MistralAI embeddings, you need to import `MistralAIEmbedding` from `@llamaindex/mistral`.
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/mistral
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/mistral
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/mistral
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
```ts
|
||||
import { MistralAIEmbedding, Settings } from "llamaindex";
|
||||
import { Document, Settings, VectorStoreIndex } from "llamaindex";
|
||||
import { MistralAIEmbedding } from "@llamaindex/mistral";
|
||||
|
||||
// Update Embed Model
|
||||
Settings.embedModel = new MistralAIEmbedding({
|
||||
|
||||
+17
-5
@@ -14,16 +14,28 @@ To find out more about the latest features, updates, and available models, visit
|
||||
|
||||
## Setup
|
||||
|
||||
First, you will need to install the `llamaindex` package.
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/mixedbread
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/mixedbread
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/mixedbread
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
```bash
|
||||
pnpm install llamaindex
|
||||
```
|
||||
|
||||
Next, sign up for an API key at [mixedbread.ai](https://mixedbread.ai/). Once you have your API key, you can import the necessary modules and create a new instance of the `MixedbreadAIEmbeddings` class.
|
||||
|
||||
```ts
|
||||
import { MixedbreadAIEmbeddings, Document, Settings } from "llamaindex";
|
||||
import { MixedbreadAIEmbeddings } from "@llamaindex/mixedbread";
|
||||
import { Document, Settings } from "llamaindex";
|
||||
```
|
||||
|
||||
## Usage with LlamaIndex
|
||||
|
||||
+21
-2
@@ -2,7 +2,7 @@
|
||||
title: Ollama
|
||||
---
|
||||
|
||||
To use Ollama embeddings, you need to import `OllamaEmbedding` from `llamaindex`.
|
||||
To use Ollama embeddings, you need to import `OllamaEmbedding` from `@llamaindex/ollama`.
|
||||
|
||||
Note that you need to pull the embedding model first before using it.
|
||||
|
||||
@@ -12,8 +12,27 @@ In the example below, we're using the [`nomic-embed-text`](https://ollama.com/li
|
||||
ollama pull nomic-embed-text
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/ollama
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/ollama
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/ollama
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
```ts
|
||||
import { OllamaEmbedding, Settings } from "llamaindex";
|
||||
import { OllamaEmbedding } from "@llamaindex/ollama";
|
||||
import { Document, Settings, VectorStoreIndex } from "llamaindex";
|
||||
|
||||
Settings.embedModel = new OllamaEmbedding({ model: "nomic-embed-text" });
|
||||
|
||||
|
||||
+21
-2
@@ -2,10 +2,29 @@
|
||||
title: OpenAI
|
||||
---
|
||||
|
||||
To use OpenAI embeddings, you need to import `OpenAIEmbedding` from `llamaindex`.
|
||||
To use OpenAI embeddings, you need to import `OpenAIEmbedding` from `@llamaindex/openai`.
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/openai
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
```ts
|
||||
import { OpenAIEmbedding, Settings } from "llamaindex";
|
||||
import { OpenAIEmbedding } from "@llamaindex/openai";
|
||||
import { Document, Settings, VectorStoreIndex } from "llamaindex";
|
||||
|
||||
Settings.embedModel = new OpenAIEmbedding();
|
||||
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
---
|
||||
title: VoyageAI
|
||||
---
|
||||
|
||||
To use VoyageAI embeddings, you need to import `VoyageAIEmbedding` from `@llamaindex/voyage-ai`.
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/voyage-ai
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/voyage-ai
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/voyage-ai
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
```ts
|
||||
import { VoyageAIEmbedding } from "@llamaindex/voyage-ai";
|
||||
import { Document, Settings, VectorStoreIndex } from "llamaindex";
|
||||
|
||||
Settings.embedModel = new VoyageAIEmbedding();
|
||||
|
||||
const document = new Document({ text: essay, id_: "essay" });
|
||||
|
||||
const index = await VectorStoreIndex.fromDocuments([document]);
|
||||
|
||||
const queryEngine = index.asQueryEngine();
|
||||
|
||||
const query = "What is the meaning of life?";
|
||||
|
||||
const results = await queryEngine.query({
|
||||
query,
|
||||
});
|
||||
```
|
||||
|
||||
## API Reference
|
||||
|
||||
- [VoyageAIEmbedding](/docs/api/classes/VoyageAIEmbedding)
|
||||
@@ -6,8 +6,27 @@ The embedding model in LlamaIndex is responsible for creating numerical represen
|
||||
|
||||
This can be explicitly updated through `Settings`
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/openai
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
```typescript
|
||||
import { OpenAIEmbedding, Settings } from "llamaindex";
|
||||
import { OpenAIEmbedding } from "@llamaindex/openai";
|
||||
import { Settings } from "llamaindex";
|
||||
|
||||
Settings.embedModel = new OpenAIEmbedding({
|
||||
model: "text-embedding-ada-002",
|
||||
@@ -18,6 +37,31 @@ Settings.embedModel = new OpenAIEmbedding({
|
||||
|
||||
For local embeddings, you can use the [HuggingFace](/docs/llamaindex/modules/embeddings/available_embeddings/huggingface) embedding model.
|
||||
|
||||
## Local Ollama Embeddings With Remote Host
|
||||
|
||||
Ollama provides a way to run embedding models locally or connect to a remote Ollama instance. This is particularly useful when you need to:
|
||||
- Run embeddings without relying on external API services
|
||||
- Use custom embedding models
|
||||
- Connect to a shared Ollama instance in your network
|
||||
|
||||
The ENV variable method you will find elsewhere sometimes may not work with the OllamaEmbedding class. Also note, you'll need to change the host
|
||||
in the Ollama server to `0.0.0.0` to allow connections from other machines.
|
||||
|
||||
To use Ollama embeddings with a remote host, you need to specify the host URL in the configuration like this:
|
||||
|
||||
```typescript
|
||||
import { OllamaEmbedding } from "@llamaindex/ollama";
|
||||
import { Settings } from "llamaindex";
|
||||
|
||||
// Configure Ollama with a remote host
|
||||
Settings.embedModel = new OllamaEmbedding({
|
||||
model: "nomic-embed-text",
|
||||
config: {
|
||||
host: "http://your-ollama-host:11434"
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
## Available Embeddings
|
||||
|
||||
Most available embeddings are listed in the sidebar on the left.
|
||||
|
||||
@@ -10,9 +10,21 @@ This is useful for measuring if the response was correct. The evaluator returns
|
||||
|
||||
Firstly, you need to install the package:
|
||||
|
||||
```bash
|
||||
pnpm i llamaindex
|
||||
```
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/openai
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
Set the OpenAI API key:
|
||||
|
||||
@@ -23,7 +35,8 @@ export OPENAI_API_KEY=your-api-key
|
||||
Import the required modules:
|
||||
|
||||
```ts
|
||||
import { CorrectnessEvaluator, OpenAI, Settings, Response } from "llamaindex";
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
import { CorrectnessEvaluator, Settings, Response } from "llamaindex";
|
||||
```
|
||||
|
||||
Let's setup gpt-4 for better results:
|
||||
|
||||
@@ -12,9 +12,22 @@ This is useful for measuring if the response was hallucinated. The evaluator ret
|
||||
|
||||
Firstly, you need to install the package:
|
||||
|
||||
```bash
|
||||
pnpm i llamaindex
|
||||
```
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/openai
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
|
||||
Set the OpenAI API key:
|
||||
|
||||
@@ -25,12 +38,12 @@ export OPENAI_API_KEY=your-api-key
|
||||
Import the required modules:
|
||||
|
||||
```ts
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
import {
|
||||
Document,
|
||||
FaithfulnessEvaluator,
|
||||
OpenAI,
|
||||
VectorStoreIndex,
|
||||
Settings,
|
||||
VectorStoreIndex,
|
||||
} from "llamaindex";
|
||||
```
|
||||
|
||||
|
||||
@@ -10,9 +10,22 @@ It is useful for measuring if the response was relevant to the query. The evalua
|
||||
|
||||
Firstly, you need to install the package:
|
||||
|
||||
```bash
|
||||
pnpm i llamaindex
|
||||
```
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/openai
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
|
||||
Set the OpenAI API key:
|
||||
|
||||
@@ -23,11 +36,11 @@ export OPENAI_API_KEY=your-api-key
|
||||
Import the required modules:
|
||||
|
||||
```ts
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
import {
|
||||
RelevancyEvaluator,
|
||||
OpenAI,
|
||||
Settings,
|
||||
Document,
|
||||
RelevancyEvaluator,
|
||||
Settings,
|
||||
VectorStoreIndex,
|
||||
} from "llamaindex";
|
||||
```
|
||||
|
||||
@@ -5,18 +5,35 @@ title: Ingestion Pipeline
|
||||
An `IngestionPipeline` uses a concept of `Transformations` that are applied to input data.
|
||||
These `Transformations` are applied to your input data, and the resulting nodes are either returned or inserted into a vector database (if given).
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/openai @llamaindex/qdrant
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/openai @llamaindex/qdrant
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/openai @llamaindex/qdrant
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Usage Pattern
|
||||
|
||||
The simplest usage is to instantiate an IngestionPipeline like so:
|
||||
|
||||
```ts
|
||||
import fs from "node:fs/promises";
|
||||
|
||||
import { OpenAI, OpenAIEmbedding } from "@llamaindex/openai";
|
||||
import {
|
||||
Document,
|
||||
IngestionPipeline,
|
||||
MetadataMode,
|
||||
OpenAIEmbedding,
|
||||
TitleExtractor,
|
||||
SentenceSplitter,
|
||||
} from "llamaindex";
|
||||
@@ -58,14 +75,14 @@ Then, you can construct an index from that vector store later on.
|
||||
```ts
|
||||
import fs from "node:fs/promises";
|
||||
|
||||
import { OpenAIEmbedding } from "@llamaindex/openai";
|
||||
import { QdrantVectorStore } from "@llamaindex/qdrant";
|
||||
import {
|
||||
Document,
|
||||
IngestionPipeline,
|
||||
MetadataMode,
|
||||
OpenAIEmbedding,
|
||||
TitleExtractor,
|
||||
SentenceSplitter,
|
||||
QdrantVectorStore,
|
||||
VectorStoreIndex,
|
||||
} from "llamaindex";
|
||||
|
||||
|
||||
@@ -2,10 +2,29 @@
|
||||
title: Anthropic
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/anthropic
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/anthropic
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/anthropic
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Usage
|
||||
|
||||
```ts
|
||||
import { Anthropic, Settings } from "llamaindex";
|
||||
import { Settings } from "llamaindex";
|
||||
import { Anthropic } from "@llamaindex/anthropic";
|
||||
|
||||
Settings.llm = new Anthropic({
|
||||
apiKey: "<YOUR_API_KEY>",
|
||||
@@ -37,7 +56,8 @@ const results = await queryEngine.query({
|
||||
## Full Example
|
||||
|
||||
```ts
|
||||
import { Anthropic, Document, VectorStoreIndex, Settings } from "llamaindex";
|
||||
import { Document, VectorStoreIndex, Settings } from "llamaindex";
|
||||
import { Anthropic } from "@llamaindex/anthropic";
|
||||
|
||||
Settings.llm = new Anthropic({
|
||||
apiKey: "<YOUR_API_KEY>",
|
||||
|
||||
@@ -14,10 +14,29 @@ export AZURE_OPENAI_ENDPOINT="<YOUR ENDPOINT, see https://learn.microsoft.com/en
|
||||
export AZURE_OPENAI_DEPLOYMENT="gpt-4" # or some other deployment name
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/openai
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Usage
|
||||
|
||||
```ts
|
||||
import { OpenAI, Settings } from "llamaindex";
|
||||
import { Settings } from "llamaindex";
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
|
||||
Settings.llm = new OpenAI({ model: "gpt-4", temperature: 0 });
|
||||
```
|
||||
@@ -47,7 +66,8 @@ const results = await queryEngine.query({
|
||||
## Full Example
|
||||
|
||||
```ts
|
||||
import { OpenAI, Document, VectorStoreIndex, Settings } from "llamaindex";
|
||||
import { Document, VectorStoreIndex, Settings } from "llamaindex";
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
|
||||
Settings.llm = new OpenAI({ model: "gpt-4", temperature: 0 });
|
||||
|
||||
|
||||
@@ -2,6 +2,24 @@
|
||||
title: Bedrock
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/community
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/community
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/community
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Usage
|
||||
|
||||
```ts
|
||||
|
||||
@@ -4,8 +4,27 @@ title: DeepInfra
|
||||
|
||||
Check out available LLMs [here](https://deepinfra.com/models/text-generation).
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/deepinfra
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/deepinfra
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/deepinfra
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
```ts
|
||||
import { DeepInfra, Settings } from "llamaindex";
|
||||
import { DeepInfra } from "@llamaindex/deepinfra";
|
||||
import { Settings } from "llamaindex";
|
||||
|
||||
// Get the API key from `DEEPINFRA_API_TOKEN` environment variable
|
||||
import { config } from "dotenv";
|
||||
@@ -28,6 +47,8 @@ export DEEPINFRA_API_TOKEN="<YOUR_API_KEY>"
|
||||
For this example, we will use a single document. In a real-world scenario, you would have multiple documents to index.
|
||||
|
||||
```ts
|
||||
import { Document, VectorStoreIndex } from "llamaindex";
|
||||
|
||||
const document = new Document({ text: essay, id_: "essay" });
|
||||
|
||||
const index = await VectorStoreIndex.fromDocuments([document]);
|
||||
@@ -48,7 +69,8 @@ const results = await queryEngine.query({
|
||||
## Full Example
|
||||
|
||||
```ts
|
||||
import { DeepInfra, Document, VectorStoreIndex, Settings } from "llamaindex";
|
||||
import { DeepInfra } from "@llamaindex/deepinfra";
|
||||
import { Document, VectorStoreIndex, Settings } from "llamaindex";
|
||||
|
||||
// Use custom LLM
|
||||
const model = "meta-llama/Meta-Llama-3-8B-Instruct";
|
||||
|
||||
@@ -2,10 +2,29 @@
|
||||
title: Gemini
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/google
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/google
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/google
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Usage
|
||||
|
||||
```ts
|
||||
import { Gemini, Settings, GEMINI_MODEL } from "llamaindex";
|
||||
import { Gemini, GEMINI_MODEL } from "@llamaindex/google";
|
||||
import { Settings } from "llamaindex";
|
||||
|
||||
Settings.llm = new Gemini({
|
||||
model: GEMINI_MODEL.GEMINI_PRO,
|
||||
@@ -19,7 +38,7 @@ To use Gemini via Vertex AI you can use `GeminiVertexSession`.
|
||||
GeminiVertexSession accepts the env variables: `GOOGLE_VERTEX_LOCATION` and `GOOGLE_VERTEX_PROJECT`
|
||||
|
||||
```ts
|
||||
import { Gemini, GEMINI_MODEL, GeminiVertexSession } from "llamaindex";
|
||||
import { Gemini, GEMINI_MODEL, GeminiVertexSession } from "@llamaindex/google";
|
||||
|
||||
const gemini = new Gemini({
|
||||
model: GEMINI_MODEL.GEMINI_PRO,
|
||||
@@ -47,6 +66,8 @@ To authenticate for production you'll have to use a [service account](https://cl
|
||||
For this example, we will use a single document. In a real-world scenario, you would have multiple documents to index.
|
||||
|
||||
```ts
|
||||
import { Document, VectorStoreIndex } from "llamaindex";
|
||||
|
||||
const document = new Document({ text: essay, id_: "essay" });
|
||||
|
||||
const index = await VectorStoreIndex.fromDocuments([document]);
|
||||
@@ -67,13 +88,8 @@ const results = await queryEngine.query({
|
||||
## Full Example
|
||||
|
||||
```ts
|
||||
import {
|
||||
Gemini,
|
||||
Document,
|
||||
VectorStoreIndex,
|
||||
Settings,
|
||||
GEMINI_MODEL,
|
||||
} from "llamaindex";
|
||||
import { Gemini, GEMINI_MODEL } from "@llamaindex/google";
|
||||
import { Document, VectorStoreIndex, Settings } from "llamaindex";
|
||||
|
||||
Settings.llm = new Gemini({
|
||||
model: GEMINI_MODEL.GEMINI_PRO,
|
||||
|
||||
@@ -5,6 +5,24 @@ title: Groq
|
||||
import { DynamicCodeBlock } from 'fumadocs-ui/components/dynamic-codeblock';
|
||||
import CodeSource from "!raw-loader!../../../../../../../../../examples/groq.ts";
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/groq
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/groq
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/groq
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Usage
|
||||
|
||||
First, create an API key at the [Groq Console](https://console.groq.com/keys). Then save it in your environment:
|
||||
@@ -16,7 +34,8 @@ export GROQ_API_KEY=<your-api-key>
|
||||
The initialize the Groq module.
|
||||
|
||||
```ts
|
||||
import { Groq, Settings } from "llamaindex";
|
||||
import { Groq } from "@llamaindex/groq";
|
||||
import { Settings } from "llamaindex";
|
||||
|
||||
Settings.llm = new Groq({
|
||||
// If you do not wish to set your API key in the environment, you may
|
||||
@@ -30,6 +49,8 @@ Settings.llm = new Groq({
|
||||
For this example, we will use a single document. In a real-world scenario, you would have multiple documents to index.
|
||||
|
||||
```ts
|
||||
import { Document, VectorStoreIndex } from "llamaindex";
|
||||
|
||||
const document = new Document({ text: essay, id_: "essay" });
|
||||
|
||||
const index = await VectorStoreIndex.fromDocuments([document]);
|
||||
|
||||
@@ -2,10 +2,29 @@
|
||||
title: LLama2
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/replicate
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/replicate
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/replicate
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Usage
|
||||
|
||||
```ts
|
||||
import { Ollama, Settings, DeuceChatStrategy } from "llamaindex";
|
||||
import { LlamaDeuce, DeuceChatStrategy } from "@llamaindex/replicate";
|
||||
import { Document, VectorStoreIndex, Settings } from "llamaindex";
|
||||
|
||||
Settings.llm = new LlamaDeuce({ chatStrategy: DeuceChatStrategy.META });
|
||||
```
|
||||
@@ -13,12 +32,8 @@ Settings.llm = new LlamaDeuce({ chatStrategy: DeuceChatStrategy.META });
|
||||
## Usage with Replication
|
||||
|
||||
```ts
|
||||
import {
|
||||
Ollama,
|
||||
ReplicateSession,
|
||||
Settings,
|
||||
DeuceChatStrategy,
|
||||
} from "llamaindex";
|
||||
import { Settings } from "llamaindex";
|
||||
import { LlamaDeuce, DeuceChatStrategy, ReplicateSession } from "@llamaindex/replicate";
|
||||
|
||||
const replicateSession = new ReplicateSession({
|
||||
replicateKey,
|
||||
@@ -55,13 +70,8 @@ const results = await queryEngine.query({
|
||||
## Full Example
|
||||
|
||||
```ts
|
||||
import {
|
||||
LlamaDeuce,
|
||||
Document,
|
||||
VectorStoreIndex,
|
||||
Settings,
|
||||
DeuceChatStrategy,
|
||||
} from "llamaindex";
|
||||
import { LlamaDeuce, DeuceChatStrategy } from "@llamaindex/replicate";
|
||||
import { Document, VectorStoreIndex, Settings } from "llamaindex";
|
||||
|
||||
// Use the LlamaDeuce LLM
|
||||
Settings.llm = new LlamaDeuce({ chatStrategy: DeuceChatStrategy.META });
|
||||
|
||||
@@ -2,10 +2,29 @@
|
||||
title: Mistral
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/mistral
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/mistral
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/mistral
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Usage
|
||||
|
||||
```ts
|
||||
import { MistralAI, Settings } from "llamaindex";
|
||||
import { MistralAI } from "@llamaindex/mistral";
|
||||
import { Settings } from "llamaindex";
|
||||
|
||||
Settings.llm = new MistralAI({
|
||||
model: "mistral-tiny",
|
||||
@@ -18,6 +37,8 @@ Settings.llm = new MistralAI({
|
||||
For this example, we will use a single document. In a real-world scenario, you would have multiple documents to index.
|
||||
|
||||
```ts
|
||||
import { Document, VectorStoreIndex } from "llamaindex";
|
||||
|
||||
const document = new Document({ text: essay, id_: "essay" });
|
||||
|
||||
const index = await VectorStoreIndex.fromDocuments([document]);
|
||||
@@ -38,7 +59,8 @@ const results = await queryEngine.query({
|
||||
## Full Example
|
||||
|
||||
```ts
|
||||
import { MistralAI, Document, VectorStoreIndex, Settings } from "llamaindex";
|
||||
import { MistralAI } from "@llamaindex/mistral";
|
||||
import { Document, VectorStoreIndex, Settings } from "llamaindex";
|
||||
|
||||
// Use the MistralAI LLM
|
||||
Settings.llm = new MistralAI({ model: "mistral-tiny" });
|
||||
|
||||
@@ -2,10 +2,30 @@
|
||||
title: Ollama
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/ollama
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/ollama
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/ollama
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
```ts
|
||||
import { Ollama, Settings } from "llamaindex";
|
||||
import { Ollama } from "@llamaindex/ollama";
|
||||
import { Settings } from "llamaindex";
|
||||
|
||||
Settings.llm = ollamaLLM;
|
||||
Settings.embedModel = ollamaLLM;
|
||||
@@ -16,6 +36,8 @@ Settings.embedModel = ollamaLLM;
|
||||
For this example, we will use a single document. In a real-world scenario, you would have multiple documents to index.
|
||||
|
||||
```ts
|
||||
import { Document, VectorStoreIndex } from "llamaindex";
|
||||
|
||||
const document = new Document({ text: essay, id_: "essay" });
|
||||
|
||||
const index = await VectorStoreIndex.fromDocuments([document]);
|
||||
@@ -36,7 +58,8 @@ const results = await queryEngine.query({
|
||||
## Full Example
|
||||
|
||||
```ts
|
||||
import { Ollama, Document, VectorStoreIndex, Settings } from "llamaindex";
|
||||
import { Ollama } from "@llamaindex/ollama";
|
||||
import { Document, VectorStoreIndex, Settings } from "llamaindex";
|
||||
|
||||
import fs from "fs/promises";
|
||||
|
||||
|
||||
@@ -2,8 +2,28 @@
|
||||
title: OpenAI
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/openai
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
|
||||
```ts
|
||||
import { OpenAI, Settings } from "llamaindex";
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
import { Settings } from "llamaindex";
|
||||
|
||||
Settings.llm = new OpenAI({ model: "gpt-3.5-turbo", temperature: 0, apiKey: <YOUR_API_KEY> });
|
||||
```
|
||||
@@ -19,6 +39,8 @@ export OPENAI_API_KEY="<YOUR_API_KEY>"
|
||||
For this example, we will use a single document. In a real-world scenario, you would have multiple documents to index.
|
||||
|
||||
```ts
|
||||
import { Document, VectorStoreIndex } from "llamaindex";
|
||||
|
||||
const document = new Document({ text: essay, id_: "essay" });
|
||||
|
||||
const index = await VectorStoreIndex.fromDocuments([document]);
|
||||
@@ -39,7 +61,8 @@ const results = await queryEngine.query({
|
||||
## Full Example
|
||||
|
||||
```ts
|
||||
import { OpenAI, Document, VectorStoreIndex, Settings } from "llamaindex";
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
import { Document, Settings, VectorStoreIndex } from "llamaindex";
|
||||
|
||||
// Use the OpenAI LLM
|
||||
Settings.llm = new OpenAI({ model: "gpt-3.5-turbo", temperature: 0 });
|
||||
|
||||
@@ -2,10 +2,30 @@
|
||||
title: Portkey LLM
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/portkey-ai
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/portkey-ai
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/portkey-ai
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
```ts
|
||||
import { Portkey, Settings } from "llamaindex";
|
||||
import { Portkey } from "@llamaindex/portkey-ai";
|
||||
import { Settings } from "llamaindex";
|
||||
|
||||
Settings.llm = new Portkey({
|
||||
apiKey: "<YOUR_API_KEY>",
|
||||
@@ -17,6 +37,8 @@ Settings.llm = new Portkey({
|
||||
For this example, we will use a single document. In a real-world scenario, you would have multiple documents to index.
|
||||
|
||||
```ts
|
||||
import { Document, VectorStoreIndex } from "llamaindex";
|
||||
|
||||
const document = new Document({ text: essay, id_: "essay" });
|
||||
|
||||
const index = await VectorStoreIndex.fromDocuments([document]);
|
||||
@@ -37,7 +59,8 @@ const results = await queryEngine.query({
|
||||
## Full Example
|
||||
|
||||
```ts
|
||||
import { Portkey, Document, VectorStoreIndex, Settings } from "llamaindex";
|
||||
import { Portkey } from "@llamaindex/portkey-ai";
|
||||
import { Document, Settings, VectorStoreIndex } from "llamaindex";
|
||||
|
||||
// Use the Portkey LLM
|
||||
Settings.llm = new Portkey({
|
||||
|
||||
@@ -2,10 +2,28 @@
|
||||
title: Together LLM
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Usage
|
||||
|
||||
```ts
|
||||
import { TogetherLLM, Settings } from "llamaindex";
|
||||
import { Settings, TogetherLLM } from "llamaindex";
|
||||
|
||||
Settings.llm = new TogetherLLM({
|
||||
apiKey: "<YOUR_API_KEY>",
|
||||
@@ -17,6 +35,8 @@ Settings.llm = new TogetherLLM({
|
||||
For this example, we will use a single document. In a real-world scenario, you would have multiple documents to index.
|
||||
|
||||
```ts
|
||||
import { Document, VectorStoreIndex } from "llamaindex";
|
||||
|
||||
const document = new Document({ text: essay, id_: "essay" });
|
||||
|
||||
const index = await VectorStoreIndex.fromDocuments([document]);
|
||||
@@ -37,7 +57,8 @@ const results = await queryEngine.query({
|
||||
## Full Example
|
||||
|
||||
```ts
|
||||
import { TogetherLLM, Document, VectorStoreIndex, Settings } from "llamaindex";
|
||||
import { TogetherLLM } from "@llamaindex/together";
|
||||
import { Document, Settings, VectorStoreIndex } from "llamaindex";
|
||||
|
||||
Settings.llm = new TogetherLLM({
|
||||
apiKey: "<YOUR_API_KEY>",
|
||||
|
||||
@@ -2,12 +2,31 @@
|
||||
title: Large Language Models (LLMs)
|
||||
---
|
||||
|
||||
The LLM is responsible for reading text and generating natural language responses to queries. By default, LlamaIndex.TS uses `gpt-3.5-turbo`.
|
||||
The LLM is responsible for reading text and generating natural language responses to queries. By default, LlamaIndex.TS uses `gpt-4o`.
|
||||
|
||||
The LLM can be explicitly updated through `Settings`.
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/openai
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
```typescript
|
||||
import { OpenAI, Settings } from "llamaindex";
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
import { Settings } from "llamaindex";
|
||||
|
||||
Settings.llm = new OpenAI({ model: "gpt-3.5-turbo", temperature: 0 });
|
||||
```
|
||||
|
||||
@@ -5,7 +5,8 @@ title: NodeParser
|
||||
The `NodeParser` in LlamaIndex is responsible for splitting `Document` objects into more manageable `Node` objects. When you call `.fromDocuments()`, the `NodeParser` from the `Settings` is used to do this automatically for you. Alternatively, you can use it to split documents ahead of time.
|
||||
|
||||
```typescript
|
||||
import { Document, SentenceSplitter } from "llamaindex";
|
||||
import { Document } from "llamaindex";
|
||||
import { SentenceSplitter } from "llamaindex";
|
||||
|
||||
const nodeParser = new SentenceSplitter();
|
||||
|
||||
@@ -30,6 +31,7 @@ The `MarkdownNodeParser` is a more advanced `NodeParser` that can handle markdow
|
||||
|
||||
```typescript
|
||||
import { MarkdownNodeParser } from "llamaindex";
|
||||
import { Document } from "llamaindex";
|
||||
|
||||
const nodeParser = new MarkdownNodeParser();
|
||||
|
||||
|
||||
+18
-10
@@ -8,20 +8,28 @@ The Cohere Reranker is a postprocessor that uses the Cohere API to rerank the re
|
||||
|
||||
Firstly, you will need to install the `llamaindex` package.
|
||||
|
||||
```bash
|
||||
pnpm install llamaindex
|
||||
```
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/cohere @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/cohere @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/cohere @llamaindex/openai
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
Now, you will need to sign up for an API key at [Cohere](https://cohere.ai/). Once you have your API key you can import the necessary modules and create a new instance of the `CohereRerank` class.
|
||||
|
||||
```ts
|
||||
import {
|
||||
CohereRerank,
|
||||
Document,
|
||||
OpenAI,
|
||||
VectorStoreIndex,
|
||||
Settings,
|
||||
} from "llamaindex";
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
import { CohereRerank } from "@llamaindex/cohere";
|
||||
import { Document, Settings, VectorStoreIndex } from "llamaindex";
|
||||
```
|
||||
|
||||
## Load and index documents
|
||||
|
||||
@@ -2,6 +2,24 @@
|
||||
title: Node Postprocessors
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/cohere @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/cohere @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/cohere @llamaindex/openai
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Concept
|
||||
|
||||
Node postprocessors are a set of modules that take a set of nodes, and apply some kind of transformation or filtering before returning them.
|
||||
@@ -15,12 +33,8 @@ LlamaIndex offers several node postprocessors for immediate use, while also prov
|
||||
An example of using a node postprocessors is below:
|
||||
|
||||
```ts
|
||||
import {
|
||||
Node,
|
||||
NodeWithScore,
|
||||
SimilarityPostprocessor,
|
||||
CohereRerank,
|
||||
} from "llamaindex";
|
||||
import { CohereRerank } from "@llamaindex/cohere";
|
||||
import { Node, NodeWithScore, SimilarityPostprocessor, TextNode } from "llamaindex";
|
||||
|
||||
const nodes: NodeWithScore[] = [
|
||||
{
|
||||
@@ -60,7 +74,9 @@ Most commonly, node-postprocessors will be used in a query engine, where they ar
|
||||
### Using Node Postprocessors in a Query Engine
|
||||
|
||||
```ts
|
||||
import { Node, NodeWithScore, SimilarityPostprocessor, CohereRerank, Settings } from "llamaindex";
|
||||
import { CohereRerank } from "@llamaindex/cohere";
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
import { Node, NodeWithScore, SimilarityPostprocessor, Settings, TextNode } from "llamaindex";
|
||||
|
||||
// Use OpenAI LLM
|
||||
Settings.llm = new OpenAI({ model: "gpt-3.5-turbo", temperature: 0.1 });
|
||||
@@ -78,9 +94,9 @@ const nodes: NodeWithScore[] = [
|
||||
|
||||
// cohere rerank: rerank nodes given query using trained model
|
||||
const reranker = new CohereRerank({
|
||||
apiKey: "<COHERE_API_KEY>,
|
||||
apiKey: "<COHERE_API_KEY>",
|
||||
topN: 2,
|
||||
})
|
||||
});
|
||||
|
||||
const document = new Document({ text: "essay", id_: "essay" });
|
||||
|
||||
|
||||
+18
-10
@@ -8,20 +8,28 @@ The Jina AI Reranker is a postprocessor that uses the Jina AI Reranker API to re
|
||||
|
||||
Firstly, you will need to install the `llamaindex` package.
|
||||
|
||||
```bash
|
||||
pnpm install llamaindex
|
||||
```
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/openai
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/openai
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
|
||||
Now, you will need to sign up for an API key at [Jina AI](https://jina.ai/reranker). Once you have your API key you can import the necessary modules and create a new instance of the `JinaAIReranker` class.
|
||||
|
||||
```ts
|
||||
import {
|
||||
JinaAIReranker,
|
||||
Document,
|
||||
OpenAI,
|
||||
VectorStoreIndex,
|
||||
Settings,
|
||||
} from "llamaindex";
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
import { Document, Settings, VectorStoreIndex, JinaAIReranker } from "llamaindex";
|
||||
```
|
||||
|
||||
## Load and index documents
|
||||
|
||||
+18
-5
@@ -17,20 +17,33 @@ To find out more about the latest features and updates, visit the [mixedbread.ai
|
||||
|
||||
First, you will need to install the `llamaindex` package.
|
||||
|
||||
```bash
|
||||
pnpm install llamaindex
|
||||
```
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/openai @llamaindex/mixedbread
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/openai @llamaindex/mixedbread
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/openai @llamaindex/mixedbread
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
|
||||
Next, sign up for an API key at [mixedbread.ai](https://mixedbread.ai/). Once you have your API key, you can import the necessary modules and create a new instance of the `MixedbreadAIReranker` class.
|
||||
|
||||
```ts
|
||||
import {
|
||||
MixedbreadAIReranker,
|
||||
Document,
|
||||
OpenAI,
|
||||
VectorStoreIndex,
|
||||
Settings,
|
||||
} from "llamaindex";
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
import { MixedbreadAIReranker } from "@llamaindex/mixedbread";
|
||||
```
|
||||
|
||||
## Usage with LlamaIndex
|
||||
|
||||
+19
-15
@@ -10,19 +10,27 @@ You can also check our multi-tenancy blog post to see how metadata filtering can
|
||||
|
||||
Firstly if you haven't already, you need to install the `llamaindex` package:
|
||||
|
||||
```bash
|
||||
pnpm i llamaindex
|
||||
```
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/openai @llamaindex/chroma
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/openai @llamaindex/chroma
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/openai @llamaindex/chroma
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
Then you can import the necessary modules from `llamaindex`:
|
||||
|
||||
```ts
|
||||
import {
|
||||
ChromaVectorStore,
|
||||
Document,
|
||||
VectorStoreIndex,
|
||||
storageContextFromDefaults,
|
||||
} from "llamaindex";
|
||||
import { Document, VectorStoreIndex, storageContextFromDefaults } from "llamaindex";
|
||||
import { ChromaVectorStore } from "@llamaindex/chroma";
|
||||
|
||||
const collectionName = "dog_colors";
|
||||
```
|
||||
@@ -95,12 +103,8 @@ Besides using the equal operator (`==`), you can also use a whole set of differe
|
||||
## Full Code
|
||||
|
||||
```ts
|
||||
import {
|
||||
ChromaVectorStore,
|
||||
Document,
|
||||
VectorStoreIndex,
|
||||
storageContextFromDefaults,
|
||||
} from "llamaindex";
|
||||
import { Document, VectorStoreIndex, storageContextFromDefaults } from "llamaindex";
|
||||
import { ChromaVectorStore } from "@llamaindex/chroma";
|
||||
|
||||
const collectionName = "dog_colors";
|
||||
|
||||
|
||||
+19
-5
@@ -8,13 +8,24 @@ In this tutorial, we define a custom router query engine that selects one out of
|
||||
|
||||
First, we need to install import the necessary modules from `llamaindex`:
|
||||
|
||||
```bash
|
||||
pnpm i lamaindex
|
||||
```
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install llamaindex @llamaindex/openai @llamaindex/readers
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add llamaindex @llamaindex/openai @llamaindex/readers
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add llamaindex @llamaindex/openai @llamaindex/readers
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
```ts
|
||||
import {
|
||||
OpenAI,
|
||||
RouterQueryEngine,
|
||||
SimpleDirectoryReader,
|
||||
SentenceSplitter,
|
||||
@@ -22,6 +33,8 @@ import {
|
||||
VectorStoreIndex,
|
||||
Settings,
|
||||
} from "llamaindex";
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
|
||||
```
|
||||
|
||||
## Loading Data
|
||||
@@ -103,7 +116,6 @@ console.log({
|
||||
|
||||
```ts
|
||||
import {
|
||||
OpenAI,
|
||||
RouterQueryEngine,
|
||||
SimpleDirectoryReader,
|
||||
SentenceSplitter,
|
||||
@@ -111,6 +123,8 @@ import {
|
||||
VectorStoreIndex,
|
||||
Settings,
|
||||
} from "llamaindex";
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
|
||||
|
||||
Settings.llm = new OpenAI();
|
||||
Settings.nodeParser = new SentenceSplitter({
|
||||
|
||||
@@ -18,7 +18,7 @@ The ResponseSynthesizer is responsible for sending the query, nodes, and prompt
|
||||
chunk.
|
||||
|
||||
```typescript
|
||||
import { NodeWithScore, ResponseSynthesizer, TextNode } from "llamaindex";
|
||||
import { NodeWithScore, TextNode, ResponseSynthesizer } from "llamaindex";
|
||||
|
||||
const responseSynthesizer = new ResponseSynthesizer();
|
||||
|
||||
|
||||
@@ -13,6 +13,22 @@ When a step function is added to a workflow, you need to specify the input and o
|
||||
|
||||
You can create a `Workflow` to do anything! Build an agent, a RAG flow, an extraction flow, or anything else you want.
|
||||
|
||||
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
|
||||
|
||||
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
|
||||
```shell tab="npm"
|
||||
npm install @llamaindex/workflow
|
||||
```
|
||||
|
||||
```shell tab="yarn"
|
||||
yarn add @llamaindex/workflow
|
||||
```
|
||||
|
||||
```shell tab="pnpm"
|
||||
pnpm add @llamaindex/workflow
|
||||
```
|
||||
</Tabs>
|
||||
|
||||
## Getting Started
|
||||
|
||||
As an illustrative example, let's consider a naive workflow where a joke is generated and then critiqued.
|
||||
@@ -34,51 +50,59 @@ Events are user-defined classes that extend `WorkflowEvent` and contain arbitrar
|
||||
```typescript
|
||||
const llm = new OpenAI();
|
||||
...
|
||||
const jokeFlow = new Workflow({ verbose: true });
|
||||
const jokeFlow = new Workflow<unknown, string, string>();
|
||||
```
|
||||
|
||||
Our workflow is implemented by initiating the `Workflow` class. For simplicity, we created a `OpenAI` llm instance.
|
||||
Our workflow is implemented by initiating the `Workflow` class with three generic types: the context type (unknown), input type (string), and output type (string). The context type is `unknown`, as we're not using a shared context in this example.
|
||||
|
||||
For simplicity, we created an `OpenAI` llm instance that we're using for inference in our workflow.
|
||||
|
||||
### Workflow Entry Points
|
||||
|
||||
```typescript
|
||||
const generateJoke = async (_context: Context, ev: StartEvent) => {
|
||||
const prompt = `Write your best joke about ${ev.data.input}.`;
|
||||
const generateJoke = async (_: unknown, ev: StartEvent<string>) => {
|
||||
const prompt = `Write your best joke about ${ev.data}.`;
|
||||
const response = await llm.complete({ prompt });
|
||||
return new JokeEvent({ joke: response.text });
|
||||
};
|
||||
```
|
||||
|
||||
Here, we come to the entry-point of our workflow. While events are user-defined, there are two special-case events, the `StartEvent` and the `StopEvent`. Here, the `StartEvent` signifies where to send the initial workflow input.
|
||||
Here, we come to the entry-point of our workflow. While events are user-defined, there are two special-case events, the `StartEvent` and the `StopEvent`. These events are predefined, but we can specify the payload type using generic types. We're using `StartEvent<string>` to indicate that we're going to send an input of type string.
|
||||
|
||||
The `StartEvent` is a bit of a special object since it can hold arbitrary attributes. Here, we accessed the topic with `ev.data.input`.
|
||||
|
||||
At this point, you may have noticed that we haven't explicitly told the workflow what events are handled by which steps.
|
||||
|
||||
To do so, we use the `addStep` method which adds a step to the workflow. The first argument is the event type that the step will handle, and the second argument is the previously defined step function:
|
||||
To add this step to the workflow, we use the `addStep` method with an object specifying the input and output event types:
|
||||
|
||||
```typescript
|
||||
jokeFlow.addStep(StartEvent, generateJoke);
|
||||
jokeFlow.addStep(
|
||||
{
|
||||
inputs: [StartEvent<string>],
|
||||
outputs: [JokeEvent],
|
||||
},
|
||||
generateJoke
|
||||
);
|
||||
```
|
||||
|
||||
### Workflow Exit Points
|
||||
|
||||
```typescript
|
||||
const critiqueJoke = async (_context: Context, ev: JokeEvent) => {
|
||||
const critiqueJoke = async (_: unknown, ev: JokeEvent) => {
|
||||
const prompt = `Give a thorough critique of the following joke: ${ev.data.joke}`;
|
||||
const response = await llm.complete({ prompt });
|
||||
return new StopEvent({ result: response.text });
|
||||
return new StopEvent(response.text);
|
||||
};
|
||||
```
|
||||
|
||||
Here, we have our second, and last step, in the workflow. We know its the last step because the special `StopEvent` is returned. When the workflow encounters a returned `StopEvent`, it immediately stops the workflow and returns whatever the result was.
|
||||
Here, we have our second and last step in the workflow. We know it's the last step because the special `StopEvent` is returned. When the workflow encounters a returned `StopEvent`, it immediately stops the workflow and returns the result. Note that we're using the generic type `StopEvent<string>` to indicate that we're returning a string.
|
||||
|
||||
In this case, the result is a string, but it could be a map, array, or any other object.
|
||||
|
||||
Don't forget to add the step to the workflow:
|
||||
Add this step to the workflow:
|
||||
|
||||
```typescript
|
||||
jokeFlow.addStep(JokeEvent, critiqueJoke);
|
||||
jokeFlow.addStep(
|
||||
{
|
||||
inputs: [JokeEvent],
|
||||
outputs: [StopEvent<string>],
|
||||
},
|
||||
critiqueJoke
|
||||
);
|
||||
```
|
||||
|
||||
### Running the Workflow
|
||||
@@ -90,42 +114,25 @@ console.log(result.data.result);
|
||||
|
||||
Lastly, we run the workflow. The `.run()` method is async, so we use await here to wait for the result.
|
||||
|
||||
### Validating Workflows
|
||||
## Working with Shared Context/State
|
||||
|
||||
To tell the workflow what events are produced by each step, you can optionally provide a third argument to `addStep` to specify the output event type:
|
||||
Optionally, you can choose to use a shared context between steps by specifying a context type when creating the workflow. Here's an example where multiple steps access a shared state:
|
||||
|
||||
```typescript
|
||||
jokeFlow.addStep(StartEvent, generateJoke, { outputs: JokeEvent });
|
||||
jokeFlow.addStep(JokeEvent, critiqueJoke, { outputs: StopEvent });
|
||||
```
|
||||
import { HandlerContext } from "@llamaindex/workflow";
|
||||
|
||||
To validate a workflow, you need to call the `validate` method:
|
||||
type MyContextData = {
|
||||
query: string;
|
||||
intermediateResults: any[];
|
||||
}
|
||||
|
||||
```typescript
|
||||
jokeFlow.validate();
|
||||
```
|
||||
|
||||
To automatically validate a workflow when you run it, you can set the `validate` flag to `true` at initialization:
|
||||
|
||||
```typescript
|
||||
const jokeFlow = new Workflow({ verbose: true, validate: true });
|
||||
```
|
||||
|
||||
## Working with Global Context/State
|
||||
|
||||
Optionally, you can choose to use global context between steps. For example, maybe multiple steps access the original `query` input from the user. You can store this in global context so that every step has access.
|
||||
|
||||
```typescript
|
||||
import { Context } from "@llamaindex/core/workflow";
|
||||
|
||||
const query = async (context: Context, ev: MyEvent) => {
|
||||
const query = async (context: HandlerContext<MyContextData>, ev: MyEvent) => {
|
||||
// get the query from the context
|
||||
const query = context.get("query");
|
||||
const query = context.data.query;
|
||||
// do something with context and event
|
||||
const val = ...
|
||||
const result = ...
|
||||
// store in context
|
||||
context.set("key", val);
|
||||
context.data.intermediateResults.push(val);
|
||||
|
||||
return new StopEvent({ result });
|
||||
};
|
||||
@@ -138,28 +145,15 @@ The context does more than just hold data, it also provides utilities to buffer
|
||||
For example, you might have a step that waits for a query and retrieved nodes before synthesizing a response:
|
||||
|
||||
```typescript
|
||||
const synthesize = async (context: Context, ev: QueryEvent | RetrieveEvent) => {
|
||||
const events = context.collectEvents(ev, [QueryEvent | RetrieveEvent]);
|
||||
if (!events) {
|
||||
return;
|
||||
}
|
||||
const prompt = events
|
||||
.map((event) => {
|
||||
if (event instanceof QueryEvent) {
|
||||
return `Answer this query using the context provided: ${event.data.query}`;
|
||||
} else if (event instanceof RetrieveEvent) {
|
||||
return `Context: ${event.data.context}`;
|
||||
}
|
||||
return "";
|
||||
})
|
||||
.join("\n");
|
||||
|
||||
const synthesize = async (context: Context, ev1: QueryEvent, ev2: RetrieveEvent) => {
|
||||
const subPrompts = [`Answer this query using the context provided: ${ev1.data.query}`, `Context: ${ev2.data.context}`];
|
||||
const prompt = subPrompts.join("\n");
|
||||
const response = await llm.complete({ prompt });
|
||||
return new StopEvent({ result: response.text });
|
||||
};
|
||||
```
|
||||
|
||||
Using `ctx.collectEvents()` we can buffer and wait for ALL expected events to arrive. This function will only return events (in the requested order) once all events have arrived.
|
||||
Passing multiple events, we can buffer and wait for ALL expected events to arrive. The receiving step function will only be called once all events have arrived.
|
||||
|
||||
## Manually Triggering Events
|
||||
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
{
|
||||
"plugin": ["typedoc-plugin-markdown", "typedoc-plugin-merge-modules"],
|
||||
"entryPoints": ["../../packages/llamaindex/src/index.ts"],
|
||||
"entryPoints": ["../../packages/**/src/index.ts"],
|
||||
"exclude": [
|
||||
"../../packages/autotool/**/src/index.ts",
|
||||
"**/node_modules/**",
|
||||
"**/dist/**",
|
||||
"**/test/**",
|
||||
"**/tests/**"
|
||||
],
|
||||
"tsconfig": "../../tsconfig.json",
|
||||
"readme": "none",
|
||||
"sourceLinkTemplate": "https://github.com/run-llama/LlamaIndexTS/blob/{gitRevision}/{path}#L{line}",
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
logs
|
||||
.temp
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
# @llamaindex/core-e2e
|
||||
|
||||
## 0.1.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 6a4a737: Remove re-exports from llamaindex main package
|
||||
|
||||
## 0.0.8
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# @llamaindex/cloudflare-hono
|
||||
|
||||
## 0.1.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 6a4a737: Remove re-exports from llamaindex main package
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- b490376: Remove deprecated ServiceContext
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@llamaindex/cloudflare-hono",
|
||||
"version": "0.0.0",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"deploy": "wrangler deploy",
|
||||
|
||||
@@ -17,23 +17,21 @@ app.post("/llm", async (c) => {
|
||||
|
||||
const { message } = await c.req.json();
|
||||
|
||||
const { extractText } = await import("@llamaindex/core/utils");
|
||||
|
||||
const {
|
||||
extractText,
|
||||
QueryEngineTool,
|
||||
serviceContextFromDefaults,
|
||||
VectorStoreIndex,
|
||||
OpenAIAgent,
|
||||
Settings,
|
||||
OpenAI,
|
||||
OpenAIEmbedding,
|
||||
SentenceSplitter,
|
||||
} = await import("llamaindex");
|
||||
|
||||
const { PineconeVectorStore } = await import(
|
||||
"llamaindex/vector-store/PineconeVectorStore"
|
||||
const { OpenAIAgent, OpenAI, OpenAIEmbedding } = await import(
|
||||
"@llamaindex/openai"
|
||||
);
|
||||
|
||||
const llm = new OpenAI({
|
||||
const { PineconeVectorStore } = await import("@llamaindex/pinecone");
|
||||
|
||||
Settings.llm = new OpenAI({
|
||||
model: "gpt-4o-mini",
|
||||
apiKey: c.env.OPENAI_API_KEY,
|
||||
});
|
||||
@@ -43,8 +41,7 @@ app.post("/llm", async (c) => {
|
||||
apiKey: c.env.OPENAI_API_KEY,
|
||||
});
|
||||
|
||||
const serviceContext = serviceContextFromDefaults({
|
||||
llm,
|
||||
Settings.nodeParser = new SentenceSplitter({
|
||||
chunkSize: 8191,
|
||||
chunkOverlap: 0,
|
||||
});
|
||||
@@ -53,7 +50,7 @@ app.post("/llm", async (c) => {
|
||||
namespace: "8xolsn4ulEQGdhnhP76yCzfLHdOZ",
|
||||
});
|
||||
|
||||
const index = await VectorStoreIndex.fromVectorStore(store, serviceContext);
|
||||
const index = await VectorStoreIndex.fromVectorStore(store);
|
||||
|
||||
const retriever = index.asRetriever({
|
||||
similarityTopK: 3,
|
||||
|
||||
@@ -1,5 +1,74 @@
|
||||
# @llamaindex/cloudflare-worker-agent-test
|
||||
|
||||
## 0.0.138
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [cb021e7]
|
||||
- llamaindex@0.9.4
|
||||
|
||||
## 0.0.137
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.9.3
|
||||
|
||||
## 0.0.136
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [88d776f]
|
||||
- llamaindex@0.9.2
|
||||
|
||||
## 0.0.135
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6d37d44]
|
||||
- llamaindex@0.9.1
|
||||
|
||||
## 0.0.134
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6a4a737]
|
||||
- Updated dependencies [d924c63]
|
||||
- Updated dependencies [b490376]
|
||||
- Updated dependencies [f4588bc]
|
||||
- llamaindex@0.9.0
|
||||
|
||||
## 0.0.133
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.37
|
||||
|
||||
## 0.0.132
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [cb608b5]
|
||||
- llamaindex@0.8.36
|
||||
|
||||
## 0.0.131
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.35
|
||||
|
||||
## 0.0.130
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [9f8ad37]
|
||||
- llamaindex@0.8.34
|
||||
|
||||
## 0.0.129
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.33
|
||||
|
||||
## 0.0.128
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@llamaindex/cloudflare-worker-agent-test",
|
||||
"version": "0.0.128",
|
||||
"version": "0.0.138",
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
|
||||
@@ -1,5 +1,50 @@
|
||||
# @llamaindex/llama-parse-browser-test
|
||||
|
||||
## 0.0.49
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- @llamaindex/cloud@3.0.4
|
||||
|
||||
## 0.0.48
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- @llamaindex/cloud@3.0.3
|
||||
|
||||
## 0.0.47
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [c902fcb]
|
||||
- @llamaindex/cloud@3.0.2
|
||||
|
||||
## 0.0.46
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- @llamaindex/cloud@3.0.1
|
||||
|
||||
## 0.0.45
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- @llamaindex/cloud@3.0.0
|
||||
|
||||
## 0.0.44
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [1c908fd]
|
||||
- @llamaindex/cloud@2.0.24
|
||||
|
||||
## 0.0.43
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [cb608b5]
|
||||
- @llamaindex/cloud@2.0.23
|
||||
|
||||
## 0.0.42
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@llamaindex/llama-parse-browser-test",
|
||||
"private": true,
|
||||
"version": "0.0.42",
|
||||
"version": "0.0.49",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { LlamaParseReader } from "@llamaindex/cloud/reader";
|
||||
import { LlamaParseReader } from "@llamaindex/cloud";
|
||||
import "./style.css";
|
||||
|
||||
new LlamaParseReader();
|
||||
|
||||
@@ -1,5 +1,74 @@
|
||||
# @llamaindex/next-agent-test
|
||||
|
||||
## 0.1.138
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [cb021e7]
|
||||
- llamaindex@0.9.4
|
||||
|
||||
## 0.1.137
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.9.3
|
||||
|
||||
## 0.1.136
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [88d776f]
|
||||
- llamaindex@0.9.2
|
||||
|
||||
## 0.1.135
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6d37d44]
|
||||
- llamaindex@0.9.1
|
||||
|
||||
## 0.1.134
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6a4a737]
|
||||
- Updated dependencies [d924c63]
|
||||
- Updated dependencies [b490376]
|
||||
- Updated dependencies [f4588bc]
|
||||
- llamaindex@0.9.0
|
||||
|
||||
## 0.1.133
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.37
|
||||
|
||||
## 0.1.132
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [cb608b5]
|
||||
- llamaindex@0.8.36
|
||||
|
||||
## 0.1.131
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.35
|
||||
|
||||
## 0.1.130
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [9f8ad37]
|
||||
- llamaindex@0.8.34
|
||||
|
||||
## 0.1.129
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.33
|
||||
|
||||
## 0.1.128
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@llamaindex/next-agent-test",
|
||||
"version": "0.1.128",
|
||||
"version": "0.1.138",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
@@ -10,9 +10,9 @@
|
||||
"dependencies": {
|
||||
"ai": "^4.0.0",
|
||||
"llamaindex": "workspace:*",
|
||||
"next": "15.0.3",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1"
|
||||
"next": "15.1.7",
|
||||
"react": "19.0.0",
|
||||
"react-dom": "19.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.9.0",
|
||||
|
||||
@@ -1,5 +1,74 @@
|
||||
# test-edge-runtime
|
||||
|
||||
## 0.1.137
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [cb021e7]
|
||||
- llamaindex@0.9.4
|
||||
|
||||
## 0.1.136
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.9.3
|
||||
|
||||
## 0.1.135
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [88d776f]
|
||||
- llamaindex@0.9.2
|
||||
|
||||
## 0.1.134
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6d37d44]
|
||||
- llamaindex@0.9.1
|
||||
|
||||
## 0.1.133
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6a4a737]
|
||||
- Updated dependencies [d924c63]
|
||||
- Updated dependencies [b490376]
|
||||
- Updated dependencies [f4588bc]
|
||||
- llamaindex@0.9.0
|
||||
|
||||
## 0.1.132
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.37
|
||||
|
||||
## 0.1.131
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [cb608b5]
|
||||
- llamaindex@0.8.36
|
||||
|
||||
## 0.1.130
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.35
|
||||
|
||||
## 0.1.129
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [9f8ad37]
|
||||
- llamaindex@0.8.34
|
||||
|
||||
## 0.1.128
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.33
|
||||
|
||||
## 0.1.127
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@llamaindex/nextjs-edge-runtime-test",
|
||||
"version": "0.1.127",
|
||||
"version": "0.1.137",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
@@ -9,7 +9,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"llamaindex": "workspace:*",
|
||||
"next": "15.0.3",
|
||||
"next": "15.1.7",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,86 @@
|
||||
# @llamaindex/next-node-runtime
|
||||
|
||||
## 0.1.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [cb021e7]
|
||||
- llamaindex@0.9.4
|
||||
- @llamaindex/huggingface@0.0.39
|
||||
- @llamaindex/readers@2.0.3
|
||||
|
||||
## 0.1.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.9.3
|
||||
- @llamaindex/huggingface@0.0.38
|
||||
- @llamaindex/readers@2.0.2
|
||||
|
||||
## 0.1.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [88d776f]
|
||||
- llamaindex@0.9.2
|
||||
|
||||
## 0.1.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6d37d44]
|
||||
- llamaindex@0.9.1
|
||||
- @llamaindex/huggingface@0.0.37
|
||||
- @llamaindex/readers@2.0.1
|
||||
|
||||
## 0.1.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 6a4a737: Remove re-exports from llamaindex main package
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6a4a737]
|
||||
- Updated dependencies [d924c63]
|
||||
- Updated dependencies [b490376]
|
||||
- Updated dependencies [f4588bc]
|
||||
- llamaindex@0.9.0
|
||||
- @llamaindex/huggingface@0.0.36
|
||||
- @llamaindex/readers@2.0.0
|
||||
|
||||
## 0.0.114
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.37
|
||||
|
||||
## 0.0.113
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [cb608b5]
|
||||
- llamaindex@0.8.36
|
||||
|
||||
## 0.0.112
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.35
|
||||
|
||||
## 0.0.111
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [9f8ad37]
|
||||
- llamaindex@0.8.34
|
||||
|
||||
## 0.0.110
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.33
|
||||
|
||||
## 0.0.109
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@llamaindex/next-node-runtime-test",
|
||||
"version": "0.0.109",
|
||||
"version": "0.1.4",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
@@ -9,9 +9,11 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"llamaindex": "workspace:*",
|
||||
"next": "15.0.3",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1"
|
||||
"@llamaindex/huggingface": "workspace:*",
|
||||
"@llamaindex/readers": "workspace:*",
|
||||
"next": "15.1.7",
|
||||
"react": "19.0.0",
|
||||
"react-dom": "19.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.9.0",
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
"use server";
|
||||
import { HuggingFaceEmbedding } from "@llamaindex/huggingface";
|
||||
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
|
||||
import {
|
||||
OpenAI,
|
||||
OpenAIAgent,
|
||||
QueryEngineTool,
|
||||
Settings,
|
||||
SimpleDirectoryReader,
|
||||
VectorStoreIndex,
|
||||
} from "llamaindex";
|
||||
import { HuggingFaceEmbedding } from "llamaindex/embeddings/HuggingFaceEmbedding";
|
||||
|
||||
Settings.llm = new OpenAI({
|
||||
apiKey: process.env.NEXT_PUBLIC_OPENAI_KEY ?? "FAKE_KEY_TO_PASS_TESTS",
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
lerna-debug.log*
|
||||
|
||||
node_modules
|
||||
dist
|
||||
dist-ssr
|
||||
*.local
|
||||
|
||||
# Editor directories and files
|
||||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
.idea
|
||||
.DS_Store
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
@@ -0,0 +1,28 @@
|
||||
# vite-import-llamaindex
|
||||
|
||||
## 0.0.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [cb021e7]
|
||||
- llamaindex@0.9.4
|
||||
|
||||
## 0.0.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.9.3
|
||||
|
||||
## 0.0.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [88d776f]
|
||||
- llamaindex@0.9.2
|
||||
|
||||
## 0.0.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6d37d44]
|
||||
- llamaindex@0.9.1
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "vite-import-llamaindex",
|
||||
"private": true,
|
||||
"version": "0.0.4",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"build": "vite build",
|
||||
"size-limit": "size-limit"
|
||||
},
|
||||
"size-limit": [
|
||||
{
|
||||
"path": "dist/LlamaIndexImportTest.js"
|
||||
}
|
||||
],
|
||||
"devDependencies": {
|
||||
"@size-limit/preset-big-lib": "^11.1.6",
|
||||
"size-limit": "^11.1.6",
|
||||
"typescript": "^5.7.2",
|
||||
"vite": "^6.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"llamaindex": "workspace:*"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,7 @@
|
||||
import "llamaindex";
|
||||
|
||||
document.querySelector<HTMLDivElement>("#app")!.innerHTML = `
|
||||
<div>
|
||||
Hello World!
|
||||
</div>
|
||||
`;
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2020",
|
||||
"useDefineForClassFields": true,
|
||||
"module": "ESNext",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
||||
"skipLibCheck": true,
|
||||
|
||||
/* Bundler mode */
|
||||
"moduleResolution": "bundler",
|
||||
"allowImportingTsExtensions": true,
|
||||
"isolatedModules": true,
|
||||
"moduleDetection": "force",
|
||||
"noEmit": true,
|
||||
|
||||
/* Linting */
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"noUncheckedSideEffectImports": true
|
||||
},
|
||||
"include": ["src", "vite.config.ts"]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import { dirname, resolve } from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import { defineConfig } from "vite";
|
||||
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||
|
||||
export default defineConfig({
|
||||
build: {
|
||||
lib: {
|
||||
entry: resolve(__dirname, "src/main.ts"),
|
||||
name: "LlamaIndexImportTest",
|
||||
fileName: "LlamaIndexImportTest",
|
||||
formats: ["es", "cjs"],
|
||||
},
|
||||
},
|
||||
});
|
||||
@@ -5,3 +5,4 @@ dist
|
||||
.cache
|
||||
.DS_Store
|
||||
*.pem
|
||||
/src/pages.gen.ts
|
||||
|
||||
@@ -1,5 +1,76 @@
|
||||
# @llamaindex/waku-query-engine-test
|
||||
|
||||
## 0.0.138
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [cb021e7]
|
||||
- llamaindex@0.9.4
|
||||
|
||||
## 0.0.137
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.9.3
|
||||
|
||||
## 0.0.136
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [88d776f]
|
||||
- llamaindex@0.9.2
|
||||
|
||||
## 0.0.135
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [cc50c9c]
|
||||
- Updated dependencies [6d37d44]
|
||||
- @llamaindex/env@0.1.28
|
||||
- llamaindex@0.9.1
|
||||
|
||||
## 0.0.134
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6a4a737]
|
||||
- Updated dependencies [d924c63]
|
||||
- Updated dependencies [b490376]
|
||||
- Updated dependencies [f4588bc]
|
||||
- llamaindex@0.9.0
|
||||
|
||||
## 0.0.133
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.37
|
||||
|
||||
## 0.0.132
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [cb608b5]
|
||||
- llamaindex@0.8.36
|
||||
|
||||
## 0.0.131
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.35
|
||||
|
||||
## 0.0.130
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [9f8ad37]
|
||||
- llamaindex@0.8.34
|
||||
|
||||
## 0.0.129
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.33
|
||||
|
||||
## 0.0.128
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@llamaindex/waku-query-engine-test",
|
||||
"version": "0.0.128",
|
||||
"version": "0.0.138",
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
@@ -9,11 +9,12 @@
|
||||
"start": "waku start"
|
||||
},
|
||||
"dependencies": {
|
||||
"@llamaindex/env": "workspace:*",
|
||||
"llamaindex": "workspace:*",
|
||||
"react": "19.0.0-rc-5c56b873-20241107",
|
||||
"react-dom": "19.0.0-rc-5c56b873-20241107",
|
||||
"react-server-dom-webpack": "19.0.0-rc-5c56b873-20241107",
|
||||
"waku": "0.21.6"
|
||||
"react": "19.0.0",
|
||||
"react-dom": "19.0.0",
|
||||
"react-server-dom-webpack": "19.0.0",
|
||||
"waku": "0.21.20"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "18.3.12",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user