Compare commits

..

2 Commits

Author SHA1 Message Date
Alex Yang c07555c8d2 Create happy-seals-beam.md 2025-04-08 14:07:53 -07:00
Alex Yang 4dd989a9dc fix(parse): file input 2025-04-08 13:47:16 -07:00
253 changed files with 3702 additions and 9562 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"@llamaindex/postgres": patch
---
Added reader for the postgres package
+5
View File
@@ -0,0 +1,5 @@
---
"@llamaindex/google": patch
---
Add the Gemini 2.5 Pro Preview model
+6
View File
@@ -0,0 +1,6 @@
---
"llamaindex": patch
"@llamaindex/workflow": patch
---
feat: support multi-resolution compatibility
+5
View File
@@ -0,0 +1,5 @@
---
"@llamaindex/cloud": patch
---
fix(parse): file input
+9
View File
@@ -0,0 +1,9 @@
---
"@llamaindex/anthropic": patch
---
added `option.thinking` and `option.thinking_signature` to Anthropic's chat response
added `option.thinking_signature` to Anthropic's chat stream response
handle `ChatMessages` with `option.thinking` and `option.thinking_signature`
-47
View File
@@ -1,52 +1,5 @@
# @llamaindex/doc
## 0.2.11
### Patch Changes
- 6cf928f: chore: use bunchee for llamaindex
- Updated dependencies [6cf928f]
- llamaindex@0.10.0
## 0.2.10
### Patch Changes
- 411dcea: Add Nova Premier to AWS Nova models. Add EU endpoints
## 0.2.9
### Patch Changes
- Updated dependencies [d365eb2]
- @llamaindex/openai@0.3.2
- llamaindex@0.9.19
## 0.2.8
### Patch Changes
- 2ffdb27: docs: correct the CondenseQuestionChatEngine path
- Updated dependencies [88b7046]
- @llamaindex/openai@0.3.1
- llamaindex@0.9.18
## 0.2.7
### Patch Changes
- 3ffee26: feat: enhance config params for LlamaIndexServer
## 0.2.6
### Patch Changes
- Updated dependencies [3534c37]
- Updated dependencies [41191d0]
- llamaindex@0.9.17
- @llamaindex/workflow@1.0.3
- @llamaindex/cloud@4.0.3
## 0.2.5
### Patch Changes
+9 -10
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/doc",
"version": "0.2.11",
"version": "0.2.5",
"private": true,
"scripts": {
"postinstall": "fumadocs-mdx",
@@ -14,7 +14,6 @@
},
"dependencies": {
"@icons-pack/react-simple-icons": "^10.1.0",
"@llama-flow/docs": "0.0.3",
"@llamaindex/chat-ui": "0.2.0",
"@llamaindex/cloud": "workspace:*",
"@llamaindex/core": "workspace:*",
@@ -37,20 +36,20 @@
"clsx": "2.1.1",
"foxact": "^0.2.41",
"framer-motion": "^11.11.17",
"fumadocs-core": "^15.2.7",
"fumadocs-core": "^15.0.15",
"fumadocs-docgen": "^2.0.0",
"fumadocs-mdx": "^11.6.0",
"fumadocs-mdx": "^11.5.6",
"fumadocs-openapi": "^6.3.0",
"fumadocs-twoslash": "^3.1.1",
"fumadocs-twoslash": "^3.1.0",
"fumadocs-typescript": "^3.1.0",
"fumadocs-ui": "^15.2.7",
"fumadocs-ui": "^15.0.15",
"hast-util-to-jsx-runtime": "^2.3.2",
"llamaindex": "workspace:*",
"lucide-react": "^0.460.0",
"next": "^15.3.0",
"next": "^15.2.4",
"next-themes": "^0.4.3",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-icons": "^5.3.0",
"react-monaco-editor": "^0.56.2",
"react-use-measure": "^2.1.1",
@@ -69,7 +68,7 @@
"zod": "^3.23.8"
},
"devDependencies": {
"@next/env": "^15.3.0",
"@next/env": "^15.2.1",
"@tailwindcss/postcss": "^4.0.9",
"@types/mdx": "^2.0.13",
"@types/node": "22.9.0",
+1 -1
View File
@@ -7,7 +7,7 @@ import rehypeKatex from "rehype-katex";
import remarkMath from "remark-math";
export const docs = defineDocs({
dir: ["./src/content/docs", "./node_modules/@llama-flow/docs"],
dir: "./src/content/docs",
});
export default defineConfig({
+2 -2
View File
@@ -11,7 +11,7 @@ import { NpmInstall } from "@/components/npm-install";
import { Supports } from "@/components/supports";
import { Button } from "@/components/ui/button";
import { Skeleton } from "@/components/ui/skeleton";
import { DOCUMENT_URL } from "@/lib/const";
import { LEGACY_DOCUMENT_URL } from "@/lib/const";
import { SiStackblitz } from "@icons-pack/react-simple-icons";
import {
CodeBlock as FumaCodeBlock,
@@ -39,7 +39,7 @@ export default function HomePage() {
</div>
<div className="flex flex-wrap justify-center gap-4">
<Link href={DOCUMENT_URL}>
<Link href={LEGACY_DOCUMENT_URL}>
<Button variant="outline">Get Started</Button>
</Link>
<NpmInstall />
@@ -2,7 +2,6 @@ import { createMetadata, metadataImage } from "@/lib/metadata";
import { openapi, source } from "@/lib/source";
import { Popup, PopupContent, PopupTrigger } from "fumadocs-twoslash/ui";
import { createTypeTable } from "fumadocs-typescript/ui";
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
import defaultMdxComponents from "fumadocs-ui/mdx";
import {
DocsBody,
@@ -32,7 +31,6 @@ export default async function Page(props: {
editOnGithub={{
owner: "run-llama",
repo: "LlamaIndexTS",
sha: "main",
path: `apps/next/src/content/docs/${page.file.path}`,
}}
>
@@ -43,8 +41,6 @@ export default async function Page(props: {
components={{
...defaultMdxComponents,
APIPage: openapi.APIPage,
Tab,
Tabs,
Popup,
PopupContent,
PopupTrigger,
+1 -1
View File
@@ -1,7 +1,7 @@
@import "tailwindcss";
@import "fumadocs-ui/css/neutral.css";
@import "fumadocs-ui/css/preset.css";
@import "../../node_modules/fumadocs-twoslash/styles/twoslash.css";
@import "../../node_modules/fumadocs-twoslash/dist/twoslash.css";
@plugin "tailwindcss-animate";
@source '../../node_modules/fumadocs-ui/dist/**/*.js';
@source "../../node_modules/fumadocs-openapi/dist/**/*.js",
+2 -2
View File
@@ -1,4 +1,4 @@
import { DOCUMENT_URL } from "@/lib/const";
import { LEGACY_DOCUMENT_URL } from "@/lib/const";
import type { BaseLayoutProps } from "fumadocs-ui/layouts/shared";
import Image from "next/image";
@@ -28,7 +28,7 @@ export const baseOptions: BaseLayoutProps = {
links: [
{
text: "Docs",
url: DOCUMENT_URL,
url: LEGACY_DOCUMENT_URL,
active: "nested-url",
},
],
@@ -1,6 +1,7 @@
"use client";
import { createContextState } from "foxact/context-state";
import { useIsClient } from "foxact/use-is-client";
import { useShiki } from "fumadocs-core/utils/use-shiki";
import { CodeBlock, Pre } from "fumadocs-ui/components/codeblock";
import { lazy, Suspense, use, useMemo } from "react";
import { StickToBottom, useStickToBottomContext } from "use-stick-to-bottom";
@@ -10,7 +11,6 @@ import { Label } from "@/components/ui/label";
import { Skeleton } from "@/components/ui/skeleton";
import { Slider } from "@/components/ui/slider";
import { CodeSplitter } from "@llamaindex/node-parser/code";
import { useShiki } from "fumadocs-core/highlight/client";
let promise: Promise<CodeSplitter>;
if (typeof window !== "undefined") {
@@ -11,7 +11,7 @@ It may be useful to check out all the examples at once so you can try them out l
```bash npm2yarn
npx degit run-llama/LlamaIndexTS/examples my-new-project
cd my-new-project
npm i
npm install
```
Then you can run any example in the folder with `tsx`, e.g.:
@@ -10,18 +10,39 @@ import {
SiCloudflareworkers,
SiVite
} from "@icons-pack/react-simple-icons";
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
To install llamaindex, run the following command:
```package-install
npm i llamaindex
```
<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>
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:
```package-install
npm i @llamaindex/openai
```
<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 [LLM APIs](/docs/llamaindex/modules/models/llms) to find out how to use other LLMs.
@@ -3,6 +3,8 @@ title: With Node.js/Bun/Deno
description: In this guide, you'll learn how to use LlamaIndex with Node.js, Bun, and Deno.
---
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
## Adding environment variables
By default, LlamaIndex uses OpenAI provider, which requires an API key. You can set the `OPENAI_API_KEY` environment variable to authenticate with OpenAI.
@@ -26,9 +28,19 @@ For more information, see the [How to read environment variables from Node.js](h
By the default, we are using `js-tiktoken` for tokenization. You can install `gpt-tokenizer` which is then automatically used by LlamaIndex to get a 60x speedup for tokenization:
```package-install
npm i gpt-tokenizer
```
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
```shell tab="npm"
npm install gpt-tokenizer
```
```shell tab="yarn"
yarn add gpt-tokenizer
```
```shell tab="pnpm"
pnpm add gpt-tokenizer
```
</Tabs>
**Note**: This only works for Node.js
@@ -45,7 +45,7 @@ We recommend using `bundler` or `nodenext`, but due to popularity of `node`, we
So you may encounter type errors when importing sub paths from the `llamaindex` package like:
```ts
import { Settings } from "llamaindex";
import { Settings } from "llamaindex/Settings";
```
The simplest way to fix this without changing `moduleResolution` is to import directly from `llamaindex`:
@@ -2,6 +2,7 @@
title: Langtrace
description: Learn how to integrate LlamaIndex.TS with Langtrace.
---
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
Enhance your observability with Langtrace, a robust open-source tool supports OpenTelemetry and is designed to trace, evaluate, and manage LLM applications seamlessly. Langtrace integrates directly with LlamaIndex, offering detailed, real-time insights into performance metrics such as accuracy, evaluations, and latency.
@@ -9,9 +10,19 @@ Enhance your observability with Langtrace, a robust open-source tool supports Op
- Self-host or sign-up and generate an API key using [Langtrace](https://www.langtrace.ai) Cloud
```package-install
npm i @langtrase/typescript-sdk
```
<Tabs groupId="install-langtrase" items={["npm", "yarn", "pnpm"]} persist>
```shell tab="npm"
npm install @langtrase/typescript-sdk
```
```shell tab="yarn"
yarn add @langtrase/typescript-sdk
```
```shell tab="pnpm"
pnpm add @langtrase/typescript-sdk
```
</Tabs>
## Initialize
@@ -2,15 +2,27 @@
title: OpenLLMetry
description: Learn how to integrate LlamaIndex.TS with OpenLLMetry.
---
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
[OpenLLMetry](https://github.com/traceloop/openllmetry-js) is an open-source project based on OpenTelemetry for tracing and monitoring
LLM applications. It connects to [all major observability platforms](https://www.traceloop.com/docs/openllmetry/integrations/introduction) and installs in minutes.
### Usage Pattern
```package-install
npm i @traceloop/node-server-sdk
```
<Tabs groupId="install-traceloop" items={["npm", "yarn", "pnpm"]} persist>
```shell tab="npm"
npm install @traceloop/node-server-sdk
```
```shell tab="yarn"
yarn add @traceloop/node-server-sdk
```
```shell tab="pnpm"
pnpm add @traceloop/node-server-sdk
```
</Tabs>
```js
import * as traceloop from "@traceloop/node-server-sdk";
@@ -11,8 +11,8 @@ LlamaIndex provides integration with Vercel's AI SDK, allowing you to create pow
First, install the required dependencies:
```package-install
npm i @llamaindex/vercel ai
```bash
npm install @llamaindex/vercel ai
```
## Using Vercel AI's Model Providers
@@ -2,6 +2,8 @@
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
@@ -31,9 +33,19 @@ import { OpenAI } from "@llamaindex/openai";
> Note: This examples requires installing the `@llamaindex/openai` package:
```package-install
npm i @llamaindex/openai
```
<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/models/llms) and the [Embedding Models documentation](/docs/llamaindex/modules/models/embeddings).
@@ -13,10 +13,21 @@ 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";
```package-install
npm i @llamaindex/workflow
```
<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
@@ -7,9 +7,21 @@ These `Transformations` are applied to your input data, and the resulting nodes
## Installation
```package-install
npm i llamaindex @llamaindex/openai @llamaindex/qdrant
```
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
@@ -3,6 +3,7 @@ title: Node Parsers / Text Splitters
description: Learn how to use Node Parsers and Text Splitters to extract data from documents.
---
import { CodeNodeParserDemo } from '@/components/demo/code-node-parser.tsx';
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
Node parsers are a simple abstraction that take a list of `Document` objects, and chunk them into `Node` objects, such that each node is a specific chunk of the parent document. When a document is broken into nodes, all of it's attributes are inherited to the children nodes (i.e. `metadata`, text and metadata templates, etc.). You can read more about `Node` and `Document` properties [here](/docs/llamaindex/modules/data).
@@ -6,6 +6,7 @@ description: Loading data using Readers into Documents
import { DynamicCodeBlock } from 'fumadocs-ui/components/dynamic-codeblock';
import CodeSource from "!raw-loader!@/examples/readers/src/simple-directory-reader";
import CodeSource2 from "!raw-loader!@/examples/readers/src/custom-simple-directory-reader";
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
import { Accordion, Accordions } from 'fumadocs-ui/components/accordion';
Before you can start indexing your documents, you need to load them into memory.
@@ -18,9 +19,20 @@ To install readers call:
If you want to use the reader module, you need to install `@llamaindex/readers`
```package-install
npm i @llamaindex/readers
```
<Tabs groupId="install-llamaindex" items={["npm", "yarn", "pnpm"]} persist>
```shell tab="npm"
npm install @llamaindex/readers
```
```shell tab="yarn"
yarn add @llamaindex/readers
```
```shell tab="pnpm"
pnpm add @llamaindex/readers
```
</Tabs>
</Accordion>
</Accordions>
@@ -8,9 +8,21 @@ Supports streaming of large JSON data using [@discoveryjs/json-ext](https://gith
## Installation
```package-install
npm i llamaindex @llamaindex/readers
```
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
@@ -6,9 +6,21 @@ LlamaParse `json` mode supports extracting any images found in a page object by
## Installation
```package-install
npm i llamaindex @llamaindex/cloud @llamaindex/openai
```
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
@@ -6,9 +6,21 @@ In JSON mode, LlamaParse will return a data structure representing the parsed ob
## Installation
```package-install
npm i llamaindex @llamaindex/cloud
```
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
@@ -13,9 +13,21 @@ Check the [LlamaIndexTS Github](https://github.com/run-llama/LlamaIndexTS) for t
## Using PostgreSQL as Document Store
```package-install
npm i llamaindex @llamaindex/postgres
```
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
@@ -13,9 +13,21 @@ Check the [LlamaIndexTS Github](https://github.com/run-llama/LlamaIndexTS) for t
## Using PostgreSQL as Index Store
```package-install
npm i llamaindex @llamaindex/postgres
```
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
@@ -13,9 +13,21 @@ docker run -p 6333:6333 qdrant/qdrant
## Installation
```package-install
npm i llamaindex @llamaindex/qdrant
```
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
@@ -8,9 +8,21 @@ To use this vector store, you need a Supabase project. You can create one at [su
## Installation
```package-install
npm i llamaindex @llamaindex/supabase
```
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
```shell tab="npm"
npm install llamaindex @llamaindex/supabase
```
```shell tab="yarn"
yarn add llamaindex @llamaindex/supabase
```
```shell tab="pnpm"
pnpm add llamaindex @llamaindex/supabase
```
</Tabs>
## Database Setup
@@ -10,9 +10,21 @@ This is useful for measuring if the response was correct. The evaluator returns
Firstly, you need to install the package:
```package-install
npm i llamaindex @llamaindex/openai
```
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:
@@ -12,9 +12,22 @@ This is useful for measuring if the response was hallucinated. The evaluator ret
Firstly, you need to install the package:
```package-install
npm i llamaindex @llamaindex/openai
```
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:
@@ -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:
```package-install
npm i llamaindex @llamaindex/openai
```
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:
@@ -7,9 +7,21 @@ Check out available embedding models [here](https://deepinfra.com/models/embeddi
## Installation
```package-install
npm i llamaindex @llamaindex/deepinfra
```
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 { Document, Settings, VectorStoreIndex } from "llamaindex";
@@ -6,9 +6,21 @@ To use Gemini embeddings, you need to import `GeminiEmbedding` from `@llamaindex
## Installation
```package-install
npm i llamaindex @llamaindex/google
```
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 { Document, Settings, VectorStoreIndex } from "llamaindex";
@@ -6,9 +6,21 @@ To use HuggingFace embeddings, you need to import `HuggingFaceEmbedding` from `@
## Installation
```package-install
npm i llamaindex @llamaindex/huggingface
```
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 { Document, Settings, VectorStoreIndex } from "llamaindex";
@@ -8,9 +8,21 @@ This can be explicitly updated through `Settings.embedModel`.
## Installation
```package-install
npm i llamaindex @llamaindex/openai
```
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 } from "@llamaindex/openai";
@@ -6,9 +6,21 @@ To use MistralAI embeddings, you need to import `MistralAIEmbedding` from `@llam
## Installation
```package-install
npm i llamaindex @llamaindex/mistral
```
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 { Document, Settings, VectorStoreIndex } from "llamaindex";
@@ -14,9 +14,22 @@ To find out more about the latest features, updates, and available models, visit
## Setup
```package-install
npm i llamaindex @llamaindex/mixedbread
```
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>
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.
@@ -14,9 +14,21 @@ ollama pull nomic-embed-text
## Installation
```package-install
npm i llamaindex @llamaindex/ollama
```
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 } from "@llamaindex/ollama";
@@ -6,9 +6,21 @@ To use OpenAI embeddings, you need to import `OpenAIEmbedding` from `@llamaindex
## Installation
```package-install
npm i llamaindex @llamaindex/openai
```
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 } from "@llamaindex/openai";
@@ -6,9 +6,21 @@ To use VoyageAI embeddings, you need to import `VoyageAIEmbedding` from `@llamai
## Installation
```package-install
npm i llamaindex @llamaindex/voyage-ai
```
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";
@@ -4,9 +4,21 @@ title: Anthropic
## Installation
```shell tab="npm"
npm i llamaindex @llamaindex/anthropic
```
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
@@ -16,9 +16,21 @@ export AZURE_OPENAI_DEPLOYMENT="gpt-4" # or some other deployment name
## Installation
```package-install
npm i llamaindex @llamaindex/openai
```
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
@@ -4,9 +4,21 @@ title: Bedrock
## Installation
```package-install
npm i llamaindex @llamaindex/community
```
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
@@ -45,7 +57,6 @@ META_LLAMA3_2_1B_INSTRUCT = "meta.llama3-2-1b-instruct-v1:0"; // only available
META_LLAMA3_2_3B_INSTRUCT = "meta.llama3-2-3b-instruct-v1:0"; // only available via inference endpoints (see below)
META_LLAMA3_2_11B_INSTRUCT = "meta.llama3-2-11b-instruct-v1:0"; // only available via inference endpoints (see below), multimodal and function call supported
META_LLAMA3_2_90B_INSTRUCT = "meta.llama3-2-90b-instruct-v1:0"; // only available via inference endpoints (see below), multimodal and function call supported
AMAZON_NOVA_PREMIER_1 = "amazon.nova-premier-v1:0";
AMAZON_NOVA_PRO_1 = "amazon.nova-pro-v1:0";
AMAZON_NOVA_LITE_1 = "amazon.nova-lite-v1:0";
AMAZON_NOVA_MICRO_1 = "amazon.nova-micro-v1:0";
@@ -65,7 +76,6 @@ US_META_LLAMA_3_2_1B_INSTRUCT = "us.meta.llama3-2-1b-instruct-v1:0";
US_META_LLAMA_3_2_3B_INSTRUCT = "us.meta.llama3-2-3b-instruct-v1:0";
US_META_LLAMA_3_2_11B_INSTRUCT = "us.meta.llama3-2-11b-instruct-v1:0";
US_META_LLAMA_3_2_90B_INSTRUCT = "us.meta.llama3-2-90b-instruct-v1:0";
US_AMAZON_NOVA_PRO_1 = "us.amazon.nova-premier-v1:0";
US_AMAZON_NOVA_PRO_1 = "us.amazon.nova-pro-v1:0";
US_AMAZON_NOVA_LITE_1 = "us.amazon.nova-lite-v1:0";
US_AMAZON_NOVA_MICRO_1 = "us.amazon.nova-micro-v1:0";
@@ -76,10 +86,6 @@ EU_ANTHROPIC_CLAUDE_3_SONNET = "eu.anthropic.claude-3-sonnet-20240229-v1:0";
EU_ANTHROPIC_CLAUDE_3_5_SONNET = "eu.anthropic.claude-3-5-sonnet-20240620-v1:0";
EU_META_LLAMA_3_2_1B_INSTRUCT = "eu.meta.llama3-2-1b-instruct-v1:0";
EU_META_LLAMA_3_2_3B_INSTRUCT = "eu.meta.llama3-2-3b-instruct-v1:0";
EU_AMAZON_NOVA_PRO_1 = "eu.amazon.nova-premier-v1:0";
EU_AMAZON_NOVA_PRO_1 = "eu.amazon.nova-pro-v1:0";
EU_AMAZON_NOVA_LITE_1 = "eu.amazon.nova-lite-v1:0";
EU_AMAZON_NOVA_MICRO_1 = "eu.amazon.nova-micro-v1:0";
```
Sonnet, Haiku and Opus are multimodal, image_url only supports base64 data url format, e.g. `data:image/jpeg;base64,SGVsbG8sIFdvcmxkIQ==`
@@ -6,9 +6,21 @@ Check out available LLMs [here](https://deepinfra.com/models/text-generation).
## Installation
```package-install
npm i llamaindex @llamaindex/deepinfra
```
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 } from "@llamaindex/deepinfra";
@@ -4,9 +4,21 @@ title: Gemini
## Installation
```package-install
npm i llamaindex @llamaindex/google
```
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
@@ -57,7 +69,7 @@ const gemini = new Gemini({
To authenticate for local development:
```bash
npm i @google-cloud/vertexai
npm install @google-cloud/vertexai
gcloud auth application-default login
```
@@ -7,9 +7,21 @@ import CodeSource from "!raw-loader!@/examples/groq.ts";
## Installation
```package-install
npm i llamaindex @llamaindex/groq
```
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
@@ -8,9 +8,21 @@ The LLM can be explicitly updated through `Settings`.
## Installation
```package-install
npm i llamaindex @llamaindex/openai
```
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 } from "@llamaindex/openai";
@@ -4,9 +4,21 @@ title: LLama2
## Installation
```package-install
npm i llamaindex @llamaindex/replicate
```
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
@@ -4,9 +4,21 @@ title: Mistral
## Installation
```package-install
npm i llamaindex @llamaindex/mistral
```
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
@@ -4,9 +4,22 @@ title: Ollama
## Installation
```package-install
npm i llamaindex @llamaindex/ollama
```
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
@@ -4,9 +4,22 @@ title: OpenAI
## Installation
```package-install
npm i llamaindex @llamaindex/openai
```
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 } from "@llamaindex/openai";
@@ -4,9 +4,21 @@ title: Perplexity LLM
## Installation
```package-install
npm i @llamaindex/perplexity
```
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
```shell tab="npm"
npm install @llamaindex/perplexity
```
```shell tab="yarn"
yarn add @llamaindex/perplexity
```
```shell tab="pnpm"
pnpm add @llamaindex/perplexity
```
</Tabs>
## Usage
@@ -4,9 +4,22 @@ title: Portkey LLM
## Installation
```package-install
npm i llamaindex @llamaindex/portkey-ai
```
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
@@ -4,9 +4,21 @@ title: Together LLM
## Installation
```package-install
npm i @llamaindex/together
```
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
```shell tab="npm"
npm install @llamaindex/together
```
```shell tab="yarn"
yarn add @llamaindex/together
```
```shell tab="pnpm"
pnpm add @llamaindex/together
```
</Tabs>
## Usage
@@ -41,5 +41,5 @@ for await (const chunk of stream) {
## Api References
- [ContextChatEngine](/docs/api/classes/ContextChatEngine)
- [CondenseQuestionChatEngine](/docs/api/classes/CondenseQuestionChatEngine)
- [CondenseQuestionChatEngine](/docs/api/classes/ContextChatEngine)
- [SimpleChatEngine](/docs/api/classes/SimpleChatEngine)
@@ -8,9 +8,21 @@ The Cohere Reranker is a postprocessor that uses the Cohere API to rerank the re
Firstly, you will need to install the `llamaindex` package.
```package-install
npm i llamaindex @llamaindex/cohere @llamaindex/openai
```
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.
@@ -4,9 +4,21 @@ title: Node Postprocessors
## Installation
```package-install
npm i llamaindex @llamaindex/cohere @llamaindex/openai
```
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
@@ -8,9 +8,22 @@ 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.
```package-install
npm i llamaindex @llamaindex/openai
```
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.
@@ -17,9 +17,22 @@ To find out more about the latest features and updates, visit the [mixedbread.ai
First, you will need to install the `llamaindex` package.
```package-install
npm i llamaindex @llamaindex/openai @llamaindex/mixedbread
```
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.
@@ -10,9 +10,21 @@ 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:
```package-install
npm i llamaindex @llamaindex/openai @llamaindex/chroma
```
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`:
@@ -8,9 +8,21 @@ 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`:
```package-install
npm i llamaindex @llamaindex/openai @llamaindex/readers
```
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 {
@@ -16,7 +16,7 @@ npx shadcn@latest add https://ui.llamaindex.ai/r/chat.json
To install the package, run the following command in your project directory:
```sh
npm i @llamaindex/chat-ui
npm install @llamaindex/chat-ui
```
For more information, check out the [github.comrun-llama/chat-ui](https://github.com/run-llama/chat-ui)
@@ -1,153 +0,0 @@
---
title: Using LlamaIndex Server
description: Running LlamaIndex workflows with both API endpoints and a user interface for interaction
---
# LlamaIndex Server
LlamaIndexServer is a Next.js-based application that allows you to quickly launch your [LlamaIndex Workflows](https://ts.llamaindex.ai/docs/llamaindex/modules/agents/workflows) and [Agent Workflows](https://ts.llamaindex.ai/docs/llamaindex/modules/agents/agent_workflow) as an API server with an optional chat UI. It provides a complete environment for running LlamaIndex workflows with both API endpoints and a user interface for interaction.
## Features
- Serving a workflow as a chatbot
- Built on Next.js for high performance and easy API development
- Optional built-in chat UI with extendable UI components
- Prebuilt development code
## Installation
```package-install
npm i @llamaindex/server
```
## Quick Start
Create index.ts file and add the following code:
```ts
import { LlamaIndexServer } from "@llamaindex/server";
import { wiki } from "@llamaindex/tools"; // or any other tool
const createWorkflow = () => agent({ tools: [wiki()] })
new LlamaIndexServer({
workflow: createWorkflow,
uiConfig: {
appTitle: "LlamaIndex App",
starterQuestions: ["Who is the first president of the United States?"],
},
}).start();
```
## Running the Server
In the same directory as `index.ts`, run the following command to start the server:
```bash
tsx index.ts
```
The server will start at `http://localhost:3000`
You can also make a request to the server:
```bash
curl -X POST "http://localhost:3000/api/chat" -H "Content-Type: application/json" -d '{"message": "Who is the first president of the United States?"}'
```
## Configuration Options
The LlamaIndexServer accepts the following configuration
- `workflow`: A callable function that creates a workflow instance for each request
- `uiConfig`: An object to configure the chat UI containing the following properties:
- `appTitle`: The title of the application (default: `"LlamaIndex App"`)
- `starterQuestions`: List of starter questions for the chat UI (default: `[]`)
- `componentsDir`: The directory for custom UI components rendering events emitted by the workflow. The default is undefined, which does not render custom UI components.
- `llamaCloudIndexSelector`: Whether to show the LlamaCloud index selector in the chat UI (requires `LLAMA_CLOUD_API_KEY` to be set in the environment variables) (default: `false`)
LlamaIndexServer accepts all the configuration options from Nextjs Custom Server such as `port`, `hostname`, `dev`, etc.
See all Nextjs Custom Server options [here](https://nextjs.org/docs/app/building-your-application/configuring/custom-server).
## Default Endpoints and Features
### Chat Endpoint
The server includes a default chat endpoint at `/api/chat` for handling chat interactions.
### Chat UI
The server always provides a chat interface at the root path (`/`) with:
- Configurable starter questions
- Real-time chat interface
- API endpoint integration
### Static File Serving
- The server automatically mounts the `data` and `output` folders at `{server_url}{api_prefix}/files/data` (default: `/api/files/data`) and `{server_url}{api_prefix}/files/output` (default: `/api/files/output`) respectively.
- Your workflows can use both folders to store and access files. As a convention, the `data` folder is used for documents that are ingested and the `output` folder is used for documents that are generated by the workflow.
## Custom UI Components
The LlamaIndex server provides support for rendering workflow events using custom UI components, allowing you to extend and customize the chat interface.
### Overview
Custom UI components are a powerful feature that enables you to:
- Add custom interface elements to the chat UI using React JSX or TSX files
- Extend the default chat interface functionality
- Create specialized visualizations or interactions
### Configuration
Your workflow must emit events that fit this structure, allowing the LlamaIndex server to display the right UI components based on the event type.
```json
{
"type": "<event_name>",
"data": <data model>
}
```
### Server Setup
1. Initialize the LlamaIndex server with a component directory:
```ts
new LlamaIndexServer({
workflow: createWorkflow,
uiConfig: {
appTitle: "LlamaIndex App",
componentsDir: "components",
},
}).start();
```
2. Add the custom component code to the directory following the naming pattern:
- File Extension: `.jsx` and `.tsx` for React components
- File Name: Should match the event type from your workflow (e.g., `deep_research_event.jsx` for handling `deep_research_event` type that you defined in your workflow). If there are TSX and JSX files with the same name, the TSX file will be used.
- Component Name: Export a default React component named `Component` that receives props from the event data
Example component structure:
```jsx
function Component({ events }) {
// Your component logic here
return (
// Your UI code here
);
}
```
## Best Practices
1. Always provide a workflow factory that creates fresh workflow instances
2. Use environment variables for sensitive configuration
3. Use starter questions to guide users in the chat UI
## Getting Started with a New Project
Want to start a new project with LlamaIndexServer? Check out our [create-llama](https://github.com/run-llama/create-llama) tool to quickly generate a new project with LlamaIndexServer.
@@ -2,5 +2,5 @@
"title": "Chat UI",
"description": "Use chat-ui to add a chat interface to your LlamaIndexTS application.",
"defaultOpen": false,
"pages": ["install", "chat", "rsc", "llamaindex-server"]
"pages": ["install", "chat", "rsc"]
}
@@ -14,8 +14,8 @@ 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
```package-install
npm i llamaindex @llamaindex/openai @llamaindex/readers @llamaindex/huggingface
```bash
npm install llamaindex @llamaindex/openai @llamaindex/readers @llamaindex/huggingface
```
## Choose your model
@@ -33,7 +33,7 @@ OPENAI_API_KEY=sk-XXXXXXXXXXXXXXXXXXXXXXXX
We'll use `dotenv` to pull the API key out of that .env file, so also run:
```bash
npm i dotenv
npm install dotenv
```
Now you're ready to [create your agent](2_create_agent).
@@ -15,9 +15,22 @@ We're going to start with the same agent we [built in step 1](https://github.com
## Installation
```package-install
npm i llamaindex @llamaindex/openai @llamaindex/huggingface
```
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
@@ -13,7 +13,7 @@ In a new folder:
```bash npm2yarn
npm init
npm i -D typescript @types/node
npm install -D typescript @types/node
```
## Run agent
@@ -2,6 +2,8 @@
title: Local LLMs
---
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
LlamaIndex.TS supports OpenAI and [other remote LLM APIs](/docs/llamaindex/modules/models/llms). You can also run a local LLM on your machine!
## Using a local model via Ollama
@@ -26,9 +28,19 @@ The first time you run it will also automatically download and install the model
To switch the LLM in your code, you first need to make sure to install the package for the Ollama model provider:
```package-install
npm i @llamaindex/ollama
```
<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:
@@ -47,9 +59,19 @@ If you're doing retrieval-augmented generation, LlamaIndex.TS will also call out
First install the Huggingface model provider package:
```package-install
npm i @llamaindex/huggingface
```
<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:
@@ -14,7 +14,7 @@ In a new folder, run:
```bash npm2yarn
npm init
npm i -D typescript @types/node
npm install -D typescript @types/node
```
Then, check out the [installation](/docs/llamaindex/getting_started/installation) steps to install LlamaIndex.TS and prepare an OpenAI key.
@@ -15,7 +15,7 @@ In a new folder:
```bash npm2yarn
npm init
npm i -D typescript @types/node
npm install -D typescript @types/node
```
## Extract data
@@ -8,9 +8,21 @@ Workflows are made up of steps, with each step responsible for handling certain
Workflows are designed for any cases that benefit from event-driven programming, not only for LLM and AI tasks.
```package-install
npm i @llamaindex/workflow
```
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>
## Start from scratch
+1 -1
View File
@@ -1,3 +1,3 @@
{
"pages": ["llamaindex", "llamaflow", "cloud", "api"]
"pages": ["llamaindex", "cloud", "api"]
}
+1 -1
View File
@@ -1,2 +1,2 @@
// when we are ready, change to /docs/llamaindex
export const DOCUMENT_URL = '/docs/llamaindex'
export const LEGACY_DOCUMENT_URL = '/docs/llamaindex'
@@ -1,31 +1,5 @@
# @llamaindex/cloudflare-worker-agent-test
## 0.0.154
### Patch Changes
- Updated dependencies [6cf928f]
- llamaindex@0.10.0
## 0.0.153
### Patch Changes
- llamaindex@0.9.19
## 0.0.152
### Patch Changes
- llamaindex@0.9.18
## 0.0.151
### Patch Changes
- Updated dependencies [3534c37]
- llamaindex@0.9.17
## 0.0.150
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloudflare-worker-agent-test",
"version": "0.0.154",
"version": "0.0.150",
"type": "module",
"private": true,
"scripts": {
@@ -1,12 +1,5 @@
# @llamaindex/llama-parse-browser-test
## 0.0.58
### Patch Changes
- Updated dependencies [41191d0]
- @llamaindex/cloud@4.0.3
## 0.0.57
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/llama-parse-browser-test",
"private": true,
"version": "0.0.58",
"version": "0.0.57",
"type": "module",
"scripts": {
"dev": "vite",
-26
View File
@@ -1,31 +1,5 @@
# @llamaindex/next-agent-test
## 0.1.154
### Patch Changes
- Updated dependencies [6cf928f]
- llamaindex@0.10.0
## 0.1.153
### Patch Changes
- llamaindex@0.9.19
## 0.1.152
### Patch Changes
- llamaindex@0.9.18
## 0.1.151
### Patch Changes
- Updated dependencies [3534c37]
- llamaindex@0.9.17
## 0.1.150
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-agent-test",
"version": "0.1.154",
"version": "0.1.150",
"private": true,
"scripts": {
"dev": "next dev",
@@ -10,7 +10,7 @@
"dependencies": {
"ai": "^4.0.0",
"llamaindex": "workspace:*",
"next": "^15.3.0",
"next": "^15.2.4",
"react": "19.0.0",
"react-dom": "19.0.0"
},
@@ -1,31 +1,5 @@
# test-edge-runtime
## 0.1.153
### Patch Changes
- Updated dependencies [6cf928f]
- llamaindex@0.10.0
## 0.1.152
### Patch Changes
- llamaindex@0.9.19
## 0.1.151
### Patch Changes
- llamaindex@0.9.18
## 0.1.150
### Patch Changes
- Updated dependencies [3534c37]
- llamaindex@0.9.17
## 0.1.149
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/nextjs-edge-runtime-test",
"version": "0.1.153",
"version": "0.1.149",
"private": true,
"scripts": {
"dev": "next dev",
@@ -9,9 +9,9 @@
},
"dependencies": {
"llamaindex": "workspace:*",
"next": "^15.3.0",
"react": "^19.1.0",
"react-dom": "^19.1.0"
"next": "^15.2.4",
"react": "^19.0.0",
"react-dom": "^19.0.0"
},
"devDependencies": {
"@types/node": "^22.9.0",
@@ -1,33 +1,5 @@
# @llamaindex/next-node-runtime
## 0.1.20
### Patch Changes
- Updated dependencies [6cf928f]
- llamaindex@0.10.0
## 0.1.19
### Patch Changes
- llamaindex@0.9.19
- @llamaindex/huggingface@0.1.4
## 0.1.18
### Patch Changes
- llamaindex@0.9.18
- @llamaindex/huggingface@0.1.3
## 0.1.17
### Patch Changes
- Updated dependencies [3534c37]
- llamaindex@0.9.17
## 0.1.16
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-node-runtime-test",
"version": "0.1.20",
"version": "0.1.16",
"private": true,
"scripts": {
"dev": "next dev",
@@ -11,7 +11,7 @@
"@llamaindex/huggingface": "workspace:*",
"@llamaindex/readers": "workspace:*",
"llamaindex": "workspace:*",
"next": "^15.3.0",
"next": "^15.2.4",
"react": "19.0.0",
"react-dom": "19.0.0"
},
@@ -1,31 +1,5 @@
# vite-import-llamaindex
## 0.0.20
### Patch Changes
- Updated dependencies [6cf928f]
- llamaindex@0.10.0
## 0.0.19
### Patch Changes
- llamaindex@0.9.19
## 0.0.18
### Patch Changes
- llamaindex@0.9.18
## 0.0.17
### Patch Changes
- Updated dependencies [3534c37]
- llamaindex@0.9.17
## 0.0.16
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "vite-import-llamaindex",
"private": true,
"version": "0.0.20",
"version": "0.0.16",
"type": "module",
"scripts": {
"build": "vite build",
@@ -1,31 +1,5 @@
# @llamaindex/waku-query-engine-test
## 0.0.154
### Patch Changes
- Updated dependencies [6cf928f]
- llamaindex@0.10.0
## 0.0.153
### Patch Changes
- llamaindex@0.9.19
## 0.0.152
### Patch Changes
- llamaindex@0.9.18
## 0.0.151
### Patch Changes
- Updated dependencies [3534c37]
- llamaindex@0.9.17
## 0.0.150
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/waku-query-engine-test",
"version": "0.0.154",
"version": "0.0.150",
"type": "module",
"private": true,
"scripts": {
-59
View File
@@ -1,64 +1,5 @@
# examples
## 0.3.7
### Patch Changes
- Updated dependencies [6cf928f]
- llamaindex@0.10.0
## 0.3.6
### Patch Changes
- Updated dependencies [d365eb2]
- @llamaindex/openai@0.3.2
- llamaindex@0.9.19
- @llamaindex/clip@0.0.50
- @llamaindex/deepinfra@0.0.50
- @llamaindex/deepseek@0.0.10
- @llamaindex/fireworks@0.0.10
- @llamaindex/groq@0.0.65
- @llamaindex/huggingface@0.1.4
- @llamaindex/jinaai@0.0.10
- @llamaindex/perplexity@0.0.7
- @llamaindex/together@0.0.10
- @llamaindex/vllm@0.0.36
## 0.3.5
### Patch Changes
- Updated dependencies [88b7046]
- @llamaindex/openai@0.3.1
- llamaindex@0.9.18
- @llamaindex/clip@0.0.49
- @llamaindex/deepinfra@0.0.49
- @llamaindex/deepseek@0.0.9
- @llamaindex/fireworks@0.0.9
- @llamaindex/groq@0.0.64
- @llamaindex/huggingface@0.1.3
- @llamaindex/jinaai@0.0.9
- @llamaindex/perplexity@0.0.6
- @llamaindex/together@0.0.9
- @llamaindex/vllm@0.0.35
## 0.3.4
### Patch Changes
- Updated dependencies [2410527]
- Updated dependencies [0d852d6]
- Updated dependencies [3534c37]
- Updated dependencies [41191d0]
- Updated dependencies [0dfa371]
- @llamaindex/postgres@0.0.45
- @llamaindex/google@0.2.3
- llamaindex@0.9.17
- @llamaindex/workflow@1.0.3
- @llamaindex/cloud@4.0.3
- @llamaindex/anthropic@0.3.3
## 0.3.3
### Patch Changes
+18 -18
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/examples",
"version": "0.3.7",
"version": "0.3.3",
"private": true,
"scripts": {
"lint": "eslint .",
@@ -11,20 +11,20 @@
"@azure/cosmos": "^4.1.1",
"@azure/identity": "^4.4.1",
"@azure/search-documents": "^12.1.0",
"@llamaindex/anthropic": "^0.3.3",
"@llamaindex/anthropic": "^0.3.2",
"@llamaindex/astra": "^0.0.16",
"@llamaindex/azure": "^0.1.11",
"@llamaindex/chroma": "^0.0.16",
"@llamaindex/clip": "^0.0.50",
"@llamaindex/cloud": "^4.0.3",
"@llamaindex/clip": "^0.0.48",
"@llamaindex/cloud": "^4.0.2",
"@llamaindex/cohere": "^0.0.16",
"@llamaindex/core": "^0.6.2",
"@llamaindex/deepinfra": "^0.0.50",
"@llamaindex/deepinfra": "^0.0.48",
"@llamaindex/env": "^0.1.29",
"@llamaindex/firestore": "^1.0.9",
"@llamaindex/google": "^0.2.3",
"@llamaindex/groq": "^0.0.65",
"@llamaindex/huggingface": "^0.1.4",
"@llamaindex/google": "^0.2.2",
"@llamaindex/groq": "^0.0.63",
"@llamaindex/huggingface": "^0.1.2",
"@llamaindex/milvus": "^0.1.11",
"@llamaindex/mistral": "^0.1.2",
"@llamaindex/mixedbread": "^0.0.16",
@@ -32,24 +32,24 @@
"@llamaindex/elastic-search": "^0.1.2",
"@llamaindex/node-parser": "^2.0.2",
"@llamaindex/ollama": "^0.1.2",
"@llamaindex/openai": "^0.3.2",
"@llamaindex/openai": "^0.3.0",
"@llamaindex/pinecone": "^0.1.2",
"@llamaindex/portkey-ai": "^0.0.44",
"@llamaindex/postgres": "^0.0.45",
"@llamaindex/postgres": "^0.0.44",
"@llamaindex/qdrant": "^0.1.11",
"@llamaindex/readers": "^3.0.2",
"@llamaindex/replicate": "^0.0.44",
"@llamaindex/upstash": "^0.0.16",
"@llamaindex/vercel": "^0.1.2",
"@llamaindex/vllm": "^0.0.36",
"@llamaindex/vllm": "^0.0.34",
"@llamaindex/voyage-ai": "^1.0.8",
"@llamaindex/weaviate": "^0.0.16",
"@llamaindex/workflow": "^1.0.3",
"@llamaindex/deepseek": "^0.0.10",
"@llamaindex/fireworks": "^0.0.10",
"@llamaindex/together": "^0.0.10",
"@llamaindex/jinaai": "^0.0.10",
"@llamaindex/perplexity": "^0.0.7",
"@llamaindex/workflow": "^1.0.2",
"@llamaindex/deepseek": "^0.0.8",
"@llamaindex/fireworks": "^0.0.8",
"@llamaindex/together": "^0.0.8",
"@llamaindex/jinaai": "^0.0.8",
"@llamaindex/perplexity": "^0.0.5",
"@llamaindex/supabase": "^0.1.1",
"@llamaindex/tools": "^0.0.5",
"@notionhq/client": "^2.2.15",
@@ -60,7 +60,7 @@
"commander": "^12.1.0",
"dotenv": "^16.4.5",
"js-tiktoken": "^1.0.14",
"llamaindex": "^0.10.0",
"llamaindex": "^0.9.16",
"mongodb": "6.7.0",
"postgres": "^3.4.4",
"wikipedia": "^2.1.2",
+2 -1
View File
@@ -1,6 +1,7 @@
import { OpenAI } from "@llamaindex/openai";
import { encodingForModel } from "js-tiktoken";
import { ChatMessage, extractText, Settings } from "llamaindex";
import { ChatMessage, extractText } from "llamaindex";
import { Settings } from "llamaindex/Settings";
const encoding = encodingForModel("gpt-4-0125-preview");
+1 -1
View File
@@ -17,7 +17,6 @@ import { OpenAI, OpenAIEmbedding } from "@llamaindex/openai";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
import dotenv from "dotenv";
import {
DocStoreStrategy,
Document,
FilterCondition,
FilterOperator,
@@ -29,6 +28,7 @@ import {
VectorStoreIndex,
VectorStoreQueryMode,
} from "llamaindex";
import { DocStoreStrategy } from "llamaindex/ingestion/strategies/index";
dotenv.config();
-1
View File
@@ -21,7 +21,6 @@
},
"devDependencies": {
"@changesets/cli": "^2.27.5",
"bunchee": "6.4.0",
"eslint": "9.22.0",
"eslint-config-next": "^15.1.0",
"eslint-config-prettier": "^9.1.0",
-26
View File
@@ -1,31 +1,5 @@
# @llamaindex/autotool
## 7.0.0
### Patch Changes
- Updated dependencies [6cf928f]
- llamaindex@0.10.0
## 6.0.19
### Patch Changes
- llamaindex@0.9.19
## 6.0.18
### Patch Changes
- llamaindex@0.9.18
## 6.0.17
### Patch Changes
- Updated dependencies [3534c37]
- llamaindex@0.9.17
## 6.0.16
### Patch Changes
@@ -1,35 +1,5 @@
# @llamaindex/autotool-01-node-example
## 0.0.101
### Patch Changes
- Updated dependencies [6cf928f]
- llamaindex@0.10.0
- @llamaindex/autotool@7.0.0
## 0.0.100
### Patch Changes
- llamaindex@0.9.19
- @llamaindex/autotool@6.0.19
## 0.0.99
### Patch Changes
- llamaindex@0.9.18
- @llamaindex/autotool@6.0.18
## 0.0.98
### Patch Changes
- Updated dependencies [3534c37]
- llamaindex@0.9.17
- @llamaindex/autotool@6.0.17
## 0.0.97
### Patch Changes
@@ -13,5 +13,5 @@
"scripts": {
"start": "node --import tsx --import @llamaindex/autotool/node ./src/index.ts"
},
"version": "0.0.101"
"version": "0.0.97"
}
+3 -2
View File
@@ -6,7 +6,7 @@
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
"directory": "packages/autotool"
},
"version": "7.0.0",
"version": "6.0.16",
"description": "auto transpile your JS function to LLM Agent compatible",
"files": [
"dist",
@@ -75,8 +75,9 @@
"@swc/types": "^0.1.12",
"@types/json-schema": "^7.0.15",
"@types/node": "^22.9.0",
"bunchee": "6.4.0",
"llamaindex": "workspace:*",
"next": "^15.3.0",
"next": "^15.2.4",
"rollup": "^4.28.1",
"tsx": "^4.19.3",
"typescript": "^5.7.3",

Some files were not shown because too many files have changed in this diff Show More