Compare commits

..

27 Commits

Author SHA1 Message Date
sweep-ai[bot] 0586506c2d Merge main into sweep/add-loading-indicator 2023-12-06 04:11:57 +00:00
sweep-ai[bot] ba582bf1e5 Merge main into sweep/add-loading-indicator 2023-12-06 04:04:35 +00:00
sweep-ai[bot] 70e38e9f7f Merge main into sweep/add-loading-indicator 2023-12-05 19:10:24 +00:00
sweep-ai[bot] 80272830b0 Merge main into sweep/add-loading-indicator 2023-12-05 18:51:40 +00:00
sweep-ai[bot] 99235f1328 Merge main into sweep/add-loading-indicator 2023-11-24 03:49:02 +00:00
sweep-ai[bot] cbfe4bab0a Merge main into sweep/add-loading-indicator 2023-11-23 18:57:01 +00:00
sweep-ai[bot] f7b701c817 Merge main into sweep/add-loading-indicator 2023-11-23 18:50:23 +00:00
sweep-ai[bot] 150ffdeb50 Merge main into sweep/add-loading-indicator 2023-11-22 06:33:43 +00:00
sweep-ai[bot] 3ef8de75be Merge main into sweep/add-loading-indicator 2023-11-22 05:46:14 +00:00
sweep-ai[bot] 80f9ea0688 Merge main into sweep/add-loading-indicator 2023-11-22 05:35:19 +00:00
sweep-ai[bot] abd9fb9022 Merge main into sweep/add-loading-indicator 2023-11-22 05:30:29 +00:00
sweep-ai[bot] 42be7ef0a1 Merge main into sweep/add-loading-indicator 2023-11-22 05:20:46 +00:00
sweep-ai[bot] c62fb5a31c Merge main into sweep/add-loading-indicator 2023-11-22 05:20:03 +00:00
sweep-ai[bot] 5dbaa622ca Merge main into sweep/add-loading-indicator 2023-11-22 05:04:07 +00:00
sweep-ai[bot] b5c477ba34 Merge main into sweep/add-loading-indicator 2023-11-22 05:01:43 +00:00
sweep-ai[bot] 5eb4d02209 Merge main into sweep/add-loading-indicator 2023-11-21 02:25:37 +00:00
sweep-ai[bot] 1c90f0d5fa Merge main into sweep/add-loading-indicator 2023-11-21 02:09:17 +00:00
sweep-ai[bot] 346c79f40f Merge main into sweep/add-loading-indicator 2023-11-20 02:30:50 +00:00
sweep-ai[bot] 06996a534b Merge main into sweep/add-loading-indicator 2023-11-20 01:30:56 +00:00
sweep-ai[bot] 3d239e5a65 Merge main into sweep/add-loading-indicator 2023-11-20 01:14:48 +00:00
sweep-ai[bot] 6d76a076d7 Merge main into sweep/add-loading-indicator 2023-11-20 00:21:27 +00:00
sweep-ai[bot] 39abb51938 Merge main into sweep/add-loading-indicator 2023-11-18 00:57:49 +00:00
sweep-ai[bot] 5d653be5bc Merge main into sweep/add-loading-indicator 2023-11-17 21:02:12 +00:00
sweep-ai[bot] 1c1e495ae6 Merge main into sweep/add-loading-indicator 2023-11-17 17:06:17 +00:00
sweep-ai[bot] 8b9e4ef532 Merge main into sweep/add-loading-indicator 2023-11-17 17:04:46 +00:00
sweep-ai[bot] 6f5c9b43af Merge main into sweep/add-loading-indicator 2023-11-17 17:03:34 +00:00
sweep-ai[bot] f4d3d818cc feat: Updated packages/create-llama/templates/type 2023-11-16 21:23:27 +00:00
1926 changed files with 123916 additions and 252148 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"llamaindex": patch
---
Fixes to the PGVectorStore (thanks @mtutty)
+7
View File
@@ -0,0 +1,7 @@
---
"create-llama": patch
---
- Added option to create a new project based on community templates
- Added OpenAI model selector for NextJS projects
- Added GPT4 Vision support (and file upload)
+5
View File
@@ -0,0 +1,5 @@
---
"llamaindex": patch
---
Add GPT-4 Vision support
-16
View File
@@ -1,16 +0,0 @@
{
"jsc": {
"parser": {
"syntax": "typescript",
"decorators": true
},
"target": "esnext",
"transform": {
"decoratorVersion": "2022-03"
}
},
"module": {
"type": "commonjs",
"ignoreDynamic": true
}
}
+10
View File
@@ -0,0 +1,10 @@
module.exports = {
root: true,
// This tells ESLint to load the config from the package `eslint-config-custom`
extends: ["custom"],
settings: {
next: {
rootDir: ["apps/*/"],
},
},
};
-2
View File
@@ -1,2 +0,0 @@
examples/readers/data/** binary
examples/data/** binary
-46
View File
@@ -1,46 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ""
labels: bug
assignees: ""
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Code to reproduce the behavior:
```ts
// paste the code here
```
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. macOS, Linux]
- JS Runtime / Framework / Bundler (select all applicable)
- [ ] Node.js
- [ ] Deno
- [ ] Bun
- [ ] Next.js
- [ ] ESBuild
- [ ] Rollup
- [ ] Webpack
- [ ] Turbopack
- [ ] Vite
- [ ] Waku
- [ ] Edge Runtime
- [ ] AWS Lambda
- [ ] Cloudflare Worker
- [ ] Others (please elaborate on this)
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here.
+2 -9
View File
@@ -8,25 +8,18 @@ on:
branches:
- main
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
TURBO_REMOTE_ONLY: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v2
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
node-version-file: '.nvmrc'
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Run lint
run: pnpm run lint
- name: Run Prettier
run: pnpm run format
-33
View File
@@ -1,33 +0,0 @@
name: Publish Preview
on: [pull_request]
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
TURBO_REMOTE_ONLY: true
jobs:
pre_release:
name: Pre Release
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
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
run: pnpm run build
- name: Pre Release
run: pnpx pkg-pr-new publish --pnpm ./packages/* ./packages/providers/* ./packages/providers/storage/*
-37
View File
@@ -1,37 +0,0 @@
name: Publish to GitHub Releases
on:
push:
tags:
- "llamaindex@*"
jobs:
build-and-publish:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
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 tarball
run: |
pnpm pack
working-directory: packages/llamaindex
- name: Create release
uses: ncipollo/release-action@v1
with:
artifacts: "packages/llamaindex/llamaindex-*.tgz"
name: Release ${{ github.ref }}
bodyFile: "packages/llamaindex/CHANGELOG.md"
token: ${{ secrets.GITHUB_TOKEN }}
-70
View File
@@ -1,70 +0,0 @@
name: Release
on:
push:
branches:
- main
concurrency: ${{ github.workflow }}-${{ github.ref }}
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
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: Add auth token to .npmrc file
run: |
cat << EOF >> ".npmrc"
//registry.npmjs.org/:_authToken=$NPM_TOKEN
EOF
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Get changeset status
id: get-changeset-status
run: |
pnpm changeset status --output .changeset/status.json
new_version=$(jq -r '.releases[] | select(.name == "llamaindex") | .newVersion' < .changeset/status.json)
rm -v .changeset/status.json
echo "new-version=${new_version}" >> "$GITHUB_OUTPUT"
- name: Create Release Pull Request or Publish to npm
id: changesets
uses: changesets/action@v1
with:
commit: Release ${{ steps.get-changeset-status.outputs.new-version }}
title: Release ${{ steps.get-changeset-status.outputs.new-version }}
# update version PR with the latest changesets
version: pnpm new-version
# build package and call changeset publish
publish: pnpm release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
# Refs: https://github.com/changesets/changesets/issues/421
- name: Update lock file
continue-on-error: true
run: pnpm install --lockfile-only
- name: Commit lock file
continue-on-error: true
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "chore: update lock file"
branch: changeset-release/main
file_pattern: "pnpm-lock.yaml"
+4 -177
View File
@@ -1,193 +1,20 @@
name: Run Tests
on:
push:
branches:
- main
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
POSTGRES_HOST_AUTH_METHOD: trust
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
TURBO_REMOTE_ONLY: true
on: [push, pull_request]
jobs:
e2e:
strategy:
fail-fast: false
matrix:
node-version: [20.x, 22.x, 23.x]
name: E2E on Node.js ${{ matrix.node-version }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ankane/setup-postgres@v1
with:
database: llamaindex_node_test
dev-files: true
- run: |
cd /tmp
git clone --branch v0.7.0 https://github.com/pgvector/pgvector.git
cd pgvector
make
sudo make install
- uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Run E2E Tests
run: pnpm run e2e
test:
strategy:
fail-fast: false
matrix:
node-version: [20.x, 22.x, 23.x]
name: Test on Node.js ${{ matrix.node-version }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v2
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
node-version-file: '.nvmrc'
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Run tests
run: pnpm run test
typecheck:
runs-on: ubuntu-latest
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
run: pnpm run build
- name: Run Type Check
run: pnpm run type-check
- name: Run Circular Dependency Check
run: pnpm run circular-check
e2e-llamaindex-examples:
strategy:
fail-fast: false
matrix:
packages:
- cloudflare-worker-agent
- nextjs-agent
- nextjs-edge-runtime
- nextjs-node-runtime
- waku-query-engine
- llama-parse-browser
- vite-import-llamaindex
runs-on: ubuntu-latest
name: Build LlamaIndex Example (${{ matrix.packages }})
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
- name: Build ${{ matrix.packages }}
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
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
run: pnpm run build
- name: Copy examples
run: rsync -rv --exclude=node_modules ./examples ${{ runner.temp }}
- name: Pack packages
run: |
for dir in packages/*; do
if [ -d "$dir" ] && [ -f "$dir/package.json" ] && [[ ! "$dir" =~ autotool ]]; then
echo "Packing $dir"
pnpm pack --pack-destination ${{ runner.temp }} -C $dir
else
echo "Skipping $dir, no package.json found"
fi
done
- name: Pack provider packages
run: |
for dir in packages/providers/* packages/providers/storage/*; do
if [ -d "$dir" ] && [ -f "$dir/package.json" ]; then
echo "Packing $dir"
pnpm pack --pack-destination ${{ runner.temp }} -C $dir
else
echo "Skipping $dir, no package.json found"
fi
done
- name: Install
run: npm add ${{ runner.temp }}/*.tgz
working-directory: ${{ runner.temp }}/examples
- name: Run Type Check
run: npx tsc --project ./tsconfig.json
working-directory: ${{ runner.temp }}/examples
- uses: actions/upload-artifact@v4
if: failure()
with:
name: build-dist
path: |
${{ runner.temp }}/*.tgz
if-no-files-found: error
+2 -13
View File
@@ -37,17 +37,6 @@ yarn-error.log*
.vercel
dist/
lib/
.cache
test-results/
playwright-report/
blob-report/
playwright/.cache/
.tsbuildinfo
# intellij
**/.idea
# generated API
packages/cloud/src/client
# vs code
.vscode/launch.json
+5 -1
View File
@@ -1 +1,5 @@
pnpm run lint-staged
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
pnpm lint
npx lint-staged
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
pnpm test
-4
View File
@@ -1,5 +1 @@
auto-install-peers = true
enable-pre-post-scripts = true
prefer-workspace-packages = true
save-workspace-protocol = true
link-workspace-packages = true
+1 -1
View File
@@ -1 +1 @@
22
18
-10
View File
@@ -1,10 +0,0 @@
apps/docs/i18n
apps/docs/docs/api
pnpm-lock.yaml
lib/
dist/
.docusaurus/
.source/
# prttier doesn't support mdx3 we are using
*.mdx
packages/server/server/
-12
View File
@@ -1,12 +0,0 @@
{
"jsc": {
"parser": {
"syntax": "typescript",
"decorators": true
},
"target": "esnext",
"transform": {
"decoratorVersion": "2022-03"
}
}
}
-18
View File
@@ -1,18 +0,0 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug Example",
"skipFiles": ["<node_internals>/**"],
"runtimeExecutable": "pnpm",
"console": "integratedTerminal",
"cwd": "${workspaceFolder}/examples",
"runtimeArgs": ["npx", "tsx", "${file}"]
}
]
}
-1
View File
@@ -1 +0,0 @@
LlamaIndexTS
+2 -12
View File
@@ -5,15 +5,5 @@
"[xml]": {
"editor.defaultFormatter": "redhat.vscode-xml"
},
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"prettier.prettierPath": "./node_modules/prettier",
"prettier.configPath": "prettier.config.mjs"
}
"jest.rootPath": "./packages/core"
}
+47 -79
View File
@@ -2,111 +2,79 @@
## Structure
LlamaIndex.TS uses pnpm monorepo.
This is a monorepo built with Turborepo
We recommend you to understand the basics of Node.js, TypeScript, pnpm, and of course, LLM before contributing.
Right now there are two packages of importance:
There are some important folders in the repository:
packages/core which is the main NPM library llamaindex
- `packages/*`: Contains the source code of the packages. Each package is a separate npm package.
- `llamaindex`: The starter package for LlamaIndex.TS, which contains the all sub-packages.
- `core`: The core package of LlamaIndex.TS, which contains the abstract classes and interfaces. It is designed for
all JS runtime environments.
- `env`: The environment package of LlamaIndex.TS, which contains the environment-specific classes and interfaces. It
includes compatibility layers for Node.js, Deno, Vercel Edge Runtime, Cloudflare Workers...
- `providers/*`: The providers package of LlamaIndex.TS, which contains the providers for LLM and other services.
- `apps/*`: The applications based on LlamaIndex.TS.
- `next`: Our documentation website based on Next.js.
- `examples`: The code examples of LlamaIndex.TS using Node.js.
apps/simple is where the demo code lives
### Turborepo docs
You can checkout how Turborepo works using the default [README-turborepo.md](/README-turborepo.md)
## Getting Started
Make sure you have Node.js LTS (Long-term Support) installed. You can check your Node.js version by running:
Install NodeJS. Preferably v18 using nvm or n.
Inside the LlamaIndexTS directory:
```shell
node -v
# v20.x.x
```
### Use pnpm
```shell
npm install -g pnpm
```
### Install dependencies
```shell
npm i -g pnpm ts-node
pnpm install
```
### Build the packages
Note: we use pnpm in this repo, which has a lot of the same functionality and CLI options as npm but it does do some things better in a monorepo, like centralizing dependencies and caching.
To build all packages, run:
PNPM's has documentation on its [workspace feature](https://pnpm.io/workspaces) and Turborepo had some [useful documentation also](https://turbo.build/repo/docs/core-concepts/monorepos/running-tasks).
```shell
pnpm build
### Running Typescript
When we publish to NPM we will have a tsc compiled version of the library in JS. For now, the easiest thing to do is use ts-node.
### Test cases
To run them, run
```
pnpm run test
```
### Run tests
To write new test cases write them in [packages/core/src/tests](/packages/core/src/tests)
#### Unit tests
We use Jest https://jestjs.io/ to write our test cases. Jest comes with a bunch of built in assertions using the expect function: https://jestjs.io/docs/expect
After build, to run all unit tests, call:
### Demo applications
```shell
pnpm test
There is an existing ["simple"](/apps/simple/README.md) demos folder with mainly NodeJS scripts. Feel free to add additional demos to that folder. If you would like to try out your changes in the core package with a new demo, you need to run the build command in the README.
You can create new demo applications in the apps folder. Just run pnpm init in the folder after you create it to create its own package.json
### Installing packages
To install packages for a specific package or demo application, run
```
pnpm add [NPM Package] --filter [package or application i.e. core or simple]
```
Unit tests are located in the `tests` folder of each package. They are using their own package (e.g. `@llamaindex/core-tests` for `@llamaindex/core`). The tests are importing the package under test and the test package is not published.
To install packages for every package or application run
#### E2E tests
To run all E2E tests, call:
```shell
pnpm e2e
```
All E2E tests are in the `e2e` folder.
pnpm add -w [NPM Package]
```
### Docs
See the [docs](./apps/next/README.md) for more information.
To contribute to the docs, go to the docs website folder and run the Docusaurus instance.
## Adding a new package
Please follow these steps to add a new package:
1. Only add new packages to the `packages/providers` folder.
2. Use the `package.json` and `tsconfig.json` of an existing packages as template.
3. Reference your new package in the root `tsconfig.json` file
4. Add your package to the `examples/package.json` file if you add a new example.
## Before sending a PR
Before sending a PR, make sure of the following:
1. Tests are all running and you added meaningful tests for your change.
2. If you have a new feature, document it in the `apps/next` docs folder.
3. If you have a new feature, add a new example in the `examples` folder.
4. You have a descriptive changeset for each PR:
### Changesets
We use [changesets](https://github.com/changesets/changesets) for managing versions and changelogs. To create a new
changeset, run in the root folder:
```shell
pnpm changeset
```bash
cd apps/docs
pnpm install
pnpm start
```
## Publishing (maintainers only)
That should start a webserver which will serve the docs on https://localhost:3000
The [Release Github Action](.github/workflows/release.yml) is automatically generating and updating a
PR called "Release {version}".
This PR will update the `package.json` and `CHANGELOG.md` files of each package according to
the current changesets in the [.changeset](.changeset) folder.
If this PR is merged it will automatically add version tags to the repository and publish the updated packages to NPM.
Any changes you make should be reflected in the browser. If you need to regenerate the API docs and find that your TSDoc isn't getting the updates, feel free to remove apps/docs/api. It will automatically regenerate itself when you run pnpm start again.
+81
View File
@@ -0,0 +1,81 @@
# Turborepo starter
This is an official starter Turborepo.
## Using this example
Run the following command:
```sh
npx create-turbo@latest
```
## What's inside?
This Turborepo includes the following packages/apps:
### Apps and Packages
- `docs`: a [Next.js](https://nextjs.org/) app
- `web`: another [Next.js](https://nextjs.org/) app
- `ui`: a stub React component library shared by both `web` and `docs` applications
- `eslint-config-custom`: `eslint` configurations (includes `eslint-config-next` and `eslint-config-prettier`)
- `tsconfig`: `tsconfig.json`s used throughout the monorepo
Each package/app is 100% [TypeScript](https://www.typescriptlang.org/).
### Utilities
This Turborepo has some additional tools already setup for you:
- [TypeScript](https://www.typescriptlang.org/) for static type checking
- [ESLint](https://eslint.org/) for code linting
- [Prettier](https://prettier.io) for code formatting
### Build
To build all apps and packages, run the following command:
```
cd my-turborepo
pnpm build
```
### Develop
To develop all apps and packages, run the following command:
```
cd my-turborepo
pnpm dev
```
### Remote Caching
Turborepo can use a technique known as [Remote Caching](https://turbo.build/repo/docs/core-concepts/remote-caching) to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines.
By default, Turborepo will cache locally. To enable Remote Caching you will need an account with Vercel. If you don't have an account you can [create one](https://vercel.com/signup), then enter the following commands:
```
cd my-turborepo
npx turbo login
```
This will authenticate the Turborepo CLI with your [Vercel account](https://vercel.com/docs/concepts/personal-accounts/overview).
Next, you can link your Turborepo to your Remote Cache by running the following command from the root of your Turborepo:
```
npx turbo link
```
## Useful Links
Learn more about the power of Turborepo:
- [Tasks](https://turbo.build/repo/docs/core-concepts/monorepos/running-tasks)
- [Caching](https://turbo.build/repo/docs/core-concepts/caching)
- [Remote Caching](https://turbo.build/repo/docs/core-concepts/remote-caching)
- [Filtering](https://turbo.build/repo/docs/core-concepts/monorepos/filtering)
- [Configuration Options](https://turbo.build/repo/docs/reference/configuration)
- [CLI Usage](https://turbo.build/repo/docs/reference/command-line-reference)
+79 -67
View File
@@ -1,80 +1,67 @@
<p align="center">
<img height="100" width="100" alt="LlamaIndex logo" src="https://ts.llamaindex.ai/square.svg" />
</p>
<h1 align="center">LlamaIndex.TS</h1>
<h3 align="center">
Data framework for your LLM application.
</h3>
# LlamaIndex.TS
[![NPM Version](https://img.shields.io/npm/v/llamaindex)](https://www.npmjs.com/package/llamaindex)
[![NPM License](https://img.shields.io/npm/l/llamaindex)](https://www.npmjs.com/package/llamaindex)
[![NPM Downloads](https://img.shields.io/npm/dm/llamaindex)](https://www.npmjs.com/package/llamaindex)
[![Discord](https://img.shields.io/discord/1059199217496772688)](https://discord.com/invite/eN6D2HQ4aX)
LlamaIndex is a data framework for your LLM application.
Use your own data with large language models (LLMs, OpenAI ChatGPT and others) in JS runtime environments with TypeScript support.
Use your own data with large language models (LLMs, OpenAI ChatGPT and others) in Typescript and Javascript.
Documentation: https://ts.llamaindex.ai/
Try examples online:
[![Open in Stackblitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/run-llama/LlamaIndexTS/tree/main/examples)
## What is LlamaIndex.TS?
LlamaIndex.TS aims to be a lightweight, easy to use set of libraries to help you integrate large language models into your applications with your own data.
## Compatibility
## Getting started with an example:
### Multiple JS Environment Support
LlamaIndex.TS requries Node v18 or higher. You can download it from https://nodejs.org or use https://nvm.sh (our preferred option).
LlamaIndex.TS supports multiple JS environments, including:
In a new folder:
- Node.js >= 20 ✅
- Deno ✅
- Bun ✅
- Nitro ✅
- Vercel Edge Runtime ✅ (with some limitations)
- Cloudflare Workers ✅ (with some limitations)
For now, browser support is limited due to the lack of support for [AsyncLocalStorage-like APIs](https://github.com/tc39/proposal-async-context)
### Supported LLMs:
- OpenAI LLms
- Anthropic LLms
- Groq LLMs
- Llama2, Llama3, Llama3.1 LLMs
- MistralAI LLMs
- Fireworks LLMs
- DeepSeek LLMs
- ReplicateAI LLMs
- TogetherAI LLMs
- HuggingFace LLms
- DeepInfra LLMs
- Gemini LLMs
## Getting started
```shell
npm install llamaindex
```bash
export OPENAI_API_KEY="sk-......" # Replace with your key from https://platform.openai.com/account/api-keys
pnpm init
pnpm install typescript
pnpm exec tsc --init # if needed
pnpm install llamaindex
yarn add llamaindex
pnpm install @types/node
```
### Setup in Node.js, Deno, Bun, TypeScript...?
Create the file example.ts
See our official document: <https://ts.llamaindex.ai/docs/llamaindex/getting_started/>
```ts
// example.ts
import fs from "fs/promises";
import { Document, VectorStoreIndex } from "llamaindex";
### Adding provider packages
async function main() {
// Load essay from abramov.txt in Node
const essay = await fs.readFile(
"node_modules/llamaindex/examples/abramov.txt",
"utf-8",
);
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.
// Create Document object with essay
const document = new Document({ text: essay });
For example, to use the OpenAI LLM, you would install the following package:
// Split text and create embeddings. Store them in a VectorStoreIndex
const index = await VectorStoreIndex.fromDocuments([document]);
```shell
npm install @llamaindex/openai
pnpm install @llamaindex/openai
yarn add @llamaindex/openai
// Query the index
const queryEngine = index.asQueryEngine();
const response = await queryEngine.query(
"What did the author do in college?",
);
// Output response
console.log(response.toString());
}
main();
```
Then you can run it using
```bash
pnpx ts-node example.ts
```
## Playground
@@ -83,25 +70,50 @@ Check out our NextJS playground at https://llama-playground.vercel.app/. The sou
## Core concepts for getting started:
- [Document](/packages/llamaindex/src/Node.ts): A document represents a text file, PDF file or other contiguous piece of data.
- [Document](/packages/core/src/Node.ts): A document represents a text file, PDF file or other contiguous piece of data.
- [Node](/packages/llamaindex/src/Node.ts): The basic data building block. Most commonly, these are parts of the document split into manageable pieces that are small enough to be fed into an embedding model and LLM.
- [Node](/packages/core/src/Node.ts): The basic data building block. Most commonly, these are parts of the document split into manageable pieces that are small enough to be fed into an embedding model and LLM.
- [Embedding](/packages/llamaindex/src/embeddings/OpenAIEmbedding.ts): Embeddings are sets of floating point numbers which represent the data in a Node. By comparing the similarity of embeddings, we can derive an understanding of the similarity of two pieces of data. One use case is to compare the embedding of a question with the embeddings of our Nodes to see which Nodes may contain the data needed to answer that question. Because the default service context is OpenAI, the default embedding is `OpenAIEmbedding`. If using different models, say through Ollama, use this [Embedding](/packages/llamaindex/src/embeddings/OllamaEmbedding.ts) (see all [here](/packages/llamaindex/src/embeddings)).
- [Embedding](/packages/core/src/Embedding.ts): Embeddings are sets of floating point numbers which represent the data in a Node. By comparing the similarity of embeddings, we can derive an understanding of the similarity of two pieces of data. One use case is to compare the embedding of a question with the embeddings of our Nodes to see which Nodes may contain the data needed to answer that quesiton.
- [Indices](/packages/llamaindex/src/indices/): Indices store the Nodes and the embeddings of those nodes. QueryEngines retrieve Nodes from these Indices using embedding similarity.
- [Indices](/packages/core/src/indices/): Indices store the Nodes and the embeddings of those nodes. QueryEngines retrieve Nodes from these Indices using embedding similarity.
- [QueryEngine](/packages/llamaindex/src/engines/query/RetrieverQueryEngine.ts): Query engines are what generate the query you put in and give you back the result. Query engines generally combine a pre-built prompt with selected Nodes from your Index to give the LLM the context it needs to answer your query. To build a query engine from your Index (recommended), use the [`asQueryEngine`](/packages/llamaindex/src/indices/BaseIndex.ts) method on your Index. See all query engines [here](/packages/llamaindex/src/engines/query).
- [QueryEngine](/packages/core/src/QueryEngine.ts): Query engines are what generate the query you put in and give you back the result. Query engines generally combine a pre-built prompt with selected Nodes from your Index to give the LLM the context it needs to answer your query.
- [ChatEngine](/packages/llamaindex/src/engines/chat/SimpleChatEngine.ts): A ChatEngine helps you build a chatbot that will interact with your Indices. See all chat engines [here](/packages/llamaindex/src/engines/chat).
- [ChatEngine](/packages/core/src/ChatEngine.ts): A ChatEngine helps you build a chatbot that will interact with your Indices.
- [SimplePrompt](/packages/llamaindex/src/Prompt.ts): A simple standardized function call definition that takes in inputs and formats them in a template literal. SimplePrompts can be specialized using currying and combined using other SimplePrompt functions.
- [SimplePrompt](/packages/core/src/Prompt.ts): A simple standardized function call definition that takes in inputs and formats them in a template literal. SimplePrompts can be specialized using currying and combined using other SimplePrompt functions.
## Note: NextJS:
If you're using NextJS App Router, you'll need to use the NodeJS runtime (default) and add the follow config to your next.config.js to have it use imports/exports in the same way Node does.
```js
export const runtime = "nodejs"; // default
```
```js
// next.config.js
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
serverComponentsExternalPackages: ["pdf-parse"], // Puts pdf-parse in actual NodeJS mode with NextJS App Router
},
};
module.exports = nextConfig;
```
## Supported LLMs:
- OpenAI GPT-3.5-turbo and GPT-4
- Anthropic Claude Instant and Claude 2
- Llama2 Chat LLMs (70B, 13B, and 7B parameters)
## Contributing:
Please see our [contributing guide](CONTRIBUTING.md) for more information.
You are highly encouraged to contribute to LlamaIndex.TS!
We are in the very early days of LlamaIndex.TS. If youre interested in hacking on it with us check out our [contributing guide](/CONTRIBUTING.md)
## Community
## Bugs? Questions?
Please join our Discord! https://discord.com/invite/eN6D2HQ4aX
+20
View File
@@ -0,0 +1,20 @@
# Dependencies
/node_modules
# Production
/build
# Generated files
.docusaurus
.cache-loader
# Misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
+47
View File
@@ -0,0 +1,47 @@
# Website
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
### Installation
```
$ pnpm
```
### Local Development
```
$ pnpm start
```
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
However, the searchbar may not function with `yarn start`. Instead, run `yarn build` and launch a server:
```
$ npx http-server ./build
```
### Build
```
$ pnpm build
```
This command generates static content into the `build` directory and can be served using any static contents hosting service.
### Deployment
Using SSH:
```
$ USE_SSH=true pnpm deploy
```
Not using SSH:
```
$ GIT_USER=<Your GitHub username> pnpm deploy
```
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.
+3
View File
@@ -0,0 +1,3 @@
module.exports = {
presets: [require.resolve("@docusaurus/core/lib/babel/preset")],
};
+1
View File
@@ -0,0 +1 @@
api/

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

@@ -1,7 +1,9 @@
---
title: Concepts
sidebar_position: 3
---
# High-Level Concepts
LlamaIndex.TS helps you build LLM-powered applications (e.g. Q&A, chatbot) over custom data.
In this high-level concepts guide, you will learn:
@@ -16,7 +18,7 @@ LlamaIndex uses a two stage method when using an LLM with your data:
1. **indexing stage**: preparing a knowledge base, and
2. **querying stage**: retrieving relevant context from the knowledge to assist the LLM in responding to a question
![](/_static/concepts/rag.jpg)
![](./_static/concepts/rag.jpg)
This process is also known as Retrieval Augmented Generation (RAG).
@@ -28,14 +30,14 @@ Let's explore each stage in detail.
LlamaIndex.TS help you prepare the knowledge base with a suite of data connectors and indexes.
![](/_static/concepts/indexing.jpg)
![](./_static/concepts/indexing.jpg)
[**Data Loaders**](/docs/llamaindex/modules/data/readers):
[**Data Loaders**](./modules/high_level/data_loader.md):
A data connector (i.e. `Reader`) ingest data from different data sources and data formats into a simple `Document` representation (text and simple metadata).
[**Documents / Nodes**](/docs/llamaindex/modules/data): A `Document` is a generic container around any data source - for instance, a PDF, an API output, or retrieved data from a database. A `Node` is the atomic unit of data in LlamaIndex and represents a "chunk" of a source `Document`. It's a rich representation that includes metadata and relationships (to other nodes) to enable accurate and expressive retrieval operations.
[**Documents / Nodes**](./modules/high_level/documents_and_nodes.md): A `Document` is a generic container around any data source - for instance, a PDF, an API output, or retrieved data from a database. A `Node` is the atomic unit of data in LlamaIndex and represents a "chunk" of a source `Document`. It's a rich representation that includes metadata and relationships (to other nodes) to enable accurate and expressive retrieval operations.
[**Data Indexes**](/docs/llamaindex/modules/data/data_index):
[**Data Indexes**](./modules/high_level/data_index.md):
Once you've ingested your data, LlamaIndex helps you index data into a format that's easy to retrieve.
Under the hood, LlamaIndex parses the raw documents into intermediate representations, calculates vector embeddings, and stores your data in-memory or to disk.
@@ -54,23 +56,23 @@ LlamaIndex provides composable modules that help you build and integrate RAG pip
These building blocks can be customized to reflect ranking preferences, as well as composed to reason over multiple knowledge bases in a structured way.
![](/_static/concepts/querying.jpg)
![](./_static/concepts/querying.jpg)
#### Building Blocks
[**Retrievers**](/docs/llamaindex/modules/rag/retriever):
[**Retrievers**](./modules/low_level/retriever.md):
A retriever defines how to efficiently retrieve relevant context from a knowledge base (i.e. index) when given a query.
The specific retrieval logic differs for different indices, the most popular being dense retrieval against a vector index.
The specific retrieval logic differs for difference indices, the most popular being dense retrieval against a vector index.
[**Response Synthesizers**](/docs/llamaindex/modules/rag/response_synthesizer):
[**Response Synthesizers**](./modules/low_level/response_synthesizer.md):
A response synthesizer generates a response from an LLM, using a user query and a given set of retrieved text chunks.
#### Pipelines
[**Query Engines**](/docs/llamaindex/modules/rag/query_engines):
[**Query Engines**](./modules/high_level/query_engine.md):
A query engine is an end-to-end pipeline that allow you to ask question over your data.
It takes in a natural language query, and returns a response, along with reference context retrieved and passed to the LLM.
[**Chat Engines**](/docs/llamaindex/modules/rag/chat_engine):
[**Chat Engines**](./modules/high_level/chat_engine.md):
A chat engine is an end-to-end pipeline for having a conversation with your data
(multiple back-and-forth instead of a single question & answer).
+45
View File
@@ -0,0 +1,45 @@
---
sidebar_position: 4
---
# End to End Examples
We include several end-to-end examples using LlamaIndex.TS in the repository
Check out the examples below or try them out and complete them in minutes with interactive Github Codespace tutorials provided by Dev-Docs [here](https://codespaces.new/team-dev-docs/lits-dev-docs-playground?devcontainer_path=.devcontainer%2Fjavascript_ltsquickstart%2Fdevcontainer.json):
## [Chat Engine](https://github.com/run-llama/LlamaIndexTS/blob/main/examples/chatEngine.ts)
Read a file and chat about it with the LLM.
## [Vector Index](https://github.com/run-llama/LlamaIndexTS/blob/main/examples/vectorIndex.ts)
Create a vector index and query it. The vector index will use embeddings to fetch the top k most relevant nodes. By default, the top k is 2.
## [Summary Index](https://github.com/run-llama/LlamaIndexTS/blob/main/examples/summaryIndex.ts)
Create a list index and query it. This example also use the `LLMRetriever`, which will use the LLM to select the best nodes to use when generating answer.
## [Save / Load an Index](https://github.com/run-llama/LlamaIndexTS/blob/main/examples/storageContext.ts)
Create and load a vector index. Persistance to disk in LlamaIndex.TS happens automatically once a storage context object is created.
## [Customized Vector Index](https://github.com/run-llama/LlamaIndexTS/blob/main/examples/vectorIndexCustomize.ts)
Create a vector index and query it, while also configuring the the `LLM`, the `ServiceContext`, and the `similarity_top_k`.
## [OpenAI LLM](https://github.com/run-llama/LlamaIndexTS/blob/main/examples/openai.ts)
Create an OpenAI LLM and directly use it for chat.
## [Llama2 DeuceLLM](https://github.com/run-llama/LlamaIndexTS/blob/main/examples/llamadeuce.ts)
Create a Llama-2 LLM and directly use it for chat.
## [SubQuestionQueryEngine](https://github.com/run-llama/LlamaIndexTS/blob/main/examples/subquestion.ts)
Uses the `SubQuestionQueryEngine`, which breaks complex queries into multiple questions, and then aggreates a response across the answers to all sub-questions.
## [Low Level Modules](https://github.com/run-llama/LlamaIndexTS/blob/main/examples/lowlevel.ts)
This example uses several low-level components, which removes the need for an actual query engine. These components can be used anywhere, in any application, or customized and sub-classed to meet your own needs.
+29
View File
@@ -0,0 +1,29 @@
---
sidebar_position: 5
---
# Environments
LlamaIndex currently officially supports NodeJS 18 and NodeJS 20.
## NextJS App Router
If you're using NextJS App Router route handlers/serverless functions, you'll need to use the NodeJS mode:
```js
export const runtime = "nodejs"; // default
```
and you'll need to add an exception for pdf-parse in your next.config.js
```js
// next.config.js
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
serverComponentsExternalPackages: ["pdf-parse"], // Puts pdf-parse in actual NodeJS mode with NextJS App Router
},
};
module.exports = nextConfig;
```
+63
View File
@@ -0,0 +1,63 @@
---
sidebar_position: 1
---
# Installation and Setup
Make sure you have NodeJS v18 or higher.
## Using create-llama
The easiest way to get started with LlamaIndex is by using `create-llama`. This CLI tool enables you to quickly start building a new LlamaIndex application, with everything set up for you.
Just run
<Tabs>
<TabItem value="1" label="npm" default>
```bash
npx create-llama@latest
```
</TabItem>
<TabItem value="2" label="Yarn">
```bash
yarn create llama
```
</TabItem>
<TabItem value="3" label="pnpm">
```bash
pnpm create llama@latest
```
</TabItem>
</Tabs>
to get started. Once your app is generated, run
```bash npm2yarn
npm run dev
```
to start the development server. You can then visit [http://localhost:3000](http://localhost:3000) to see your app
## Installation from NPM
```bash npm2yarn
npm install llamaindex
```
### Environment variables
Our examples use OpenAI by default. You'll need to set up your Open AI key like so:
```bash
export OPENAI_API_KEY="sk-......" # Replace with your key from https://platform.openai.com/account/api-keys
```
If you want to have it automatically loaded every time, add it to your .zshrc/.bashrc.
WARNING: do not check in your OpenAI key into version control.
+56
View File
@@ -0,0 +1,56 @@
---
sidebar_position: 0
slug: /
---
# What is LlamaIndex.TS?
LlamaIndex.TS is a data framework for LLM applications to ingest, structure, and access private or domain-specific data. While a python package is also available (see [here](https://docs.llamaindex.ai/en/stable/)), LlamaIndex.TS offers core features in a simple package, optimized for usage with TypeScript.
## 🚀 Why LlamaIndex.TS?
At their core, LLMs offer a natural language interface between humans and inferred data. Widely available models come pre-trained on huge amounts of publicly available data, from Wikipedia and mailing lists to textbooks and source code.
Applications built on top of LLMs often require augmenting these models with private or domain-specific data. Unfortunately, that data can be distributed across siloed applications and data stores. It's behind APIs, in SQL databases, or trapped in PDFs and slide decks.
That's where **LlamaIndex.TS** comes in.
## 🦙 How can LlamaIndex.TS help?
LlamaIndex.TS provides the following tools:
- **Data loading** ingest your existing `.txt`, `.pdf`, `.csv`, `.md` and `.docx` data directly
- **Data indexes** structure your data in intermediate representations that are easy and performant for LLMs to consume.
- **Engines** provide natural language access to your data. For example:
- Query engines are powerful retrieval interfaces for knowledge-augmented output.
- Chat engines are conversational interfaces for multi-message, "back and forth" interactions with your data.
## 👨‍👩‍👧‍👦 Who is LlamaIndex for?
LlamaIndex.TS provides a core set of tools, essential for anyone building LLM apps with JavaScript and TypeScript.
Our high-level API allows beginner users to use LlamaIndex.TS to ingest and query their data.
For more complex applications, our lower-level APIs allow advanced users to customize and extend any module—data connectors, indices, retrievers, and query engines, to fit their needs.
## Getting Started
`npm install llamaindex`
Our documentation includes [Installation Instructions](./installation.md) and a [Starter Tutorial](./starter.md) to build your first application.
Once you're up and running, [High-Level Concepts](./concepts.md) has an overview of LlamaIndex's modular architecture. For more hands-on practical examples, look through our [End-to-End Tutorials](./end_to_end.md).
## 🗺️ Ecosystem
To download or contribute, find LlamaIndex on:
- Github: https://github.com/run-llama/LlamaIndexTS
- NPM: https://www.npmjs.com/package/llamaindex
## Community
Need help? Have a feature suggestion? Join the LlamaIndex community:
- Twitter: https://twitter.com/llama_index
- Discord https://discord.gg/dGcwcsnxhU
+3
View File
@@ -0,0 +1,3 @@
label: "Modules"
collapsed: false
position: 5
@@ -0,0 +1 @@
label: High-Level Modules
@@ -0,0 +1,20 @@
---
sidebar_position: 4
---
# ChatEngine
The chat engine is a quick and simple way to chat with the data in your index.
```typescript
const retriever = index.asRetriever();
const chatEngine = new ContextChatEngine({ retriever });
// start chatting
const response = await chatEngine.chat(query);
```
## Api References
- [ContextChatEngine](../../api/classes/ContextChatEngine.md)
- [CondenseQuestionChatEngine](../../api/classes/ContextChatEngine.md)
@@ -0,0 +1,23 @@
---
sidebar_position: 2
---
# Index
An index is the basic container and organization for your data. LlamaIndex.TS supports two indexes:
- `VectorStoreIndex` - will send the top-k `Node`s to the LLM when generating a response. The default top-k is 2.
- `SummaryIndex` - will send every `Node` in the index to the LLM in order to generate a response
```typescript
import { Document, VectorStoreIndex } from "llamaindex";
const document = new Document({ text: "test" });
const index = await VectorStoreIndex.fromDocuments([document]);
```
## API Reference
- [SummaryIndex](../../api/classes/SummaryIndex.md)
- [VectorStoreIndex](../../api/classes/VectorStoreIndex.md)
@@ -0,0 +1,17 @@
---
sidebar_position: 1
---
# Reader / Loader
LlamaIndex.TS supports easy loading of files from folders using the `SimpleDirectoryReader` class. Currently, `.txt`, `.pdf`, `.csv`, `.md` and `.docx` files are supported, with more planned in the future!
```typescript
import { SimpleDirectoryReader } from "llamaindex";
documents = new SimpleDirectoryReader().loadData("./data");
```
## API Reference
- [SimpleDirectoryReader](../../api/classes/SimpleDirectoryReader.md)
@@ -0,0 +1,18 @@
---
sidebar_position: 0
---
# Documents and Nodes
`Document`s and `Node`s are the basic building blocks of any index. While the API for these objects is similar, `Document` objects represent entire files, while `Node`s are smaller pieces of that original document, that are suitable for an LLM and Q&A.
```typescript
import { Document } from "llamaindex";
document = new Document({ text: "text", metadata: { key: "val" } });
```
## API Reference
- [Document](../../api/classes/Document.md)
- [TextNode](../../api/classes/TextNode.md)
@@ -1,21 +1,14 @@
---
title: QueryEngine
sidebar_position: 3
---
A query engine wraps a `Retriever` and a `ResponseSynthesizer` into a pipeline, that will use the query string to fetch nodes and then send them to the LLM to generate a response.
# QueryEngine
A query engine wraps a `Retriever` and a `ResponseSynthesizer` into a pipeline, that will use the query string to fetech nodes and then send them to the LLM to generate a response.
```typescript
const queryEngine = index.asQueryEngine();
const response = await queryEngine.query({ query: "query string" });
```
The `query` function also supports streaming, just add `stream: true` as an option:
```typescript
const stream = await queryEngine.query({ query: "query string", stream: true });
for await (const chunk of stream) {
process.stdout.write(chunk.response);
}
const response = await queryEngine.query("query string");
```
## Sub Question Query Engine
@@ -38,6 +31,6 @@ You can learn more about Tools by taking a look at the LlamaIndex Python documen
## API Reference
- [RetrieverQueryEngine](/docs/api/classes/RetrieverQueryEngine)
- [SubQuestionQueryEngine](/docs/api/classes/SubQuestionQueryEngine)
- [QueryEngineTool](/docs/api/classes/QueryEngineTool)
- [RetrieverQueryEngine](../../api/classes/RetrieverQueryEngine.md)
- [SubQuestionQueryEngine](../../api/classes/SubQuestionQueryEngine.md)
- [QueryEngineTool](../../api/interfaces/QueryEngineTool.md)
+31
View File
@@ -0,0 +1,31 @@
# Core Modules
LlamaIndex.TS offers several core modules, seperated into high-level modules for quickly getting started, and low-level modules for customizing key components as you need.
## High-Level Modules
- [**Document**](./high_level/documents_and_nodes.md): A document represents a text file, PDF file or other contiguous piece of data.
- [**Node**](./high_level/documents_and_nodes.md): The basic data building block. Most commonly, these are parts of the document split into manageable pieces that are small enough to be fed into an embedding model and LLM.
- [**Reader/Loader**](./high_level/data_loader.md): A reader or loader is something that takes in a document in the real world and transforms into a Document class that can then be used in your Index and queries. We currently support plain text files and PDFs with many many more to come.
- [**Indexes**](./high_level/data_index.md): indexes store the Nodes and the embeddings of those nodes.
- [**QueryEngine**](./high_level/query_engine.md): Query engines are what generate the query you put in and give you back the result. Query engines generally combine a pre-built prompt with selected nodes from your Index to give the LLM the context it needs to answer your query.
- [**ChatEngine**](./high_level/chat_engine.md): A ChatEngine helps you build a chatbot that will interact with your Indexes.
## Low Level Module
- [**LLM**](./low_level/llm.md): The LLM class is a unified interface over a large language model provider such as OpenAI GPT-4, Anthropic Claude, or Meta LLaMA. You can subclass it to write a connector to your own large language model.
- [**Embedding**](./low_level/embedding.md): An embedding is represented as a vector of floating point numbers. OpenAI's text-embedding-ada-002 is our default embedding model and each embedding it generates consists of 1,536 floating point numbers. Another popular embedding model is BERT which uses 768 floating point numbers to represent each Node. We provide a number of utilities to work with embeddings including 3 similarity calculation options and Maximum Marginal Relevance
- [**TextSplitter/NodeParser**](./low_level/node_parser.md): Text splitting strategies are incredibly important to the overall efficacy of the embedding search. Currently, while we do have a default, there's no one size fits all solution. Depending on the source documents, you may want to use different splitting sizes and strategies. Currently we support spliltting by fixed size, splitting by fixed size with overlapping sections, splitting by sentence, and splitting by paragraph. The text splitter is used by the NodeParser when splitting `Document`s into `Node`s.
- [**Retriever**](./low_level/retriever.md): The Retriever is what actually chooses the Nodes to retrieve from the index. Here, you may wish to try retrieving more or fewer Nodes per query, changing your similarity function, or creating your own retriever for each individual use case in your application. For example, you may wish to have a separate retriever for code content vs. text content.
- [**ResponseSynthesizer**](./low_level/response_synthesizer.md): The ResponseSynthesizer is responsible for taking a query string, and using a list of `Node`s to generate a response. This can take many forms, like iterating over all the context and refining an answer, or building a tree of summaries and returning the root summary.
- [**Storage**](./low_level/storage.md): At some point you're going to want to store your indexes, data and vectors instead of re-running the embedding models every time. IndexStore, DocStore, VectorStore, and KVStore are abstractions that let you do that. Combined, they form the StorageContext. Currently, we allow you to persist your embeddings in files on the filesystem (or a virtual in memory file system), but we are also actively adding integrations to Vector Databases.
@@ -0,0 +1 @@
label: Low-Level Modules
@@ -0,0 +1,22 @@
---
sidebar_position: 1
---
# Embedding
The embedding model in LlamaIndex is responsible for creating numerical representations of text. By default, LlamaIndex will use the `text-embedding-ada-002` model from OpenAI.
This can be explicitly set in the `ServiceContext` object.
```typescript
import { OpenAIEmbedding, serviceContextFromDefaults } from "llamaindex";
const openaiEmbeds = new OpenAIEmbedding();
const serviceContext = serviceContextFromDefaults({ embedModel: openaiEmbeds });
```
## API Reference
- [OpenAIEmbedding](../../api/classes/OpenAIEmbedding.md)
- [ServiceContext](../../api/interfaces/ServiceContext.md)
+22
View File
@@ -0,0 +1,22 @@
---
sidebar_position: 0
---
# LLM
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 can be explicitly set in the `ServiceContext` object.
```typescript
import { OpenAI, serviceContextFromDefaults } from "llamaindex";
const openaiLLM = new OpenAI({ model: "gpt-3.5-turbo", temperature: 0 });
const serviceContext = serviceContextFromDefaults({ llm: openaiLLM });
```
## API Reference
- [OpenAI](../../api/classes/OpenAI.md)
- [ServiceContext](../../api/interfaces/ServiceContext.md)
@@ -0,0 +1,33 @@
---
sidebar_position: 3
---
# NodeParser
The `NodeParser` in LlamaIndex is responbile for splitting `Document` objects into more manageable `Node` objects. When you call `.fromDocuments()`, the `NodeParser` from the `ServiceContext` is used to do this automatically for you. Alternatively, you can use it to split documents ahead of time.
```typescript
import { Document, SimpleNodeParser } from "llamaindex";
const nodeParser = new SimpleNodeParser();
const nodes = nodeParser.getNodesFromDocuments([
new Document({ text: "I am 10 years old. John is 20 years old." }),
]);
```
## TextSplitter
The underlying text splitter will split text by sentences. It can also be used as a standalone module for splitting raw text.
```typescript
import { SentenceSplitter } from "llamaindex";
const splitter = new SentenceSplitter({ chunkSize: 1 });
const textSplits = splitter.splitText("Hello World");
```
## API Reference
- [SimpleNodeParser](../../api/classes/SimpleNodeParser.md)
- [SentenceSplitter](../../api/classes/SentenceSplitter.md)
@@ -0,0 +1,51 @@
---
sidebar_position: 6
---
# ResponseSynthesizer
The ResponseSynthesizer is responsible for sending the query, nodes, and prompt templates to the LLM to generate a response. There are a few key modes for generating a response:
- `Refine`: "create and refine" an answer by sequentially going through each retrieved text chunk.
This makes a separate LLM call per Node. Good for more detailed answers.
- `CompactAndRefine` (default): "compact" the prompt during each LLM call by stuffing as
many text chunks that can fit within the maximum prompt size. If there are
too many chunks to stuff in one prompt, "create and refine" an answer by going through
multiple compact prompts. The same as `refine`, but should result in less LLM calls.
- `TreeSummarize`: Given a set of text chunks and the query, recursively construct a tree
and return the root node as the response. Good for summarization purposes.
- `SimpleResponseBuilder`: Given a set of text chunks and the query, apply the query to each text
chunk while accumulating the responses into an array. Returns a concatenated string of all
responses. Good for when you need to run the same query separately against each text
chunk.
```typescript
import { NodeWithScore, ResponseSynthesizer, TextNode } from "llamaindex";
const responseSynthesizer = new ResponseSynthesizer();
const nodesWithScore: NodeWithScore[] = [
{
node: new TextNode({ text: "I am 10 years old." }),
score: 1,
},
{
node: new TextNode({ text: "John is 20 years old." }),
score: 0.5,
},
];
const response = await responseSynthesizer.synthesize(
"What age am I?",
nodesWithScore,
);
console.log(response.response);
```
## API Reference
- [ResponseSynthesizer](../../api/classes/ResponseSynthesizer.md)
- [Refine](../../api/classes/Refine.md)
- [CompactAndRefine](../../api/classes/CompactAndRefine.md)
- [TreeSummarize](../../api/classes/TreeSummarize.md)
- [SimpleResponseBuilder](../../api/classes/SimpleResponseBuilder.md)
@@ -0,0 +1,21 @@
---
sidebar_position: 5
---
# Retriever
A retriever in LlamaIndex is what is used to fetch `Node`s from an index using a query string. Aa `VectorIndexRetriever` will fetch the top-k most similar nodes. Meanwhile, a `SummaryIndexRetriever` will fetch all nodes no matter the query.
```typescript
const retriever = vector_index.asRetriever();
retriever.similarityTopK = 3;
// Fetch nodes!
const nodesWithScore = await retriever.retrieve("query string");
```
## API Reference
- [SummaryIndexRetriever](../../api/classes/SummaryIndexRetriever.md)
- [SummaryIndexLLMRetriever](../../api/classes/SummaryIndexLLMRetriever.md)
- [VectorIndexRetriever](../../api/classes/VectorIndexRetriever.md)
@@ -0,0 +1,26 @@
---
sidebar_position: 7
---
# Storage
Storage in LlamaIndex.TS works automatically once you've configured a `StorageContext` object. Just configure the `persistDir` and attach it to an index.
Right now, only saving and loading from disk is supported, with future integrations planned!
```typescript
import { Document, VectorStoreIndex, storageContextFromDefaults } from "./src";
const storageContext = await storageContextFromDefaults({
persistDir: "./storage",
});
const document = new Document({ text: "Test Text" });
const index = await VectorStoreIndex.fromDocuments([document], {
storageContext,
});
```
## API Reference
- [StorageContext](../../api/interfaces/StorageContext.md)
+56
View File
@@ -0,0 +1,56 @@
---
sidebar_position: 2
---
# Starter Tutorial
Once you have [installed LlamaIndex.TS using NPM](installation) and set up your OpenAI key, you're ready to start your first app:
In a new folder:
```bash npm2yarn
npm install typescript
npm install @types/node
npx tsc --init # if needed
```
Create the file `example.ts`. This code will load some example data, create a document, index it (which creates embeddings using OpenAI), and then creates query engine to answer questions about the data.
```ts
// example.ts
import fs from "fs/promises";
import { Document, VectorStoreIndex } from "llamaindex";
async function main() {
// Load essay from abramov.txt in Node
const essay = await fs.readFile(
"node_modules/llamaindex/examples/abramov.txt",
"utf-8",
);
// Create Document object with essay
const document = new Document({ text: essay });
// Split text and create embeddings. Store them in a VectorStoreIndex
const index = await VectorStoreIndex.fromDocuments([document]);
// Query the index
const queryEngine = index.asQueryEngine();
const response = await queryEngine.query(
"What did the author do in college?",
);
// Output response
console.log(response.toString());
}
main();
```
Then you can run it using
```bash
npx ts-node example.ts
```
Ready to learn more? Check out our NextJS playground at https://llama-playground.vercel.app/. The source is available at https://github.com/run-llama/ts-playground
+156
View File
@@ -0,0 +1,156 @@
// @ts-check
// Note: type annotations allow type checking and IDEs autocompletion
const lightCodeTheme = require("prism-react-renderer/themes/github");
const darkCodeTheme = require("prism-react-renderer/themes/dracula");
/** @type {import('@docusaurus/types').Config} */
const config = {
title: "LlamaIndex.TS",
tagline: "Unleash the power of LLMs over your data in TypeScript",
favicon: "img/favicon.png",
// Set the production url of your site here
url: "https://ts.llamaindex.ai",
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: "/",
// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: "run-llama", // Usually your GitHub org/user name.
projectName: "LlamaIndex.TS", // Usually your repo name.
onBrokenLinks: "warn",
onBrokenMarkdownLinks: "warn",
// Even if you don't use internalization, you can use this field to set useful
// metadata like html lang. For example, if your site is Chinese, you may want
// to replace "en" with "zh-Hans".
i18n: {
defaultLocale: "en",
locales: ["en", "fr", "zh-Hans"],
},
presets: [
[
"classic",
/** @type {import('@docusaurus/preset-classic').Options} */
({
docs: {
routeBasePath: "/",
sidebarPath: require.resolve("./sidebars.js"),
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
// editUrl:
// "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/",
remarkPlugins: [
[require("@docusaurus/remark-plugin-npm2yarn"), { sync: true }],
],
},
blog: false,
}),
],
],
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
// Replace with your project's social card
image: "img/favicon.png", // TODO change this
navbar: {
title: "LlamaIndex.TS",
logo: {
alt: "LlamaIndex.TS",
src: "img/favicon.png",
},
items: [
{
type: "docSidebar",
sidebarId: "mySidebar",
position: "left",
label: "Docs",
},
{
type: "localeDropdown",
position: "left",
},
{
href: "https://github.com/run-llama/LlamaIndexTS",
label: "GitHub",
position: "right",
},
],
},
footer: {
style: "dark",
links: [
{
title: "Docs",
items: [
{
label: "API",
to: "/api",
},
],
},
{
title: "Community",
items: [
{
label: "Discord",
href: "https://discord.com/invite/eN6D2HQ4aX",
},
{
label: "Twitter",
href: "https://twitter.com/LlamaIndex",
},
],
},
{
title: "More",
items: [
{
label: "GitHub",
href: "https://github.com/run-llama/LlamaIndexTS",
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} LlamaIndex. Built with Docusaurus.`,
},
prism: {
theme: lightCodeTheme,
darkTheme: darkCodeTheme,
},
algolia: {
// The application ID provided by Algolia
appId: "DYKPM6G4CX",
// Public API key: it is safe to commit it
apiKey: "c4ff3789f20bb72a5d735082aef17719",
indexName: "ts-llamaindex",
// Optional: see doc section below
contextualSearch: true,
},
}),
plugins: [
[
"docusaurus-plugin-typedoc",
{
entryPoints: ["../../packages/core/src/index.ts"],
tsconfig: "../../packages/core/tsconfig.json",
readme: "none",
sourceLinkTemplate:
"https://github.com/run-llama/LlamaIndexTS/blob/{gitRevision}/{path}#L{line}",
sidebar: {
position: 6,
},
},
],
],
};
module.exports = config;
@@ -0,0 +1 @@
../../../../docs/_static
@@ -0,0 +1,2 @@
label: "API"
position: 6
@@ -0,0 +1,318 @@
---
id: "Anthropic"
title: "Class: Anthropic"
sidebar_label: "Anthropic"
sidebar_position: 0
custom_edit_url: null
---
Anthropic LLM implementation
## Implements
- [`LLM`](../interfaces/LLM.md)
## Constructors
### constructor
**new Anthropic**(`init?`)
#### Parameters
| Name | Type |
| :------ | :-------------------------------------- |
| `init?` | `Partial`<[`Anthropic`](Anthropic.md)\> |
#### Defined in
[packages/core/src/llm/LLM.ts:667](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L667)
## Properties
### apiKey
`Optional` **apiKey**: `string` = `undefined`
#### Defined in
[packages/core/src/llm/LLM.ts:660](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L660)
---
### callbackManager
`Optional` **callbackManager**: [`CallbackManager`](CallbackManager.md)
#### Defined in
[packages/core/src/llm/LLM.ts:665](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L665)
---
### hasStreaming
**hasStreaming**: `boolean` = `true`
#### Implementation of
[LLM](../interfaces/LLM.md).[hasStreaming](../interfaces/LLM.md#hasstreaming)
#### Defined in
[packages/core/src/llm/LLM.ts:651](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L651)
---
### maxRetries
**maxRetries**: `number`
#### Defined in
[packages/core/src/llm/LLM.ts:661](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L661)
---
### maxTokens
`Optional` **maxTokens**: `number`
#### Defined in
[packages/core/src/llm/LLM.ts:657](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L657)
---
### model
**model**: `"claude-2"` \| `"claude-instant-1"`
#### Defined in
[packages/core/src/llm/LLM.ts:654](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L654)
---
### session
**session**: `AnthropicSession`
#### Defined in
[packages/core/src/llm/LLM.ts:663](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L663)
---
### temperature
**temperature**: `number`
#### Defined in
[packages/core/src/llm/LLM.ts:655](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L655)
---
### timeout
`Optional` **timeout**: `number`
#### Defined in
[packages/core/src/llm/LLM.ts:662](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L662)
---
### topP
**topP**: `number`
#### Defined in
[packages/core/src/llm/LLM.ts:656](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L656)
## Accessors
### metadata
`get` **metadata**(): `Object`
#### Returns
`Object`
| Name | Type |
| :-------------- | :----------------------------------- |
| `contextWindow` | `number` |
| `maxTokens` | `undefined` \| `number` |
| `model` | `"claude-2"` \| `"claude-instant-1"` |
| `temperature` | `number` |
| `tokenizer` | `undefined` |
| `topP` | `number` |
#### Implementation of
[LLM](../interfaces/LLM.md).[metadata](../interfaces/LLM.md#metadata)
#### Defined in
[packages/core/src/llm/LLM.ts:691](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L691)
## Methods
### chat
**chat**<`T`, `R`\>(`messages`, `parentEvent?`, `streaming?`): `Promise`<`R`\>
Get a chat response from the LLM
#### Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------------------------------------------------------------- |
| `T` | extends `undefined` \| `boolean` = `undefined` |
| `R` | `T` extends `true` ? `AsyncGenerator`<`string`, `void`, `unknown`\> : [`ChatResponse`](../interfaces/ChatResponse.md) |
#### Parameters
| Name | Type | Description |
| :------------- | :---------------------------------------------- | :----------------------------------------------------------------------------------------------- |
| `messages` | [`ChatMessage`](../interfaces/ChatMessage.md)[] | The return type of chat() and complete() are set by the "streaming" parameter being set to True. |
| `parentEvent?` | [`Event`](../interfaces/Event.md) | - |
| `streaming?` | `T` | - |
#### Returns
`Promise`<`R`\>
#### Implementation of
[LLM](../interfaces/LLM.md).[chat](../interfaces/LLM.md#chat)
#### Defined in
[packages/core/src/llm/LLM.ts:719](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L719)
---
### complete
**complete**<`T`, `R`\>(`prompt`, `parentEvent?`, `streaming?`): `Promise`<`R`\>
Get a prompt completion from the LLM
#### Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------------------------------------------------------------- |
| `T` | extends `undefined` \| `boolean` = `undefined` |
| `R` | `T` extends `true` ? `AsyncGenerator`<`string`, `void`, `unknown`\> : [`ChatResponse`](../interfaces/ChatResponse.md) |
#### Parameters
| Name | Type | Description |
| :------------- | :-------------------------------- | :--------------------- |
| `prompt` | `string` | the prompt to complete |
| `parentEvent?` | [`Event`](../interfaces/Event.md) | - |
| `streaming?` | `T` | - |
#### Returns
`Promise`<`R`\>
#### Implementation of
[LLM](../interfaces/LLM.md).[complete](../interfaces/LLM.md#complete)
#### Defined in
[packages/core/src/llm/LLM.ts:776](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L776)
---
### mapMessagesToPrompt
**mapMessagesToPrompt**(`messages`): `string`
#### Parameters
| Name | Type |
| :--------- | :---------------------------------------------- |
| `messages` | [`ChatMessage`](../interfaces/ChatMessage.md)[] |
#### Returns
`string`
#### Defined in
[packages/core/src/llm/LLM.ts:702](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L702)
---
### streamChat
`Protected` **streamChat**(`messages`, `parentEvent?`): `AsyncGenerator`<`string`, `void`, `unknown`\>
#### Parameters
| Name | Type |
| :------------- | :---------------------------------------------- |
| `messages` | [`ChatMessage`](../interfaces/ChatMessage.md)[] |
| `parentEvent?` | [`Event`](../interfaces/Event.md) |
#### Returns
`AsyncGenerator`<`string`, `void`, `unknown`\>
#### Defined in
[packages/core/src/llm/LLM.ts:751](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L751)
---
### streamComplete
`Protected` **streamComplete**(`prompt`, `parentEvent?`): `AsyncGenerator`<`string`, `void`, `unknown`\>
#### Parameters
| Name | Type |
| :------------- | :-------------------------------- |
| `prompt` | `string` |
| `parentEvent?` | [`Event`](../interfaces/Event.md) |
#### Returns
`AsyncGenerator`<`string`, `void`, `unknown`\>
#### Defined in
[packages/core/src/llm/LLM.ts:794](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L794)
---
### tokens
**tokens**(`messages`): `number`
Calculates the number of tokens needed for the given chat messages
#### Parameters
| Name | Type |
| :--------- | :---------------------------------------------- |
| `messages` | [`ChatMessage`](../interfaces/ChatMessage.md)[] |
#### Returns
`number`
#### Implementation of
[LLM](../interfaces/LLM.md).[tokens](../interfaces/LLM.md#tokens)
#### Defined in
[packages/core/src/llm/LLM.ts:687](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L687)
@@ -0,0 +1,289 @@
---
id: "BaseDocumentStore"
title: "Class: BaseDocumentStore"
sidebar_label: "BaseDocumentStore"
sidebar_position: 0
custom_edit_url: null
---
## Constructors
### constructor
**new BaseDocumentStore**()
## Methods
### addDocuments
`Abstract` **addDocuments**(`docs`, `allowUpdate`): `Promise`<`void`\>
#### Parameters
| Name | Type |
| :------------ | :------------------------------------------------------- |
| `docs` | [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>[] |
| `allowUpdate` | `boolean` |
#### Returns
`Promise`<`void`\>
#### Defined in
[packages/core/src/storage/docStore/types.ts:27](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/docStore/types.ts#L27)
---
### deleteDocument
`Abstract` **deleteDocument**(`docId`, `raiseError`): `Promise`<`void`\>
#### Parameters
| Name | Type |
| :----------- | :-------- |
| `docId` | `string` |
| `raiseError` | `boolean` |
#### Returns
`Promise`<`void`\>
#### Defined in
[packages/core/src/storage/docStore/types.ts:34](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/docStore/types.ts#L34)
---
### deleteRefDoc
`Abstract` **deleteRefDoc**(`refDocId`, `raiseError`): `Promise`<`void`\>
#### Parameters
| Name | Type |
| :----------- | :-------- |
| `refDocId` | `string` |
| `raiseError` | `boolean` |
#### Returns
`Promise`<`void`\>
#### Defined in
[packages/core/src/storage/docStore/types.ts:48](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/docStore/types.ts#L48)
---
### docs
`Abstract` **docs**(): `Promise`<`Record`<`string`, [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>\>\>
#### Returns
`Promise`<`Record`<`string`, [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>\>\>
#### Defined in
[packages/core/src/storage/docStore/types.ts:25](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/docStore/types.ts#L25)
---
### documentExists
`Abstract` **documentExists**(`docId`): `Promise`<`boolean`\>
#### Parameters
| Name | Type |
| :------ | :------- |
| `docId` | `string` |
#### Returns
`Promise`<`boolean`\>
#### Defined in
[packages/core/src/storage/docStore/types.ts:36](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/docStore/types.ts#L36)
---
### getAllRefDocInfo
`Abstract` **getAllRefDocInfo**(): `Promise`<`undefined` \| `Record`<`string`, [`RefDocInfo`](../interfaces/RefDocInfo.md)\>\>
#### Returns
`Promise`<`undefined` \| `Record`<`string`, [`RefDocInfo`](../interfaces/RefDocInfo.md)\>\>
#### Defined in
[packages/core/src/storage/docStore/types.ts:44](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/docStore/types.ts#L44)
---
### getDocument
`Abstract` **getDocument**(`docId`, `raiseError`): `Promise`<`undefined` \| [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>\>
#### Parameters
| Name | Type |
| :----------- | :-------- |
| `docId` | `string` |
| `raiseError` | `boolean` |
#### Returns
`Promise`<`undefined` \| [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>\>
#### Defined in
[packages/core/src/storage/docStore/types.ts:29](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/docStore/types.ts#L29)
---
### getDocumentHash
`Abstract` **getDocumentHash**(`docId`): `Promise`<`undefined` \| `string`\>
#### Parameters
| Name | Type |
| :------ | :------- |
| `docId` | `string` |
#### Returns
`Promise`<`undefined` \| `string`\>
#### Defined in
[packages/core/src/storage/docStore/types.ts:41](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/docStore/types.ts#L41)
---
### getNode
**getNode**(`nodeId`, `raiseError?`): `Promise`<[`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>\>
#### Parameters
| Name | Type | Default value |
| :----------- | :-------- | :------------ |
| `nodeId` | `string` | `undefined` |
| `raiseError` | `boolean` | `true` |
#### Returns
`Promise`<[`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>\>
#### Defined in
[packages/core/src/storage/docStore/types.ts:57](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/docStore/types.ts#L57)
---
### getNodeDict
**getNodeDict**(`nodeIdDict`): `Promise`<`Record`<`number`, [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>\>\>
#### Parameters
| Name | Type |
| :----------- | :------- |
| `nodeIdDict` | `Object` |
#### Returns
`Promise`<`Record`<`number`, [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>\>\>
#### Defined in
[packages/core/src/storage/docStore/types.ts:65](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/docStore/types.ts#L65)
---
### getNodes
**getNodes**(`nodeIds`, `raiseError?`): `Promise`<[`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>[]\>
#### Parameters
| Name | Type | Default value |
| :----------- | :--------- | :------------ |
| `nodeIds` | `string`[] | `undefined` |
| `raiseError` | `boolean` | `true` |
#### Returns
`Promise`<[`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>[]\>
#### Defined in
[packages/core/src/storage/docStore/types.ts:51](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/docStore/types.ts#L51)
---
### getRefDocInfo
`Abstract` **getRefDocInfo**(`refDocId`): `Promise`<`undefined` \| [`RefDocInfo`](../interfaces/RefDocInfo.md)\>
#### Parameters
| Name | Type |
| :--------- | :------- |
| `refDocId` | `string` |
#### Returns
`Promise`<`undefined` \| [`RefDocInfo`](../interfaces/RefDocInfo.md)\>
#### Defined in
[packages/core/src/storage/docStore/types.ts:46](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/docStore/types.ts#L46)
---
### persist
**persist**(`persistPath?`, `fs?`): `void`
#### Parameters
| Name | Type | Default value |
| :------------ | :-------------------------------------------------------- | :------------------- |
| `persistPath` | `string` | `defaultPersistPath` |
| `fs?` | [`GenericFileSystem`](../interfaces/GenericFileSystem.md) | `undefined` |
#### Returns
`void`
#### Defined in
[packages/core/src/storage/docStore/types.ts:17](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/docStore/types.ts#L17)
---
### setDocumentHash
`Abstract` **setDocumentHash**(`docId`, `docHash`): `void`
#### Parameters
| Name | Type |
| :-------- | :------- |
| `docId` | `string` |
| `docHash` | `string` |
#### Returns
`void`
#### Defined in
[packages/core/src/storage/docStore/types.ts:39](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/docStore/types.ts#L39)
@@ -0,0 +1,83 @@
---
id: "BaseEmbedding"
title: "Class: BaseEmbedding"
sidebar_label: "BaseEmbedding"
sidebar_position: 0
custom_edit_url: null
---
## Hierarchy
- **`BaseEmbedding`**
↳ [`MultiModalEmbedding`](MultiModalEmbedding.md)
↳ [`OpenAIEmbedding`](OpenAIEmbedding.md)
## Constructors
### constructor
**new BaseEmbedding**()
## Methods
### getQueryEmbedding
`Abstract` **getQueryEmbedding**(`query`): `Promise`<`number`[]\>
#### Parameters
| Name | Type |
| :------ | :------- |
| `query` | `string` |
#### Returns
`Promise`<`number`[]\>
#### Defined in
[packages/core/src/embeddings/types.ts:23](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/types.ts#L23)
---
### getTextEmbedding
`Abstract` **getTextEmbedding**(`text`): `Promise`<`number`[]\>
#### Parameters
| Name | Type |
| :----- | :------- |
| `text` | `string` |
#### Returns
`Promise`<`number`[]\>
#### Defined in
[packages/core/src/embeddings/types.ts:22](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/types.ts#L22)
---
### similarity
**similarity**(`embedding1`, `embedding2`, `mode?`): `number`
#### Parameters
| Name | Type | Default value |
| :----------- | :--------------------------------------------- | :----------------------- |
| `embedding1` | `number`[] | `undefined` |
| `embedding2` | `number`[] | `undefined` |
| `mode` | [`SimilarityType`](../enums/SimilarityType.md) | `SimilarityType.DEFAULT` |
#### Returns
`number`
#### Defined in
[packages/core/src/embeddings/types.ts:14](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/types.ts#L14)
@@ -0,0 +1,164 @@
---
id: "BaseInMemoryKVStore"
title: "Class: BaseInMemoryKVStore"
sidebar_label: "BaseInMemoryKVStore"
sidebar_position: 0
custom_edit_url: null
---
## Hierarchy
- [`BaseKVStore`](BaseKVStore.md)
**`BaseInMemoryKVStore`**
## Constructors
### constructor
**new BaseInMemoryKVStore**()
#### Inherited from
[BaseKVStore](BaseKVStore.md).[constructor](BaseKVStore.md#constructor)
## Methods
### delete
`Abstract` **delete**(`key`, `collection?`): `Promise`<`boolean`\>
#### Parameters
| Name | Type |
| :------------ | :------- |
| `key` | `string` |
| `collection?` | `string` |
#### Returns
`Promise`<`boolean`\>
#### Inherited from
[BaseKVStore](BaseKVStore.md).[delete](BaseKVStore.md#delete)
#### Defined in
[packages/core/src/storage/kvStore/types.ts:14](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/kvStore/types.ts#L14)
---
### get
`Abstract` **get**(`key`, `collection?`): `Promise`<`StoredValue`\>
#### Parameters
| Name | Type |
| :------------ | :------- |
| `key` | `string` |
| `collection?` | `string` |
#### Returns
`Promise`<`StoredValue`\>
#### Inherited from
[BaseKVStore](BaseKVStore.md).[get](BaseKVStore.md#get)
#### Defined in
[packages/core/src/storage/kvStore/types.ts:12](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/kvStore/types.ts#L12)
---
### getAll
`Abstract` **getAll**(`collection?`): `Promise`<`Record`<`string`, `StoredValue`\>\>
#### Parameters
| Name | Type |
| :------------ | :------- |
| `collection?` | `string` |
#### Returns
`Promise`<`Record`<`string`, `StoredValue`\>\>
#### Inherited from
[BaseKVStore](BaseKVStore.md).[getAll](BaseKVStore.md#getall)
#### Defined in
[packages/core/src/storage/kvStore/types.ts:13](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/kvStore/types.ts#L13)
---
### persist
`Abstract` **persist**(`persistPath`, `fs?`): `void`
#### Parameters
| Name | Type |
| :------------ | :-------------------------------------------------------- |
| `persistPath` | `string` |
| `fs?` | [`GenericFileSystem`](../interfaces/GenericFileSystem.md) |
#### Returns
`void`
#### Defined in
[packages/core/src/storage/kvStore/types.ts:18](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/kvStore/types.ts#L18)
---
### put
`Abstract` **put**(`key`, `val`, `collection?`): `Promise`<`void`\>
#### Parameters
| Name | Type |
| :------------ | :------------------------- |
| `key` | `string` |
| `val` | `Record`<`string`, `any`\> |
| `collection?` | `string` |
#### Returns
`Promise`<`void`\>
#### Inherited from
[BaseKVStore](BaseKVStore.md).[put](BaseKVStore.md#put)
#### Defined in
[packages/core/src/storage/kvStore/types.ts:7](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/kvStore/types.ts#L7)
---
### fromPersistPath
`Static` **fromPersistPath**(`persistPath`): [`BaseInMemoryKVStore`](BaseInMemoryKVStore.md)
#### Parameters
| Name | Type |
| :------------ | :------- |
| `persistPath` | `string` |
#### Returns
[`BaseInMemoryKVStore`](BaseInMemoryKVStore.md)
#### Defined in
[packages/core/src/storage/kvStore/types.ts:19](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/kvStore/types.ts#L19)
@@ -0,0 +1,218 @@
---
id: "BaseIndex"
title: "Class: BaseIndex<T>"
sidebar_label: "BaseIndex"
sidebar_position: 0
custom_edit_url: null
---
Indexes are the data structure that we store our nodes and embeddings in so
they can be retrieved for our queries.
## Type parameters
| Name |
| :--- |
| `T` |
## Hierarchy
- **`BaseIndex`**
↳ [`KeywordTableIndex`](KeywordTableIndex.md)
↳ [`SummaryIndex`](SummaryIndex.md)
↳ [`VectorStoreIndex`](VectorStoreIndex.md)
## Constructors
### constructor
**new BaseIndex**<`T`\>(`init`)
#### Type parameters
| Name |
| :--- |
| `T` |
#### Parameters
| Name | Type |
| :----- | :------------------------------------------------------ |
| `init` | [`BaseIndexInit`](../interfaces/BaseIndexInit.md)<`T`\> |
#### Defined in
[packages/core/src/indices/BaseIndex.ts:161](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L161)
## Properties
### docStore
**docStore**: [`BaseDocumentStore`](BaseDocumentStore.md)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:156](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L156)
---
### indexStore
`Optional` **indexStore**: [`BaseIndexStore`](BaseIndexStore.md)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:158](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L158)
---
### indexStruct
**indexStruct**: `T`
#### Defined in
[packages/core/src/indices/BaseIndex.ts:159](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L159)
---
### serviceContext
**serviceContext**: [`ServiceContext`](../interfaces/ServiceContext.md)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:154](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L154)
---
### storageContext
**storageContext**: [`StorageContext`](../interfaces/StorageContext.md)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:155](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L155)
---
### vectorStore
`Optional` **vectorStore**: [`VectorStore`](../interfaces/VectorStore.md)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:157](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L157)
## Methods
### asQueryEngine
`Abstract` **asQueryEngine**(`options?`): [`BaseQueryEngine`](../interfaces/BaseQueryEngine.md)
Create a new query engine from the index. It will also create a retriever
and response synthezier if they are not provided.
#### Parameters
| Name | Type | Description |
| :----------------------------- | :------------------------------------------------ | :--------------------------------------------------------------- |
| `options?` | `Object` | you can supply your own custom Retriever and ResponseSynthesizer |
| `options.responseSynthesizer?` | [`ResponseSynthesizer`](ResponseSynthesizer.md) | - |
| `options.retriever?` | [`BaseRetriever`](../interfaces/BaseRetriever.md) | - |
#### Returns
[`BaseQueryEngine`](../interfaces/BaseQueryEngine.md)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:181](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L181)
---
### asRetriever
`Abstract` **asRetriever**(`options?`): [`BaseRetriever`](../interfaces/BaseRetriever.md)
Create a new retriever from the index.
#### Parameters
| Name | Type |
| :--------- | :---- |
| `options?` | `any` |
#### Returns
[`BaseRetriever`](../interfaces/BaseRetriever.md)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:174](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L174)
---
### deleteRefDoc
`Abstract` **deleteRefDoc**(`refDocId`, `deleteFromDocStore?`): `Promise`<`void`\>
#### Parameters
| Name | Type |
| :-------------------- | :-------- |
| `refDocId` | `string` |
| `deleteFromDocStore?` | `boolean` |
#### Returns
`Promise`<`void`\>
#### Defined in
[packages/core/src/indices/BaseIndex.ts:199](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L199)
---
### insert
**insert**(`document`): `Promise`<`void`\>
Insert a document into the index.
#### Parameters
| Name | Type |
| :--------- | :----------------------------------------------------- |
| `document` | [`Document`](Document.md)<[`Metadata`](../#metadata)\> |
#### Returns
`Promise`<`void`\>
#### Defined in
[packages/core/src/indices/BaseIndex.ts:190](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L190)
---
### insertNodes
`Abstract` **insertNodes**(`nodes`): `Promise`<`void`\>
#### Parameters
| Name | Type |
| :------ | :------------------------------------------------------- |
| `nodes` | [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>[] |
#### Returns
`Promise`<`void`\>
#### Defined in
[packages/core/src/indices/BaseIndex.ts:198](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L198)
@@ -0,0 +1,108 @@
---
id: "BaseIndexStore"
title: "Class: BaseIndexStore"
sidebar_label: "BaseIndexStore"
sidebar_position: 0
custom_edit_url: null
---
## Constructors
### constructor
**new BaseIndexStore**()
## Methods
### addIndexStruct
`Abstract` **addIndexStruct**(`indexStruct`): `Promise`<`void`\>
#### Parameters
| Name | Type |
| :------------ | :------------------------------ |
| `indexStruct` | [`IndexStruct`](IndexStruct.md) |
#### Returns
`Promise`<`void`\>
#### Defined in
[packages/core/src/storage/indexStore/types.ts:13](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/indexStore/types.ts#L13)
---
### deleteIndexStruct
`Abstract` **deleteIndexStruct**(`key`): `Promise`<`void`\>
#### Parameters
| Name | Type |
| :---- | :------- |
| `key` | `string` |
#### Returns
`Promise`<`void`\>
#### Defined in
[packages/core/src/storage/indexStore/types.ts:15](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/indexStore/types.ts#L15)
---
### getIndexStruct
`Abstract` **getIndexStruct**(`structId?`): `Promise`<`undefined` \| [`IndexStruct`](IndexStruct.md)\>
#### Parameters
| Name | Type |
| :---------- | :------- |
| `structId?` | `string` |
#### Returns
`Promise`<`undefined` \| [`IndexStruct`](IndexStruct.md)\>
#### Defined in
[packages/core/src/storage/indexStore/types.ts:17](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/indexStore/types.ts#L17)
---
### getIndexStructs
`Abstract` **getIndexStructs**(): `Promise`<[`IndexStruct`](IndexStruct.md)[]\>
#### Returns
`Promise`<[`IndexStruct`](IndexStruct.md)[]\>
#### Defined in
[packages/core/src/storage/indexStore/types.ts:11](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/indexStore/types.ts#L11)
---
### persist
**persist**(`persistPath?`, `fs?`): `Promise`<`void`\>
#### Parameters
| Name | Type | Default value |
| :------------ | :-------------------------------------------------------- | :------------------- |
| `persistPath` | `string` | `defaultPersistPath` |
| `fs?` | [`GenericFileSystem`](../interfaces/GenericFileSystem.md) | `undefined` |
#### Returns
`Promise`<`void`\>
#### Defined in
[packages/core/src/storage/indexStore/types.ts:19](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/indexStore/types.ts#L19)
@@ -0,0 +1,105 @@
---
id: "BaseKVStore"
title: "Class: BaseKVStore"
sidebar_label: "BaseKVStore"
sidebar_position: 0
custom_edit_url: null
---
## Hierarchy
- **`BaseKVStore`**
↳ [`SimpleKVStore`](SimpleKVStore.md)
↳ [`BaseInMemoryKVStore`](BaseInMemoryKVStore.md)
## Constructors
### constructor
**new BaseKVStore**()
## Methods
### delete
`Abstract` **delete**(`key`, `collection?`): `Promise`<`boolean`\>
#### Parameters
| Name | Type |
| :------------ | :------- |
| `key` | `string` |
| `collection?` | `string` |
#### Returns
`Promise`<`boolean`\>
#### Defined in
[packages/core/src/storage/kvStore/types.ts:14](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/kvStore/types.ts#L14)
---
### get
`Abstract` **get**(`key`, `collection?`): `Promise`<`StoredValue`\>
#### Parameters
| Name | Type |
| :------------ | :------- |
| `key` | `string` |
| `collection?` | `string` |
#### Returns
`Promise`<`StoredValue`\>
#### Defined in
[packages/core/src/storage/kvStore/types.ts:12](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/kvStore/types.ts#L12)
---
### getAll
`Abstract` **getAll**(`collection?`): `Promise`<`Record`<`string`, `StoredValue`\>\>
#### Parameters
| Name | Type |
| :------------ | :------- |
| `collection?` | `string` |
#### Returns
`Promise`<`Record`<`string`, `StoredValue`\>\>
#### Defined in
[packages/core/src/storage/kvStore/types.ts:13](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/kvStore/types.ts#L13)
---
### put
`Abstract` **put**(`key`, `val`, `collection?`): `Promise`<`void`\>
#### Parameters
| Name | Type |
| :------------ | :------------------------- |
| `key` | `string` |
| `val` | `Record`<`string`, `any`\> |
| `collection?` | `string` |
#### Returns
`Promise`<`void`\>
#### Defined in
[packages/core/src/storage/kvStore/types.ts:7](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/kvStore/types.ts#L7)
@@ -0,0 +1,320 @@
---
id: "BaseNode"
title: "Class: BaseNode<T>"
sidebar_label: "BaseNode"
sidebar_position: 0
custom_edit_url: null
---
Generic abstract class for retrievable nodes
## Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------- |
| `T` | extends [`Metadata`](../#metadata) = [`Metadata`](../#metadata) |
## Hierarchy
- **`BaseNode`**
↳ [`TextNode`](TextNode.md)
## Constructors
### constructor
**new BaseNode**<`T`\>(`init?`)
#### Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------- |
| `T` | extends [`Metadata`](../#metadata) = [`Metadata`](../#metadata) |
#### Parameters
| Name | Type |
| :------ | :------------------------------------------ |
| `init?` | `Partial`<[`BaseNode`](BaseNode.md)<`T`\>\> |
#### Defined in
[packages/core/src/Node.ts:60](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L60)
## Properties
### embedding
`Optional` **embedding**: `number`[]
#### Defined in
[packages/core/src/Node.ts:51](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L51)
---
### excludedEmbedMetadataKeys
**excludedEmbedMetadataKeys**: `string`[] = `[]`
#### Defined in
[packages/core/src/Node.ts:55](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L55)
---
### excludedLlmMetadataKeys
**excludedLlmMetadataKeys**: `string`[] = `[]`
#### Defined in
[packages/core/src/Node.ts:56](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L56)
---
### hash
**hash**: `string` = `""`
#### Defined in
[packages/core/src/Node.ts:58](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L58)
---
### id\_
**id\_**: `string`
The unique ID of the Node/Document. The trailing underscore is here
to avoid collisions with the id keyword in Python.
Set to a UUID by default.
#### Defined in
[packages/core/src/Node.ts:50](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L50)
---
### metadata
**metadata**: `T`
#### Defined in
[packages/core/src/Node.ts:54](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L54)
---
### relationships
**relationships**: `Partial`<`Record`<[`NodeRelationship`](../enums/NodeRelationship.md), [`RelatedNodeType`](../#relatednodetype)<`T`\>\>\> = `{}`
#### Defined in
[packages/core/src/Node.ts:57](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L57)
## Accessors
### childNodes
`get` **childNodes**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>[]
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>[]
#### Defined in
[packages/core/src/Node.ts:112](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L112)
---
### nextNode
`get` **nextNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Defined in
[packages/core/src/Node.ts:92](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L92)
---
### parentNode
`get` **parentNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Defined in
[packages/core/src/Node.ts:102](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L102)
---
### prevNode
`get` **prevNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Defined in
[packages/core/src/Node.ts:80](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L80)
---
### sourceNode
`get` **sourceNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Defined in
[packages/core/src/Node.ts:70](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L70)
## Methods
### asRelatedNodeInfo
**asRelatedNodeInfo**(): [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
[`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Defined in
[packages/core/src/Node.ts:134](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L134)
---
### generateHash
`Abstract` **generateHash**(): `string`
#### Returns
`string`
#### Defined in
[packages/core/src/Node.ts:124](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L124)
---
### getContent
`Abstract` **getContent**(`metadataMode`): `string`
#### Parameters
| Name | Type |
| :------------- | :----------------------------------------- |
| `metadataMode` | [`MetadataMode`](../enums/MetadataMode.md) |
#### Returns
`string`
#### Defined in
[packages/core/src/Node.ts:66](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L66)
---
### getEmbedding
**getEmbedding**(): `number`[]
#### Returns
`number`[]
#### Defined in
[packages/core/src/Node.ts:126](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L126)
---
### getMetadataStr
`Abstract` **getMetadataStr**(`metadataMode`): `string`
#### Parameters
| Name | Type |
| :------------- | :----------------------------------------- |
| `metadataMode` | [`MetadataMode`](../enums/MetadataMode.md) |
#### Returns
`string`
#### Defined in
[packages/core/src/Node.ts:67](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L67)
---
### getType
`Abstract` **getType**(): [`ObjectType`](../enums/ObjectType.md)
#### Returns
[`ObjectType`](../enums/ObjectType.md)
#### Defined in
[packages/core/src/Node.ts:64](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L64)
---
### setContent
`Abstract` **setContent**(`value`): `void`
#### Parameters
| Name | Type |
| :------ | :---- |
| `value` | `any` |
#### Returns
`void`
#### Defined in
[packages/core/src/Node.ts:68](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L68)
---
### toJSON
**toJSON**(): `Record`<`string`, `any`\>
Used with built in JSON.stringify
#### Returns
`Record`<`string`, `any`\>
#### Defined in
[packages/core/src/Node.ts:146](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L146)
@@ -0,0 +1,83 @@
---
id: "CallbackManager"
title: "Class: CallbackManager"
sidebar_label: "CallbackManager"
sidebar_position: 0
custom_edit_url: null
---
## Implements
- `CallbackManagerMethods`
## Constructors
### constructor
**new CallbackManager**(`handlers?`)
#### Parameters
| Name | Type |
| :---------- | :----------------------- |
| `handlers?` | `CallbackManagerMethods` |
#### Defined in
[packages/core/src/callbacks/CallbackManager.ts:86](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/callbacks/CallbackManager.ts#L86)
## Properties
### onLLMStream
`Optional` **onLLMStream**: (`params`: [`StreamCallbackResponse`](../interfaces/StreamCallbackResponse.md)) => `void` \| `Promise`<`void`\>
#### Type declaration
▸ (`params`): `void` \| `Promise`<`void`\>
##### Parameters
| Name | Type |
| :------- | :------------------------------------------------------------------ |
| `params` | [`StreamCallbackResponse`](../interfaces/StreamCallbackResponse.md) |
##### Returns
`void` \| `Promise`<`void`\>
#### Implementation of
CallbackManagerMethods.onLLMStream
#### Defined in
[packages/core/src/callbacks/CallbackManager.ts:83](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/callbacks/CallbackManager.ts#L83)
---
### onRetrieve
`Optional` **onRetrieve**: (`params`: [`RetrievalCallbackResponse`](../interfaces/RetrievalCallbackResponse.md)) => `void` \| `Promise`<`void`\>
#### Type declaration
▸ (`params`): `void` \| `Promise`<`void`\>
##### Parameters
| Name | Type |
| :------- | :------------------------------------------------------------------------ |
| `params` | [`RetrievalCallbackResponse`](../interfaces/RetrievalCallbackResponse.md) |
##### Returns
`void` \| `Promise`<`void`\>
#### Implementation of
CallbackManagerMethods.onRetrieve
#### Defined in
[packages/core/src/callbacks/CallbackManager.ts:84](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/callbacks/CallbackManager.ts#L84)
@@ -0,0 +1,251 @@
---
id: "ClipEmbedding"
title: "Class: ClipEmbedding"
sidebar_label: "ClipEmbedding"
sidebar_position: 0
custom_edit_url: null
---
## Hierarchy
- [`MultiModalEmbedding`](MultiModalEmbedding.md)
**`ClipEmbedding`**
## Constructors
### constructor
**new ClipEmbedding**()
#### Inherited from
[MultiModalEmbedding](MultiModalEmbedding.md).[constructor](MultiModalEmbedding.md#constructor)
## Properties
### modelType
**modelType**: [`ClipEmbeddingModelType`](../enums/ClipEmbeddingModelType.md) = `ClipEmbeddingModelType.XENOVA_CLIP_VIT_BASE_PATCH16`
#### Defined in
[packages/core/src/embeddings/ClipEmbedding.ts:11](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/ClipEmbedding.ts#L11)
---
### processor
`Private` **processor**: `any`
#### Defined in
[packages/core/src/embeddings/ClipEmbedding.ts:15](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/ClipEmbedding.ts#L15)
---
### textModel
`Private` **textModel**: `any`
#### Defined in
[packages/core/src/embeddings/ClipEmbedding.ts:17](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/ClipEmbedding.ts#L17)
---
### tokenizer
`Private` **tokenizer**: `any`
#### Defined in
[packages/core/src/embeddings/ClipEmbedding.ts:14](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/ClipEmbedding.ts#L14)
---
### visionModel
`Private` **visionModel**: `any`
#### Defined in
[packages/core/src/embeddings/ClipEmbedding.ts:16](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/ClipEmbedding.ts#L16)
## Methods
### getImageEmbedding
**getImageEmbedding**(`image`): `Promise`<`number`[]\>
#### Parameters
| Name | Type |
| :------ | :--------------------------- |
| `image` | [`ImageType`](../#imagetype) |
#### Returns
`Promise`<`number`[]\>
#### Overrides
[MultiModalEmbedding](MultiModalEmbedding.md).[getImageEmbedding](MultiModalEmbedding.md#getimageembedding)
#### Defined in
[packages/core/src/embeddings/ClipEmbedding.ts:61](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/ClipEmbedding.ts#L61)
---
### getImageEmbeddings
**getImageEmbeddings**(`images`): `Promise`<`number`[][]\>
#### Parameters
| Name | Type |
| :------- | :----------------------------- |
| `images` | [`ImageType`](../#imagetype)[] |
#### Returns
`Promise`<`number`[][]\>
#### Inherited from
[MultiModalEmbedding](MultiModalEmbedding.md).[getImageEmbeddings](MultiModalEmbedding.md#getimageembeddings)
#### Defined in
[packages/core/src/embeddings/MultiModalEmbedding.ts:11](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/MultiModalEmbedding.ts#L11)
---
### getProcessor
**getProcessor**(): `Promise`<`any`\>
#### Returns
`Promise`<`any`\>
#### Defined in
[packages/core/src/embeddings/ClipEmbedding.ts:27](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/ClipEmbedding.ts#L27)
---
### getQueryEmbedding
**getQueryEmbedding**(`query`): `Promise`<`number`[]\>
#### Parameters
| Name | Type |
| :------ | :------- |
| `query` | `string` |
#### Returns
`Promise`<`number`[]\>
#### Overrides
[MultiModalEmbedding](MultiModalEmbedding.md).[getQueryEmbedding](MultiModalEmbedding.md#getqueryembedding)
#### Defined in
[packages/core/src/embeddings/ClipEmbedding.ts:76](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/ClipEmbedding.ts#L76)
---
### getTextEmbedding
**getTextEmbedding**(`text`): `Promise`<`number`[]\>
#### Parameters
| Name | Type |
| :----- | :------- |
| `text` | `string` |
#### Returns
`Promise`<`number`[]\>
#### Overrides
[MultiModalEmbedding](MultiModalEmbedding.md).[getTextEmbedding](MultiModalEmbedding.md#gettextembedding)
#### Defined in
[packages/core/src/embeddings/ClipEmbedding.ts:68](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/ClipEmbedding.ts#L68)
---
### getTextModel
**getTextModel**(): `Promise`<`any`\>
#### Returns
`Promise`<`any`\>
#### Defined in
[packages/core/src/embeddings/ClipEmbedding.ts:48](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/ClipEmbedding.ts#L48)
---
### getTokenizer
**getTokenizer**(): `Promise`<`any`\>
#### Returns
`Promise`<`any`\>
#### Defined in
[packages/core/src/embeddings/ClipEmbedding.ts:19](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/ClipEmbedding.ts#L19)
---
### getVisionModel
**getVisionModel**(): `Promise`<`any`\>
#### Returns
`Promise`<`any`\>
#### Defined in
[packages/core/src/embeddings/ClipEmbedding.ts:35](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/ClipEmbedding.ts#L35)
---
### similarity
**similarity**(`embedding1`, `embedding2`, `mode?`): `number`
#### Parameters
| Name | Type | Default value |
| :----------- | :--------------------------------------------- | :----------------------- |
| `embedding1` | `number`[] | `undefined` |
| `embedding2` | `number`[] | `undefined` |
| `mode` | [`SimilarityType`](../enums/SimilarityType.md) | `SimilarityType.DEFAULT` |
#### Returns
`number`
#### Inherited from
[MultiModalEmbedding](MultiModalEmbedding.md).[similarity](MultiModalEmbedding.md#similarity)
#### Defined in
[packages/core/src/embeddings/types.ts:14](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/types.ts#L14)
@@ -0,0 +1,134 @@
---
id: "CompactAndRefine"
title: "Class: CompactAndRefine"
sidebar_label: "CompactAndRefine"
sidebar_position: 0
custom_edit_url: null
---
CompactAndRefine is a slight variation of Refine that first compacts the text chunks into the smallest possible number of chunks.
## Hierarchy
- [`Refine`](Refine.md)
**`CompactAndRefine`**
## Constructors
### constructor
**new CompactAndRefine**(`serviceContext`, `textQATemplate?`, `refineTemplate?`)
#### Parameters
| Name | Type |
| :---------------- | :-------------------------------------------------- |
| `serviceContext` | [`ServiceContext`](../interfaces/ServiceContext.md) |
| `textQATemplate?` | (`__namedParameters`: `Object`) => `string` |
| `refineTemplate?` | (`__namedParameters`: `Object`) => `string` |
#### Inherited from
[Refine](Refine.md).[constructor](Refine.md#constructor)
#### Defined in
[packages/core/src/ResponseSynthesizer.ts:82](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ResponseSynthesizer.ts#L82)
## Properties
### refineTemplate
**refineTemplate**: (`__namedParameters`: `Object`) => `string`
#### Type declaration
▸ (`«destructured»`): `string`
##### Parameters
| Name | Type |
| :--------------- | :------- |
| `«destructured»` | `Object` |
##### Returns
`string`
#### Inherited from
[Refine](Refine.md).[refineTemplate](Refine.md#refinetemplate)
#### Defined in
[packages/core/src/ResponseSynthesizer.ts:80](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ResponseSynthesizer.ts#L80)
---
### serviceContext
**serviceContext**: [`ServiceContext`](../interfaces/ServiceContext.md)
#### Inherited from
[Refine](Refine.md).[serviceContext](Refine.md#servicecontext)
#### Defined in
[packages/core/src/ResponseSynthesizer.ts:78](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ResponseSynthesizer.ts#L78)
---
### textQATemplate
**textQATemplate**: (`__namedParameters`: `Object`) => `string`
#### Type declaration
▸ (`«destructured»`): `string`
##### Parameters
| Name | Type |
| :--------------- | :------- |
| `«destructured»` | `Object` |
##### Returns
`string`
#### Inherited from
[Refine](Refine.md).[textQATemplate](Refine.md#textqatemplate)
#### Defined in
[packages/core/src/ResponseSynthesizer.ts:79](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ResponseSynthesizer.ts#L79)
## Methods
### getResponse
**getResponse**(`query`, `textChunks`, `parentEvent?`, `prevResponse?`): `Promise`<`string`\>
#### Parameters
| Name | Type |
| :-------------- | :-------------------------------- |
| `query` | `string` |
| `textChunks` | `string`[] |
| `parentEvent?` | [`Event`](../interfaces/Event.md) |
| `prevResponse?` | `string` |
#### Returns
`Promise`<`string`\>
#### Overrides
[Refine](Refine.md).[getResponse](Refine.md#getresponse)
#### Defined in
[packages/core/src/ResponseSynthesizer.ts:185](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ResponseSynthesizer.ts#L185)
@@ -0,0 +1,170 @@
---
id: "CondenseQuestionChatEngine"
title: "Class: CondenseQuestionChatEngine"
sidebar_label: "CondenseQuestionChatEngine"
sidebar_position: 0
custom_edit_url: null
---
CondenseQuestionChatEngine is used in conjunction with a Index (for example VectorStoreIndex).
It does two steps on taking a user's chat message: first, it condenses the chat message
with the previous chat history into a question with more context.
Then, it queries the underlying Index using the new question with context and returns
the response.
CondenseQuestionChatEngine performs well when the input is primarily questions about the
underlying data. It performs less well when the chat messages are not questions about the
data, or are very referential to previous context.
## Implements
- [`ChatEngine`](../interfaces/ChatEngine.md)
## Constructors
### constructor
**new CondenseQuestionChatEngine**(`init`)
#### Parameters
| Name | Type |
| :---------------------------- | :---------------------------------------------------- |
| `init` | `Object` |
| `init.chatHistory` | [`ChatMessage`](../interfaces/ChatMessage.md)[] |
| `init.condenseMessagePrompt?` | (`__namedParameters`: `Object`) => `string` |
| `init.queryEngine` | [`BaseQueryEngine`](../interfaces/BaseQueryEngine.md) |
| `init.serviceContext?` | [`ServiceContext`](../interfaces/ServiceContext.md) |
#### Defined in
[packages/core/src/ChatEngine.ts:122](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L122)
## Properties
### chatHistory
**chatHistory**: [`ChatMessage`](../interfaces/ChatMessage.md)[]
#### Defined in
[packages/core/src/ChatEngine.ts:118](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L118)
---
### condenseMessagePrompt
**condenseMessagePrompt**: (`__namedParameters`: `Object`) => `string`
#### Type declaration
▸ (`«destructured»`): `string`
##### Parameters
| Name | Type |
| :--------------- | :------- |
| `«destructured»` | `Object` |
##### Returns
`string`
#### Defined in
[packages/core/src/ChatEngine.ts:120](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L120)
---
### queryEngine
**queryEngine**: [`BaseQueryEngine`](../interfaces/BaseQueryEngine.md)
#### Defined in
[packages/core/src/ChatEngine.ts:117](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L117)
---
### serviceContext
**serviceContext**: [`ServiceContext`](../interfaces/ServiceContext.md)
#### Defined in
[packages/core/src/ChatEngine.ts:119](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L119)
## Methods
### chat
**chat**<`T`, `R`\>(`message`, `chatHistory?`, `streaming?`): `Promise`<`R`\>
Send message along with the class's current chat history to the LLM.
#### Type parameters
| Name | Type |
| :--- | :---------------------------------------------------------------------------------------------- |
| `T` | extends `undefined` \| `boolean` = `undefined` |
| `R` | `T` extends `true` ? `AsyncGenerator`<`string`, `void`, `unknown`\> : [`Response`](Response.md) |
#### Parameters
| Name | Type | Description |
| :------------- | :---------------------------------------------- | :----------------------------------------------------------------- |
| `message` | [`MessageContent`](../#messagecontent) | |
| `chatHistory?` | [`ChatMessage`](../interfaces/ChatMessage.md)[] | optional chat history if you want to customize the chat history |
| `streaming?` | `T` | optional streaming flag, which auto-sets the return value if True. |
#### Returns
`Promise`<`R`\>
#### Implementation of
[ChatEngine](../interfaces/ChatEngine.md).[chat](../interfaces/ChatEngine.md#chat)
#### Defined in
[packages/core/src/ChatEngine.ts:147](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L147)
---
### condenseQuestion
`Private` **condenseQuestion**(`chatHistory`, `question`): `Promise`<[`ChatResponse`](../interfaces/ChatResponse.md)\>
#### Parameters
| Name | Type |
| :------------ | :---------------------------------------------- |
| `chatHistory` | [`ChatMessage`](../interfaces/ChatMessage.md)[] |
| `question` | `string` |
#### Returns
`Promise`<[`ChatResponse`](../interfaces/ChatResponse.md)\>
#### Defined in
[packages/core/src/ChatEngine.ts:136](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L136)
---
### reset
**reset**(): `void`
Resets the chat history so that it's empty.
#### Returns
`void`
#### Implementation of
[ChatEngine](../interfaces/ChatEngine.md).[reset](../interfaces/ChatEngine.md#reset)
#### Defined in
[packages/core/src/ChatEngine.ts:169](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L169)
@@ -0,0 +1,142 @@
---
id: "ContextChatEngine"
title: "Class: ContextChatEngine"
sidebar_label: "ContextChatEngine"
sidebar_position: 0
custom_edit_url: null
---
ContextChatEngine uses the Index to get the appropriate context for each query.
The context is stored in the system prompt, and the chat history is preserved,
ideally allowing the appropriate context to be surfaced for each query.
## Implements
- [`ChatEngine`](../interfaces/ChatEngine.md)
## Constructors
### constructor
**new ContextChatEngine**(`init`)
#### Parameters
| Name | Type |
| :-------------------------- | :------------------------------------------------------------------ |
| `init` | `Object` |
| `init.chatHistory?` | [`ChatMessage`](../interfaces/ChatMessage.md)[] |
| `init.chatModel?` | [`LLM`](../interfaces/LLM.md) |
| `init.contextSystemPrompt?` | (`__namedParameters`: `Object`) => `string` |
| `init.nodePostprocessors?` | [`BaseNodePostprocessor`](../interfaces/BaseNodePostprocessor.md)[] |
| `init.retriever` | [`BaseRetriever`](../interfaces/BaseRetriever.md) |
#### Defined in
[packages/core/src/ChatEngine.ts:243](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L243)
## Properties
### chatHistory
**chatHistory**: [`ChatMessage`](../interfaces/ChatMessage.md)[]
#### Defined in
[packages/core/src/ChatEngine.ts:240](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L240)
---
### chatModel
**chatModel**: [`LLM`](../interfaces/LLM.md)
#### Defined in
[packages/core/src/ChatEngine.ts:239](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L239)
---
### contextGenerator
**contextGenerator**: [`ContextGenerator`](../interfaces/ContextGenerator.md)
#### Defined in
[packages/core/src/ChatEngine.ts:241](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L241)
## Methods
### chat
**chat**<`T`, `R`\>(`message`, `chatHistory?`, `streaming?`): `Promise`<`R`\>
Send message along with the class's current chat history to the LLM.
#### Type parameters
| Name | Type |
| :--- | :---------------------------------------------------------------------------------------------- |
| `T` | extends `undefined` \| `boolean` = `undefined` |
| `R` | `T` extends `true` ? `AsyncGenerator`<`string`, `void`, `unknown`\> : [`Response`](Response.md) |
#### Parameters
| Name | Type | Description |
| :------------- | :---------------------------------------------- | :----------------------------------------------------------------- |
| `message` | [`MessageContent`](../#messagecontent) | |
| `chatHistory?` | [`ChatMessage`](../interfaces/ChatMessage.md)[] | optional chat history if you want to customize the chat history |
| `streaming?` | `T` | optional streaming flag, which auto-sets the return value if True. |
#### Returns
`Promise`<`R`\>
#### Implementation of
[ChatEngine](../interfaces/ChatEngine.md).[chat](../interfaces/ChatEngine.md#chat)
#### Defined in
[packages/core/src/ChatEngine.ts:259](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L259)
---
### reset
**reset**(): `void`
Resets the chat history so that it's empty.
#### Returns
`void`
#### Implementation of
[ChatEngine](../interfaces/ChatEngine.md).[reset](../interfaces/ChatEngine.md#reset)
#### Defined in
[packages/core/src/ChatEngine.ts:336](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L336)
---
### streamChat
`Protected` **streamChat**(`message`, `chatHistory?`): `AsyncGenerator`<`string`, `void`, `unknown`\>
#### Parameters
| Name | Type |
| :------------- | :---------------------------------------------- |
| `message` | [`MessageContent`](../#messagecontent) |
| `chatHistory?` | [`ChatMessage`](../interfaces/ChatMessage.md)[] |
#### Returns
`AsyncGenerator`<`string`, `void`, `unknown`\>
#### Defined in
[packages/core/src/ChatEngine.ts:300](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L300)
@@ -0,0 +1,119 @@
---
id: "DefaultContextGenerator"
title: "Class: DefaultContextGenerator"
sidebar_label: "DefaultContextGenerator"
sidebar_position: 0
custom_edit_url: null
---
## Implements
- [`ContextGenerator`](../interfaces/ContextGenerator.md)
## Constructors
### constructor
**new DefaultContextGenerator**(`init`)
#### Parameters
| Name | Type |
| :-------------------------- | :------------------------------------------------------------------ |
| `init` | `Object` |
| `init.contextSystemPrompt?` | (`__namedParameters`: `Object`) => `string` |
| `init.nodePostprocessors?` | [`BaseNodePostprocessor`](../interfaces/BaseNodePostprocessor.md)[] |
| `init.retriever` | [`BaseRetriever`](../interfaces/BaseRetriever.md) |
#### Defined in
[packages/core/src/ChatEngine.ts:188](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L188)
## Properties
### contextSystemPrompt
**contextSystemPrompt**: (`__namedParameters`: `Object`) => `string`
#### Type declaration
▸ (`«destructured»`): `string`
##### Parameters
| Name | Type |
| :--------------- | :------- |
| `«destructured»` | `Object` |
##### Returns
`string`
#### Defined in
[packages/core/src/ChatEngine.ts:185](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L185)
---
### nodePostprocessors
**nodePostprocessors**: [`BaseNodePostprocessor`](../interfaces/BaseNodePostprocessor.md)[]
#### Defined in
[packages/core/src/ChatEngine.ts:186](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L186)
---
### retriever
**retriever**: [`BaseRetriever`](../interfaces/BaseRetriever.md)
#### Defined in
[packages/core/src/ChatEngine.ts:184](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L184)
## Methods
### applyNodePostprocessors
`Private` **applyNodePostprocessors**(`nodes`): [`NodeWithScore`](../interfaces/NodeWithScore.md)<[`Metadata`](../#metadata)\>[]
#### Parameters
| Name | Type |
| :------ | :------------------------------------------------------------------------------- |
| `nodes` | [`NodeWithScore`](../interfaces/NodeWithScore.md)<[`Metadata`](../#metadata)\>[] |
#### Returns
[`NodeWithScore`](../interfaces/NodeWithScore.md)<[`Metadata`](../#metadata)\>[]
#### Defined in
[packages/core/src/ChatEngine.ts:199](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L199)
---
### generate
**generate**(`message`, `parentEvent?`): `Promise`<[`Context`](../interfaces/Context.md)\>
#### Parameters
| Name | Type |
| :------------- | :-------------------------------- |
| `message` | `string` |
| `parentEvent?` | [`Event`](../interfaces/Event.md) |
#### Returns
`Promise`<[`Context`](../interfaces/Context.md)\>
#### Implementation of
[ContextGenerator](../interfaces/ContextGenerator.md).[generate](../interfaces/ContextGenerator.md#generate)
#### Defined in
[packages/core/src/ChatEngine.ts:206](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L206)
@@ -0,0 +1,504 @@
---
id: "Document"
title: "Class: Document<T>"
sidebar_label: "Document"
sidebar_position: 0
custom_edit_url: null
---
A document is just a special text node with a docId.
## Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------- |
| `T` | extends [`Metadata`](../#metadata) = [`Metadata`](../#metadata) |
## Hierarchy
- [`TextNode`](TextNode.md)<`T`\>
**`Document`**
## Constructors
### constructor
**new Document**<`T`\>(`init?`)
#### Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------- |
| `T` | extends [`Metadata`](../#metadata) = [`Metadata`](../#metadata) |
#### Parameters
| Name | Type |
| :------ | :------------------------------------------ |
| `init?` | `Partial`<[`Document`](Document.md)<`T`\>\> |
#### Overrides
[TextNode](TextNode.md).[constructor](TextNode.md#constructor)
#### Defined in
[packages/core/src/Node.ts:254](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L254)
## Properties
### embedding
`Optional` **embedding**: `number`[]
#### Inherited from
[TextNode](TextNode.md).[embedding](TextNode.md#embedding)
#### Defined in
[packages/core/src/Node.ts:51](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L51)
---
### endCharIdx
`Optional` **endCharIdx**: `number`
#### Inherited from
[TextNode](TextNode.md).[endCharIdx](TextNode.md#endcharidx)
#### Defined in
[packages/core/src/Node.ts:157](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L157)
---
### excludedEmbedMetadataKeys
**excludedEmbedMetadataKeys**: `string`[] = `[]`
#### Inherited from
[TextNode](TextNode.md).[excludedEmbedMetadataKeys](TextNode.md#excludedembedmetadatakeys)
#### Defined in
[packages/core/src/Node.ts:55](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L55)
---
### excludedLlmMetadataKeys
**excludedLlmMetadataKeys**: `string`[] = `[]`
#### Inherited from
[TextNode](TextNode.md).[excludedLlmMetadataKeys](TextNode.md#excludedllmmetadatakeys)
#### Defined in
[packages/core/src/Node.ts:56](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L56)
---
### hash
**hash**: `string` = `""`
#### Inherited from
[TextNode](TextNode.md).[hash](TextNode.md#hash)
#### Defined in
[packages/core/src/Node.ts:58](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L58)
---
### id\_
**id\_**: `string`
The unique ID of the Node/Document. The trailing underscore is here
to avoid collisions with the id keyword in Python.
Set to a UUID by default.
#### Inherited from
[TextNode](TextNode.md).[id\_](TextNode.md#id_)
#### Defined in
[packages/core/src/Node.ts:50](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L50)
---
### metadata
**metadata**: `T`
#### Inherited from
[TextNode](TextNode.md).[metadata](TextNode.md#metadata)
#### Defined in
[packages/core/src/Node.ts:54](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L54)
---
### metadataSeparator
**metadataSeparator**: `string` = `"\n"`
#### Inherited from
[TextNode](TextNode.md).[metadataSeparator](TextNode.md#metadataseparator)
#### Defined in
[packages/core/src/Node.ts:160](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L160)
---
### relationships
**relationships**: `Partial`<`Record`<[`NodeRelationship`](../enums/NodeRelationship.md), [`RelatedNodeType`](../#relatednodetype)<`T`\>\>\> = `{}`
#### Inherited from
[TextNode](TextNode.md).[relationships](TextNode.md#relationships)
#### Defined in
[packages/core/src/Node.ts:57](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L57)
---
### startCharIdx
`Optional` **startCharIdx**: `number`
#### Inherited from
[TextNode](TextNode.md).[startCharIdx](TextNode.md#startcharidx)
#### Defined in
[packages/core/src/Node.ts:156](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L156)
---
### text
**text**: `string` = `""`
#### Inherited from
[TextNode](TextNode.md).[text](TextNode.md#text)
#### Defined in
[packages/core/src/Node.ts:155](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L155)
## Accessors
### childNodes
`get` **childNodes**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>[]
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>[]
#### Inherited from
TextNode.childNodes
#### Defined in
[packages/core/src/Node.ts:112](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L112)
---
### nextNode
`get` **nextNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
TextNode.nextNode
#### Defined in
[packages/core/src/Node.ts:92](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L92)
---
### parentNode
`get` **parentNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
TextNode.parentNode
#### Defined in
[packages/core/src/Node.ts:102](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L102)
---
### prevNode
`get` **prevNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
TextNode.prevNode
#### Defined in
[packages/core/src/Node.ts:80](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L80)
---
### sourceNode
`get` **sourceNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
TextNode.sourceNode
#### Defined in
[packages/core/src/Node.ts:70](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L70)
## Methods
### asRelatedNodeInfo
**asRelatedNodeInfo**(): [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
[`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
[TextNode](TextNode.md).[asRelatedNodeInfo](TextNode.md#asrelatednodeinfo)
#### Defined in
[packages/core/src/Node.ts:134](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L134)
---
### generateHash
**generateHash**(): `string`
Generate a hash of the text node.
The ID is not part of the hash as it can change independent of content.
#### Returns
`string`
#### Inherited from
[TextNode](TextNode.md).[generateHash](TextNode.md#generatehash)
#### Defined in
[packages/core/src/Node.ts:178](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L178)
---
### getContent
**getContent**(`metadataMode?`): `string`
#### Parameters
| Name | Type | Default value |
| :------------- | :----------------------------------------- | :------------------ |
| `metadataMode` | [`MetadataMode`](../enums/MetadataMode.md) | `MetadataMode.NONE` |
#### Returns
`string`
#### Inherited from
[TextNode](TextNode.md).[getContent](TextNode.md#getcontent)
#### Defined in
[packages/core/src/Node.ts:192](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L192)
---
### getEmbedding
**getEmbedding**(): `number`[]
#### Returns
`number`[]
#### Inherited from
[TextNode](TextNode.md).[getEmbedding](TextNode.md#getembedding)
#### Defined in
[packages/core/src/Node.ts:126](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L126)
---
### getMetadataStr
**getMetadataStr**(`metadataMode`): `string`
#### Parameters
| Name | Type |
| :------------- | :----------------------------------------- |
| `metadataMode` | [`MetadataMode`](../enums/MetadataMode.md) |
#### Returns
`string`
#### Inherited from
[TextNode](TextNode.md).[getMetadataStr](TextNode.md#getmetadatastr)
#### Defined in
[packages/core/src/Node.ts:197](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L197)
---
### getNodeInfo
**getNodeInfo**(): `Object`
#### Returns
`Object`
| Name | Type |
| :------ | :---------------------- |
| `end` | `undefined` \| `number` |
| `start` | `undefined` \| `number` |
#### Inherited from
[TextNode](TextNode.md).[getNodeInfo](TextNode.md#getnodeinfo)
#### Defined in
[packages/core/src/Node.ts:224](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L224)
---
### getText
**getText**(): `string`
#### Returns
`string`
#### Inherited from
[TextNode](TextNode.md).[getText](TextNode.md#gettext)
#### Defined in
[packages/core/src/Node.ts:228](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L228)
---
### getType
**getType**(): [`ObjectType`](../enums/ObjectType.md)
#### Returns
[`ObjectType`](../enums/ObjectType.md)
#### Overrides
[TextNode](TextNode.md).[getType](TextNode.md#gettype)
#### Defined in
[packages/core/src/Node.ts:263](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L263)
---
### setContent
**setContent**(`value`): `void`
#### Parameters
| Name | Type |
| :------ | :------- |
| `value` | `string` |
#### Returns
`void`
#### Inherited from
[TextNode](TextNode.md).[setContent](TextNode.md#setcontent)
#### Defined in
[packages/core/src/Node.ts:218](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L218)
---
### toJSON
**toJSON**(): `Record`<`string`, `any`\>
Used with built in JSON.stringify
#### Returns
`Record`<`string`, `any`\>
#### Inherited from
[TextNode](TextNode.md).[toJSON](TextNode.md#tojson)
#### Defined in
[packages/core/src/Node.ts:146](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L146)
@@ -0,0 +1,109 @@
---
id: "HTMLReader"
title: "Class: HTMLReader"
sidebar_label: "HTMLReader"
sidebar_position: 0
custom_edit_url: null
---
Extract the significant text from an arbitrary HTML document.
The contents of any head, script, style, and xml tags are removed completely.
The URLs for a[href] tags are extracted, along with the inner text of the tag.
All other tags are removed, and the inner text is kept intact.
Html entities (e.g., &amp;) are not decoded.
## Implements
- [`BaseReader`](../interfaces/BaseReader.md)
## Constructors
### constructor
**new HTMLReader**()
## Methods
### getOptions
**getOptions**(): `Object`
Wrapper for our configuration options passed to string-strip-html library
#### Returns
`Object`
An object of options for the underlying library
| Name | Type |
| :------------------------------- | :--------- |
| `skipHtmlDecoding` | `boolean` |
| `stripTogetherWithTheirContents` | `string`[] |
**`See`**
https://codsen.com/os/string-strip-html/examples
#### Defined in
[packages/core/src/readers/HTMLReader.ts:48](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/HTMLReader.ts#L48)
---
### loadData
**loadData**(`file`, `fs?`): `Promise`<[`Document`](Document.md)<[`Metadata`](../#metadata)\>[]\>
Public method for this reader.
Required by BaseReader interface.
#### Parameters
| Name | Type | Default value | Description |
| :----- | :-------------------------------------------------------- | :------------ | :------------------------------------------------- |
| `file` | `string` | `undefined` | Path/name of the file to be loaded. |
| `fs` | [`GenericFileSystem`](../interfaces/GenericFileSystem.md) | `DEFAULT_FS` | fs wrapper interface for getting the file content. |
#### Returns
`Promise`<[`Document`](Document.md)<[`Metadata`](../#metadata)\>[]\>
Promise<Document[]> A Promise object, eventually yielding zero or one Document parsed from the HTML content of the specified file.
#### Implementation of
[BaseReader](../interfaces/BaseReader.md).[loadData](../interfaces/BaseReader.md#loaddata)
#### Defined in
[packages/core/src/readers/HTMLReader.ts:21](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/HTMLReader.ts#L21)
---
### parseContent
**parseContent**(`html`, `options?`): `Promise`<`string`\>
Wrapper for string-strip-html usage.
#### Parameters
| Name | Type | Description |
| :-------- | :------- | :---------------------------------------------- |
| `html` | `string` | Raw HTML content to be parsed. |
| `options` | `any` | An object of options for the underlying library |
#### Returns
`Promise`<`string`\>
The HTML content, stripped of unwanted tags and attributes
**`See`**
getOptions
#### Defined in
[packages/core/src/readers/HTMLReader.ts:38](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/HTMLReader.ts#L38)
@@ -0,0 +1,120 @@
---
id: "HistoryChatEngine"
title: "Class: HistoryChatEngine"
sidebar_label: "HistoryChatEngine"
sidebar_position: 0
custom_edit_url: null
---
HistoryChatEngine is a ChatEngine that uses a `ChatHistory` object
to keeps track of chat's message history.
A `ChatHistory` object is passed as a parameter for each call to the `chat` method,
so the state of the chat engine is preserved between calls.
Optionally, a `ContextGenerator` can be used to generate an additional context for each call to `chat`.
## Constructors
### constructor
**new HistoryChatEngine**(`init?`)
#### Parameters
| Name | Type |
| :------ | :------------------------------------------------------ |
| `init?` | `Partial`<[`HistoryChatEngine`](HistoryChatEngine.md)\> |
#### Defined in
[packages/core/src/ChatEngine.ts:381](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L381)
## Properties
### contextGenerator
`Optional` **contextGenerator**: [`ContextGenerator`](../interfaces/ContextGenerator.md)
#### Defined in
[packages/core/src/ChatEngine.ts:379](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L379)
---
### llm
**llm**: [`LLM`](../interfaces/LLM.md)
#### Defined in
[packages/core/src/ChatEngine.ts:378](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L378)
## Methods
### chat
**chat**<`T`, `R`\>(`message`, `chatHistory`, `streaming?`): `Promise`<`R`\>
#### Type parameters
| Name | Type |
| :--- | :---------------------------------------------------------------------------------------------- |
| `T` | extends `undefined` \| `boolean` = `undefined` |
| `R` | `T` extends `true` ? `AsyncGenerator`<`string`, `void`, `unknown`\> : [`Response`](Response.md) |
#### Parameters
| Name | Type |
| :------------ | :-------------------------------------------- |
| `message` | [`MessageContent`](../#messagecontent) |
| `chatHistory` | [`ChatHistory`](../interfaces/ChatHistory.md) |
| `streaming?` | `T` |
#### Returns
`Promise`<`R`\>
#### Defined in
[packages/core/src/ChatEngine.ts:386](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L386)
---
### prepareRequestMessages
`Private` **prepareRequestMessages**(`message`, `chatHistory`): `Promise`<[`ChatMessage`](../interfaces/ChatMessage.md)[]\>
#### Parameters
| Name | Type |
| :------------ | :-------------------------------------------- |
| `message` | [`MessageContent`](../#messagecontent) |
| `chatHistory` | [`ChatHistory`](../interfaces/ChatHistory.md) |
#### Returns
`Promise`<[`ChatMessage`](../interfaces/ChatMessage.md)[]\>
#### Defined in
[packages/core/src/ChatEngine.ts:433](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L433)
---
### streamChat
`Protected` **streamChat**(`message`, `chatHistory`): `AsyncGenerator`<`string`, `void`, `unknown`\>
#### Parameters
| Name | Type |
| :------------ | :-------------------------------------------- |
| `message` | [`MessageContent`](../#messagecontent) |
| `chatHistory` | [`ChatHistory`](../interfaces/ChatHistory.md) |
#### Returns
`AsyncGenerator`<`string`, `void`, `unknown`\>
#### Defined in
[packages/core/src/ChatEngine.ts:407](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ChatEngine.ts#L407)
@@ -0,0 +1,518 @@
---
id: "ImageDocument"
title: "Class: ImageDocument<T>"
sidebar_label: "ImageDocument"
sidebar_position: 0
custom_edit_url: null
---
TextNode is the default node type for text. Most common node type in LlamaIndex.TS
## Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------- |
| `T` | extends [`Metadata`](../#metadata) = [`Metadata`](../#metadata) |
## Hierarchy
- [`ImageNode`](ImageNode.md)<`T`\>
**`ImageDocument`**
## Constructors
### constructor
**new ImageDocument**<`T`\>(`init`)
#### Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------- |
| `T` | extends [`Metadata`](../#metadata) = [`Metadata`](../#metadata) |
#### Parameters
| Name | Type |
| :----- | :----------------------------------------------------------------- |
| `init` | [`ImageNodeConstructorProps`](../#imagenodeconstructorprops)<`T`\> |
#### Overrides
[ImageNode](ImageNode.md).[constructor](ImageNode.md#constructor)
#### Defined in
[packages/core/src/Node.ts:310](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L310)
## Properties
### embedding
`Optional` **embedding**: `number`[]
#### Inherited from
[ImageNode](ImageNode.md).[embedding](ImageNode.md#embedding)
#### Defined in
[packages/core/src/Node.ts:51](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L51)
---
### endCharIdx
`Optional` **endCharIdx**: `number`
#### Inherited from
[ImageNode](ImageNode.md).[endCharIdx](ImageNode.md#endcharidx)
#### Defined in
[packages/core/src/Node.ts:157](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L157)
---
### excludedEmbedMetadataKeys
**excludedEmbedMetadataKeys**: `string`[] = `[]`
#### Inherited from
[ImageNode](ImageNode.md).[excludedEmbedMetadataKeys](ImageNode.md#excludedembedmetadatakeys)
#### Defined in
[packages/core/src/Node.ts:55](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L55)
---
### excludedLlmMetadataKeys
**excludedLlmMetadataKeys**: `string`[] = `[]`
#### Inherited from
[ImageNode](ImageNode.md).[excludedLlmMetadataKeys](ImageNode.md#excludedllmmetadatakeys)
#### Defined in
[packages/core/src/Node.ts:56](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L56)
---
### hash
**hash**: `string` = `""`
#### Inherited from
[ImageNode](ImageNode.md).[hash](ImageNode.md#hash)
#### Defined in
[packages/core/src/Node.ts:58](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L58)
---
### id\_
**id\_**: `string`
The unique ID of the Node/Document. The trailing underscore is here
to avoid collisions with the id keyword in Python.
Set to a UUID by default.
#### Inherited from
[ImageNode](ImageNode.md).[id\_](ImageNode.md#id_)
#### Defined in
[packages/core/src/Node.ts:50](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L50)
---
### image
**image**: [`ImageType`](../#imagetype)
#### Inherited from
[ImageNode](ImageNode.md).[image](ImageNode.md#image)
#### Defined in
[packages/core/src/Node.ts:297](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L297)
---
### metadata
**metadata**: `T`
#### Inherited from
[ImageNode](ImageNode.md).[metadata](ImageNode.md#metadata)
#### Defined in
[packages/core/src/Node.ts:54](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L54)
---
### metadataSeparator
**metadataSeparator**: `string` = `"\n"`
#### Inherited from
[ImageNode](ImageNode.md).[metadataSeparator](ImageNode.md#metadataseparator)
#### Defined in
[packages/core/src/Node.ts:160](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L160)
---
### relationships
**relationships**: `Partial`<`Record`<[`NodeRelationship`](../enums/NodeRelationship.md), [`RelatedNodeType`](../#relatednodetype)<`T`\>\>\> = `{}`
#### Inherited from
[ImageNode](ImageNode.md).[relationships](ImageNode.md#relationships)
#### Defined in
[packages/core/src/Node.ts:57](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L57)
---
### startCharIdx
`Optional` **startCharIdx**: `number`
#### Inherited from
[ImageNode](ImageNode.md).[startCharIdx](ImageNode.md#startcharidx)
#### Defined in
[packages/core/src/Node.ts:156](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L156)
---
### text
**text**: `string` = `""`
#### Inherited from
[ImageNode](ImageNode.md).[text](ImageNode.md#text)
#### Defined in
[packages/core/src/Node.ts:155](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L155)
## Accessors
### childNodes
`get` **childNodes**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>[]
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>[]
#### Inherited from
ImageNode.childNodes
#### Defined in
[packages/core/src/Node.ts:112](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L112)
---
### nextNode
`get` **nextNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
ImageNode.nextNode
#### Defined in
[packages/core/src/Node.ts:92](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L92)
---
### parentNode
`get` **parentNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
ImageNode.parentNode
#### Defined in
[packages/core/src/Node.ts:102](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L102)
---
### prevNode
`get` **prevNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
ImageNode.prevNode
#### Defined in
[packages/core/src/Node.ts:80](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L80)
---
### sourceNode
`get` **sourceNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
ImageNode.sourceNode
#### Defined in
[packages/core/src/Node.ts:70](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L70)
## Methods
### asRelatedNodeInfo
**asRelatedNodeInfo**(): [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
[`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
[ImageNode](ImageNode.md).[asRelatedNodeInfo](ImageNode.md#asrelatednodeinfo)
#### Defined in
[packages/core/src/Node.ts:134](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L134)
---
### generateHash
**generateHash**(): `string`
Generate a hash of the text node.
The ID is not part of the hash as it can change independent of content.
#### Returns
`string`
#### Inherited from
[ImageNode](ImageNode.md).[generateHash](ImageNode.md#generatehash)
#### Defined in
[packages/core/src/Node.ts:178](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L178)
---
### getContent
**getContent**(`metadataMode?`): `string`
#### Parameters
| Name | Type | Default value |
| :------------- | :----------------------------------------- | :------------------ |
| `metadataMode` | [`MetadataMode`](../enums/MetadataMode.md) | `MetadataMode.NONE` |
#### Returns
`string`
#### Inherited from
[ImageNode](ImageNode.md).[getContent](ImageNode.md#getcontent)
#### Defined in
[packages/core/src/Node.ts:192](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L192)
---
### getEmbedding
**getEmbedding**(): `number`[]
#### Returns
`number`[]
#### Inherited from
[ImageNode](ImageNode.md).[getEmbedding](ImageNode.md#getembedding)
#### Defined in
[packages/core/src/Node.ts:126](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L126)
---
### getMetadataStr
**getMetadataStr**(`metadataMode`): `string`
#### Parameters
| Name | Type |
| :------------- | :----------------------------------------- |
| `metadataMode` | [`MetadataMode`](../enums/MetadataMode.md) |
#### Returns
`string`
#### Inherited from
[ImageNode](ImageNode.md).[getMetadataStr](ImageNode.md#getmetadatastr)
#### Defined in
[packages/core/src/Node.ts:197](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L197)
---
### getNodeInfo
**getNodeInfo**(): `Object`
#### Returns
`Object`
| Name | Type |
| :------ | :---------------------- |
| `end` | `undefined` \| `number` |
| `start` | `undefined` \| `number` |
#### Inherited from
[ImageNode](ImageNode.md).[getNodeInfo](ImageNode.md#getnodeinfo)
#### Defined in
[packages/core/src/Node.ts:224](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L224)
---
### getText
**getText**(): `string`
#### Returns
`string`
#### Inherited from
[ImageNode](ImageNode.md).[getText](ImageNode.md#gettext)
#### Defined in
[packages/core/src/Node.ts:228](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L228)
---
### getType
**getType**(): [`ObjectType`](../enums/ObjectType.md)
#### Returns
[`ObjectType`](../enums/ObjectType.md)
#### Overrides
[ImageNode](ImageNode.md).[getType](ImageNode.md#gettype)
#### Defined in
[packages/core/src/Node.ts:318](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L318)
---
### setContent
**setContent**(`value`): `void`
#### Parameters
| Name | Type |
| :------ | :------- |
| `value` | `string` |
#### Returns
`void`
#### Inherited from
[ImageNode](ImageNode.md).[setContent](ImageNode.md#setcontent)
#### Defined in
[packages/core/src/Node.ts:218](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L218)
---
### toJSON
**toJSON**(): `Record`<`string`, `any`\>
Used with built in JSON.stringify
#### Returns
`Record`<`string`, `any`\>
#### Inherited from
[ImageNode](ImageNode.md).[toJSON](ImageNode.md#tojson)
#### Defined in
[packages/core/src/Node.ts:146](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L146)
@@ -0,0 +1,516 @@
---
id: "ImageNode"
title: "Class: ImageNode<T>"
sidebar_label: "ImageNode"
sidebar_position: 0
custom_edit_url: null
---
TextNode is the default node type for text. Most common node type in LlamaIndex.TS
## Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------- |
| `T` | extends [`Metadata`](../#metadata) = [`Metadata`](../#metadata) |
## Hierarchy
- [`TextNode`](TextNode.md)<`T`\>
**`ImageNode`**
↳↳ [`ImageDocument`](ImageDocument.md)
## Constructors
### constructor
**new ImageNode**<`T`\>(`init`)
#### Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------- |
| `T` | extends [`Metadata`](../#metadata) = [`Metadata`](../#metadata) |
#### Parameters
| Name | Type |
| :----- | :----------------------------------------------------------------- |
| `init` | [`ImageNodeConstructorProps`](../#imagenodeconstructorprops)<`T`\> |
#### Overrides
[TextNode](TextNode.md).[constructor](TextNode.md#constructor)
#### Defined in
[packages/core/src/Node.ts:299](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L299)
## Properties
### embedding
`Optional` **embedding**: `number`[]
#### Inherited from
[TextNode](TextNode.md).[embedding](TextNode.md#embedding)
#### Defined in
[packages/core/src/Node.ts:51](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L51)
---
### endCharIdx
`Optional` **endCharIdx**: `number`
#### Inherited from
[TextNode](TextNode.md).[endCharIdx](TextNode.md#endcharidx)
#### Defined in
[packages/core/src/Node.ts:157](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L157)
---
### excludedEmbedMetadataKeys
**excludedEmbedMetadataKeys**: `string`[] = `[]`
#### Inherited from
[TextNode](TextNode.md).[excludedEmbedMetadataKeys](TextNode.md#excludedembedmetadatakeys)
#### Defined in
[packages/core/src/Node.ts:55](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L55)
---
### excludedLlmMetadataKeys
**excludedLlmMetadataKeys**: `string`[] = `[]`
#### Inherited from
[TextNode](TextNode.md).[excludedLlmMetadataKeys](TextNode.md#excludedllmmetadatakeys)
#### Defined in
[packages/core/src/Node.ts:56](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L56)
---
### hash
**hash**: `string` = `""`
#### Inherited from
[TextNode](TextNode.md).[hash](TextNode.md#hash)
#### Defined in
[packages/core/src/Node.ts:58](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L58)
---
### id\_
**id\_**: `string`
The unique ID of the Node/Document. The trailing underscore is here
to avoid collisions with the id keyword in Python.
Set to a UUID by default.
#### Inherited from
[TextNode](TextNode.md).[id\_](TextNode.md#id_)
#### Defined in
[packages/core/src/Node.ts:50](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L50)
---
### image
**image**: [`ImageType`](../#imagetype)
#### Defined in
[packages/core/src/Node.ts:297](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L297)
---
### metadata
**metadata**: `T`
#### Inherited from
[TextNode](TextNode.md).[metadata](TextNode.md#metadata)
#### Defined in
[packages/core/src/Node.ts:54](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L54)
---
### metadataSeparator
**metadataSeparator**: `string` = `"\n"`
#### Inherited from
[TextNode](TextNode.md).[metadataSeparator](TextNode.md#metadataseparator)
#### Defined in
[packages/core/src/Node.ts:160](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L160)
---
### relationships
**relationships**: `Partial`<`Record`<[`NodeRelationship`](../enums/NodeRelationship.md), [`RelatedNodeType`](../#relatednodetype)<`T`\>\>\> = `{}`
#### Inherited from
[TextNode](TextNode.md).[relationships](TextNode.md#relationships)
#### Defined in
[packages/core/src/Node.ts:57](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L57)
---
### startCharIdx
`Optional` **startCharIdx**: `number`
#### Inherited from
[TextNode](TextNode.md).[startCharIdx](TextNode.md#startcharidx)
#### Defined in
[packages/core/src/Node.ts:156](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L156)
---
### text
**text**: `string` = `""`
#### Inherited from
[TextNode](TextNode.md).[text](TextNode.md#text)
#### Defined in
[packages/core/src/Node.ts:155](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L155)
## Accessors
### childNodes
`get` **childNodes**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>[]
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>[]
#### Inherited from
TextNode.childNodes
#### Defined in
[packages/core/src/Node.ts:112](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L112)
---
### nextNode
`get` **nextNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
TextNode.nextNode
#### Defined in
[packages/core/src/Node.ts:92](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L92)
---
### parentNode
`get` **parentNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
TextNode.parentNode
#### Defined in
[packages/core/src/Node.ts:102](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L102)
---
### prevNode
`get` **prevNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
TextNode.prevNode
#### Defined in
[packages/core/src/Node.ts:80](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L80)
---
### sourceNode
`get` **sourceNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
TextNode.sourceNode
#### Defined in
[packages/core/src/Node.ts:70](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L70)
## Methods
### asRelatedNodeInfo
**asRelatedNodeInfo**(): [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
[`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
[TextNode](TextNode.md).[asRelatedNodeInfo](TextNode.md#asrelatednodeinfo)
#### Defined in
[packages/core/src/Node.ts:134](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L134)
---
### generateHash
**generateHash**(): `string`
Generate a hash of the text node.
The ID is not part of the hash as it can change independent of content.
#### Returns
`string`
#### Inherited from
[TextNode](TextNode.md).[generateHash](TextNode.md#generatehash)
#### Defined in
[packages/core/src/Node.ts:178](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L178)
---
### getContent
**getContent**(`metadataMode?`): `string`
#### Parameters
| Name | Type | Default value |
| :------------- | :----------------------------------------- | :------------------ |
| `metadataMode` | [`MetadataMode`](../enums/MetadataMode.md) | `MetadataMode.NONE` |
#### Returns
`string`
#### Inherited from
[TextNode](TextNode.md).[getContent](TextNode.md#getcontent)
#### Defined in
[packages/core/src/Node.ts:192](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L192)
---
### getEmbedding
**getEmbedding**(): `number`[]
#### Returns
`number`[]
#### Inherited from
[TextNode](TextNode.md).[getEmbedding](TextNode.md#getembedding)
#### Defined in
[packages/core/src/Node.ts:126](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L126)
---
### getMetadataStr
**getMetadataStr**(`metadataMode`): `string`
#### Parameters
| Name | Type |
| :------------- | :----------------------------------------- |
| `metadataMode` | [`MetadataMode`](../enums/MetadataMode.md) |
#### Returns
`string`
#### Inherited from
[TextNode](TextNode.md).[getMetadataStr](TextNode.md#getmetadatastr)
#### Defined in
[packages/core/src/Node.ts:197](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L197)
---
### getNodeInfo
**getNodeInfo**(): `Object`
#### Returns
`Object`
| Name | Type |
| :------ | :---------------------- |
| `end` | `undefined` \| `number` |
| `start` | `undefined` \| `number` |
#### Inherited from
[TextNode](TextNode.md).[getNodeInfo](TextNode.md#getnodeinfo)
#### Defined in
[packages/core/src/Node.ts:224](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L224)
---
### getText
**getText**(): `string`
#### Returns
`string`
#### Inherited from
[TextNode](TextNode.md).[getText](TextNode.md#gettext)
#### Defined in
[packages/core/src/Node.ts:228](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L228)
---
### getType
**getType**(): [`ObjectType`](../enums/ObjectType.md)
#### Returns
[`ObjectType`](../enums/ObjectType.md)
#### Overrides
[TextNode](TextNode.md).[getType](TextNode.md#gettype)
#### Defined in
[packages/core/src/Node.ts:304](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L304)
---
### setContent
**setContent**(`value`): `void`
#### Parameters
| Name | Type |
| :------ | :------- |
| `value` | `string` |
#### Returns
`void`
#### Inherited from
[TextNode](TextNode.md).[setContent](TextNode.md#setcontent)
#### Defined in
[packages/core/src/Node.ts:218](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L218)
---
### toJSON
**toJSON**(): `Record`<`string`, `any`\>
Used with built in JSON.stringify
#### Returns
`Record`<`string`, `any`\>
#### Inherited from
[TextNode](TextNode.md).[toJSON](TextNode.md#tojson)
#### Defined in
[packages/core/src/Node.ts:146](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L146)
@@ -0,0 +1,129 @@
---
id: "InMemoryFileSystem"
title: "Class: InMemoryFileSystem"
sidebar_label: "InMemoryFileSystem"
sidebar_position: 0
custom_edit_url: null
---
A filesystem implementation that stores files in memory.
## Implements
- [`GenericFileSystem`](../interfaces/GenericFileSystem.md)
## Constructors
### constructor
**new InMemoryFileSystem**()
## Properties
### files
`Private` **files**: `Record`<`string`, `any`\> = `{}`
#### Defined in
[packages/core/src/storage/FileSystem.ts:25](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/FileSystem.ts#L25)
## Methods
### access
**access**(`path`): `Promise`<`void`\>
#### Parameters
| Name | Type |
| :----- | :------- |
| `path` | `string` |
#### Returns
`Promise`<`void`\>
#### Implementation of
[GenericFileSystem](../interfaces/GenericFileSystem.md).[access](../interfaces/GenericFileSystem.md#access)
#### Defined in
[packages/core/src/storage/FileSystem.ts:38](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/FileSystem.ts#L38)
---
### mkdir
**mkdir**(`path`, `options?`): `Promise`<`void`\>
#### Parameters
| Name | Type |
| :--------- | :------- |
| `path` | `string` |
| `options?` | `any` |
#### Returns
`Promise`<`void`\>
#### Implementation of
[GenericFileSystem](../interfaces/GenericFileSystem.md).[mkdir](../interfaces/GenericFileSystem.md#mkdir)
#### Defined in
[packages/core/src/storage/FileSystem.ts:44](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/FileSystem.ts#L44)
---
### readFile
**readFile**(`path`, `options?`): `Promise`<`string`\>
#### Parameters
| Name | Type |
| :--------- | :------- |
| `path` | `string` |
| `options?` | `any` |
#### Returns
`Promise`<`string`\>
#### Implementation of
[GenericFileSystem](../interfaces/GenericFileSystem.md).[readFile](../interfaces/GenericFileSystem.md#readfile)
#### Defined in
[packages/core/src/storage/FileSystem.ts:31](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/FileSystem.ts#L31)
---
### writeFile
**writeFile**(`path`, `content`, `options?`): `Promise`<`void`\>
#### Parameters
| Name | Type |
| :--------- | :------- |
| `path` | `string` |
| `content` | `string` |
| `options?` | `any` |
#### Returns
`Promise`<`void`\>
#### Implementation of
[GenericFileSystem](../interfaces/GenericFileSystem.md).[writeFile](../interfaces/GenericFileSystem.md#writefile)
#### Defined in
[packages/core/src/storage/FileSystem.ts:27](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/FileSystem.ts#L27)
@@ -0,0 +1,161 @@
---
id: "IndexDict"
title: "Class: IndexDict"
sidebar_label: "IndexDict"
sidebar_position: 0
custom_edit_url: null
---
The underlying structure of each index.
## Hierarchy
- [`IndexStruct`](IndexStruct.md)
**`IndexDict`**
## Constructors
### constructor
**new IndexDict**(`indexId?`, `summary?`)
#### Parameters
| Name | Type | Default value |
| :-------- | :---------- | :------------ |
| `indexId` | `string` | `undefined` |
| `summary` | `undefined` | `undefined` |
#### Inherited from
[IndexStruct](IndexStruct.md).[constructor](IndexStruct.md#constructor)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:19](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L19)
## Properties
### indexId
**indexId**: `string`
#### Inherited from
[IndexStruct](IndexStruct.md).[indexId](IndexStruct.md#indexid)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:16](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L16)
---
### nodesDict
**nodesDict**: `Record`<`string`, [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>\> = `{}`
#### Defined in
[packages/core/src/indices/BaseIndex.ts:46](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L46)
---
### summary
`Optional` **summary**: `string`
#### Inherited from
[IndexStruct](IndexStruct.md).[summary](IndexStruct.md#summary)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:17](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L17)
---
### type
**type**: [`IndexStructType`](../enums/IndexStructType.md) = `IndexStructType.SIMPLE_DICT`
#### Defined in
[packages/core/src/indices/BaseIndex.ts:47](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L47)
## Methods
### addNode
**addNode**(`node`, `textId?`): `void`
#### Parameters
| Name | Type |
| :-------- | :----------------------------------------------------- |
| `node` | [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\> |
| `textId?` | `string` |
#### Returns
`void`
#### Defined in
[packages/core/src/indices/BaseIndex.ts:56](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L56)
---
### delete
**delete**(`nodeId`): `void`
#### Parameters
| Name | Type |
| :------- | :------- |
| `nodeId` | `string` |
#### Returns
`void`
#### Defined in
[packages/core/src/indices/BaseIndex.ts:69](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L69)
---
### getSummary
**getSummary**(): `string`
#### Returns
`string`
#### Overrides
[IndexStruct](IndexStruct.md).[getSummary](IndexStruct.md#getsummary)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:49](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L49)
---
### toJson
**toJson**(): `Record`<`string`, `unknown`\>
#### Returns
`Record`<`string`, `unknown`\>
#### Overrides
[IndexStruct](IndexStruct.md).[toJson](IndexStruct.md#tojson)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:61](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L61)
@@ -0,0 +1,140 @@
---
id: "IndexList"
title: "Class: IndexList"
sidebar_label: "IndexList"
sidebar_position: 0
custom_edit_url: null
---
The underlying structure of each index.
## Hierarchy
- [`IndexStruct`](IndexStruct.md)
**`IndexList`**
## Constructors
### constructor
**new IndexList**(`indexId?`, `summary?`)
#### Parameters
| Name | Type | Default value |
| :-------- | :---------- | :------------ |
| `indexId` | `string` | `undefined` |
| `summary` | `undefined` | `undefined` |
#### Inherited from
[IndexStruct](IndexStruct.md).[constructor](IndexStruct.md#constructor)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:19](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L19)
## Properties
### indexId
**indexId**: `string`
#### Inherited from
[IndexStruct](IndexStruct.md).[indexId](IndexStruct.md#indexid)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:16](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L16)
---
### nodes
**nodes**: `string`[] = `[]`
#### Defined in
[packages/core/src/indices/BaseIndex.ts:94](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L94)
---
### summary
`Optional` **summary**: `string`
#### Inherited from
[IndexStruct](IndexStruct.md).[summary](IndexStruct.md#summary)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:17](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L17)
---
### type
**type**: [`IndexStructType`](../enums/IndexStructType.md) = `IndexStructType.LIST`
#### Defined in
[packages/core/src/indices/BaseIndex.ts:95](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L95)
## Methods
### addNode
**addNode**(`node`): `void`
#### Parameters
| Name | Type |
| :----- | :----------------------------------------------------- |
| `node` | [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\> |
#### Returns
`void`
#### Defined in
[packages/core/src/indices/BaseIndex.ts:97](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L97)
---
### getSummary
**getSummary**(): `string`
#### Returns
`string`
#### Inherited from
[IndexStruct](IndexStruct.md).[getSummary](IndexStruct.md#getsummary)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:31](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L31)
---
### toJson
**toJson**(): `Record`<`string`, `unknown`\>
#### Returns
`Record`<`string`, `unknown`\>
#### Overrides
[IndexStruct](IndexStruct.md).[toJson](IndexStruct.md#tojson)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:101](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L101)
@@ -0,0 +1,514 @@
---
id: "IndexNode"
title: "Class: IndexNode<T>"
sidebar_label: "IndexNode"
sidebar_position: 0
custom_edit_url: null
---
TextNode is the default node type for text. Most common node type in LlamaIndex.TS
## Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------- |
| `T` | extends [`Metadata`](../#metadata) = [`Metadata`](../#metadata) |
## Hierarchy
- [`TextNode`](TextNode.md)<`T`\>
**`IndexNode`**
## Constructors
### constructor
**new IndexNode**<`T`\>(`init?`)
#### Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------- |
| `T` | extends [`Metadata`](../#metadata) = [`Metadata`](../#metadata) |
#### Parameters
| Name | Type |
| :------ | :-------------------------------------------- |
| `init?` | `Partial`<[`IndexNode`](IndexNode.md)<`T`\>\> |
#### Overrides
[TextNode](TextNode.md).[constructor](TextNode.md#constructor)
#### Defined in
[packages/core/src/Node.ts:236](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L236)
## Properties
### embedding
`Optional` **embedding**: `number`[]
#### Inherited from
[TextNode](TextNode.md).[embedding](TextNode.md#embedding)
#### Defined in
[packages/core/src/Node.ts:51](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L51)
---
### endCharIdx
`Optional` **endCharIdx**: `number`
#### Inherited from
[TextNode](TextNode.md).[endCharIdx](TextNode.md#endcharidx)
#### Defined in
[packages/core/src/Node.ts:157](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L157)
---
### excludedEmbedMetadataKeys
**excludedEmbedMetadataKeys**: `string`[] = `[]`
#### Inherited from
[TextNode](TextNode.md).[excludedEmbedMetadataKeys](TextNode.md#excludedembedmetadatakeys)
#### Defined in
[packages/core/src/Node.ts:55](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L55)
---
### excludedLlmMetadataKeys
**excludedLlmMetadataKeys**: `string`[] = `[]`
#### Inherited from
[TextNode](TextNode.md).[excludedLlmMetadataKeys](TextNode.md#excludedllmmetadatakeys)
#### Defined in
[packages/core/src/Node.ts:56](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L56)
---
### hash
**hash**: `string` = `""`
#### Inherited from
[TextNode](TextNode.md).[hash](TextNode.md#hash)
#### Defined in
[packages/core/src/Node.ts:58](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L58)
---
### id\_
**id\_**: `string`
The unique ID of the Node/Document. The trailing underscore is here
to avoid collisions with the id keyword in Python.
Set to a UUID by default.
#### Inherited from
[TextNode](TextNode.md).[id\_](TextNode.md#id_)
#### Defined in
[packages/core/src/Node.ts:50](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L50)
---
### indexId
**indexId**: `string` = `""`
#### Defined in
[packages/core/src/Node.ts:234](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L234)
---
### metadata
**metadata**: `T`
#### Inherited from
[TextNode](TextNode.md).[metadata](TextNode.md#metadata)
#### Defined in
[packages/core/src/Node.ts:54](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L54)
---
### metadataSeparator
**metadataSeparator**: `string` = `"\n"`
#### Inherited from
[TextNode](TextNode.md).[metadataSeparator](TextNode.md#metadataseparator)
#### Defined in
[packages/core/src/Node.ts:160](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L160)
---
### relationships
**relationships**: `Partial`<`Record`<[`NodeRelationship`](../enums/NodeRelationship.md), [`RelatedNodeType`](../#relatednodetype)<`T`\>\>\> = `{}`
#### Inherited from
[TextNode](TextNode.md).[relationships](TextNode.md#relationships)
#### Defined in
[packages/core/src/Node.ts:57](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L57)
---
### startCharIdx
`Optional` **startCharIdx**: `number`
#### Inherited from
[TextNode](TextNode.md).[startCharIdx](TextNode.md#startcharidx)
#### Defined in
[packages/core/src/Node.ts:156](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L156)
---
### text
**text**: `string` = `""`
#### Inherited from
[TextNode](TextNode.md).[text](TextNode.md#text)
#### Defined in
[packages/core/src/Node.ts:155](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L155)
## Accessors
### childNodes
`get` **childNodes**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>[]
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>[]
#### Inherited from
TextNode.childNodes
#### Defined in
[packages/core/src/Node.ts:112](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L112)
---
### nextNode
`get` **nextNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
TextNode.nextNode
#### Defined in
[packages/core/src/Node.ts:92](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L92)
---
### parentNode
`get` **parentNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
TextNode.parentNode
#### Defined in
[packages/core/src/Node.ts:102](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L102)
---
### prevNode
`get` **prevNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
TextNode.prevNode
#### Defined in
[packages/core/src/Node.ts:80](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L80)
---
### sourceNode
`get` **sourceNode**(): `undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
`undefined` \| [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
TextNode.sourceNode
#### Defined in
[packages/core/src/Node.ts:70](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L70)
## Methods
### asRelatedNodeInfo
**asRelatedNodeInfo**(): [`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Returns
[`RelatedNodeInfo`](../interfaces/RelatedNodeInfo.md)<`T`\>
#### Inherited from
[TextNode](TextNode.md).[asRelatedNodeInfo](TextNode.md#asrelatednodeinfo)
#### Defined in
[packages/core/src/Node.ts:134](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L134)
---
### generateHash
**generateHash**(): `string`
Generate a hash of the text node.
The ID is not part of the hash as it can change independent of content.
#### Returns
`string`
#### Inherited from
[TextNode](TextNode.md).[generateHash](TextNode.md#generatehash)
#### Defined in
[packages/core/src/Node.ts:178](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L178)
---
### getContent
**getContent**(`metadataMode?`): `string`
#### Parameters
| Name | Type | Default value |
| :------------- | :----------------------------------------- | :------------------ |
| `metadataMode` | [`MetadataMode`](../enums/MetadataMode.md) | `MetadataMode.NONE` |
#### Returns
`string`
#### Inherited from
[TextNode](TextNode.md).[getContent](TextNode.md#getcontent)
#### Defined in
[packages/core/src/Node.ts:192](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L192)
---
### getEmbedding
**getEmbedding**(): `number`[]
#### Returns
`number`[]
#### Inherited from
[TextNode](TextNode.md).[getEmbedding](TextNode.md#getembedding)
#### Defined in
[packages/core/src/Node.ts:126](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L126)
---
### getMetadataStr
**getMetadataStr**(`metadataMode`): `string`
#### Parameters
| Name | Type |
| :------------- | :----------------------------------------- |
| `metadataMode` | [`MetadataMode`](../enums/MetadataMode.md) |
#### Returns
`string`
#### Inherited from
[TextNode](TextNode.md).[getMetadataStr](TextNode.md#getmetadatastr)
#### Defined in
[packages/core/src/Node.ts:197](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L197)
---
### getNodeInfo
**getNodeInfo**(): `Object`
#### Returns
`Object`
| Name | Type |
| :------ | :---------------------- |
| `end` | `undefined` \| `number` |
| `start` | `undefined` \| `number` |
#### Inherited from
[TextNode](TextNode.md).[getNodeInfo](TextNode.md#getnodeinfo)
#### Defined in
[packages/core/src/Node.ts:224](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L224)
---
### getText
**getText**(): `string`
#### Returns
`string`
#### Inherited from
[TextNode](TextNode.md).[getText](TextNode.md#gettext)
#### Defined in
[packages/core/src/Node.ts:228](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L228)
---
### getType
**getType**(): [`ObjectType`](../enums/ObjectType.md)
#### Returns
[`ObjectType`](../enums/ObjectType.md)
#### Overrides
[TextNode](TextNode.md).[getType](TextNode.md#gettype)
#### Defined in
[packages/core/src/Node.ts:245](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L245)
---
### setContent
**setContent**(`value`): `void`
#### Parameters
| Name | Type |
| :------ | :------- |
| `value` | `string` |
#### Returns
`void`
#### Inherited from
[TextNode](TextNode.md).[setContent](TextNode.md#setcontent)
#### Defined in
[packages/core/src/Node.ts:218](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L218)
---
### toJSON
**toJSON**(): `Record`<`string`, `any`\>
Used with built in JSON.stringify
#### Returns
`Record`<`string`, `any`\>
#### Inherited from
[TextNode](TextNode.md).[toJSON](TextNode.md#tojson)
#### Defined in
[packages/core/src/Node.ts:146](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Node.ts#L146)
@@ -0,0 +1,84 @@
---
id: "IndexStruct"
title: "Class: IndexStruct"
sidebar_label: "IndexStruct"
sidebar_position: 0
custom_edit_url: null
---
The underlying structure of each index.
## Hierarchy
- **`IndexStruct`**
↳ [`IndexDict`](IndexDict.md)
↳ [`IndexList`](IndexList.md)
↳ [`KeywordTable`](KeywordTable.md)
## Constructors
### constructor
**new IndexStruct**(`indexId?`, `summary?`)
#### Parameters
| Name | Type | Default value |
| :-------- | :---------- | :------------ |
| `indexId` | `string` | `undefined` |
| `summary` | `undefined` | `undefined` |
#### Defined in
[packages/core/src/indices/BaseIndex.ts:19](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L19)
## Properties
### indexId
**indexId**: `string`
#### Defined in
[packages/core/src/indices/BaseIndex.ts:16](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L16)
---
### summary
`Optional` **summary**: `string`
#### Defined in
[packages/core/src/indices/BaseIndex.ts:17](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L17)
## Methods
### getSummary
**getSummary**(): `string`
#### Returns
`string`
#### Defined in
[packages/core/src/indices/BaseIndex.ts:31](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L31)
---
### toJson
**toJson**(): `Record`<`string`, `unknown`\>
#### Returns
`Record`<`string`, `unknown`\>
#### Defined in
[packages/core/src/indices/BaseIndex.ts:24](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L24)
@@ -0,0 +1,162 @@
---
id: "KeywordTable"
title: "Class: KeywordTable"
sidebar_label: "KeywordTable"
sidebar_position: 0
custom_edit_url: null
---
The underlying structure of each index.
## Hierarchy
- [`IndexStruct`](IndexStruct.md)
**`KeywordTable`**
## Constructors
### constructor
**new KeywordTable**(`indexId?`, `summary?`)
#### Parameters
| Name | Type | Default value |
| :-------- | :---------- | :------------ |
| `indexId` | `string` | `undefined` |
| `summary` | `undefined` | `undefined` |
#### Inherited from
[IndexStruct](IndexStruct.md).[constructor](IndexStruct.md#constructor)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:19](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L19)
## Properties
### indexId
**indexId**: `string`
#### Inherited from
[IndexStruct](IndexStruct.md).[indexId](IndexStruct.md#indexid)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:16](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L16)
---
### summary
`Optional` **summary**: `string`
#### Inherited from
[IndexStruct](IndexStruct.md).[summary](IndexStruct.md#summary)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:17](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L17)
---
### table
**table**: `Map`<`string`, `Set`<`string`\>\>
#### Defined in
[packages/core/src/indices/BaseIndex.ts:112](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L112)
---
### type
**type**: [`IndexStructType`](../enums/IndexStructType.md) = `IndexStructType.KEYWORD_TABLE`
#### Defined in
[packages/core/src/indices/BaseIndex.ts:113](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L113)
## Methods
### addNode
**addNode**(`keywords`, `nodeId`): `void`
#### Parameters
| Name | Type |
| :--------- | :--------- |
| `keywords` | `string`[] |
| `nodeId` | `string` |
#### Returns
`void`
#### Defined in
[packages/core/src/indices/BaseIndex.ts:114](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L114)
---
### deleteNode
**deleteNode**(`keywords`, `nodeId`): `void`
#### Parameters
| Name | Type |
| :--------- | :--------- |
| `keywords` | `string`[] |
| `nodeId` | `string` |
#### Returns
`void`
#### Defined in
[packages/core/src/indices/BaseIndex.ts:123](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L123)
---
### getSummary
**getSummary**(): `string`
#### Returns
`string`
#### Inherited from
[IndexStruct](IndexStruct.md).[getSummary](IndexStruct.md#getsummary)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:31](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L31)
---
### toJson
**toJson**(): `Record`<`string`, `unknown`\>
#### Returns
`Record`<`string`, `unknown`\>
#### Overrides
[IndexStruct](IndexStruct.md).[toJson](IndexStruct.md#tojson)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:131](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L131)
@@ -0,0 +1,382 @@
---
id: "KeywordTableIndex"
title: "Class: KeywordTableIndex"
sidebar_label: "KeywordTableIndex"
sidebar_position: 0
custom_edit_url: null
---
The KeywordTableIndex, an index that extracts keywords from each Node and builds a mapping from each keyword to the corresponding Nodes of that keyword.
## Hierarchy
- [`BaseIndex`](BaseIndex.md)<[`KeywordTable`](KeywordTable.md)\>
**`KeywordTableIndex`**
## Constructors
### constructor
**new KeywordTableIndex**(`init`)
#### Parameters
| Name | Type |
| :----- | :------------------------------------------------------------------------------------ |
| `init` | [`BaseIndexInit`](../interfaces/BaseIndexInit.md)<[`KeywordTable`](KeywordTable.md)\> |
#### Overrides
[BaseIndex](BaseIndex.md).[constructor](BaseIndex.md#constructor)
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndex.ts:49](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndex.ts#L49)
## Properties
### docStore
**docStore**: [`BaseDocumentStore`](BaseDocumentStore.md)
#### Inherited from
[BaseIndex](BaseIndex.md).[docStore](BaseIndex.md#docstore)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:156](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L156)
---
### indexStore
`Optional` **indexStore**: [`BaseIndexStore`](BaseIndexStore.md)
#### Inherited from
[BaseIndex](BaseIndex.md).[indexStore](BaseIndex.md#indexstore)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:158](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L158)
---
### indexStruct
**indexStruct**: [`KeywordTable`](KeywordTable.md)
#### Inherited from
[BaseIndex](BaseIndex.md).[indexStruct](BaseIndex.md#indexstruct)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:159](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L159)
---
### serviceContext
**serviceContext**: [`ServiceContext`](../interfaces/ServiceContext.md)
#### Inherited from
[BaseIndex](BaseIndex.md).[serviceContext](BaseIndex.md#servicecontext)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:154](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L154)
---
### storageContext
**storageContext**: [`StorageContext`](../interfaces/StorageContext.md)
#### Inherited from
[BaseIndex](BaseIndex.md).[storageContext](BaseIndex.md#storagecontext)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:155](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L155)
---
### vectorStore
`Optional` **vectorStore**: [`VectorStore`](../interfaces/VectorStore.md)
#### Inherited from
[BaseIndex](BaseIndex.md).[vectorStore](BaseIndex.md#vectorstore)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:157](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L157)
## Methods
### asQueryEngine
**asQueryEngine**(`options?`): [`BaseQueryEngine`](../interfaces/BaseQueryEngine.md)
Create a new query engine from the index. It will also create a retriever
and response synthezier if they are not provided.
#### Parameters
| Name | Type | Description |
| :----------------------------- | :------------------------------------------------------------------ | :--------------------------------------------------------------- |
| `options?` | `Object` | you can supply your own custom Retriever and ResponseSynthesizer |
| `options.nodePostprocessors?` | [`BaseNodePostprocessor`](../interfaces/BaseNodePostprocessor.md)[] | - |
| `options.preFilters?` | `unknown` | - |
| `options.responseSynthesizer?` | [`ResponseSynthesizer`](ResponseSynthesizer.md) | - |
| `options.retriever?` | [`BaseRetriever`](../interfaces/BaseRetriever.md) | - |
#### Returns
[`BaseQueryEngine`](../interfaces/BaseQueryEngine.md)
#### Overrides
[BaseIndex](BaseIndex.md).[asQueryEngine](BaseIndex.md#asqueryengine)
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndex.ts:130](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndex.ts#L130)
---
### asRetriever
**asRetriever**(`options?`): [`BaseRetriever`](../interfaces/BaseRetriever.md)
Create a new retriever from the index.
#### Parameters
| Name | Type |
| :--------- | :---- |
| `options?` | `any` |
#### Returns
[`BaseRetriever`](../interfaces/BaseRetriever.md)
#### Overrides
[BaseIndex](BaseIndex.md).[asRetriever](BaseIndex.md#asretriever)
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndex.ts:119](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndex.ts#L119)
---
### deleteNode
**deleteNode**(`nodeId`): `void`
#### Parameters
| Name | Type |
| :------- | :------- |
| `nodeId` | `string` |
#### Returns
`void`
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndex.ts:224](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndex.ts#L224)
---
### deleteNodes
**deleteNodes**(`nodeIds`, `deleteFromDocStore`): `Promise`<`void`\>
#### Parameters
| Name | Type |
| :------------------- | :--------- |
| `nodeIds` | `string`[] |
| `deleteFromDocStore` | `boolean` |
#### Returns
`Promise`<`void`\>
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndex.ts:242](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndex.ts#L242)
---
### deleteRefDoc
**deleteRefDoc**(`refDocId`, `deleteFromDocStore?`): `Promise`<`void`\>
#### Parameters
| Name | Type |
| :-------------------- | :-------- |
| `refDocId` | `string` |
| `deleteFromDocStore?` | `boolean` |
#### Returns
`Promise`<`void`\>
#### Overrides
[BaseIndex](BaseIndex.md).[deleteRefDoc](BaseIndex.md#deleterefdoc)
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndex.ts:256](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndex.ts#L256)
---
### insert
**insert**(`document`): `Promise`<`void`\>
Insert a document into the index.
#### Parameters
| Name | Type |
| :--------- | :----------------------------------------------------- |
| `document` | [`Document`](Document.md)<[`Metadata`](../#metadata)\> |
#### Returns
`Promise`<`void`\>
#### Inherited from
[BaseIndex](BaseIndex.md).[insert](BaseIndex.md#insert)
#### Defined in
[packages/core/src/indices/BaseIndex.ts:190](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/BaseIndex.ts#L190)
---
### insertNodes
**insertNodes**(`nodes`): `Promise`<`void`\>
#### Parameters
| Name | Type |
| :------ | :------------------------------------------------------- |
| `nodes` | [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>[] |
#### Returns
`Promise`<`void`\>
#### Overrides
[BaseIndex](BaseIndex.md).[insertNodes](BaseIndex.md#insertnodes)
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndex.ts:214](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndex.ts#L214)
---
### buildIndexFromNodes
`Static` **buildIndexFromNodes**(`nodes`, `docStore`, `serviceContext`): `Promise`<[`KeywordTable`](KeywordTable.md)\>
Get keywords for nodes and place them into the index.
#### Parameters
| Name | Type |
| :--------------- | :------------------------------------------------------- |
| `nodes` | [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>[] |
| `docStore` | [`BaseDocumentStore`](BaseDocumentStore.md) |
| `serviceContext` | [`ServiceContext`](../interfaces/ServiceContext.md) |
#### Returns
`Promise`<[`KeywordTable`](KeywordTable.md)\>
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndex.ts:197](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndex.ts#L197)
---
### extractKeywords
`Static` **extractKeywords**(`text`, `serviceContext`): `Promise`<`Set`<`string`\>\>
#### Parameters
| Name | Type |
| :--------------- | :-------------------------------------------------- |
| `text` | `string` |
| `serviceContext` | [`ServiceContext`](../interfaces/ServiceContext.md) |
#### Returns
`Promise`<`Set`<`string`\>\>
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndex.ts:145](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndex.ts#L145)
---
### fromDocuments
`Static` **fromDocuments**(`documents`, `args?`): `Promise`<[`KeywordTableIndex`](KeywordTableIndex.md)\>
High level API: split documents, get keywords, and build index.
#### Parameters
| Name | Type |
| :--------------------- | :------------------------------------------------------- |
| `documents` | [`Document`](Document.md)<[`Metadata`](../#metadata)\>[] |
| `args` | `Object` |
| `args.serviceContext?` | [`ServiceContext`](../interfaces/ServiceContext.md) |
| `args.storageContext?` | [`StorageContext`](../interfaces/StorageContext.md) |
#### Returns
`Promise`<[`KeywordTableIndex`](KeywordTableIndex.md)\>
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndex.ts:164](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndex.ts#L164)
---
### init
`Static` **init**(`options`): `Promise`<[`KeywordTableIndex`](KeywordTableIndex.md)\>
#### Parameters
| Name | Type |
| :-------- | :-------------------- |
| `options` | `KeywordIndexOptions` |
#### Returns
`Promise`<[`KeywordTableIndex`](KeywordTableIndex.md)\>
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndex.ts:53](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndex.ts#L53)
@@ -0,0 +1,244 @@
---
id: "KeywordTableLLMRetriever"
title: "Class: KeywordTableLLMRetriever"
sidebar_label: "KeywordTableLLMRetriever"
sidebar_position: 0
custom_edit_url: null
---
## Hierarchy
- `BaseKeywordTableRetriever`
**`KeywordTableLLMRetriever`**
## Constructors
### constructor
**new KeywordTableLLMRetriever**(`«destructured»`)
#### Parameters
| Name | Type |
| :------------------------------- | :------------------------------------------ |
| `«destructured»` | `Object` |
|  `index` | [`KeywordTableIndex`](KeywordTableIndex.md) |
|  `keywordExtractTemplate?` | (`__namedParameters`: `Object`) => `string` |
|  `maxKeywordsPerQuery` | `number` |
|  `numChunksPerQuery` | `number` |
|  `queryKeywordExtractTemplate?` | (`__namedParameters`: `Object`) => `string` |
#### Inherited from
BaseKeywordTableRetriever.constructor
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:31](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L31)
## Properties
### docstore
`Protected` **docstore**: [`BaseDocumentStore`](BaseDocumentStore.md)
#### Inherited from
BaseKeywordTableRetriever.docstore
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:23](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L23)
---
### index
`Protected` **index**: [`KeywordTableIndex`](KeywordTableIndex.md)
#### Inherited from
BaseKeywordTableRetriever.index
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:21](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L21)
---
### indexStruct
`Protected` **indexStruct**: [`KeywordTable`](KeywordTable.md)
#### Inherited from
BaseKeywordTableRetriever.indexStruct
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:22](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L22)
---
### keywordExtractTemplate
`Protected` **keywordExtractTemplate**: (`__namedParameters`: `Object`) => `string`
#### Type declaration
▸ (`«destructured»`): `string`
##### Parameters
| Name | Type |
| :--------------- | :------- |
| `«destructured»` | `Object` |
##### Returns
`string`
#### Inherited from
BaseKeywordTableRetriever.keywordExtractTemplate
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:28](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L28)
---
### maxKeywordsPerQuery
`Protected` **maxKeywordsPerQuery**: `number`
#### Inherited from
BaseKeywordTableRetriever.maxKeywordsPerQuery
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:26](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L26)
---
### numChunksPerQuery
`Protected` **numChunksPerQuery**: `number`
#### Inherited from
BaseKeywordTableRetriever.numChunksPerQuery
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:27](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L27)
---
### queryKeywordExtractTemplate
`Protected` **queryKeywordExtractTemplate**: (`__namedParameters`: `Object`) => `string`
#### Type declaration
▸ (`«destructured»`): `string`
##### Parameters
| Name | Type |
| :--------------- | :------- |
| `«destructured»` | `Object` |
##### Returns
`string`
#### Inherited from
BaseKeywordTableRetriever.queryKeywordExtractTemplate
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:29](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L29)
---
### serviceContext
`Protected` **serviceContext**: [`ServiceContext`](../interfaces/ServiceContext.md)
#### Inherited from
BaseKeywordTableRetriever.serviceContext
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:24](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L24)
## Methods
### getKeywords
**getKeywords**(`query`): `Promise`<`string`[]\>
#### Parameters
| Name | Type |
| :------ | :------- |
| `query` | `string` |
#### Returns
`Promise`<`string`[]\>
#### Overrides
BaseKeywordTableRetriever.getKeywords
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:88](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L88)
---
### getServiceContext
**getServiceContext**(): [`ServiceContext`](../interfaces/ServiceContext.md)
#### Returns
[`ServiceContext`](../interfaces/ServiceContext.md)
#### Inherited from
BaseKeywordTableRetriever.getServiceContext
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:81](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L81)
---
### retrieve
**retrieve**(`query`): `Promise`<[`NodeWithScore`](../interfaces/NodeWithScore.md)<[`Metadata`](../#metadata)\>[]\>
#### Parameters
| Name | Type |
| :------ | :------- |
| `query` | `string` |
#### Returns
`Promise`<[`NodeWithScore`](../interfaces/NodeWithScore.md)<[`Metadata`](../#metadata)\>[]\>
#### Inherited from
BaseKeywordTableRetriever.retrieve
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:59](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L59)
@@ -0,0 +1,244 @@
---
id: "KeywordTableRAKERetriever"
title: "Class: KeywordTableRAKERetriever"
sidebar_label: "KeywordTableRAKERetriever"
sidebar_position: 0
custom_edit_url: null
---
## Hierarchy
- `BaseKeywordTableRetriever`
**`KeywordTableRAKERetriever`**
## Constructors
### constructor
**new KeywordTableRAKERetriever**(`«destructured»`)
#### Parameters
| Name | Type |
| :------------------------------- | :------------------------------------------ |
| `«destructured»` | `Object` |
|  `index` | [`KeywordTableIndex`](KeywordTableIndex.md) |
|  `keywordExtractTemplate?` | (`__namedParameters`: `Object`) => `string` |
|  `maxKeywordsPerQuery` | `number` |
|  `numChunksPerQuery` | `number` |
|  `queryKeywordExtractTemplate?` | (`__namedParameters`: `Object`) => `string` |
#### Inherited from
BaseKeywordTableRetriever.constructor
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:31](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L31)
## Properties
### docstore
`Protected` **docstore**: [`BaseDocumentStore`](BaseDocumentStore.md)
#### Inherited from
BaseKeywordTableRetriever.docstore
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:23](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L23)
---
### index
`Protected` **index**: [`KeywordTableIndex`](KeywordTableIndex.md)
#### Inherited from
BaseKeywordTableRetriever.index
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:21](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L21)
---
### indexStruct
`Protected` **indexStruct**: [`KeywordTable`](KeywordTable.md)
#### Inherited from
BaseKeywordTableRetriever.indexStruct
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:22](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L22)
---
### keywordExtractTemplate
`Protected` **keywordExtractTemplate**: (`__namedParameters`: `Object`) => `string`
#### Type declaration
▸ (`«destructured»`): `string`
##### Parameters
| Name | Type |
| :--------------- | :------- |
| `«destructured»` | `Object` |
##### Returns
`string`
#### Inherited from
BaseKeywordTableRetriever.keywordExtractTemplate
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:28](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L28)
---
### maxKeywordsPerQuery
`Protected` **maxKeywordsPerQuery**: `number`
#### Inherited from
BaseKeywordTableRetriever.maxKeywordsPerQuery
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:26](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L26)
---
### numChunksPerQuery
`Protected` **numChunksPerQuery**: `number`
#### Inherited from
BaseKeywordTableRetriever.numChunksPerQuery
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:27](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L27)
---
### queryKeywordExtractTemplate
`Protected` **queryKeywordExtractTemplate**: (`__namedParameters`: `Object`) => `string`
#### Type declaration
▸ (`«destructured»`): `string`
##### Parameters
| Name | Type |
| :--------------- | :------- |
| `«destructured»` | `Object` |
##### Returns
`string`
#### Inherited from
BaseKeywordTableRetriever.queryKeywordExtractTemplate
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:29](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L29)
---
### serviceContext
`Protected` **serviceContext**: [`ServiceContext`](../interfaces/ServiceContext.md)
#### Inherited from
BaseKeywordTableRetriever.serviceContext
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:24](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L24)
## Methods
### getKeywords
**getKeywords**(`query`): `Promise`<`string`[]\>
#### Parameters
| Name | Type |
| :------ | :------- |
| `query` | `string` |
#### Returns
`Promise`<`string`[]\>
#### Overrides
BaseKeywordTableRetriever.getKeywords
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:114](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L114)
---
### getServiceContext
**getServiceContext**(): [`ServiceContext`](../interfaces/ServiceContext.md)
#### Returns
[`ServiceContext`](../interfaces/ServiceContext.md)
#### Inherited from
BaseKeywordTableRetriever.getServiceContext
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:81](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L81)
---
### retrieve
**retrieve**(`query`): `Promise`<[`NodeWithScore`](../interfaces/NodeWithScore.md)<[`Metadata`](../#metadata)\>[]\>
#### Parameters
| Name | Type |
| :------ | :------- |
| `query` | `string` |
#### Returns
`Promise`<[`NodeWithScore`](../interfaces/NodeWithScore.md)<[`Metadata`](../#metadata)\>[]\>
#### Inherited from
BaseKeywordTableRetriever.retrieve
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:59](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L59)
@@ -0,0 +1,244 @@
---
id: "KeywordTableSimpleRetriever"
title: "Class: KeywordTableSimpleRetriever"
sidebar_label: "KeywordTableSimpleRetriever"
sidebar_position: 0
custom_edit_url: null
---
## Hierarchy
- `BaseKeywordTableRetriever`
**`KeywordTableSimpleRetriever`**
## Constructors
### constructor
**new KeywordTableSimpleRetriever**(`«destructured»`)
#### Parameters
| Name | Type |
| :------------------------------- | :------------------------------------------ |
| `«destructured»` | `Object` |
|  `index` | [`KeywordTableIndex`](KeywordTableIndex.md) |
|  `keywordExtractTemplate?` | (`__namedParameters`: `Object`) => `string` |
|  `maxKeywordsPerQuery` | `number` |
|  `numChunksPerQuery` | `number` |
|  `queryKeywordExtractTemplate?` | (`__namedParameters`: `Object`) => `string` |
#### Inherited from
BaseKeywordTableRetriever.constructor
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:31](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L31)
## Properties
### docstore
`Protected` **docstore**: [`BaseDocumentStore`](BaseDocumentStore.md)
#### Inherited from
BaseKeywordTableRetriever.docstore
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:23](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L23)
---
### index
`Protected` **index**: [`KeywordTableIndex`](KeywordTableIndex.md)
#### Inherited from
BaseKeywordTableRetriever.index
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:21](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L21)
---
### indexStruct
`Protected` **indexStruct**: [`KeywordTable`](KeywordTable.md)
#### Inherited from
BaseKeywordTableRetriever.indexStruct
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:22](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L22)
---
### keywordExtractTemplate
`Protected` **keywordExtractTemplate**: (`__namedParameters`: `Object`) => `string`
#### Type declaration
▸ (`«destructured»`): `string`
##### Parameters
| Name | Type |
| :--------------- | :------- |
| `«destructured»` | `Object` |
##### Returns
`string`
#### Inherited from
BaseKeywordTableRetriever.keywordExtractTemplate
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:28](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L28)
---
### maxKeywordsPerQuery
`Protected` **maxKeywordsPerQuery**: `number`
#### Inherited from
BaseKeywordTableRetriever.maxKeywordsPerQuery
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:26](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L26)
---
### numChunksPerQuery
`Protected` **numChunksPerQuery**: `number`
#### Inherited from
BaseKeywordTableRetriever.numChunksPerQuery
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:27](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L27)
---
### queryKeywordExtractTemplate
`Protected` **queryKeywordExtractTemplate**: (`__namedParameters`: `Object`) => `string`
#### Type declaration
▸ (`«destructured»`): `string`
##### Parameters
| Name | Type |
| :--------------- | :------- |
| `«destructured»` | `Object` |
##### Returns
`string`
#### Inherited from
BaseKeywordTableRetriever.queryKeywordExtractTemplate
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:29](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L29)
---
### serviceContext
`Protected` **serviceContext**: [`ServiceContext`](../interfaces/ServiceContext.md)
#### Inherited from
BaseKeywordTableRetriever.serviceContext
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:24](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L24)
## Methods
### getKeywords
**getKeywords**(`query`): `Promise`<`string`[]\>
#### Parameters
| Name | Type |
| :------ | :------- |
| `query` | `string` |
#### Returns
`Promise`<`string`[]\>
#### Overrides
BaseKeywordTableRetriever.getKeywords
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:105](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L105)
---
### getServiceContext
**getServiceContext**(): [`ServiceContext`](../interfaces/ServiceContext.md)
#### Returns
[`ServiceContext`](../interfaces/ServiceContext.md)
#### Inherited from
BaseKeywordTableRetriever.getServiceContext
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:81](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L81)
---
### retrieve
**retrieve**(`query`): `Promise`<[`NodeWithScore`](../interfaces/NodeWithScore.md)<[`Metadata`](../#metadata)\>[]\>
#### Parameters
| Name | Type |
| :------ | :------- |
| `query` | `string` |
#### Returns
`Promise`<[`NodeWithScore`](../interfaces/NodeWithScore.md)<[`Metadata`](../#metadata)\>[]\>
#### Inherited from
BaseKeywordTableRetriever.retrieve
#### Defined in
[packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts:59](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts#L59)
@@ -0,0 +1,98 @@
---
id: "LLMQuestionGenerator"
title: "Class: LLMQuestionGenerator"
sidebar_label: "LLMQuestionGenerator"
sidebar_position: 0
custom_edit_url: null
---
LLMQuestionGenerator uses the LLM to generate new questions for the LLM using tools and a user query.
## Implements
- [`BaseQuestionGenerator`](../interfaces/BaseQuestionGenerator.md)
## Constructors
### constructor
**new LLMQuestionGenerator**(`init?`)
#### Parameters
| Name | Type |
| :------ | :------------------------------------------------------------ |
| `init?` | `Partial`<[`LLMQuestionGenerator`](LLMQuestionGenerator.md)\> |
#### Defined in
[packages/core/src/QuestionGenerator.ts:34](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/QuestionGenerator.ts#L34)
## Properties
### llm
**llm**: [`LLM`](../interfaces/LLM.md)
#### Defined in
[packages/core/src/QuestionGenerator.ts:30](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/QuestionGenerator.ts#L30)
---
### outputParser
**outputParser**: [`BaseOutputParser`](../interfaces/BaseOutputParser.md)<[`StructuredOutput`](../interfaces/StructuredOutput.md)<[`SubQuestion`](../interfaces/SubQuestion.md)[]\>\>
#### Defined in
[packages/core/src/QuestionGenerator.ts:32](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/QuestionGenerator.ts#L32)
---
### prompt
**prompt**: (`__namedParameters`: `Object`) => `string`
#### Type declaration
▸ (`«destructured»`): `string`
##### Parameters
| Name | Type |
| :--------------- | :------- |
| `«destructured»` | `Object` |
##### Returns
`string`
#### Defined in
[packages/core/src/QuestionGenerator.ts:31](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/QuestionGenerator.ts#L31)
## Methods
### generate
**generate**(`tools`, `query`): `Promise`<[`SubQuestion`](../interfaces/SubQuestion.md)[]\>
#### Parameters
| Name | Type |
| :------ | :------------------------------------------------ |
| `tools` | [`ToolMetadata`](../interfaces/ToolMetadata.md)[] |
| `query` | `string` |
#### Returns
`Promise`<[`SubQuestion`](../interfaces/SubQuestion.md)[]\>
#### Implementation of
[BaseQuestionGenerator](../interfaces/BaseQuestionGenerator.md).[generate](../interfaces/BaseQuestionGenerator.md#generate)
#### Defined in
[packages/core/src/QuestionGenerator.ts:40](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/QuestionGenerator.ts#L40)
@@ -0,0 +1,325 @@
---
id: "LlamaDeuce"
title: "Class: LlamaDeuce"
sidebar_label: "LlamaDeuce"
sidebar_position: 0
custom_edit_url: null
---
Llama2 LLM implementation
## Implements
- [`LLM`](../interfaces/LLM.md)
## Constructors
### constructor
**new LlamaDeuce**(`init?`)
#### Parameters
| Name | Type |
| :------ | :---------------------------------------- |
| `init?` | `Partial`<[`LlamaDeuce`](LlamaDeuce.md)\> |
#### Defined in
[packages/core/src/llm/LLM.ts:434](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L434)
## Properties
### chatStrategy
**chatStrategy**: [`DeuceChatStrategy`](../enums/DeuceChatStrategy.md)
#### Defined in
[packages/core/src/llm/LLM.ts:427](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L427)
---
### hasStreaming
**hasStreaming**: `boolean`
#### Implementation of
[LLM](../interfaces/LLM.md).[hasStreaming](../interfaces/LLM.md#hasstreaming)
#### Defined in
[packages/core/src/llm/LLM.ts:432](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L432)
---
### maxTokens
`Optional` **maxTokens**: `number`
#### Defined in
[packages/core/src/llm/LLM.ts:430](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L430)
---
### model
**model**: `"Llama-2-70b-chat-old"` \| `"Llama-2-70b-chat-4bit"` \| `"Llama-2-13b-chat-old"` \| `"Llama-2-13b-chat-4bit"` \| `"Llama-2-7b-chat-old"` \| `"Llama-2-7b-chat-4bit"`
#### Defined in
[packages/core/src/llm/LLM.ts:426](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L426)
---
### replicateSession
**replicateSession**: `ReplicateSession`
#### Defined in
[packages/core/src/llm/LLM.ts:431](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L431)
---
### temperature
**temperature**: `number`
#### Defined in
[packages/core/src/llm/LLM.ts:428](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L428)
---
### topP
**topP**: `number`
#### Defined in
[packages/core/src/llm/LLM.ts:429](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L429)
## Accessors
### metadata
`get` **metadata**(): `Object`
#### Returns
`Object`
| Name | Type |
| :-------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `contextWindow` | `number` |
| `maxTokens` | `undefined` \| `number` |
| `model` | `"Llama-2-70b-chat-old"` \| `"Llama-2-70b-chat-4bit"` \| `"Llama-2-13b-chat-old"` \| `"Llama-2-13b-chat-4bit"` \| `"Llama-2-7b-chat-old"` \| `"Llama-2-7b-chat-4bit"` |
| `temperature` | `number` |
| `tokenizer` | `undefined` |
| `topP` | `number` |
#### Implementation of
[LLM](../interfaces/LLM.md).[metadata](../interfaces/LLM.md#metadata)
#### Defined in
[packages/core/src/llm/LLM.ts:454](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L454)
## Methods
### chat
**chat**<`T`, `R`\>(`messages`, `_parentEvent?`, `streaming?`): `Promise`<`R`\>
Get a chat response from the LLM
#### Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------------------------------------------------------------- |
| `T` | extends `undefined` \| `boolean` = `undefined` |
| `R` | `T` extends `true` ? `AsyncGenerator`<`string`, `void`, `unknown`\> : [`ChatResponse`](../interfaces/ChatResponse.md) |
#### Parameters
| Name | Type | Description |
| :-------------- | :---------------------------------------------- | :----------------------------------------------------------------------------------------------- |
| `messages` | [`ChatMessage`](../interfaces/ChatMessage.md)[] | The return type of chat() and complete() are set by the "streaming" parameter being set to True. |
| `_parentEvent?` | [`Event`](../interfaces/Event.md) | - |
| `streaming?` | `T` | - |
#### Returns
`Promise`<`R`\>
#### Implementation of
[LLM](../interfaces/LLM.md).[chat](../interfaces/LLM.md#chat)
#### Defined in
[packages/core/src/llm/LLM.ts:592](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L592)
---
### complete
**complete**<`T`, `R`\>(`prompt`, `parentEvent?`, `streaming?`): `Promise`<`R`\>
Get a prompt completion from the LLM
#### Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------------------------------------------------------------- |
| `T` | extends `undefined` \| `boolean` = `undefined` |
| `R` | `T` extends `true` ? `AsyncGenerator`<`string`, `void`, `unknown`\> : [`ChatResponse`](../interfaces/ChatResponse.md) |
#### Parameters
| Name | Type | Description |
| :------------- | :-------------------------------- | :--------------------- |
| `prompt` | `string` | the prompt to complete |
| `parentEvent?` | [`Event`](../interfaces/Event.md) | - |
| `streaming?` | `T` | - |
#### Returns
`Promise`<`R`\>
#### Implementation of
[LLM](../interfaces/LLM.md).[complete](../interfaces/LLM.md#complete)
#### Defined in
[packages/core/src/llm/LLM.ts:632](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L632)
---
### mapMessageTypeA16Z
**mapMessageTypeA16Z**(`messageType`): `string`
#### Parameters
| Name | Type |
| :------------ | :------------------------------- |
| `messageType` | [`MessageType`](../#messagetype) |
#### Returns
`string`
#### Defined in
[packages/core/src/llm/LLM.ts:501](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L501)
---
### mapMessagesToPrompt
**mapMessagesToPrompt**(`messages`): `Object`
#### Parameters
| Name | Type |
| :--------- | :---------------------------------------------- |
| `messages` | [`ChatMessage`](../interfaces/ChatMessage.md)[] |
#### Returns
`Object`
| Name | Type |
| :------------- | :------- |
| `prompt` | `string` |
| `systemPrompt` | `any` |
#### Defined in
[packages/core/src/llm/LLM.ts:465](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L465)
---
### mapMessagesToPromptA16Z
**mapMessagesToPromptA16Z**(`messages`): `Object`
#### Parameters
| Name | Type |
| :--------- | :---------------------------------------------- |
| `messages` | [`ChatMessage`](../interfaces/ChatMessage.md)[] |
#### Returns
`Object`
| Name | Type |
| :------------- | :---------- |
| `prompt` | `string` |
| `systemPrompt` | `undefined` |
#### Defined in
[packages/core/src/llm/LLM.ts:487](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L487)
---
### mapMessagesToPromptMeta
**mapMessagesToPromptMeta**(`messages`, `opts?`): `Object`
#### Parameters
| Name | Type |
| :-------------------- | :---------------------------------------------- |
| `messages` | [`ChatMessage`](../interfaces/ChatMessage.md)[] |
| `opts?` | `Object` |
| `opts.replicate4Bit?` | `boolean` |
| `opts.withBos?` | `boolean` |
| `opts.withNewlines?` | `boolean` |
#### Returns
`Object`
| Name | Type |
| :------------- | :------- |
| `prompt` | `string` |
| `systemPrompt` | `any` |
#### Defined in
[packages/core/src/llm/LLM.ts:514](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L514)
---
### tokens
**tokens**(`messages`): `number`
Calculates the number of tokens needed for the given chat messages
#### Parameters
| Name | Type |
| :--------- | :---------------------------------------------- |
| `messages` | [`ChatMessage`](../interfaces/ChatMessage.md)[] |
#### Returns
`number`
#### Implementation of
[LLM](../interfaces/LLM.md).[tokens](../interfaces/LLM.md#tokens)
#### Defined in
[packages/core/src/llm/LLM.ts:450](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L450)
@@ -0,0 +1,161 @@
---
id: "MarkdownReader"
title: "Class: MarkdownReader"
sidebar_label: "MarkdownReader"
sidebar_position: 0
custom_edit_url: null
---
Extract text from markdown files.
Returns dictionary with keys as headers and values as the text between headers.
## Implements
- [`BaseReader`](../interfaces/BaseReader.md)
## Constructors
### constructor
**new MarkdownReader**(`removeHyperlinks?`, `removeImages?`)
#### Parameters
| Name | Type | Default value | Description |
| :------------------ | :-------- | :------------ | :---------------------------------------------- |
| `removeHyperlinks?` | `boolean` | `true` | Indicates whether hyperlinks should be removed. |
| `removeImages?` | `boolean` | `true` | Indicates whether images should be removed. |
#### Defined in
[packages/core/src/readers/MarkdownReader.ts:19](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/MarkdownReader.ts#L19)
## Properties
### \_removeHyperlinks
`Private` **\_removeHyperlinks**: `boolean`
#### Defined in
[packages/core/src/readers/MarkdownReader.ts:12](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/MarkdownReader.ts#L12)
---
### \_removeImages
`Private` **\_removeImages**: `boolean`
#### Defined in
[packages/core/src/readers/MarkdownReader.ts:13](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/MarkdownReader.ts#L13)
## Methods
### loadData
**loadData**(`file`, `fs?`): `Promise`<[`Document`](Document.md)<[`Metadata`](../#metadata)\>[]\>
#### Parameters
| Name | Type | Default value |
| :----- | :-------------------------------------------------------- | :------------ |
| `file` | `string` | `undefined` |
| `fs` | [`GenericFileSystem`](../interfaces/GenericFileSystem.md) | `DEFAULT_FS` |
#### Returns
`Promise`<[`Document`](Document.md)<[`Metadata`](../#metadata)\>[]\>
#### Implementation of
[BaseReader](../interfaces/BaseReader.md).[loadData](../interfaces/BaseReader.md#loaddata)
#### Defined in
[packages/core/src/readers/MarkdownReader.ts:90](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/MarkdownReader.ts#L90)
---
### markdownToTups
**markdownToTups**(`markdownText`): `MarkdownTuple`[]
Convert a markdown file to a dictionary.
The keys are the headers and the values are the text under each header.
#### Parameters
| Name | Type | Description |
| :------------- | :------- | :---------------------------- |
| `markdownText` | `string` | The markdown text to convert. |
#### Returns
`MarkdownTuple`[]
- An array of tuples, where each tuple contains a header (or null) and its corresponding text.
#### Defined in
[packages/core/src/readers/MarkdownReader.ts:30](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/MarkdownReader.ts#L30)
---
### parseTups
**parseTups**(`content`): `MarkdownTuple`[]
#### Parameters
| Name | Type |
| :-------- | :------- |
| `content` | `string` |
#### Returns
`MarkdownTuple`[]
#### Defined in
[packages/core/src/readers/MarkdownReader.ts:79](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/MarkdownReader.ts#L79)
---
### removeHyperlinks
**removeHyperlinks**(`content`): `string`
#### Parameters
| Name | Type |
| :-------- | :------- |
| `content` | `string` |
#### Returns
`string`
#### Defined in
[packages/core/src/readers/MarkdownReader.ts:74](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/MarkdownReader.ts#L74)
---
### removeImages
**removeImages**(`content`): `string`
#### Parameters
| Name | Type |
| :-------- | :------- |
| `content` | `string` |
#### Returns
`string`
#### Defined in
[packages/core/src/readers/MarkdownReader.ts:69](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/MarkdownReader.ts#L69)
@@ -0,0 +1,223 @@
---
id: "MongoDBAtlasVectorSearch"
title: "Class: MongoDBAtlasVectorSearch"
sidebar_label: "MongoDBAtlasVectorSearch"
sidebar_position: 0
custom_edit_url: null
---
## Implements
- [`VectorStore`](../interfaces/VectorStore.md)
## Constructors
### constructor
**new MongoDBAtlasVectorSearch**(`init`)
#### Parameters
| Name | Type |
| :----- | :-------------------------------------------------------------------------------------------------------------------------- |
| `init` | `Partial`<[`MongoDBAtlasVectorSearch`](MongoDBAtlasVectorSearch.md)\> & { `collectionName`: `string` ; `dbName`: `string` } |
#### Defined in
[packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts:36](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts#L36)
## Properties
### collection
`Private` **collection**: `Collection`<`Document`\>
#### Defined in
[packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts:34](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts#L34)
---
### embeddingKey
**embeddingKey**: `string`
#### Defined in
[packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts:29](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts#L29)
---
### flatMetadata
**flatMetadata**: `boolean` = `true`
#### Defined in
[packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts:25](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts#L25)
---
### idKey
**idKey**: `string`
#### Defined in
[packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts:30](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts#L30)
---
### indexName
**indexName**: `string`
#### Defined in
[packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts:28](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts#L28)
---
### insertOptions
`Optional` **insertOptions**: `BulkWriteOptions`
#### Defined in
[packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts:33](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts#L33)
---
### metadataKey
**metadataKey**: `string`
#### Defined in
[packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts:32](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts#L32)
---
### mongodbClient
**mongodbClient**: `MongoClient`
#### Defined in
[packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts:27](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts#L27)
---
### storesText
**storesText**: `boolean` = `true`
#### Implementation of
[VectorStore](../interfaces/VectorStore.md).[storesText](../interfaces/VectorStore.md#storestext)
#### Defined in
[packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts:24](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts#L24)
---
### textKey
**textKey**: `string`
#### Defined in
[packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts:31](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts#L31)
## Accessors
### client
`get` **client**(): `any`
#### Returns
`any`
#### Implementation of
VectorStore.client
#### Defined in
[packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts:103](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts#L103)
## Methods
### add
**add**(`nodes`): `Promise`<`string`[]\>
#### Parameters
| Name | Type |
| :------ | :------------------------------------------------------- |
| `nodes` | [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>[] |
#### Returns
`Promise`<`string`[]\>
#### Implementation of
[VectorStore](../interfaces/VectorStore.md).[add](../interfaces/VectorStore.md#add)
#### Defined in
[packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts:65](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts#L65)
---
### delete
**delete**(`refDocId`, `deleteOptions?`): `Promise`<`void`\>
#### Parameters
| Name | Type |
| :--------------- | :------- |
| `refDocId` | `string` |
| `deleteOptions?` | `any` |
#### Returns
`Promise`<`void`\>
#### Implementation of
[VectorStore](../interfaces/VectorStore.md).[delete](../interfaces/VectorStore.md#delete)
#### Defined in
[packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts:94](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts#L94)
---
### query
**query**(`query`, `options?`): `Promise`<[`VectorStoreQueryResult`](../interfaces/VectorStoreQueryResult.md)\>
#### Parameters
| Name | Type |
| :--------- | :------------------------------------------------------ |
| `query` | [`VectorStoreQuery`](../interfaces/VectorStoreQuery.md) |
| `options?` | `any` |
#### Returns
`Promise`<[`VectorStoreQueryResult`](../interfaces/VectorStoreQueryResult.md)\>
#### Implementation of
[VectorStore](../interfaces/VectorStore.md).[query](../interfaces/VectorStore.md#query)
#### Defined in
[packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts:107](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts#L107)
@@ -0,0 +1,139 @@
---
id: "MultiModalEmbedding"
title: "Class: MultiModalEmbedding"
sidebar_label: "MultiModalEmbedding"
sidebar_position: 0
custom_edit_url: null
---
## Hierarchy
- [`BaseEmbedding`](BaseEmbedding.md)
**`MultiModalEmbedding`**
↳↳ [`ClipEmbedding`](ClipEmbedding.md)
## Constructors
### constructor
**new MultiModalEmbedding**()
#### Inherited from
[BaseEmbedding](BaseEmbedding.md).[constructor](BaseEmbedding.md#constructor)
## Methods
### getImageEmbedding
`Abstract` **getImageEmbedding**(`images`): `Promise`<`number`[]\>
#### Parameters
| Name | Type |
| :------- | :--------------------------- |
| `images` | [`ImageType`](../#imagetype) |
#### Returns
`Promise`<`number`[]\>
#### Defined in
[packages/core/src/embeddings/MultiModalEmbedding.ts:9](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/MultiModalEmbedding.ts#L9)
---
### getImageEmbeddings
**getImageEmbeddings**(`images`): `Promise`<`number`[][]\>
#### Parameters
| Name | Type |
| :------- | :----------------------------- |
| `images` | [`ImageType`](../#imagetype)[] |
#### Returns
`Promise`<`number`[][]\>
#### Defined in
[packages/core/src/embeddings/MultiModalEmbedding.ts:11](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/MultiModalEmbedding.ts#L11)
---
### getQueryEmbedding
`Abstract` **getQueryEmbedding**(`query`): `Promise`<`number`[]\>
#### Parameters
| Name | Type |
| :------ | :------- |
| `query` | `string` |
#### Returns
`Promise`<`number`[]\>
#### Inherited from
[BaseEmbedding](BaseEmbedding.md).[getQueryEmbedding](BaseEmbedding.md#getqueryembedding)
#### Defined in
[packages/core/src/embeddings/types.ts:23](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/types.ts#L23)
---
### getTextEmbedding
`Abstract` **getTextEmbedding**(`text`): `Promise`<`number`[]\>
#### Parameters
| Name | Type |
| :----- | :------- |
| `text` | `string` |
#### Returns
`Promise`<`number`[]\>
#### Inherited from
[BaseEmbedding](BaseEmbedding.md).[getTextEmbedding](BaseEmbedding.md#gettextembedding)
#### Defined in
[packages/core/src/embeddings/types.ts:22](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/types.ts#L22)
---
### similarity
**similarity**(`embedding1`, `embedding2`, `mode?`): `number`
#### Parameters
| Name | Type | Default value |
| :----------- | :--------------------------------------------- | :----------------------- |
| `embedding1` | `number`[] | `undefined` |
| `embedding2` | `number`[] | `undefined` |
| `mode` | [`SimilarityType`](../enums/SimilarityType.md) | `SimilarityType.DEFAULT` |
#### Returns
`number`
#### Inherited from
[BaseEmbedding](BaseEmbedding.md).[similarity](BaseEmbedding.md#similarity)
#### Defined in
[packages/core/src/embeddings/types.ts:14](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/types.ts#L14)
@@ -0,0 +1,135 @@
---
id: "NotionReader"
title: "Class: NotionReader"
sidebar_label: "NotionReader"
sidebar_position: 0
custom_edit_url: null
---
Notion pages are retrieved recursively and converted to Document objects.
Notion Database can also be loaded, and [the serialization method can be customized](https://github.com/TomPenguin/notion-md-crawler/tree/main).
[Note] To use this reader, must be created the Notion integration must be created in advance
Please refer to [this document](https://www.notion.so/help/create-integrations-with-the-notion-api) for details.
## Implements
- [`BaseReader`](../interfaces/BaseReader.md)
## Constructors
### constructor
**new NotionReader**(`options`)
Constructor for the NotionReader class
#### Parameters
| Name | Type | Description |
| :-------- | :-------------------- | :----------------------------------- |
| `options` | `NotionReaderOptions` | Configuration options for the reader |
#### Defined in
[packages/core/src/readers/NotionReader.ts:33](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/NotionReader.ts#L33)
## Properties
### crawl
`Private` **crawl**: (`rootPageId`: `string`) => `Promise`<`Pages`\>
#### Type declaration
▸ (`rootPageId`): `Promise`<`Pages`\>
##### Parameters
| Name | Type |
| :----------- | :------- |
| `rootPageId` | `string` |
##### Returns
`Promise`<`Pages`\>
#### Defined in
[packages/core/src/readers/NotionReader.ts:27](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/NotionReader.ts#L27)
## Methods
### loadData
**loadData**(`rootPageId`): `Promise`<[`Document`](Document.md)<[`Metadata`](../#metadata)\>[]\>
Loads recursively Notion pages and converts them to an array of Document objects
#### Parameters
| Name | Type | Description |
| :----------- | :------- | :---------------------- |
| `rootPageId` | `string` | The root Notion page ID |
#### Returns
`Promise`<[`Document`](Document.md)<[`Metadata`](../#metadata)\>[]\>
A Promise that resolves to an array of Document objects
#### Implementation of
[BaseReader](../interfaces/BaseReader.md).[loadData](../interfaces/BaseReader.md#loaddata)
#### Defined in
[packages/core/src/readers/NotionReader.ts:63](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/NotionReader.ts#L63)
---
### loadPages
**loadPages**(`rootPageId`): `Promise`<`Pages`\>
Loads recursively the Notion page with the specified root page ID.
#### Parameters
| Name | Type | Description |
| :----------- | :------- | :---------------------- |
| `rootPageId` | `string` | The root Notion page ID |
#### Returns
`Promise`<`Pages`\>
A Promise that resolves to a Pages object(Convertible with the `toDocuments` method)
#### Defined in
[packages/core/src/readers/NotionReader.ts:54](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/NotionReader.ts#L54)
---
### toDocuments
**toDocuments**(`pages`): [`Document`](Document.md)<[`Metadata`](../#metadata)\>[]
Converts Pages to an array of Document objects
#### Parameters
| Name | Type | Description |
| :------ | :------ | :-------------------------------------------------------- |
| `pages` | `Pages` | The Notion pages to convert (Return value of `loadPages`) |
#### Returns
[`Document`](Document.md)<[`Metadata`](../#metadata)\>[]
An array of Document objects
#### Defined in
[packages/core/src/readers/NotionReader.ts:42](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/NotionReader.ts#L42)
@@ -0,0 +1,338 @@
---
id: "OpenAI"
title: "Class: OpenAI"
sidebar_label: "OpenAI"
sidebar_position: 0
custom_edit_url: null
---
OpenAI LLM implementation
## Implements
- [`LLM`](../interfaces/LLM.md)
## Constructors
### constructor
**new OpenAI**(`init?`)
#### Parameters
| Name | Type |
| :------ | :-------------------------------------------------------------------- |
| `init?` | `Partial`<[`OpenAI`](OpenAI.md)\> & { `azure?`: `AzureOpenAIConfig` } |
#### Defined in
[packages/core/src/llm/LLM.ts:152](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L152)
## Properties
### additionalChatOptions
`Optional` **additionalChatOptions**: `Omit`<`Partial`<`ChatCompletionCreateParams`\>, `"model"` \| `"temperature"` \| `"max_tokens"` \| `"messages"` \| `"top_p"` \| `"streaming"`\>
#### Defined in
[packages/core/src/llm/LLM.ts:135](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L135)
---
### additionalSessionOptions
`Optional` **additionalSessionOptions**: `Omit`<`Partial`<`ClientOptions`\>, `"apiKey"` \| `"timeout"` \| `"maxRetries"`\>
#### Defined in
[packages/core/src/llm/LLM.ts:145](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L145)
---
### apiKey
`Optional` **apiKey**: `string` = `undefined`
#### Defined in
[packages/core/src/llm/LLM.ts:141](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L141)
---
### callbackManager
`Optional` **callbackManager**: [`CallbackManager`](CallbackManager.md)
#### Defined in
[packages/core/src/llm/LLM.ts:150](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L150)
---
### hasStreaming
**hasStreaming**: `boolean` = `true`
#### Implementation of
[LLM](../interfaces/LLM.md).[hasStreaming](../interfaces/LLM.md#hasstreaming)
#### Defined in
[packages/core/src/llm/LLM.ts:128](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L128)
---
### maxRetries
**maxRetries**: `number`
#### Defined in
[packages/core/src/llm/LLM.ts:142](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L142)
---
### maxTokens
`Optional` **maxTokens**: `number`
#### Defined in
[packages/core/src/llm/LLM.ts:134](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L134)
---
### model
**model**: `"gpt-3.5-turbo"` \| `"gpt-3.5-turbo-1106"` \| `"gpt-3.5-turbo-16k"` \| `"gpt-4"` \| `"gpt-4-32k"` \| `"gpt-4-1106-preview"` \| `"gpt-4-vision-preview"`
#### Defined in
[packages/core/src/llm/LLM.ts:131](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L131)
---
### session
**session**: `OpenAISession`
#### Defined in
[packages/core/src/llm/LLM.ts:144](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L144)
---
### temperature
**temperature**: `number`
#### Defined in
[packages/core/src/llm/LLM.ts:132](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L132)
---
### timeout
`Optional` **timeout**: `number`
#### Defined in
[packages/core/src/llm/LLM.ts:143](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L143)
---
### topP
**topP**: `number`
#### Defined in
[packages/core/src/llm/LLM.ts:133](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L133)
## Accessors
### metadata
`get` **metadata**(): `Object`
#### Returns
`Object`
| Name | Type |
| :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `contextWindow` | `number` |
| `maxTokens` | `undefined` \| `number` |
| `model` | `"gpt-3.5-turbo"` \| `"gpt-3.5-turbo-1106"` \| `"gpt-3.5-turbo-16k"` \| `"gpt-4"` \| `"gpt-4-32k"` \| `"gpt-4-1106-preview"` \| `"gpt-4-vision-preview"` |
| `temperature` | `number` |
| `tokenizer` | [`CL100K_BASE`](../enums/Tokenizers.md#cl100k_base) |
| `topP` | `number` |
#### Implementation of
[LLM](../interfaces/LLM.md).[metadata](../interfaces/LLM.md#metadata)
#### Defined in
[packages/core/src/llm/LLM.ts:206](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L206)
## Methods
### chat
**chat**<`T`, `R`\>(`messages`, `parentEvent?`, `streaming?`): `Promise`<`R`\>
Get a chat response from the LLM
#### Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------------------------------------------------------------- |
| `T` | extends `undefined` \| `boolean` = `undefined` |
| `R` | `T` extends `true` ? `AsyncGenerator`<`string`, `void`, `unknown`\> : [`ChatResponse`](../interfaces/ChatResponse.md) |
#### Parameters
| Name | Type | Description |
| :------------- | :---------------------------------------------- | :----------------------------------------------------------------------------------------------- |
| `messages` | [`ChatMessage`](../interfaces/ChatMessage.md)[] | The return type of chat() and complete() are set by the "streaming" parameter being set to True. |
| `parentEvent?` | [`Event`](../interfaces/Event.md) | - |
| `streaming?` | `T` | - |
#### Returns
`Promise`<`R`\>
#### Implementation of
[LLM](../interfaces/LLM.md).[chat](../interfaces/LLM.md#chat)
#### Defined in
[packages/core/src/llm/LLM.ts:249](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L249)
---
### complete
**complete**<`T`, `R`\>(`prompt`, `parentEvent?`, `streaming?`): `Promise`<`R`\>
Get a prompt completion from the LLM
#### Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------------------------------------------------------------- |
| `T` | extends `undefined` \| `boolean` = `undefined` |
| `R` | `T` extends `true` ? `AsyncGenerator`<`string`, `void`, `unknown`\> : [`ChatResponse`](../interfaces/ChatResponse.md) |
#### Parameters
| Name | Type | Description |
| :------------- | :-------------------------------- | :--------------------- |
| `prompt` | `string` | the prompt to complete |
| `parentEvent?` | [`Event`](../interfaces/Event.md) | - |
| `streaming?` | `T` | - |
#### Returns
`Promise`<`R`\>
#### Implementation of
[LLM](../interfaces/LLM.md).[complete](../interfaces/LLM.md#complete)
#### Defined in
[packages/core/src/llm/LLM.ts:286](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L286)
---
### mapMessageType
**mapMessageType**(`messageType`): `"function"` \| `"user"` \| `"assistant"` \| `"system"`
#### Parameters
| Name | Type |
| :------------ | :------------------------------- |
| `messageType` | [`MessageType`](../#messagetype) |
#### Returns
`"function"` \| `"user"` \| `"assistant"` \| `"system"`
#### Defined in
[packages/core/src/llm/LLM.ts:232](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L232)
---
### streamChat
`Protected` **streamChat**(`messages`, `parentEvent?`): `AsyncGenerator`<`string`, `void`, `unknown`\>
#### Parameters
| Name | Type |
| :------------- | :---------------------------------------------- |
| `messages` | [`ChatMessage`](../interfaces/ChatMessage.md)[] |
| `parentEvent?` | [`Event`](../interfaces/Event.md) |
#### Returns
`AsyncGenerator`<`string`, `void`, `unknown`\>
#### Defined in
[packages/core/src/llm/LLM.ts:300](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L300)
---
### streamComplete
`Protected` **streamComplete**(`query`, `parentEvent?`): `AsyncGenerator`<`string`, `void`, `unknown`\>
#### Parameters
| Name | Type |
| :------------- | :-------------------------------- |
| `query` | `string` |
| `parentEvent?` | [`Event`](../interfaces/Event.md) |
#### Returns
`AsyncGenerator`<`string`, `void`, `unknown`\>
#### Defined in
[packages/core/src/llm/LLM.ts:362](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L362)
---
### tokens
**tokens**(`messages`): `number`
Calculates the number of tokens needed for the given chat messages
#### Parameters
| Name | Type |
| :--------- | :---------------------------------------------- |
| `messages` | [`ChatMessage`](../interfaces/ChatMessage.md)[] |
#### Returns
`number`
#### Implementation of
[LLM](../interfaces/LLM.md).[tokens](../interfaces/LLM.md#tokens)
#### Defined in
[packages/core/src/llm/LLM.ts:217](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L217)
@@ -0,0 +1,187 @@
---
id: "OpenAIEmbedding"
title: "Class: OpenAIEmbedding"
sidebar_label: "OpenAIEmbedding"
sidebar_position: 0
custom_edit_url: null
---
## Hierarchy
- [`BaseEmbedding`](BaseEmbedding.md)
**`OpenAIEmbedding`**
## Constructors
### constructor
**new OpenAIEmbedding**(`init?`)
#### Parameters
| Name | Type |
| :------ | :-------------------------------------------------------------------------------------- |
| `init?` | `Partial`<[`OpenAIEmbedding`](OpenAIEmbedding.md)\> & { `azure?`: `AzureOpenAIConfig` } |
#### Overrides
[BaseEmbedding](BaseEmbedding.md).[constructor](BaseEmbedding.md#constructor)
#### Defined in
[packages/core/src/embeddings/OpenAIEmbedding.ts:30](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/OpenAIEmbedding.ts#L30)
## Properties
### additionalSessionOptions
`Optional` **additionalSessionOptions**: `Omit`<`Partial`<`ClientOptions`\>, `"apiKey"` \| `"timeout"` \| `"maxRetries"`\>
#### Defined in
[packages/core/src/embeddings/OpenAIEmbedding.ts:23](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/OpenAIEmbedding.ts#L23)
---
### apiKey
`Optional` **apiKey**: `string` = `undefined`
#### Defined in
[packages/core/src/embeddings/OpenAIEmbedding.ts:20](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/OpenAIEmbedding.ts#L20)
---
### maxRetries
**maxRetries**: `number`
#### Defined in
[packages/core/src/embeddings/OpenAIEmbedding.ts:21](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/OpenAIEmbedding.ts#L21)
---
### model
**model**: [`TEXT_EMBED_ADA_002`](../enums/OpenAIEmbeddingModelType.md#text_embed_ada_002)
#### Defined in
[packages/core/src/embeddings/OpenAIEmbedding.ts:17](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/OpenAIEmbedding.ts#L17)
---
### session
**session**: `OpenAISession`
#### Defined in
[packages/core/src/embeddings/OpenAIEmbedding.ts:28](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/OpenAIEmbedding.ts#L28)
---
### timeout
`Optional` **timeout**: `number`
#### Defined in
[packages/core/src/embeddings/OpenAIEmbedding.ts:22](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/OpenAIEmbedding.ts#L22)
## Methods
### getOpenAIEmbedding
`Private` **getOpenAIEmbedding**(`input`): `Promise`<`number`[]\>
#### Parameters
| Name | Type |
| :------ | :------- |
| `input` | `string` |
#### Returns
`Promise`<`number`[]\>
#### Defined in
[packages/core/src/embeddings/OpenAIEmbedding.ts:76](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/OpenAIEmbedding.ts#L76)
---
### getQueryEmbedding
**getQueryEmbedding**(`query`): `Promise`<`number`[]\>
#### Parameters
| Name | Type |
| :------ | :------- |
| `query` | `string` |
#### Returns
`Promise`<`number`[]\>
#### Overrides
[BaseEmbedding](BaseEmbedding.md).[getQueryEmbedding](BaseEmbedding.md#getqueryembedding)
#### Defined in
[packages/core/src/embeddings/OpenAIEmbedding.ts:89](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/OpenAIEmbedding.ts#L89)
---
### getTextEmbedding
**getTextEmbedding**(`text`): `Promise`<`number`[]\>
#### Parameters
| Name | Type |
| :----- | :------- |
| `text` | `string` |
#### Returns
`Promise`<`number`[]\>
#### Overrides
[BaseEmbedding](BaseEmbedding.md).[getTextEmbedding](BaseEmbedding.md#gettextembedding)
#### Defined in
[packages/core/src/embeddings/OpenAIEmbedding.ts:85](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/OpenAIEmbedding.ts#L85)
---
### similarity
**similarity**(`embedding1`, `embedding2`, `mode?`): `number`
#### Parameters
| Name | Type | Default value |
| :----------- | :--------------------------------------------- | :----------------------- |
| `embedding1` | `number`[] | `undefined` |
| `embedding2` | `number`[] | `undefined` |
| `mode` | [`SimilarityType`](../enums/SimilarityType.md) | `SimilarityType.DEFAULT` |
#### Returns
`number`
#### Inherited from
[BaseEmbedding](BaseEmbedding.md).[similarity](BaseEmbedding.md#similarity)
#### Defined in
[packages/core/src/embeddings/types.ts:14](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/embeddings/types.ts#L14)
@@ -0,0 +1,44 @@
---
id: "PDFReader"
title: "Class: PDFReader"
sidebar_label: "PDFReader"
sidebar_position: 0
custom_edit_url: null
---
Read the text of a PDF
## Implements
- [`BaseReader`](../interfaces/BaseReader.md)
## Constructors
### constructor
**new PDFReader**()
## Methods
### loadData
**loadData**(`file`, `fs?`): `Promise`<[`Document`](Document.md)<[`Metadata`](../#metadata)\>[]\>
#### Parameters
| Name | Type | Default value |
| :----- | :-------------------------------------------------------- | :------------ |
| `file` | `string` | `undefined` |
| `fs` | [`GenericFileSystem`](../interfaces/GenericFileSystem.md) | `DEFAULT_FS` |
#### Returns
`Promise`<[`Document`](Document.md)<[`Metadata`](../#metadata)\>[]\>
#### Implementation of
[BaseReader](../interfaces/BaseReader.md).[loadData](../interfaces/BaseReader.md#loaddata)
#### Defined in
[packages/core/src/readers/PDFReader.ts:11](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/PDFReader.ts#L11)
@@ -0,0 +1,293 @@
---
id: "PGVectorStore"
title: "Class: PGVectorStore"
sidebar_label: "PGVectorStore"
sidebar_position: 0
custom_edit_url: null
---
Provides support for writing and querying vector data in Postgres.
## Implements
- [`VectorStore`](../interfaces/VectorStore.md)
## Constructors
### constructor
**new PGVectorStore**()
#### Defined in
[packages/core/src/storage/vectorStore/PGVectorStore.ts:40](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/PGVectorStore.ts#L40)
## Properties
### collection
`Private` **collection**: `string` = `""`
#### Defined in
[packages/core/src/storage/vectorStore/PGVectorStore.ts:18](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/PGVectorStore.ts#L18)
---
### db
`Optional` **db**: `Client`
#### Defined in
[packages/core/src/storage/vectorStore/PGVectorStore.ts:38](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/PGVectorStore.ts#L38)
---
### storesText
**storesText**: `boolean` = `true`
#### Implementation of
[VectorStore](../interfaces/VectorStore.md).[storesText](../interfaces/VectorStore.md#storestext)
#### Defined in
[packages/core/src/storage/vectorStore/PGVectorStore.ts:16](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/PGVectorStore.ts#L16)
## Methods
### add
**add**(`embeddingResults`): `Promise`<`string`[]\>
Adds vector record(s) to the table.
NOTE: Uses the collection property controlled by setCollection/getCollection.
#### Parameters
| Name | Type | Description |
| :----------------- | :------------------------------------------------------- | :-------------------------------------------------------------- |
| `embeddingResults` | [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>[] | The Nodes to be inserted, optionally including metadata tuples. |
#### Returns
`Promise`<`string`[]\>
A list of zero or more id values for the created records.
#### Implementation of
[VectorStore](../interfaces/VectorStore.md).[add](../interfaces/VectorStore.md#add)
#### Defined in
[packages/core/src/storage/vectorStore/PGVectorStore.ts:144](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/PGVectorStore.ts#L144)
---
### checkSchema
`Private` **checkSchema**(`db`): `Promise`<`Client`\>
#### Parameters
| Name | Type |
| :--- | :------- |
| `db` | `Client` |
#### Returns
`Promise`<`Client`\>
#### Defined in
[packages/core/src/storage/vectorStore/PGVectorStore.ts:90](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/PGVectorStore.ts#L90)
---
### clearCollection
**clearCollection**(): `Promise`<`QueryResult`<`any`\>\>
Delete all vector records for the specified collection.
NOTE: Uses the collection property controlled by setCollection/getCollection.
#### Returns
`Promise`<`QueryResult`<`any`\>\>
The result of the delete query.
#### Defined in
[packages/core/src/storage/vectorStore/PGVectorStore.ts:128](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/PGVectorStore.ts#L128)
---
### client
**client**(): `Promise`<`Client`\>
Connects to the database specified in environment vars.
This method also checks and creates the vector extension,
the destination table and indexes if not found.
#### Returns
`Promise`<`Client`\>
A connection to the database, or the error encountered while connecting/setting up.
#### Implementation of
[VectorStore](../interfaces/VectorStore.md).[client](../interfaces/VectorStore.md#client)
#### Defined in
[packages/core/src/storage/vectorStore/PGVectorStore.ts:119](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/PGVectorStore.ts#L119)
---
### delete
**delete**(`refDocId`, `deleteKwargs?`): `Promise`<`void`\>
Deletes a single record from the database by id.
NOTE: Uses the collection property controlled by setCollection/getCollection.
#### Parameters
| Name | Type | Description |
| :-------------- | :------- | :---------------------------------------------------- |
| `refDocId` | `string` | Unique identifier for the record to delete. |
| `deleteKwargs?` | `any` | Required by VectorStore interface. Currently ignored. |
#### Returns
`Promise`<`void`\>
Promise that resolves if the delete query did not throw an error.
#### Implementation of
[VectorStore](../interfaces/VectorStore.md).[delete](../interfaces/VectorStore.md#delete)
#### Defined in
[packages/core/src/storage/vectorStore/PGVectorStore.ts:196](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/PGVectorStore.ts#L196)
---
### getCollection
**getCollection**(): `string`
Getter for the collection property.
Using a collection allows for simple segregation of vector data,
e.g. by user, source, or access-level.
Leave/set blank to ignore the collection value when querying.
#### Returns
`string`
The currently-set collection value. Default is empty string.
#### Defined in
[packages/core/src/storage/vectorStore/PGVectorStore.ts:60](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/PGVectorStore.ts#L60)
---
### getDb
`Private` **getDb**(): `Promise`<`Client`\>
#### Returns
`Promise`<`Client`\>
#### Defined in
[packages/core/src/storage/vectorStore/PGVectorStore.ts:64](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/PGVectorStore.ts#L64)
---
### persist
**persist**(`persistPath`, `fs?`): `Promise`<`void`\>
Required by VectorStore interface. Currently ignored.
#### Parameters
| Name | Type |
| :------------ | :-------------------------------------------------------- |
| `persistPath` | `string` |
| `fs?` | [`GenericFileSystem`](../interfaces/GenericFileSystem.md) |
#### Returns
`Promise`<`void`\>
Resolved Promise.
#### Defined in
[packages/core/src/storage/vectorStore/PGVectorStore.ts:269](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/PGVectorStore.ts#L269)
---
### query
**query**(`query`, `options?`): `Promise`<[`VectorStoreQueryResult`](../interfaces/VectorStoreQueryResult.md)\>
Query the vector store for the closest matching data to the query embeddings
#### Parameters
| Name | Type | Description |
| :--------- | :------------------------------------------------------ | :---------------------------------------------------- |
| `query` | [`VectorStoreQuery`](../interfaces/VectorStoreQuery.md) | The VectorStoreQuery to be used |
| `options?` | `any` | Required by VectorStore interface. Currently ignored. |
#### Returns
`Promise`<[`VectorStoreQueryResult`](../interfaces/VectorStoreQueryResult.md)\>
Zero or more Document instances with data from the vector store.
#### Implementation of
[VectorStore](../interfaces/VectorStore.md).[query](../interfaces/VectorStore.md#query)
#### Defined in
[packages/core/src/storage/vectorStore/PGVectorStore.ts:217](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/PGVectorStore.ts#L217)
---
### setCollection
**setCollection**(`coll`): `void`
Setter for the collection property.
Using a collection allows for simple segregation of vector data,
e.g. by user, source, or access-level.
Leave/set blank to ignore the collection value when querying.
#### Parameters
| Name | Type | Description |
| :----- | :------- | :----------------------- |
| `coll` | `string` | Name for the collection. |
#### Returns
`void`
#### Defined in
[packages/core/src/storage/vectorStore/PGVectorStore.ts:49](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/storage/vectorStore/PGVectorStore.ts#L49)
@@ -0,0 +1,105 @@
---
id: "PapaCSVReader"
title: "Class: PapaCSVReader"
sidebar_label: "PapaCSVReader"
sidebar_position: 0
custom_edit_url: null
---
papaparse-based csv parser
**`Implements`**
BaseReader
## Implements
- [`BaseReader`](../interfaces/BaseReader.md)
## Constructors
### constructor
**new PapaCSVReader**(`concatRows?`, `colJoiner?`, `rowJoiner?`, `papaConfig?`)
Constructs a new instance of the class.
#### Parameters
| Name | Type | Default value | Description |
| :------------ | :--------------------------------- | :------------ | :-------------------------------------------------------------------------------------------------------------------------- |
| `concatRows?` | `boolean` | `true` | whether to concatenate all rows into one document.If set to False, a Document will be created for each row.True by default. |
| `colJoiner?` | `string` | `", "` | - |
| `rowJoiner?` | `string` | `"\n"` | Separator to use for joining each row.Only used when `concat_rows=True`.Set to "\n" by default. |
| `papaConfig?` | `ParseConfig`<`any`, `undefined`\> | `undefined` | - |
#### Defined in
[packages/core/src/readers/CSVReader.ts:23](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/CSVReader.ts#L23)
## Properties
### colJoiner
`Private` **colJoiner**: `string`
#### Defined in
[packages/core/src/readers/CSVReader.ts:13](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/CSVReader.ts#L13)
---
### concatRows
`Private` **concatRows**: `boolean`
#### Defined in
[packages/core/src/readers/CSVReader.ts:12](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/CSVReader.ts#L12)
---
### papaConfig
`Private` `Optional` **papaConfig**: `ParseConfig`<`any`, `undefined`\>
#### Defined in
[packages/core/src/readers/CSVReader.ts:15](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/CSVReader.ts#L15)
---
### rowJoiner
`Private` **rowJoiner**: `string`
#### Defined in
[packages/core/src/readers/CSVReader.ts:14](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/CSVReader.ts#L14)
## Methods
### loadData
**loadData**(`file`, `fs?`): `Promise`<[`Document`](Document.md)<[`Metadata`](../#metadata)\>[]\>
Loads data from csv files
#### Parameters
| Name | Type | Default value | Description |
| :----- | :-------------------------------------------------------- | :------------ | :------------------------------------------- |
| `file` | `string` | `undefined` | The path to the file to load. |
| `fs?` | [`GenericFileSystem`](../interfaces/GenericFileSystem.md) | `DEFAULT_FS` | The file system to use for reading the file. |
#### Returns
`Promise`<[`Document`](Document.md)<[`Metadata`](../#metadata)\>[]\>
#### Implementation of
[BaseReader](../interfaces/BaseReader.md).[loadData](../interfaces/BaseReader.md#loaddata)
#### Defined in
[packages/core/src/readers/CSVReader.ts:41](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/readers/CSVReader.ts#L41)
@@ -0,0 +1,261 @@
---
id: "Portkey"
title: "Class: Portkey"
sidebar_label: "Portkey"
sidebar_position: 0
custom_edit_url: null
---
Unified language model interface
## Implements
- [`LLM`](../interfaces/LLM.md)
## Constructors
### constructor
**new Portkey**(`init?`)
#### Parameters
| Name | Type |
| :------ | :---------------------------------- |
| `init?` | `Partial`<[`Portkey`](Portkey.md)\> |
#### Defined in
[packages/core/src/llm/LLM.ts:812](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L812)
## Properties
### apiKey
`Optional` **apiKey**: `string` = `undefined`
#### Defined in
[packages/core/src/llm/LLM.ts:805](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L805)
---
### baseURL
`Optional` **baseURL**: `string` = `undefined`
#### Defined in
[packages/core/src/llm/LLM.ts:806](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L806)
---
### callbackManager
`Optional` **callbackManager**: [`CallbackManager`](CallbackManager.md)
#### Defined in
[packages/core/src/llm/LLM.ts:810](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L810)
---
### hasStreaming
**hasStreaming**: `boolean` = `true`
#### Implementation of
[LLM](../interfaces/LLM.md).[hasStreaming](../interfaces/LLM.md#hasstreaming)
#### Defined in
[packages/core/src/llm/LLM.ts:803](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L803)
---
### llms
`Optional` **llms**: `null` \| [`LLMOptions`] = `undefined`
#### Defined in
[packages/core/src/llm/LLM.ts:808](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L808)
---
### mode
`Optional` **mode**: `string` = `undefined`
#### Defined in
[packages/core/src/llm/LLM.ts:807](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L807)
---
### session
**session**: `PortkeySession`
#### Defined in
[packages/core/src/llm/LLM.ts:809](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L809)
## Accessors
### metadata
`get` **metadata**(): [`LLMMetadata`](../interfaces/LLMMetadata.md)
#### Returns
[`LLMMetadata`](../interfaces/LLMMetadata.md)
#### Implementation of
[LLM](../interfaces/LLM.md).[metadata](../interfaces/LLM.md#metadata)
#### Defined in
[packages/core/src/llm/LLM.ts:830](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L830)
## Methods
### chat
**chat**<`T`, `R`\>(`messages`, `parentEvent?`, `streaming?`, `params?`): `Promise`<`R`\>
Get a chat response from the LLM
#### Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------------------------------------------------------------- |
| `T` | extends `undefined` \| `boolean` = `undefined` |
| `R` | `T` extends `true` ? `AsyncGenerator`<`string`, `void`, `unknown`\> : [`ChatResponse`](../interfaces/ChatResponse.md) |
#### Parameters
| Name | Type | Description |
| :------------- | :---------------------------------------------- | :----------------------------------------------------------------------------------------------- |
| `messages` | [`ChatMessage`](../interfaces/ChatMessage.md)[] | The return type of chat() and complete() are set by the "streaming" parameter being set to True. |
| `parentEvent?` | [`Event`](../interfaces/Event.md) | - |
| `streaming?` | `T` | - |
| `params?` | `Record`<`string`, `any`\> | - |
#### Returns
`Promise`<`R`\>
#### Implementation of
[LLM](../interfaces/LLM.md).[chat](../interfaces/LLM.md#chat)
#### Defined in
[packages/core/src/llm/LLM.ts:834](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L834)
---
### complete
**complete**<`T`, `R`\>(`prompt`, `parentEvent?`, `streaming?`): `Promise`<`R`\>
Get a prompt completion from the LLM
#### Type parameters
| Name | Type |
| :--- | :-------------------------------------------------------------------------------------------------------------------- |
| `T` | extends `undefined` \| `boolean` = `undefined` |
| `R` | `T` extends `true` ? `AsyncGenerator`<`string`, `void`, `unknown`\> : [`ChatResponse`](../interfaces/ChatResponse.md) |
#### Parameters
| Name | Type | Description |
| :------------- | :-------------------------------- | :--------------------- |
| `prompt` | `string` | the prompt to complete |
| `parentEvent?` | [`Event`](../interfaces/Event.md) | - |
| `streaming?` | `T` | - |
#### Returns
`Promise`<`R`\>
#### Implementation of
[LLM](../interfaces/LLM.md).[complete](../interfaces/LLM.md#complete)
#### Defined in
[packages/core/src/llm/LLM.ts:858](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L858)
---
### streamChat
**streamChat**(`messages`, `parentEvent?`, `params?`): `AsyncGenerator`<`string`, `void`, `unknown`\>
#### Parameters
| Name | Type |
| :------------- | :---------------------------------------------- |
| `messages` | [`ChatMessage`](../interfaces/ChatMessage.md)[] |
| `parentEvent?` | [`Event`](../interfaces/Event.md) |
| `params?` | `Record`<`string`, `any`\> |
#### Returns
`AsyncGenerator`<`string`, `void`, `unknown`\>
#### Defined in
[packages/core/src/llm/LLM.ts:873](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L873)
---
### streamComplete
**streamComplete**(`query`, `parentEvent?`): `AsyncGenerator`<`string`, `void`, `unknown`\>
#### Parameters
| Name | Type |
| :------------- | :-------------------------------- |
| `query` | `string` |
| `parentEvent?` | [`Event`](../interfaces/Event.md) |
#### Returns
`AsyncGenerator`<`string`, `void`, `unknown`\>
#### Defined in
[packages/core/src/llm/LLM.ts:920](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L920)
---
### tokens
**tokens**(`messages`): `number`
Calculates the number of tokens needed for the given chat messages
#### Parameters
| Name | Type |
| :--------- | :---------------------------------------------- |
| `messages` | [`ChatMessage`](../interfaces/ChatMessage.md)[] |
#### Returns
`number`
#### Implementation of
[LLM](../interfaces/LLM.md).[tokens](../interfaces/LLM.md#tokens)
#### Defined in
[packages/core/src/llm/LLM.ts:826](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/llm/LLM.ts#L826)
@@ -0,0 +1,198 @@
---
id: "PromptHelper"
title: "Class: PromptHelper"
sidebar_label: "PromptHelper"
sidebar_position: 0
custom_edit_url: null
---
A collection of helper functions for working with prompts.
## Constructors
### constructor
**new PromptHelper**(`contextWindow?`, `numOutput?`, `chunkOverlapRatio?`, `chunkSizeLimit?`, `tokenizer?`, `separator?`)
#### Parameters
| Name | Type | Default value |
| :------------------ | :---------------------------------- | :---------------------------- |
| `contextWindow` | `number` | `DEFAULT_CONTEXT_WINDOW` |
| `numOutput` | `number` | `DEFAULT_NUM_OUTPUTS` |
| `chunkOverlapRatio` | `number` | `DEFAULT_CHUNK_OVERLAP_RATIO` |
| `chunkSizeLimit?` | `number` | `undefined` |
| `tokenizer?` | (`text`: `string`) => `Uint32Array` | `undefined` |
| `separator` | `string` | `" "` |
#### Defined in
[packages/core/src/PromptHelper.ts:40](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/PromptHelper.ts#L40)
## Properties
### chunkOverlapRatio
**chunkOverlapRatio**: `number` = `DEFAULT_CHUNK_OVERLAP_RATIO`
#### Defined in
[packages/core/src/PromptHelper.ts:35](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/PromptHelper.ts#L35)
---
### chunkSizeLimit
`Optional` **chunkSizeLimit**: `number`
#### Defined in
[packages/core/src/PromptHelper.ts:36](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/PromptHelper.ts#L36)
---
### contextWindow
**contextWindow**: `number` = `DEFAULT_CONTEXT_WINDOW`
#### Defined in
[packages/core/src/PromptHelper.ts:33](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/PromptHelper.ts#L33)
---
### numOutput
**numOutput**: `number` = `DEFAULT_NUM_OUTPUTS`
#### Defined in
[packages/core/src/PromptHelper.ts:34](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/PromptHelper.ts#L34)
---
### separator
**separator**: `string` = `" "`
#### Defined in
[packages/core/src/PromptHelper.ts:38](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/PromptHelper.ts#L38)
---
### tokenizer
**tokenizer**: (`text`: `string`) => `Uint32Array`
#### Type declaration
▸ (`text`): `Uint32Array`
##### Parameters
| Name | Type |
| :----- | :------- |
| `text` | `string` |
##### Returns
`Uint32Array`
#### Defined in
[packages/core/src/PromptHelper.ts:37](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/PromptHelper.ts#L37)
## Methods
### getAvailableChunkSize
`Private` **getAvailableChunkSize**(`prompt`, `numChunks?`, `padding?`): `number`
Find the maximum size of each chunk given a prompt.
#### Parameters
| Name | Type | Default value |
| :---------- | :--------------------------------- | :------------ |
| `prompt` | [`SimplePrompt`](../#simpleprompt) | `undefined` |
| `numChunks` | `number` | `1` |
| `padding` | `number` | `5` |
#### Returns
`number`
#### Defined in
[packages/core/src/PromptHelper.ts:76](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/PromptHelper.ts#L76)
---
### getAvailableContextSize
`Private` **getAvailableContextSize**(`prompt`): `number`
Given a prompt, return the maximum size of the inputs to the prompt.
#### Parameters
| Name | Type |
| :------- | :--------------------------------- |
| `prompt` | [`SimplePrompt`](../#simpleprompt) |
#### Returns
`number`
#### Defined in
[packages/core/src/PromptHelper.ts:61](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/PromptHelper.ts#L61)
---
### getTextSplitterGivenPrompt
**getTextSplitterGivenPrompt**(`prompt`, `numChunks?`, `padding?`): [`SentenceSplitter`](SentenceSplitter.md)
Creates a text splitter with the correct chunk sizes and overlaps given a prompt.
#### Parameters
| Name | Type | Default value |
| :---------- | :--------------------------------- | :---------------- |
| `prompt` | [`SimplePrompt`](../#simpleprompt) | `undefined` |
| `numChunks` | `number` | `1` |
| `padding` | `number` | `DEFAULT_PADDING` |
#### Returns
[`SentenceSplitter`](SentenceSplitter.md)
#### Defined in
[packages/core/src/PromptHelper.ts:99](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/PromptHelper.ts#L99)
---
### repack
**repack**(`prompt`, `textChunks`, `padding?`): `string`[]
Repack resplits the strings based on the optimal text splitter.
#### Parameters
| Name | Type | Default value |
| :----------- | :--------------------------------- | :---------------- |
| `prompt` | [`SimplePrompt`](../#simpleprompt) | `undefined` |
| `textChunks` | `string`[] | `undefined` |
| `padding` | `number` | `DEFAULT_PADDING` |
#### Returns
`string`[]
#### Defined in
[packages/core/src/PromptHelper.ts:120](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/PromptHelper.ts#L120)
@@ -0,0 +1,167 @@
---
id: "Refine"
title: "Class: Refine"
sidebar_label: "Refine"
sidebar_position: 0
custom_edit_url: null
---
A response builder that uses the query to ask the LLM generate a better response using multiple text chunks.
## Hierarchy
- **`Refine`**
↳ [`CompactAndRefine`](CompactAndRefine.md)
## Implements
- `BaseResponseBuilder`
## Constructors
### constructor
**new Refine**(`serviceContext`, `textQATemplate?`, `refineTemplate?`)
#### Parameters
| Name | Type |
| :---------------- | :-------------------------------------------------- |
| `serviceContext` | [`ServiceContext`](../interfaces/ServiceContext.md) |
| `textQATemplate?` | (`__namedParameters`: `Object`) => `string` |
| `refineTemplate?` | (`__namedParameters`: `Object`) => `string` |
#### Defined in
[packages/core/src/ResponseSynthesizer.ts:82](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ResponseSynthesizer.ts#L82)
## Properties
### refineTemplate
**refineTemplate**: (`__namedParameters`: `Object`) => `string`
#### Type declaration
▸ (`«destructured»`): `string`
##### Parameters
| Name | Type |
| :--------------- | :------- |
| `«destructured»` | `Object` |
##### Returns
`string`
#### Defined in
[packages/core/src/ResponseSynthesizer.ts:80](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ResponseSynthesizer.ts#L80)
---
### serviceContext
**serviceContext**: [`ServiceContext`](../interfaces/ServiceContext.md)
#### Defined in
[packages/core/src/ResponseSynthesizer.ts:78](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ResponseSynthesizer.ts#L78)
---
### textQATemplate
**textQATemplate**: (`__namedParameters`: `Object`) => `string`
#### Type declaration
▸ (`«destructured»`): `string`
##### Parameters
| Name | Type |
| :--------------- | :------- |
| `«destructured»` | `Object` |
##### Returns
`string`
#### Defined in
[packages/core/src/ResponseSynthesizer.ts:79](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ResponseSynthesizer.ts#L79)
## Methods
### getResponse
**getResponse**(`query`, `textChunks`, `parentEvent?`, `prevResponse?`): `Promise`<`string`\>
#### Parameters
| Name | Type |
| :-------------- | :-------------------------------- |
| `query` | `string` |
| `textChunks` | `string`[] |
| `parentEvent?` | [`Event`](../interfaces/Event.md) |
| `prevResponse?` | `string` |
#### Returns
`Promise`<`string`\>
#### Implementation of
BaseResponseBuilder.getResponse
#### Defined in
[packages/core/src/ResponseSynthesizer.ts:92](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ResponseSynthesizer.ts#L92)
---
### giveResponseSingle
`Private` **giveResponseSingle**(`queryStr`, `textChunk`, `parentEvent?`): `Promise`<`string`\>
#### Parameters
| Name | Type |
| :------------- | :-------------------------------- |
| `queryStr` | `string` |
| `textChunk` | `string` |
| `parentEvent?` | [`Event`](../interfaces/Event.md) |
#### Returns
`Promise`<`string`\>
#### Defined in
[packages/core/src/ResponseSynthesizer.ts:117](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ResponseSynthesizer.ts#L117)
---
### refineResponseSingle
`Private` **refineResponseSingle**(`response`, `queryStr`, `textChunk`, `parentEvent?`): `Promise`<`string`\>
#### Parameters
| Name | Type |
| :------------- | :-------------------------------- |
| `response` | `string` |
| `queryStr` | `string` |
| `textChunk` | `string` |
| `parentEvent?` | [`Event`](../interfaces/Event.md) |
#### Returns
`Promise`<`string`\>
#### Defined in
[packages/core/src/ResponseSynthesizer.ts:153](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/ResponseSynthesizer.ts#L153)
@@ -0,0 +1,74 @@
---
id: "Response"
title: "Class: Response"
sidebar_label: "Response"
sidebar_position: 0
custom_edit_url: null
---
Respone is the output of a LLM
## Constructors
### constructor
**new Response**(`response`, `sourceNodes?`)
#### Parameters
| Name | Type |
| :------------- | :------------------------------------------------------- |
| `response` | `string` |
| `sourceNodes?` | [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>[] |
#### Defined in
[packages/core/src/Response.ts:10](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Response.ts#L10)
## Properties
### response
**response**: `string`
#### Defined in
[packages/core/src/Response.ts:7](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Response.ts#L7)
---
### sourceNodes
`Optional` **sourceNodes**: [`BaseNode`](BaseNode.md)<[`Metadata`](../#metadata)\>[]
#### Defined in
[packages/core/src/Response.ts:8](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Response.ts#L8)
## Methods
### getFormattedSources
**getFormattedSources**(): `void`
#### Returns
`void`
#### Defined in
[packages/core/src/Response.ts:15](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Response.ts#L15)
---
### toString
**toString**(): `string`
#### Returns
`string`
#### Defined in
[packages/core/src/Response.ts:19](https://github.com/run-llama/LlamaIndexTS/blob/d613bbd/packages/core/src/Response.ts#L19)

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