Compare commits

..

1 Commits

Author SHA1 Message Date
Alex Yang 34d2080962 fix: default in default 2025-02-13 14:39:11 +08:00
179 changed files with 2965 additions and 11578 deletions
+16
View File
@@ -0,0 +1,16 @@
---
"@llamaindex/milvus": minor
"@llamaindex/qdrant": minor
"@llamaindex/next-node-runtime-test": minor
"@llamaindex/azure": minor
"@llamaindex/cloudflare-hono": minor
"@llamaindex/anthropic": minor
"@llamaindex/llamaindex-test": minor
"llamaindex": minor
"@llamaindex/core": minor
"@llamaindex/doc": minor
"@llamaindex/examples": minor
"@llamaindex/e2e": minor
---
Remove re-exports from llamaindex main package
+5
View File
@@ -0,0 +1,5 @@
---
"@llamaindex/doc": patch
---
docs: update chat engine docs
+5
View File
@@ -0,0 +1,5 @@
---
"@llamaindex/doc": patch
---
docs: update workflow doc
+6
View File
@@ -0,0 +1,6 @@
---
"@llamaindex/core": patch
"llamaindex": patch
---
feat: asChatEngine function for index
+7
View File
@@ -0,0 +1,7 @@
---
"llamaindex": minor
"@llamaindex/cloudflare-hono": patch
"@llamaindex/examples": patch
---
Remove deprecated ServiceContext
+8
View File
@@ -0,0 +1,8 @@
---
"llamaindex": minor
"@llamaindex/doc": minor
"@llamaindex/examples": minor
"@llamaindex/unit-test": minor
---
Remove readers package from llamaindex
-25
View File
@@ -98,7 +98,6 @@ jobs:
- nextjs-node-runtime
- waku-query-engine
- llama-parse-browser
- vite-import-llamaindex
runs-on: ubuntu-latest
name: Build LlamaIndex Example (${{ matrix.packages }})
steps:
@@ -117,30 +116,6 @@ jobs:
run: pnpm run build
working-directory: e2e/examples/${{ matrix.packages }}
size-limit:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
name: Size Limit
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Build llamaindex
run: pnpm run build
- uses: andresz1/size-limit-action@94bc357df29c36c8f8d50ea497c3e225c3c95d1d
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
directory: e2e/examples/vite-import-llamaindex
skip_step: "install"
build_script: build
package_manager: pnpm
typecheck-examples:
runs-on: ubuntu-latest
-7
View File
@@ -41,15 +41,8 @@ pnpm install
### Build the packages
You'll need Turbo to build the packages. If you don't have it, you can run it with `pnpx`.
To build all packages, run:
```shell
# Build all packages
pnpx turbo build --filter "./packages/*"
# Or if you have turbo installed, you can run:
turbo build --filter "./packages/*"
```
-82
View File
@@ -1,87 +1,5 @@
# @llamaindex/doc
## 0.1.5
### Patch Changes
- Updated dependencies [ad3c7f1]
- @llamaindex/core@0.5.4
- @llamaindex/cloud@3.0.5
- llamaindex@0.9.5
- @llamaindex/node-parser@1.0.4
- @llamaindex/openai@0.1.56
- @llamaindex/readers@2.0.4
## 0.1.4
### Patch Changes
- Updated dependencies [cb256f2]
- Updated dependencies [cb021e7]
- @llamaindex/openai@0.1.55
- @llamaindex/core@0.5.3
- llamaindex@0.9.4
- @llamaindex/cloud@3.0.4
- @llamaindex/node-parser@1.0.3
- @llamaindex/readers@2.0.3
## 0.1.3
### Patch Changes
- Updated dependencies [d952e68]
- @llamaindex/core@0.5.2
- @llamaindex/cloud@3.0.3
- llamaindex@0.9.3
- @llamaindex/node-parser@1.0.2
- @llamaindex/openai@0.1.54
- @llamaindex/readers@2.0.2
## 0.1.2
### Patch Changes
- Updated dependencies [c902fcb]
- Updated dependencies [88d776f]
- @llamaindex/cloud@3.0.2
- llamaindex@0.9.2
## 0.1.1
### Patch Changes
- Updated dependencies [6d37d44]
- llamaindex@0.9.1
- @llamaindex/cloud@3.0.1
- @llamaindex/core@0.5.1
- @llamaindex/node-parser@1.0.1
- @llamaindex/openai@0.1.53
- @llamaindex/readers@2.0.1
- @llamaindex/workflow@0.0.11
## 0.1.0
### Minor Changes
- 6a4a737: Remove re-exports from llamaindex main package
- f4588bc: Remove readers package from llamaindex
### Patch Changes
- c7c0800: fix: fumadoc build fail
- a87efb9: docs: update chat engine docs
- 7bd5d93: docs: update workflow doc
- Updated dependencies [6a4a737]
- Updated dependencies [d924c63]
- Updated dependencies [b490376]
- Updated dependencies [f4588bc]
- llamaindex@0.9.0
- @llamaindex/core@0.5.0
- @llamaindex/cloud@3.0.0
- @llamaindex/node-parser@1.0.0
- @llamaindex/openai@0.1.52
- @llamaindex/readers@2.0.0
## 0.0.41
### Patch Changes
+13 -14
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/doc",
"version": "0.1.5",
"version": "0.0.41",
"private": true,
"scripts": {
"build": "pnpm run build:docs && next build",
@@ -28,26 +28,25 @@
"@radix-ui/react-slot": "^1.1.0",
"@radix-ui/react-tooltip": "^1.1.4",
"@vercel/functions": "^1.5.0",
"@scalar/api-client-react": "^1.1.25",
"ai": "^3.4.33",
"class-variance-authority": "^0.7.0",
"clsx": "2.1.1",
"foxact": "^0.2.41",
"framer-motion": "^11.11.17",
"fumadocs-core": "^14.7.7",
"fumadocs-docgen": "^1.3.7",
"fumadocs-mdx": "^11.5.3",
"fumadocs-openapi": "^5.12.0",
"fumadocs-twoslash": "^2.0.3",
"fumadocs-typescript": "^3.0.3",
"fumadocs-ui": "^14.7.7",
"fumadocs-core": "14.6.0",
"fumadocs-docgen": "1.3.2",
"fumadocs-mdx": "^11.1.2",
"fumadocs-openapi": "^5.8.2",
"fumadocs-twoslash": "^2.0.2",
"fumadocs-typescript": "^3.0.2",
"fumadocs-ui": "14.6.0",
"hast-util-to-jsx-runtime": "^2.3.2",
"llamaindex": "workspace:*",
"lucide-react": "^0.460.0",
"next": "15.1.7",
"next": "15.0.3",
"next-themes": "^0.4.3",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-icons": "^5.3.0",
"react-monaco-editor": "^0.56.2",
"react-text-transition": "^3.1.0",
@@ -55,8 +54,8 @@
"rehype-katex": "^7.0.1",
"remark-math": "^6.0.0",
"rimraf": "^6.0.1",
"shiki": "^2.3.2",
"shiki-magic-move": "^1.0.0",
"shiki": "1.23.1",
"shiki-magic-move": "^0.5.0",
"swr": "^2.2.5",
"tailwind-merge": "^2.5.2",
"tailwindcss-animate": "^1.0.7",
@@ -2,8 +2,6 @@
title: Local LLMs
---
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
LlamaIndex.TS supports OpenAI and [other remote LLM APIs](other_llms). You can also run a local LLM on your machine!
## Using a local model via Ollama
@@ -26,23 +24,7 @@ The first time you run it will also automatically download and install the model
### Switch the LLM in your code
To switch the LLM in your code, you first need to make sure to install the package for the Ollama model provider:
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
```shell tab="npm"
npm install @llamaindex/ollama
```
```shell tab="yarn"
yarn add @llamaindex/ollama
```
```shell tab="pnpm"
pnpm add @llamaindex/ollama
```
</Tabs>
Then, to tell LlamaIndex to use a local LLM, use the `Settings` object:
To tell LlamaIndex to use a local LLM, use the `Settings` object:
```javascript
Settings.llm = new Ollama({
@@ -52,25 +34,7 @@ Settings.llm = new Ollama({
### Use local embeddings
If you're doing retrieval-augmented generation, LlamaIndex.TS will also call out to OpenAI to index and embed your data. To be entirely local, you can use a local embedding model from Huggingface like this:
First install the Huggingface model provider package:
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
```shell tab="npm"
npm install @llamaindex/huggingface
```
```shell tab="yarn"
yarn add @llamaindex/huggingface
```
```shell tab="pnpm"
pnpm add @llamaindex/huggingface
```
</Tabs>
And then set the embedding model in your code:
If you're doing retrieval-augmented generation, LlamaIndex.TS will also call out to OpenAI to index and embed your data. To be entirely local, you can use a local embedding model like this:
```javascript
Settings.embedModel = new HuggingFaceEmbedding({
@@ -1,6 +1,6 @@
---
title: Installation
description: How to install llamaindex packages.
description: Install llamaindex by running a single command.
---
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
@@ -70,8 +70,10 @@ In Cloudflare Worker and similar serverless JS environment, you need to be aware
- Some Node.js modules are not available in Cloudflare Worker, such as `node:fs`, `node:child_process`, `node:cluster`...
- You are recommend to design your code using network request, such as use `fetch` API to communicate with database, insteadof a long-running process in Node.js.
- Some of LlamaIndex.TS packages are not available in Cloudflare Worker, for example `@llamaindex/readers` and `@llamaindex/huggingface`.
- The main `llamaindex` is designed to work in all JavaScript environment, including Cloudflare Worker. If you find any issue, please report to us.
- Some of LlamaIndex.TS modules are not available in Cloudflare Worker, for example `SimpleDirectoryReader` (requires `node:fs`), Some multimodal API that relies on [`onnxruntime-node`](https://www.npmjs.com/package/onnxruntime-node)(we might port to HTTP based module in the future).
- `@llamaindex/core` is designed to work in all JavaScript environment, including Cloudflare Worker. If you find any issue, please report to us.
- `@llamaindex/env` is a JS environment binding module, which polyfill some Node.js/Modern Web API (for example, we have a memory based `fs` module, and Crypto API polyfill). It is designed to work in all JavaScript environment, including Cloudflare Worker.
## Known issues
- `llamaindex` not work perfectly in Cloudflare Worker, bundle size will be larger than 1MB, which is the limit of Cloudflare Worker. You will need import submodule instead of the whole `llamaindex` module.
@@ -81,7 +81,7 @@ It will split the code by AST nodes and then parse the nodes into a `Document` o
import TS from "tree-sitter-typescript";
const parser = new Parser();
parser.setLanguage(TS.typescript as Parser.Language);
parser.setLanguage(TS.typescript);
const codeSplitter = new CodeSplitter({
getParser: () => parser,
});
@@ -99,7 +99,7 @@ It will split the code by AST nodes and then parse the nodes into a `Document` o
import TS from "tree-sitter-typescript";
const parser = new Parser();
parser.setLanguage(TS.typescript as Parser.Language);
parser.setLanguage(TS.typescript);
const codeSplitter = new CodeSplitter({
getParser: () => parser,
});
@@ -20,5 +20,5 @@ LlamaIndex.TS provides tools for beginners, advanced users, and everyone in betw
className="w-full h-[440px]"
aria-label="LlamaIndex.TS Starter"
aria-description="This is a starter example for LlamaIndex.TS, it shows the basic usage of the library."
src="https://stackblitz.com/github/run-llama/LlamaIndexTS/tree/main/examples?embed=1&file=starter.ts"
src="https://stackblitz.com/github/run-llama/LlamaIndexTS/tree/main/examples?file=starter.ts"
/>
@@ -7,7 +7,6 @@
"what-is-llamaindex",
"index",
"getting_started",
"migration",
"guide",
"examples",
"modules",
@@ -1,97 +0,0 @@
---
title: Migrating from v0.8 to v0.9
---
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
Version 0.9 of LlamaIndex.TS introduces significant architectural changes to improve package size and runtime compatibility. The main goals of this release are:
1. Reduce the package size of the main `llamaindex` package by moving dependencies into provider packages, making it more suitable for serverless environments
2. Enable consistent code across different environments by using unified imports (no separate imports for Node.js and Edge runtimes)
## Major Changes
### Installing Provider Packages
In v0.9, you need to explicitly install the provider packages you want to use. The main `llamaindex` package no longer includes these dependencies by default.
### Updating Imports
You'll need to update your imports to get classes directly from their respective provider packages. Here's how to migrate different components:
### 1. AI Model Providers
Previously:
```typescript
import { OpenAI } from "llamaindex";
```
Now:
```typescript
import { OpenAI } from "@llamaindex/openai";
```
> Note: This examples requires installing the `@llamaindex/openai` package:
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
```shell tab="npm"
npm install @llamaindex/openai
```
```shell tab="yarn"
yarn add @llamaindex/openai
```
```shell tab="pnpm"
pnpm add @llamaindex/openai
```
</Tabs>
For more details on available AI model providers and their configuration, see the [LLMs documentation](/docs/llamaindex/modules/llms) and the [Embedding Models documentation](/docs/llamaindex/modules/embeddings).
### 2. Storage Providers
Previously:
```typescript
import { PineconeVectorStore } from "llamaindex";
```
Now:
```typescript
import { PineconeVectorStore } from "@llamaindex/pinecone";
```
For more information about available storage options, refer to the [Data Stores documentation](/docs/llamaindex/modules/data_stores).
### 3. Data Loaders
Previously:
```typescript
import { SimpleDirectoryReader } from "llamaindex";
```
Now:
```typescript
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
```
For more details about available data loaders and their usage, check the [Loading Data](/docs/llamaindex/guide/loading).
### 4. Prefer using `llamaindex` instead of `@llamaindex/core`
`llamaindex` is now re-exporting most of `@llamaindex/core`. To simplify imports, just use `import { ... } from "llamaindex"` instead of `import { ... } from "@llamaindex/core"`. This is possible because `llamaindex` is now a smaller package.
We might change imports internally in `@llamaindex/core` in the future. Let us know if you're missing something.
## Benefits of the Changes
- **Smaller Bundle Size**: By moving dependencies to separate packages, your application only includes the features you actually use
- **Runtime Consistency**: The same code works across different environments without environment-specific imports
- **Improved Serverless Support**: Reduced package size makes it easier to deploy to serverless environments with size limitations
## Need Help?
If you encounter any issues during migration, please:
1. Check our [GitHub repository](https://github.com/run-llama/LlamaIndexTS) for the latest updates
2. Join our [Discord community](https://discord.gg/dGcwcsnxhU) for support
3. Open an issue on GitHub if you find a bug or have a feature request
@@ -1,5 +0,0 @@
{
"title": "Migration",
"description": "Migration between different versions",
"pages": ["0.8-to-0.9"]
}
@@ -1,46 +0,0 @@
---
title: VoyageAI
---
To use VoyageAI embeddings, you need to import `VoyageAIEmbedding` from `@llamaindex/voyage-ai`.
## Installation
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
```shell tab="npm"
npm install llamaindex @llamaindex/voyage-ai
```
```shell tab="yarn"
yarn add llamaindex @llamaindex/voyage-ai
```
```shell tab="pnpm"
pnpm add llamaindex @llamaindex/voyage-ai
```
</Tabs>
```ts
import { VoyageAIEmbedding } from "@llamaindex/voyage-ai";
import { Document, Settings, VectorStoreIndex } from "llamaindex";
Settings.embedModel = new VoyageAIEmbedding();
const document = new Document({ text: essay, id_: "essay" });
const index = await VectorStoreIndex.fromDocuments([document]);
const queryEngine = index.asQueryEngine();
const query = "What is the meaning of life?";
const results = await queryEngine.query({
query,
});
```
## API Reference
- [VoyageAIEmbedding](/docs/api/classes/VoyageAIEmbedding)
@@ -37,31 +37,6 @@ Settings.embedModel = new OpenAIEmbedding({
For local embeddings, you can use the [HuggingFace](/docs/llamaindex/modules/embeddings/available_embeddings/huggingface) embedding model.
## Local Ollama Embeddings With Remote Host
Ollama provides a way to run embedding models locally or connect to a remote Ollama instance. This is particularly useful when you need to:
- Run embeddings without relying on external API services
- Use custom embedding models
- Connect to a shared Ollama instance in your network
The ENV variable method you will find elsewhere sometimes may not work with the OllamaEmbedding class. Also note, you'll need to change the host
in the Ollama server to `0.0.0.0` to allow connections from other machines.
To use Ollama embeddings with a remote host, you need to specify the host URL in the configuration like this:
```typescript
import { OllamaEmbedding } from "@llamaindex/ollama";
import { Settings } from "llamaindex";
// Configure Ollama with a remote host
Settings.embedModel = new OllamaEmbedding({
model: "nomic-embed-text",
config: {
host: "http://your-ollama-host:11434"
}
});
```
## Available Embeddings
Most available embeddings are listed in the sidebar on the left.
+1 -8
View File
@@ -1,13 +1,6 @@
{
"plugin": ["typedoc-plugin-markdown", "typedoc-plugin-merge-modules"],
"entryPoints": ["../../packages/**/src/index.ts"],
"exclude": [
"../../packages/autotool/**/src/index.ts",
"**/node_modules/**",
"**/dist/**",
"**/test/**",
"**/tests/**"
],
"entryPoints": ["../../packages/llamaindex/src/index.ts"],
"tsconfig": "../../tsconfig.json",
"readme": "none",
"sourceLinkTemplate": "https://github.com/run-llama/LlamaIndexTS/blob/{gitRevision}/{path}#L{line}",
-6
View File
@@ -1,11 +1,5 @@
# @llamaindex/core-e2e
## 0.1.0
### Minor Changes
- 6a4a737: Remove re-exports from llamaindex main package
## 0.0.8
### Patch Changes
-11
View File
@@ -1,11 +0,0 @@
# @llamaindex/cloudflare-hono
## 0.1.0
### Minor Changes
- 6a4a737: Remove re-exports from llamaindex main package
### Patch Changes
- b490376: Remove deprecated ServiceContext
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloudflare-hono",
"version": "0.1.0",
"version": "0.0.0",
"private": true,
"scripts": {
"deploy": "wrangler deploy",
@@ -1,48 +1,5 @@
# @llamaindex/cloudflare-worker-agent-test
## 0.0.139
### Patch Changes
- llamaindex@0.9.5
## 0.0.138
### Patch Changes
- Updated dependencies [cb021e7]
- llamaindex@0.9.4
## 0.0.137
### Patch Changes
- llamaindex@0.9.3
## 0.0.136
### Patch Changes
- Updated dependencies [88d776f]
- llamaindex@0.9.2
## 0.0.135
### Patch Changes
- Updated dependencies [6d37d44]
- llamaindex@0.9.1
## 0.0.134
### Patch Changes
- Updated dependencies [6a4a737]
- Updated dependencies [d924c63]
- Updated dependencies [b490376]
- Updated dependencies [f4588bc]
- llamaindex@0.9.0
## 0.0.133
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloudflare-worker-agent-test",
"version": "0.0.139",
"version": "0.0.133",
"type": "module",
"private": true,
"scripts": {
@@ -1,42 +1,5 @@
# @llamaindex/llama-parse-browser-test
## 0.0.50
### Patch Changes
- @llamaindex/cloud@3.0.5
## 0.0.49
### Patch Changes
- @llamaindex/cloud@3.0.4
## 0.0.48
### Patch Changes
- @llamaindex/cloud@3.0.3
## 0.0.47
### Patch Changes
- Updated dependencies [c902fcb]
- @llamaindex/cloud@3.0.2
## 0.0.46
### Patch Changes
- @llamaindex/cloud@3.0.1
## 0.0.45
### Patch Changes
- @llamaindex/cloud@3.0.0
## 0.0.44
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/llama-parse-browser-test",
"private": true,
"version": "0.0.50",
"version": "0.0.44",
"type": "module",
"scripts": {
"dev": "vite",
-43
View File
@@ -1,48 +1,5 @@
# @llamaindex/next-agent-test
## 0.1.139
### Patch Changes
- llamaindex@0.9.5
## 0.1.138
### Patch Changes
- Updated dependencies [cb021e7]
- llamaindex@0.9.4
## 0.1.137
### Patch Changes
- llamaindex@0.9.3
## 0.1.136
### Patch Changes
- Updated dependencies [88d776f]
- llamaindex@0.9.2
## 0.1.135
### Patch Changes
- Updated dependencies [6d37d44]
- llamaindex@0.9.1
## 0.1.134
### Patch Changes
- Updated dependencies [6a4a737]
- Updated dependencies [d924c63]
- Updated dependencies [b490376]
- Updated dependencies [f4588bc]
- llamaindex@0.9.0
## 0.1.133
### Patch Changes
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-agent-test",
"version": "0.1.139",
"version": "0.1.133",
"private": true,
"scripts": {
"dev": "next dev",
@@ -10,9 +10,9 @@
"dependencies": {
"ai": "^4.0.0",
"llamaindex": "workspace:*",
"next": "15.1.7",
"react": "19.0.0",
"react-dom": "19.0.0"
"next": "15.0.3",
"react": "18.3.1",
"react-dom": "18.3.1"
},
"devDependencies": {
"@types/node": "^22.9.0",
@@ -1,48 +1,5 @@
# test-edge-runtime
## 0.1.138
### Patch Changes
- llamaindex@0.9.5
## 0.1.137
### Patch Changes
- Updated dependencies [cb021e7]
- llamaindex@0.9.4
## 0.1.136
### Patch Changes
- llamaindex@0.9.3
## 0.1.135
### Patch Changes
- Updated dependencies [88d776f]
- llamaindex@0.9.2
## 0.1.134
### Patch Changes
- Updated dependencies [6d37d44]
- llamaindex@0.9.1
## 0.1.133
### Patch Changes
- Updated dependencies [6a4a737]
- Updated dependencies [d924c63]
- Updated dependencies [b490376]
- Updated dependencies [f4588bc]
- llamaindex@0.9.0
## 0.1.132
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/nextjs-edge-runtime-test",
"version": "0.1.138",
"version": "0.1.132",
"private": true,
"scripts": {
"dev": "next dev",
@@ -9,7 +9,7 @@
},
"dependencies": {
"llamaindex": "workspace:*",
"next": "15.1.7",
"next": "15.0.3",
"react": "^18.3.1",
"react-dom": "^18.3.1"
},
@@ -1,62 +1,5 @@
# @llamaindex/next-node-runtime
## 0.1.5
### Patch Changes
- llamaindex@0.9.5
- @llamaindex/huggingface@0.0.40
- @llamaindex/readers@2.0.4
## 0.1.4
### Patch Changes
- Updated dependencies [cb021e7]
- llamaindex@0.9.4
- @llamaindex/huggingface@0.0.39
- @llamaindex/readers@2.0.3
## 0.1.3
### Patch Changes
- llamaindex@0.9.3
- @llamaindex/huggingface@0.0.38
- @llamaindex/readers@2.0.2
## 0.1.2
### Patch Changes
- Updated dependencies [88d776f]
- llamaindex@0.9.2
## 0.1.1
### Patch Changes
- Updated dependencies [6d37d44]
- llamaindex@0.9.1
- @llamaindex/huggingface@0.0.37
- @llamaindex/readers@2.0.1
## 0.1.0
### Minor Changes
- 6a4a737: Remove re-exports from llamaindex main package
### Patch Changes
- Updated dependencies [6a4a737]
- Updated dependencies [d924c63]
- Updated dependencies [b490376]
- Updated dependencies [f4588bc]
- llamaindex@0.9.0
- @llamaindex/huggingface@0.0.36
- @llamaindex/readers@2.0.0
## 0.0.114
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-node-runtime-test",
"version": "0.1.5",
"version": "0.0.114",
"private": true,
"scripts": {
"dev": "next dev",
@@ -11,9 +11,9 @@
"llamaindex": "workspace:*",
"@llamaindex/huggingface": "workspace:*",
"@llamaindex/readers": "workspace:*",
"next": "15.1.7",
"react": "19.0.0",
"react-dom": "19.0.0"
"next": "15.0.3",
"react": "18.3.1",
"react-dom": "18.3.1"
},
"devDependencies": {
"@types/node": "^22.9.0",
@@ -1,24 +0,0 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
@@ -1,34 +0,0 @@
# vite-import-llamaindex
## 0.0.5
### Patch Changes
- llamaindex@0.9.5
## 0.0.4
### Patch Changes
- Updated dependencies [cb021e7]
- llamaindex@0.9.4
## 0.0.3
### Patch Changes
- llamaindex@0.9.3
## 0.0.2
### Patch Changes
- Updated dependencies [88d776f]
- llamaindex@0.9.2
## 0.0.1
### Patch Changes
- Updated dependencies [6d37d44]
- llamaindex@0.9.1
@@ -1,24 +0,0 @@
{
"name": "vite-import-llamaindex",
"private": true,
"version": "0.0.5",
"type": "module",
"scripts": {
"build": "vite build",
"size-limit": "size-limit"
},
"size-limit": [
{
"path": "dist/LlamaIndexImportTest.js"
}
],
"devDependencies": {
"@size-limit/preset-big-lib": "^11.1.6",
"size-limit": "^11.1.6",
"typescript": "^5.7.2",
"vite": "^6.1.0"
},
"dependencies": {
"llamaindex": "workspace:*"
}
}
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

@@ -1,7 +0,0 @@
import "llamaindex";
document.querySelector<HTMLDivElement>("#app")!.innerHTML = `
<div>
Hello World!
</div>
`;
@@ -1,24 +0,0 @@
{
"compilerOptions": {
"target": "ES2020",
"useDefineForClassFields": true,
"module": "ESNext",
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"isolatedModules": true,
"moduleDetection": "force",
"noEmit": true,
/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
"noUncheckedSideEffectImports": true
},
"include": ["src", "vite.config.ts"]
}
@@ -1,16 +0,0 @@
import { dirname, resolve } from "node:path";
import { fileURLToPath } from "node:url";
import { defineConfig } from "vite";
const __dirname = dirname(fileURLToPath(import.meta.url));
export default defineConfig({
build: {
lib: {
entry: resolve(__dirname, "src/main.ts"),
name: "LlamaIndexImportTest",
fileName: "LlamaIndexImportTest",
formats: ["es", "cjs"],
},
},
});
@@ -5,4 +5,3 @@ dist
.cache
.DS_Store
*.pem
/src/pages.gen.ts
@@ -1,50 +1,5 @@
# @llamaindex/waku-query-engine-test
## 0.0.139
### Patch Changes
- llamaindex@0.9.5
## 0.0.138
### Patch Changes
- Updated dependencies [cb021e7]
- llamaindex@0.9.4
## 0.0.137
### Patch Changes
- llamaindex@0.9.3
## 0.0.136
### Patch Changes
- Updated dependencies [88d776f]
- llamaindex@0.9.2
## 0.0.135
### Patch Changes
- Updated dependencies [cc50c9c]
- Updated dependencies [6d37d44]
- @llamaindex/env@0.1.28
- llamaindex@0.9.1
## 0.0.134
### Patch Changes
- Updated dependencies [6a4a737]
- Updated dependencies [d924c63]
- Updated dependencies [b490376]
- Updated dependencies [f4588bc]
- llamaindex@0.9.0
## 0.0.133
### Patch Changes
+5 -5
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/waku-query-engine-test",
"version": "0.0.139",
"version": "0.0.133",
"type": "module",
"private": true,
"scripts": {
@@ -11,10 +11,10 @@
"dependencies": {
"@llamaindex/env": "workspace:*",
"llamaindex": "workspace:*",
"react": "19.0.0",
"react-dom": "19.0.0",
"react-server-dom-webpack": "19.0.0",
"waku": "0.21.20"
"react": "19.0.0-rc-5c56b873-20241107",
"react-dom": "19.0.0-rc-5c56b873-20241107",
"react-server-dom-webpack": "19.0.0-rc-5c56b873-20241107",
"waku": "0.21.6"
},
"devDependencies": {
"@types/react": "18.3.12",
+11 -30
View File
@@ -1,7 +1,5 @@
import assert from "node:assert";
import { execSync } from "node:child_process";
import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
import { createRequire } from "node:module";
import { mkdir, rm, writeFile } from "node:fs/promises";
import { resolve } from "node:path";
import { test } from "node:test";
import { testRootDir } from "./utils.js";
@@ -16,17 +14,17 @@ const { Document, MetadataMode, VectorStoreIndex } = require('llamaindex')
const { OpenAIEmbedding } = require('@llamaindex/openai')
const { Settings } = require('@llamaindex/core/global')`;
const mainCode = `
Settings.embedModel = new OpenAIEmbedding({
model: 'text-embedding-3-small',
apiKey: '${process.env.OPENAI_API_KEY}',
})
const model = Settings.embedModel
if (model == null) {
process.exit(-1)
async function main() {
Settings.embedModel = new OpenAIEmbedding({
model: 'text-embedding-3-small',
apiKey: '${process.env.OPENAI_API_KEY}',
})
const model = Settings.embedModel
if (model == null) {
process.exit(-1)
}
}
const document = new Document({ text: 'Hello, world!' })
const index = await VectorStoreIndex.fromDocuments([document])
`;
main().catch(console.error)`;
t.before(async () => {
await mkdir(resolve(testRootDir, ".temp"), {
recursive: true,
@@ -86,20 +84,3 @@ const index = await VectorStoreIndex.fromDocuments([document])
});
}
});
test('no extra deps in "@llamaindex/env" cjs module', async () => {
const modules = ["@aws-crypto/sha256-js"];
const require = createRequire(import.meta.url);
const envPackage = require.resolve("@llamaindex/env");
const file = await readFile(envPackage, "utf-8");
for (const module of modules) {
assert.ok(!file.includes(module));
}
});
test('no error when require "llamaindex" in CJS', async () => {
const code = `require('llamaindex')`;
execSync(`${process.argv[0]} -e "${code}"`, {
cwd: process.cwd(),
});
});
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/e2e",
"private": true,
"version": "0.1.0",
"version": "0.0.8",
"type": "module",
"scripts": {
"e2e": "node --import tsx --import ./mock-register.js --test ./node/**/*.e2e.ts",
-204
View File
@@ -1,209 +1,5 @@
# examples
## 0.2.4
### Patch Changes
- Updated dependencies [ad3c7f1]
- @llamaindex/core@0.5.4
- @llamaindex/cloud@3.0.5
- llamaindex@0.9.5
- @llamaindex/node-parser@1.0.4
- @llamaindex/anthropic@0.2.2
- @llamaindex/clip@0.0.40
- @llamaindex/cohere@0.0.9
- @llamaindex/deepinfra@0.0.40
- @llamaindex/google@0.0.11
- @llamaindex/huggingface@0.0.40
- @llamaindex/mistral@0.0.9
- @llamaindex/mixedbread@0.0.9
- @llamaindex/ollama@0.0.44
- @llamaindex/openai@0.1.56
- @llamaindex/portkey-ai@0.0.37
- @llamaindex/replicate@0.0.37
- @llamaindex/astra@0.0.9
- @llamaindex/azure@0.1.4
- @llamaindex/chroma@0.0.9
- @llamaindex/firestore@1.0.2
- @llamaindex/milvus@0.1.4
- @llamaindex/mongodb@0.0.9
- @llamaindex/pinecone@0.0.9
- @llamaindex/postgres@0.0.37
- @llamaindex/qdrant@0.1.4
- @llamaindex/upstash@0.0.9
- @llamaindex/weaviate@0.0.9
- @llamaindex/vercel@0.0.15
- @llamaindex/voyage-ai@1.0.1
- @llamaindex/readers@2.0.4
- @llamaindex/groq@0.0.55
- @llamaindex/vllm@0.0.26
## 0.2.3
### Patch Changes
- Updated dependencies [cb256f2]
- Updated dependencies [cb021e7]
- Updated dependencies [0346391]
- @llamaindex/openai@0.1.55
- @llamaindex/core@0.5.3
- llamaindex@0.9.4
- @llamaindex/voyage-ai@1.0.0
- @llamaindex/clip@0.0.39
- @llamaindex/deepinfra@0.0.39
- @llamaindex/groq@0.0.54
- @llamaindex/huggingface@0.0.39
- @llamaindex/azure@0.1.3
- @llamaindex/milvus@0.1.3
- @llamaindex/qdrant@0.1.3
- @llamaindex/vllm@0.0.25
- @llamaindex/cloud@3.0.4
- @llamaindex/node-parser@1.0.3
- @llamaindex/anthropic@0.2.1
- @llamaindex/cohere@0.0.8
- @llamaindex/google@0.0.10
- @llamaindex/mistral@0.0.8
- @llamaindex/mixedbread@0.0.8
- @llamaindex/ollama@0.0.43
- @llamaindex/portkey-ai@0.0.36
- @llamaindex/replicate@0.0.36
- @llamaindex/astra@0.0.8
- @llamaindex/chroma@0.0.8
- @llamaindex/firestore@1.0.1
- @llamaindex/mongodb@0.0.8
- @llamaindex/pinecone@0.0.8
- @llamaindex/postgres@0.0.36
- @llamaindex/upstash@0.0.8
- @llamaindex/weaviate@0.0.8
- @llamaindex/vercel@0.0.14
- @llamaindex/readers@2.0.3
## 0.2.2
### Patch Changes
- 3564244: Add support for claude 3.7 thinking (and set default temperature to 1)
- 3564244: add support for claude 3.7
- Updated dependencies [d952e68]
- Updated dependencies [a9c6144]
- Updated dependencies [5c026e8]
- Updated dependencies [3564244]
- Updated dependencies [3564244]
- @llamaindex/core@0.5.2
- @llamaindex/anthropic@0.2.0
- @llamaindex/firestore@1.0.0
- @llamaindex/cloud@3.0.3
- llamaindex@0.9.3
- @llamaindex/node-parser@1.0.2
- @llamaindex/clip@0.0.38
- @llamaindex/cohere@0.0.7
- @llamaindex/deepinfra@0.0.38
- @llamaindex/google@0.0.9
- @llamaindex/huggingface@0.0.38
- @llamaindex/mistral@0.0.7
- @llamaindex/mixedbread@0.0.7
- @llamaindex/ollama@0.0.42
- @llamaindex/openai@0.1.54
- @llamaindex/portkey-ai@0.0.35
- @llamaindex/replicate@0.0.35
- @llamaindex/astra@0.0.7
- @llamaindex/azure@0.1.2
- @llamaindex/chroma@0.0.7
- @llamaindex/milvus@0.1.2
- @llamaindex/mongodb@0.0.7
- @llamaindex/pinecone@0.0.7
- @llamaindex/postgres@0.0.35
- @llamaindex/qdrant@0.1.2
- @llamaindex/upstash@0.0.7
- @llamaindex/weaviate@0.0.7
- @llamaindex/vercel@0.0.13
- @llamaindex/readers@2.0.2
- @llamaindex/groq@0.0.53
- @llamaindex/vllm@0.0.24
## 0.2.1
### Patch Changes
- Updated dependencies [cc50c9c]
- Updated dependencies [6d37d44]
- @llamaindex/env@0.1.28
- llamaindex@0.9.1
- @llamaindex/cloud@3.0.1
- @llamaindex/core@0.5.1
- @llamaindex/node-parser@1.0.1
- @llamaindex/anthropic@0.1.1
- @llamaindex/clip@0.0.37
- @llamaindex/cohere@0.0.6
- @llamaindex/deepinfra@0.0.37
- @llamaindex/google@0.0.8
- @llamaindex/groq@0.0.52
- @llamaindex/huggingface@0.0.37
- @llamaindex/mistral@0.0.6
- @llamaindex/mixedbread@0.0.6
- @llamaindex/ollama@0.0.41
- @llamaindex/openai@0.1.53
- @llamaindex/portkey-ai@0.0.34
- @llamaindex/replicate@0.0.34
- @llamaindex/astra@0.0.6
- @llamaindex/azure@0.1.1
- @llamaindex/chroma@0.0.6
- @llamaindex/milvus@0.1.1
- @llamaindex/mongodb@0.0.6
- @llamaindex/pinecone@0.0.6
- @llamaindex/postgres@0.0.34
- @llamaindex/qdrant@0.1.1
- @llamaindex/upstash@0.0.6
- @llamaindex/weaviate@0.0.6
- @llamaindex/readers@2.0.1
- @llamaindex/workflow@0.0.11
- @llamaindex/vercel@0.0.12
- @llamaindex/vllm@0.0.23
## 0.2.0
### Minor Changes
- 6a4a737: Remove re-exports from llamaindex main package
- f4588bc: Remove readers package from llamaindex
### Patch Changes
- b490376: Remove deprecated ServiceContext
- Updated dependencies [6a4a737]
- Updated dependencies [d924c63]
- Updated dependencies [b490376]
- Updated dependencies [f4588bc]
- @llamaindex/milvus@0.1.0
- @llamaindex/qdrant@0.1.0
- @llamaindex/azure@0.1.0
- @llamaindex/anthropic@0.1.0
- llamaindex@0.9.0
- @llamaindex/cloud@3.0.0
- @llamaindex/node-parser@1.0.0
- @llamaindex/clip@0.0.36
- @llamaindex/cohere@0.0.5
- @llamaindex/deepinfra@0.0.36
- @llamaindex/google@0.0.7
- @llamaindex/huggingface@0.0.36
- @llamaindex/mistral@0.0.5
- @llamaindex/mixedbread@0.0.5
- @llamaindex/ollama@0.0.40
- @llamaindex/openai@0.1.52
- @llamaindex/portkey-ai@0.0.33
- @llamaindex/replicate@0.0.33
- @llamaindex/astra@0.0.5
- @llamaindex/chroma@0.0.5
- @llamaindex/mongodb@0.0.5
- @llamaindex/pinecone@0.0.5
- @llamaindex/postgres@0.0.33
- @llamaindex/upstash@0.0.5
- @llamaindex/weaviate@0.0.5
- @llamaindex/vercel@0.0.11
- @llamaindex/readers@2.0.0
- @llamaindex/groq@0.0.51
- @llamaindex/vllm@0.0.22
## 0.1.3
### Patch Changes
+1 -1
View File
@@ -8,7 +8,7 @@ Settings.callbackManager.on("llm-tool-call", (event) => {
const anthropic = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
model: "claude-3-7-sonnet",
model: "claude-3-5-sonnet",
});
const agent = new AnthropicAgent({
+2 -2
View File
@@ -3,7 +3,7 @@ import { Anthropic } from "@llamaindex/anthropic";
(async () => {
const anthropic = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
model: "claude-3-7-sonnet",
model: "claude-3-opus",
});
const result = await anthropic.chat({
messages: [
@@ -15,5 +15,5 @@ import { Anthropic } from "@llamaindex/anthropic";
},
],
});
console.log(result.message.content);
console.log(result);
})();
+1 -1
View File
@@ -6,7 +6,7 @@ import readline from "node:readline/promises";
(async () => {
const llm = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
model: "claude-3-7-sonnet",
model: "claude-3-opus",
});
// chatHistory will store all the messages in the conversation
const chatHistory = new ChatMemoryBuffer({
+1 -1
View File
@@ -2,7 +2,7 @@ import { Anthropic } from "@llamaindex/anthropic";
async function main() {
const anthropic = new Anthropic({
model: "claude-3-7-sonnet",
model: "claude-3-5-sonnet-20241022",
});
const entireBook = await fetch(
+1 -1
View File
@@ -3,7 +3,7 @@ import { Anthropic } from "@llamaindex/anthropic";
(async () => {
const anthropic = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
model: "claude-3-7-sonnet",
model: "claude-3-5-sonnet",
});
const stream = await anthropic.chat({
messages: [
-32
View File
@@ -1,32 +0,0 @@
import { Anthropic } from "@llamaindex/anthropic";
(async () => {
const anthropic = new Anthropic({
model: "claude-3-7-sonnet",
maxTokens: 20000,
additionalChatOptions: {
thinking: {
type: "enabled",
budget_tokens: 16000,
},
},
});
const result = await anthropic.chat({
messages: [
{
role: "user",
content:
"Are there an infinite number of prime numbers such that n mod 4 == 3?",
},
],
stream: true,
});
console.log("Thinking...");
for await (const chunk of result) {
if (chunk.delta) {
process.stdout.write(chunk.delta);
} else if (chunk.options?.thinking) {
process.stdout.write(chunk.options.thinking);
}
}
})();
-25
View File
@@ -1,25 +0,0 @@
import { LLMAgent } from "llamaindex";
import { stdin as input, stdout as output } from "node:process";
import readline from "node:readline/promises";
const agent = new LLMAgent({ tools: [] });
(async () => {
const rl = readline.createInterface({ input, output });
while (true) {
const query = await rl.question("User: ");
const startTime = Date.now();
const stream = await agent.chat({ message: query, stream: true });
const timeToGetFirstChunk = Date.now() - startTime;
process.stdout.write(
`Time to get first chunk from LLMAgent: ${timeToGetFirstChunk}ms\n`,
);
process.stdout.write("Assistant with LLMAgent: ");
for await (const chunk of stream) {
process.stdout.write(chunk.response);
}
process.stdout.write("\n");
}
})();
-4
View File
@@ -1,4 +0,0 @@
GCP_PROJECT_ID=
GCP_CREDENTIALS=
FIRESTORE_DB=
OPENAI_API_KEY=
-35
View File
@@ -1,35 +0,0 @@
# Firestore Vector Store
Here are some sample scripts which work with loading and querying data from a Firestore Vector Store.
## Prerequisites
- A Firestore Database
- Hosted https://console.firebase.google.com/
- An OpenAI API Key
## Setup
1. Set your env variables:
- `FIRESTORE_DB`: Name of your Firestore database
- `GCP_PROJECT_ID`: Your GCP project ID
- `GCP_CREDENTIALS`: Your GCP credentials JSON
- `OPENAI_API_KEY`: Your OpenAI key
2. `cd` Into the `examples` directory
3. run `npm i`
## Load the data
This sample loads the same dataset of movie reviews as sample dataset
run `npx tsx firestore/load.ts`
## Use RAG to Query the data
run `npx tsx firestore/query.ts`
## Delete the data
run `npx tsx firestore/delete.ts`
-32
View File
@@ -1,32 +0,0 @@
import { CollectionReference } from "@google-cloud/firestore";
import "dotenv/config";
import { FirestoreVectorStore } from "@llamaindex/firestore";
import { OpenAIEmbedding, Settings } from "llamaindex";
const indexName = "MovieReviews";
Settings.embedModel = new OpenAIEmbedding();
async function main() {
try {
const vectorStore = new FirestoreVectorStore({
clientOptions: {
credentials: JSON.parse(process.env.GCP_CREDENTIALS!),
projectId: process.env.GCP_PROJECT_ID!,
databaseId: process.env.FIRESTORE_DB!,
ignoreUndefinedProperties: true,
},
collectionName: indexName,
customCollectionReference: (rootCollection: CollectionReference) => {
return rootCollection.doc("accountId-123").collection("vectors");
},
});
vectorStore.delete("movie_reviews.csv");
} catch (e) {
console.error(e);
}
}
void main();
-44
View File
@@ -1,44 +0,0 @@
import { CollectionReference } from "@google-cloud/firestore";
import { CSVReader } from "@llamaindex/readers/csv";
import "dotenv/config";
import {
OpenAIEmbedding,
Settings,
storageContextFromDefaults,
VectorStoreIndex,
} from "llamaindex";
import { FirestoreVectorStore } from "@llamaindex/firestore";
const indexName = "MovieReviews";
Settings.embedModel = new OpenAIEmbedding();
async function main() {
try {
const reader = new CSVReader(false);
const docs = await reader.loadData("./data/movie_reviews.csv");
const vectorStore = new FirestoreVectorStore({
clientOptions: {
credentials: JSON.parse(process.env.GCP_CREDENTIALS!),
projectId: process.env.GCP_PROJECT_ID!,
databaseId: process.env.FIRESTORE_DB!,
ignoreUndefinedProperties: true,
},
collectionName: indexName,
customCollectionReference: (rootCollection: CollectionReference) => {
return rootCollection.doc("accountId-123").collection("vectors");
},
});
const storageContext = await storageContextFromDefaults({ vectorStore });
await VectorStoreIndex.fromDocuments(docs, { storageContext });
} catch (e) {
console.error(e);
}
}
void main();
-58
View File
@@ -1,58 +0,0 @@
import "dotenv/config";
import { OpenAIEmbedding, Settings, VectorStoreIndex } from "llamaindex";
import { CollectionReference } from "@google-cloud/firestore";
import { FirestoreVectorStore } from "@llamaindex/firestore";
const indexName = "MovieReviews";
Settings.embedModel = new OpenAIEmbedding();
async function main() {
try {
const vectorStore = new FirestoreVectorStore({
clientOptions: {
credentials: JSON.parse(process.env.GCP_CREDENTIALS!),
projectId: process.env.GCP_PROJECT_ID!,
databaseId: process.env.FIRESTORE_DB!,
ignoreUndefinedProperties: true,
},
collectionName: indexName,
customCollectionReference: (rootCollection: CollectionReference) => {
return rootCollection.doc("accountId-123").collection("vectors");
},
});
const index = await VectorStoreIndex.fromVectorStore(vectorStore);
const retriever = index.asRetriever({ similarityTopK: 20 });
const queryEngine = index.asQueryEngine({ retriever });
const query = "Get all movie titles.";
const results = await queryEngine.query({ query });
console.log(`Query from ${results.sourceNodes?.length} nodes`);
console.log(results.response);
console.log("\n=====\nQuerying the index with filters");
const queryEngineWithFilters = index.asQueryEngine({
retriever,
preFilters: {
filters: [
{
key: "file_name",
value: "movie_reviews.csv",
operator: "==",
},
],
},
});
const resultAfterFilter = await queryEngineWithFilters.query({
query: "Get all movie titles.",
});
console.log(`Query from ${resultAfterFilter.sourceNodes?.length} nodes`);
console.log(resultAfterFilter.response);
} catch (e) {
console.error(e);
}
}
void main();
+1 -1
View File
@@ -1,7 +1,7 @@
import { OpenAI, OpenAIEmbedding } from "@llamaindex/openai";
(async () => {
const llm = new OpenAI({ model: "gpt-4.5-preview", temperature: 0.1 });
const llm = new OpenAI({ model: "gpt-4-1106-preview", temperature: 0.1 });
// complete api
const response1 = await llm.complete({ prompt: "How are you?" });
+32 -36
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/examples",
"version": "0.2.4",
"version": "0.1.3",
"private": true,
"scripts": {
"lint": "eslint .",
@@ -11,39 +11,36 @@
"@azure/cosmos": "^4.1.1",
"@azure/identity": "^4.4.1",
"@azure/search-documents": "^12.1.0",
"@llamaindex/anthropic": "^0.2.2",
"@llamaindex/astra": "^0.0.9",
"@llamaindex/azure": "^0.1.4",
"@llamaindex/chroma": "^0.0.9",
"@llamaindex/clip": "^0.0.40",
"@llamaindex/cloud": "^3.0.5",
"@llamaindex/cohere": "^0.0.9",
"@llamaindex/core": "^0.5.4",
"@llamaindex/deepinfra": "^0.0.40",
"@llamaindex/env": "^0.1.28",
"@llamaindex/firestore": "^1.0.2",
"@llamaindex/google": "^0.0.11",
"@llamaindex/groq": "^0.0.55",
"@llamaindex/huggingface": "^0.0.40",
"@llamaindex/milvus": "^0.1.4",
"@llamaindex/mistral": "^0.0.9",
"@llamaindex/mixedbread": "^0.0.9",
"@llamaindex/mongodb": "^0.0.9",
"@llamaindex/node-parser": "^1.0.4",
"@llamaindex/ollama": "^0.0.44",
"@llamaindex/openai": "^0.1.56",
"@llamaindex/pinecone": "^0.0.9",
"@llamaindex/portkey-ai": "^0.0.37",
"@llamaindex/postgres": "^0.0.37",
"@llamaindex/qdrant": "^0.1.4",
"@llamaindex/readers": "^2.0.4",
"@llamaindex/replicate": "^0.0.37",
"@llamaindex/upstash": "^0.0.9",
"@llamaindex/vercel": "^0.0.15",
"@llamaindex/vllm": "^0.0.26",
"@llamaindex/voyage-ai": "^1.0.1",
"@llamaindex/weaviate": "^0.0.9",
"@llamaindex/workflow": "^0.0.11",
"@llamaindex/anthropic": "workspace:* || ^0.0.33",
"@llamaindex/astra": "workspace:* || ^0.0.4",
"@llamaindex/azure": "workspace:* || ^0.0.4",
"@llamaindex/chroma": "workspace:* || ^0.0.4",
"@llamaindex/clip": "workspace:* || ^0.0.35",
"@llamaindex/cloud": "workspace:* || ^2.0.24",
"@llamaindex/cohere": "workspace:* || ^0.0.4",
"@llamaindex/deepinfra": "workspace:* || ^0.0.35",
"@llamaindex/env": "workspace:* || ^0.1.27",
"@llamaindex/google": "workspace:* || ^0.0.6",
"@llamaindex/groq": "workspace:* || ^0.0.50",
"@llamaindex/huggingface": "workspace:* || ^0.0.35",
"@llamaindex/milvus": "workspace:* || ^0.0.4",
"@llamaindex/mistral": "workspace:* || ^0.0.4",
"@llamaindex/mixedbread": "workspace:* || ^0.0.4",
"@llamaindex/mongodb": "workspace:* || ^0.0.4",
"@llamaindex/node-parser": "workspace:* || ^0.0.24",
"@llamaindex/ollama": "workspace:* || ^0.0.39",
"@llamaindex/openai": "workspace:* || ^0.1.51",
"@llamaindex/pinecone": "workspace:* || ^0.0.4",
"@llamaindex/portkey-ai": "workspace:* || ^0.0.32",
"@llamaindex/postgres": "workspace:* || ^0.0.32",
"@llamaindex/qdrant": "workspace:* || ^0.0.4",
"@llamaindex/readers": "workspace:* || ^1.0.25",
"@llamaindex/replicate": "workspace:* || ^0.0.32",
"@llamaindex/upstash": "workspace:* || ^0.0.4",
"@llamaindex/vercel": "workspace:* || ^0.0.10",
"@llamaindex/vllm": "workspace:* || ^0.0.21",
"@llamaindex/weaviate": "workspace:* || ^0.0.4",
"@llamaindex/workflow": "workspace:* || ^0.0.10",
"@notionhq/client": "^2.2.15",
"@pinecone-database/pinecone": "^4.0.0",
"@vercel/postgres": "^0.10.0",
@@ -52,9 +49,8 @@
"commander": "^12.1.0",
"dotenv": "^16.4.5",
"js-tiktoken": "^1.0.14",
"llamaindex": "^0.9.5",
"llamaindex": "workspace:* || ^0.8.37",
"mongodb": "6.7.0",
"pathe": "^1.1.2",
"postgres": "^3.4.4",
"wikipedia": "^2.1.2"
},
+2 -12
View File
@@ -3,18 +3,6 @@ import fs from "node:fs/promises";
import { createInterface } from "node:readline/promises";
async function main() {
const rl = createInterface({ input: process.stdin, output: process.stdout });
if (!process.env.OPENAI_API_KEY) {
console.log("OpenAI API key not found in environment variables.");
console.log(
"You can get an API key at https://platform.openai.com/account/api-keys",
);
process.env.OPENAI_API_KEY = await rl.question(
"Please enter your OpenAI API key: ",
);
}
const path = "node_modules/llamaindex/examples/abramov.txt";
const essay = await fs.readFile(path, "utf-8");
const document = new Document({ text: essay, id_: path });
@@ -22,6 +10,8 @@ async function main() {
const index = await VectorStoreIndex.fromDocuments([document]);
const queryEngine = index.asQueryEngine();
const rl = createInterface({ input: process.stdin, output: process.stdout });
console.log(
"Try asking a question about the essay: https://github.com/run-llama/LlamaIndexTS/blob/main/packages/llamaindex/examples/abramov.txt",
"\nExample: When did the author graduate from high school?",
-17
View File
@@ -1,17 +0,0 @@
import { VoyageAIEmbedding } from "@llamaindex/voyage-ai";
async function main() {
// API token can be provided as an environment variable too
// using VOYAGE_API_TOKEN variable
const apiKey = process.env.VOYAGE_API_TOKEN ?? "YOUR_API_TOKEN";
const model = "voyage-3-lite";
const embedModel = new VoyageAIEmbedding({
model,
apiKey,
});
const texts = ["hello", "world"];
const embeddings = await embedModel.getTextEmbeddingsBatch(texts);
console.log(`\nWe have ${embeddings.length} embeddings`);
}
main().catch(console.error);
-5
View File
@@ -43,10 +43,5 @@
"eslint"
],
"*.{json,md}": "prettier --check"
},
"pnpm": {
"patchedDependencies": {
"bunchee@6.3.4": "patches/bunchee@6.3.4.patch"
}
}
}
-43
View File
@@ -1,48 +1,5 @@
# @llamaindex/autotool
## 6.0.5
### Patch Changes
- llamaindex@0.9.5
## 6.0.4
### Patch Changes
- Updated dependencies [cb021e7]
- llamaindex@0.9.4
## 6.0.3
### Patch Changes
- llamaindex@0.9.3
## 6.0.2
### Patch Changes
- Updated dependencies [88d776f]
- llamaindex@0.9.2
## 6.0.1
### Patch Changes
- Updated dependencies [6d37d44]
- llamaindex@0.9.1
## 6.0.0
### Patch Changes
- Updated dependencies [6a4a737]
- Updated dependencies [d924c63]
- Updated dependencies [b490376]
- Updated dependencies [f4588bc]
- llamaindex@0.9.0
## 5.0.37
### Patch Changes
@@ -1,54 +1,5 @@
# @llamaindex/autotool-01-node-example
## 0.0.86
### Patch Changes
- llamaindex@0.9.5
- @llamaindex/autotool@6.0.5
## 0.0.85
### Patch Changes
- Updated dependencies [cb021e7]
- llamaindex@0.9.4
- @llamaindex/autotool@6.0.4
## 0.0.84
### Patch Changes
- llamaindex@0.9.3
- @llamaindex/autotool@6.0.3
## 0.0.83
### Patch Changes
- Updated dependencies [88d776f]
- llamaindex@0.9.2
- @llamaindex/autotool@6.0.2
## 0.0.82
### Patch Changes
- Updated dependencies [6d37d44]
- llamaindex@0.9.1
- @llamaindex/autotool@6.0.1
## 0.0.81
### Patch Changes
- Updated dependencies [6a4a737]
- Updated dependencies [d924c63]
- Updated dependencies [b490376]
- Updated dependencies [f4588bc]
- llamaindex@0.9.0
- @llamaindex/autotool@6.0.0
## 0.0.80
### Patch Changes
@@ -13,5 +13,5 @@
"scripts": {
"start": "node --import tsx --import @llamaindex/autotool/node ./src/index.ts"
},
"version": "0.0.86"
"version": "0.0.80"
}
@@ -1,54 +1,5 @@
# @llamaindex/autotool-02-next-example
## 0.1.130
### Patch Changes
- llamaindex@0.9.5
- @llamaindex/autotool@6.0.5
## 0.1.129
### Patch Changes
- Updated dependencies [cb021e7]
- llamaindex@0.9.4
- @llamaindex/autotool@6.0.4
## 0.1.128
### Patch Changes
- llamaindex@0.9.3
- @llamaindex/autotool@6.0.3
## 0.1.127
### Patch Changes
- Updated dependencies [88d776f]
- llamaindex@0.9.2
- @llamaindex/autotool@6.0.2
## 0.1.126
### Patch Changes
- Updated dependencies [6d37d44]
- llamaindex@0.9.1
- @llamaindex/autotool@6.0.1
## 0.1.125
### Patch Changes
- Updated dependencies [6a4a737]
- Updated dependencies [d924c63]
- Updated dependencies [b490376]
- Updated dependencies [f4588bc]
- llamaindex@0.9.0
- @llamaindex/autotool@6.0.0
## 0.1.124
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/autotool-02-next-example",
"private": true,
"version": "0.1.130",
"version": "0.1.124",
"scripts": {
"dev": "next dev",
"build": "next build",
@@ -15,7 +15,7 @@
"dotenv": "^16.3.1",
"llamaindex": "workspace:*",
"lucide-react": "^0.460.0",
"next": "15.1.7",
"next": "15.0.3",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-markdown": "^9.0.1",
+3 -3
View File
@@ -6,7 +6,7 @@
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
"directory": "packages/autotool"
},
"version": "6.0.5",
"version": "5.0.37",
"description": "auto transpile your JS function to LLM Agent compatible",
"files": [
"dist",
@@ -75,9 +75,9 @@
"@swc/types": "^0.1.12",
"@types/json-schema": "^7.0.15",
"@types/node": "^22.9.0",
"bunchee": "6.3.4",
"bunchee": "6.2.0",
"llamaindex": "workspace:*",
"next": "15.1.7",
"next": "15.0.3",
"rollup": "^4.28.1",
"tsx": "^4.19.0",
"typescript": "^5.7.2",
-43
View File
@@ -1,48 +1,5 @@
# @llamaindex/cloud
## 3.0.5
### Patch Changes
- Updated dependencies [ad3c7f1]
- @llamaindex/core@0.5.4
## 3.0.4
### Patch Changes
- Updated dependencies [cb021e7]
- @llamaindex/core@0.5.3
## 3.0.3
### Patch Changes
- Updated dependencies [d952e68]
- @llamaindex/core@0.5.2
## 3.0.2
### Patch Changes
- c902fcb: chore: bump llamacloud openapi
## 3.0.1
### Patch Changes
- Updated dependencies [cc50c9c]
- @llamaindex/env@0.1.28
- @llamaindex/core@0.5.1
## 3.0.0
### Patch Changes
- Updated dependencies [6a4a737]
- Updated dependencies [d924c63]
- @llamaindex/core@0.5.0
## 2.0.24
### Patch Changes
+1581 -4291
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloud",
"version": "3.0.5",
"version": "2.0.24",
"type": "module",
"license": "MIT",
"scripts": {
@@ -59,7 +59,7 @@
"@hey-api/openapi-ts": "^0.61.0",
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*",
"bunchee": "6.3.4"
"bunchee": "6.2.0"
},
"peerDependencies": {
"@llamaindex/core": "workspace:*",
-44
View File
@@ -4,7 +4,6 @@ import { fs, getEnv, path } from "@llamaindex/env";
import {
type Body_upload_file_api_v1_parsing_upload_post,
type ParserLanguages,
type ParsingMode,
getJobApiV1ParsingJobJobIdGet,
getJobImageResultApiV1ParsingJobJobIdResultImageNameGet,
getJobJsonResultApiV1ParsingJobJobIdResultJsonGet,
@@ -128,26 +127,6 @@ export class LlamaParseReader extends FileReader {
readonly #client: Client;
output_tables_as_HTML: boolean = false;
input_s3_region?: string | undefined;
output_s3_region?: string | undefined;
preserve_layout_alignment_across_pages?: boolean | undefined;
spreadsheet_extract_sub_tables?: boolean | undefined;
formatting_instruction?: string | undefined;
parse_mode?: ParsingMode | undefined;
system_prompt?: string | undefined;
system_prompt_append?: string | undefined;
user_prompt?: string | undefined;
job_timeout_in_seconds?: number | undefined;
job_timeout_extra_time_per_page_in_seconds?: number | undefined;
strict_mode_image_extraction?: boolean | undefined;
strict_mode_image_ocr?: boolean | undefined;
strict_mode_reconstruction?: boolean | undefined;
strict_mode_buggy_font?: boolean | undefined;
ignore_document_elements_for_layout_detection?: boolean | undefined;
complemental_formatting_instruction?: string | undefined;
content_guideline_instruction?: string | undefined;
constructor(
params: Partial<Omit<LlamaParseReader, "language" | "apiKey">> & {
language?: ParserLanguages | ParserLanguages[] | undefined;
@@ -273,29 +252,6 @@ export class LlamaParseReader extends FileReader {
structured_output_json_schema_name:
this.structured_output_json_schema_name,
extract_layout: this.extract_layout,
output_tables_as_HTML: this.output_tables_as_HTML,
input_s3_region: this.input_s3_region,
output_s3_region: this.output_s3_region,
preserve_layout_alignment_across_pages:
this.preserve_layout_alignment_across_pages,
spreadsheet_extract_sub_tables: this.spreadsheet_extract_sub_tables,
formatting_instruction: this.formatting_instruction,
parse_mode: this.parse_mode,
system_prompt: this.system_prompt,
system_prompt_append: this.system_prompt_append,
user_prompt: this.user_prompt,
job_timeout_in_seconds: this.job_timeout_in_seconds,
job_timeout_extra_time_per_page_in_seconds:
this.job_timeout_extra_time_per_page_in_seconds,
strict_mode_image_extraction: this.strict_mode_image_extraction,
strict_mode_image_ocr: this.strict_mode_image_ocr,
strict_mode_reconstruction: this.strict_mode_reconstruction,
strict_mode_buggy_font: this.strict_mode_buggy_font,
ignore_document_elements_for_layout_detection:
this.ignore_document_elements_for_layout_detection,
complemental_formatting_instruction:
this.complemental_formatting_instruction,
content_guideline_instruction: this.content_guideline_instruction,
} satisfies {
[Key in keyof Body_upload_file_api_v1_parsing_upload_post]-?:
| Body_upload_file_api_v1_parsing_upload_post[Key]
-38
View File
@@ -1,43 +1,5 @@
# @llamaindex/community
## 0.0.86
### Patch Changes
- Updated dependencies [ad3c7f1]
- @llamaindex/core@0.5.4
## 0.0.85
### Patch Changes
- 1914b52: Added Claude 3.7 Sonnet support
- Updated dependencies [cb021e7]
- @llamaindex/core@0.5.3
## 0.0.84
### Patch Changes
- Updated dependencies [d952e68]
- @llamaindex/core@0.5.2
## 0.0.83
### Patch Changes
- Updated dependencies [cc50c9c]
- @llamaindex/env@0.1.28
- @llamaindex/core@0.5.1
## 0.0.82
### Patch Changes
- Updated dependencies [6a4a737]
- Updated dependencies [d924c63]
- @llamaindex/core@0.5.0
## 0.0.81
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/community",
"description": "Community package for LlamaIndexTS",
"version": "0.0.86",
"version": "0.0.81",
"type": "module",
"types": "dist/type/index.d.ts",
"main": "dist/cjs/index.js",
@@ -43,7 +43,7 @@
},
"devDependencies": {
"@types/node": "^22.9.0",
"bunchee": "6.3.4"
"bunchee": "6.2.0"
},
"dependencies": {
"@aws-sdk/client-bedrock-agent-runtime": "^3.706.0",
@@ -6,19 +6,7 @@ export type ToolChoice =
| { type: "auto" }
| { type: "tool"; name: string };
export interface ThinkingConfigDisabled {
type: "disabled";
}
export interface ThinkingConfigEnabled {
budget_tokens: number;
type: "enabled";
}
export type AnthropicAdditionalChatOptions = {
toolChoice: ToolChoice;
thinking?: ThinkingConfigDisabled | ThinkingConfigEnabled;
};
export type AnthropicAdditionalChatOptions = { toolChoice: ToolChoice };
type Usage = {
input_tokens: number;
@@ -69,7 +69,6 @@ export const BEDROCK_MODELS = {
ANTHROPIC_CLAUDE_3_5_SONNET: "anthropic.claude-3-5-sonnet-20240620-v1:0",
ANTHROPIC_CLAUDE_3_5_SONNET_V2: "anthropic.claude-3-5-sonnet-20241022-v2:0",
ANTHROPIC_CLAUDE_3_5_HAIKU: "anthropic.claude-3-5-haiku-20241022-v1:0",
ANTHROPIC_CLAUDE_3_7_SONNET: "anthropic.claude-3-7-sonnet-20250219-v1:0",
META_LLAMA2_13B_CHAT: "meta.llama2-13b-chat-v1",
META_LLAMA2_70B_CHAT: "meta.llama2-70b-chat-v1",
META_LLAMA3_8B_INSTRUCT: "meta.llama3-8b-instruct-v1:0",
@@ -101,8 +100,6 @@ export const INFERENCE_BEDROCK_MODELS = {
"us.anthropic.claude-3-5-sonnet-20240620-v1:0",
US_ANTHROPIC_CLAUDE_3_5_SONNET_V2:
"us.anthropic.claude-3-5-sonnet-20241022-v2:0",
US_ANTHROPIC_CLAUDE_3_7_SONNET:
"us.anthropic.claude-3-7-sonnet-20250219-v1:0",
US_META_LLAMA_3_2_1B_INSTRUCT: "us.meta.llama3-2-1b-instruct-v1:0",
US_META_LLAMA_3_2_3B_INSTRUCT: "us.meta.llama3-2-3b-instruct-v1:0",
US_META_LLAMA_3_2_11B_INSTRUCT: "us.meta.llama3-2-11b-instruct-v1:0",
@@ -116,8 +113,6 @@ export const INFERENCE_BEDROCK_MODELS = {
EU_ANTHROPIC_CLAUDE_3_SONNET: "eu.anthropic.claude-3-sonnet-20240229-v1:0",
EU_ANTHROPIC_CLAUDE_3_5_SONNET:
"eu.anthropic.claude-3-5-sonnet-20240620-v1:0",
EU_ANTHROPIC_CLAUDE_3_7_SONNET:
"eu.anthropic.claude-3-7-sonnet-20250219-v1:0",
EU_META_LLAMA_3_2_1B_INSTRUCT: "eu.meta.llama3-2-1b-instruct-v1:0",
EU_META_LLAMA_3_2_3B_INSTRUCT: "eu.meta.llama3-2-3b-instruct-v1:0",
};
@@ -137,8 +132,6 @@ export const INFERENCE_TO_BEDROCK_MAP: Record<
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_SONNET,
[INFERENCE_BEDROCK_MODELS.US_ANTHROPIC_CLAUDE_3_5_SONNET]:
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET,
[INFERENCE_BEDROCK_MODELS.US_ANTHROPIC_CLAUDE_3_7_SONNET]:
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_7_SONNET,
[INFERENCE_BEDROCK_MODELS.US_ANTHROPIC_CLAUDE_3_5_SONNET_V2]:
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET_V2,
[INFERENCE_BEDROCK_MODELS.US_ANTHROPIC_CLAUDE_3_5_HAIKU]:
@@ -165,8 +158,6 @@ export const INFERENCE_TO_BEDROCK_MAP: Record<
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_SONNET,
[INFERENCE_BEDROCK_MODELS.EU_ANTHROPIC_CLAUDE_3_5_SONNET]:
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET,
[INFERENCE_BEDROCK_MODELS.EU_ANTHROPIC_CLAUDE_3_7_SONNET]:
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_7_SONNET,
[INFERENCE_BEDROCK_MODELS.EU_META_LLAMA_3_2_1B_INSTRUCT]:
BEDROCK_MODELS.META_LLAMA3_2_1B_INSTRUCT,
[INFERENCE_BEDROCK_MODELS.EU_META_LLAMA_3_2_3B_INSTRUCT]:
@@ -200,7 +191,6 @@ const CHAT_ONLY_MODELS = {
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET]: 200000,
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET_V2]: 200000,
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_HAIKU]: 200000,
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_7_SONNET]: 200000,
[BEDROCK_MODELS.META_LLAMA2_13B_CHAT]: 2048,
[BEDROCK_MODELS.META_LLAMA2_70B_CHAT]: 4096,
[BEDROCK_MODELS.META_LLAMA3_8B_INSTRUCT]: 8192,
@@ -240,7 +230,6 @@ export const STREAMING_MODELS = new Set([
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET,
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET_V2,
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_HAIKU,
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_7_SONNET,
BEDROCK_MODELS.META_LLAMA2_13B_CHAT,
BEDROCK_MODELS.META_LLAMA2_70B_CHAT,
BEDROCK_MODELS.META_LLAMA3_8B_INSTRUCT,
@@ -267,7 +256,6 @@ export const TOOL_CALL_MODELS: BEDROCK_MODELS[] = [
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET,
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET_V2,
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_HAIKU,
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_7_SONNET,
BEDROCK_MODELS.META_LLAMA3_1_405B_INSTRUCT,
BEDROCK_MODELS.META_LLAMA3_2_1B_INSTRUCT,
BEDROCK_MODELS.META_LLAMA3_2_3B_INSTRUCT,
@@ -306,7 +294,6 @@ export const BEDROCK_MODEL_MAX_TOKENS: Partial<Record<BEDROCK_MODELS, number>> =
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET]: 4096,
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET_V2]: 8192,
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_HAIKU]: 8192,
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_7_SONNET]: 8192,
[BEDROCK_MODELS.META_LLAMA2_13B_CHAT]: 2048,
[BEDROCK_MODELS.META_LLAMA2_70B_CHAT]: 2048,
[BEDROCK_MODELS.META_LLAMA3_8B_INSTRUCT]: 2048,
-35
View File
@@ -1,40 +1,5 @@
# @llamaindex/core
## 0.5.4
### Patch Changes
- ad3c7f1: fix: streaming issues with LLMAgent
## 0.5.3
### Patch Changes
- cb021e7: feat(node-parser): support async function
## 0.5.2
### Patch Changes
- d952e68: Refine synthesizer will now return an empty string as the response if an empty array of source nodes were provided. Before it would throw an internal error converting undefined to ReadableStream.
## 0.5.1
### Patch Changes
- Updated dependencies [cc50c9c]
- @llamaindex/env@0.1.28
## 0.5.0
### Minor Changes
- 6a4a737: Remove re-exports from llamaindex main package
### Patch Changes
- d924c63: feat: asChatEngine function for index
## 0.4.23
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/core",
"type": "module",
"version": "0.5.4",
"version": "0.4.23",
"description": "LlamaIndex Core Module",
"exports": {
"./agent": {
@@ -316,7 +316,7 @@
"devDependencies": {
"@edge-runtime/vm": "^4.0.4",
"ajv": "^8.17.1",
"bunchee": "6.3.4",
"bunchee": "6.2.0",
"happy-dom": "^15.11.6",
"natural": "^8.0.1"
},
+18 -26
View File
@@ -193,7 +193,7 @@ export abstract class AgentWorker<
return new ReadableStream<
TaskStepOutput<AI, Store, AdditionalMessageOptions, AdditionalChatOptions>
>({
pull: async (controller) => {
start: async (controller) => {
for await (const stepOutput of taskOutputStream) {
this.#taskSet.add(stepOutput.taskStep);
if (stepOutput.isLast) {
@@ -209,31 +209,23 @@ export abstract class AgentWorker<
}
const { output, taskStep } = stepOutput;
if (output instanceof ReadableStream) {
let content = "";
let options: AdditionalMessageOptions | undefined = undefined;
const transformedStream = output.pipeThrough(
new TransformStream({
transform(chunk, controller) {
content += chunk.delta;
if (!options && chunk.options) {
options = chunk.options;
}
controller.enqueue(chunk); // Pass the chunk through unchanged
},
// When stream finishes, store the accumulated message in context
flush() {
taskStep.context.store.messages = [
...taskStep.context.store.messages,
{
role: "assistant",
content,
options,
},
];
},
}),
);
stepOutput.output = transformedStream;
const [pipStream, finalStream] = output.tee();
stepOutput.output = finalStream;
const reader = pipStream.getReader();
const { value } = await reader.read();
reader.releaseLock();
let content: string = value!.delta;
for await (const chunk of pipStream) {
content += chunk.delta;
}
taskStep.context.store.messages = [
...taskStep.context.store.messages,
{
role: "assistant",
content,
options: value!.options,
},
];
}
controller.enqueue(stepOutput);
controller.close();
+15 -37
View File
@@ -7,27 +7,21 @@ import {
TextNode,
TransformComponent,
} from "../schema";
import { isPromise } from "../utils";
export abstract class NodeParser<
Result extends TextNode[] | Promise<TextNode[]> =
| TextNode[]
| Promise<TextNode[]>,
> extends TransformComponent<Result> {
export abstract class NodeParser extends TransformComponent<BaseNode[]> {
includeMetadata: boolean = true;
includePrevNextRel: boolean = true;
constructor() {
super((nodes: BaseNode[]): Result => {
// alex: should we fix `as` type?
super((nodes: BaseNode[]): BaseNode[] => {
return this.getNodesFromDocuments(nodes as TextNode[]);
});
}
protected postProcessParsedNodes(
nodes: Awaited<Result>,
nodes: TextNode[],
parentDocMap: Map<string, TextNode>,
): Awaited<Result> {
): TextNode[] {
nodes.forEach((node, i) => {
const parentDoc = parentDocMap.get(node.sourceNode?.nodeId || "");
@@ -79,9 +73,9 @@ export abstract class NodeParser<
protected abstract parseNodes(
documents: TextNode[],
showProgress?: boolean,
): Result;
): TextNode[];
public getNodesFromDocuments(documents: TextNode[]): Result {
public getNodesFromDocuments(documents: TextNode[]): TextNode[] {
const docsId: Map<string, TextNode> = new Map(
documents.map((doc) => [doc.id_, doc]),
);
@@ -91,36 +85,20 @@ export abstract class NodeParser<
documents,
});
const parsedNodes = this.parseNodes(documents);
if (isPromise(parsedNodes)) {
return parsedNodes.then((parsedNodes) => {
const nodes = this.postProcessParsedNodes(
parsedNodes as Awaited<Result>,
docsId,
);
const nodes = this.postProcessParsedNodes(
this.parseNodes(documents),
docsId,
);
callbackManager.dispatchEvent("node-parsing-end", {
nodes,
});
callbackManager.dispatchEvent("node-parsing-end", {
nodes,
});
return nodes;
}) as Result;
} else {
const nodes = this.postProcessParsedNodes(
parsedNodes as Awaited<Result>,
docsId,
);
callbackManager.dispatchEvent("node-parsing-end", {
nodes,
});
return nodes;
}
return nodes;
}
}
export abstract class TextSplitter extends NodeParser<TextNode[]> {
export abstract class TextSplitter extends NodeParser {
abstract splitText(text: string): string[];
public splitTexts(texts: string[]): string[] {
+1 -1
View File
@@ -6,7 +6,7 @@ import {
} from "../schema";
import { NodeParser } from "./base";
export class MarkdownNodeParser extends NodeParser<TextNode[]> {
export class MarkdownNodeParser extends NodeParser {
override parseNodes(nodes: TextNode[], showProgress?: boolean): TextNode[] {
return nodes.reduce<TextNode[]>((allNodes, node) => {
const markdownNodes = this.getNodesFromNode(node);
@@ -9,7 +9,7 @@ import {
import { NodeParser } from "./base";
import { splitBySentenceTokenizer, type TextSplitterFn } from "./utils";
export class SentenceWindowNodeParser extends NodeParser<TextNode[]> {
export class SentenceWindowNodeParser extends NodeParser {
static DEFAULT_WINDOW_SIZE = 3;
static DEFAULT_WINDOW_METADATA_KEY = "window";
static DEFAULT_ORIGINAL_TEXT_METADATA_KEY = "originalText";
@@ -116,14 +116,7 @@ class Refine extends BaseSynthesizer {
}
}
if (response === undefined) {
response = stream
? (async function* () {
yield "";
})()
: "";
}
// fixme: no source nodes provided, cannot fix right now due to lack of context
if (typeof response === "string") {
return EngineResponse.fromResponse(response, false, nodes);
} else {
-4
View File
@@ -1,9 +1,5 @@
import type { JSONValue } from "../global";
export const isPromise = <T>(obj: unknown): obj is Promise<T> => {
return obj != null && typeof obj === "object" && "then" in obj;
};
export const isAsyncIterable = (
obj: unknown,
): obj is AsyncIterable<unknown> => {
+2 -2
View File
@@ -1,6 +1,6 @@
import type { BaseEmbedding } from "../embeddings";
import type { BaseEmbedding } from "../embeddings/base.js";
import { Settings } from "../global";
import type { BaseNode, ModalityType } from "../schema";
import type { BaseNode, ModalityType } from "../schema/node.js";
/**
* should compatible with npm:pg and npm:postgres
+1 -61
View File
@@ -1,5 +1,4 @@
import { LLMAgent, validateAgentParams } from "@llamaindex/core/agent";
import { MockLLM } from "@llamaindex/core/utils";
import { validateAgentParams } from "@llamaindex/core/agent";
import { expect, test } from "vitest";
import { ZodError } from "zod";
@@ -34,62 +33,3 @@ test("validate agent params", () => {
],
});
});
test("LLMAgent streaming: first chunk should be available immediately", async () => {
const responseMessage =
"This is a very long response message that should take a while to stream";
const timeBetweenToken = 20; // delay time between tokens
const agent = new LLMAgent({
tools: [],
llm: new MockLLM({ responseMessage, timeBetweenToken }),
});
const startTime = Date.now();
const stream = await agent.chat({ message: "Hello", stream: true });
let fullResponse = "";
let timeToGetFirstChunk: number | undefined;
for await (const chunk of stream) {
expect(chunk).toHaveProperty("delta");
fullResponse += chunk.delta;
if (timeToGetFirstChunk === undefined) {
timeToGetFirstChunk = Date.now() - startTime;
}
}
expect(fullResponse).toBe(responseMessage);
// the first chunk should be available immediately and no need the whole response to be sent
expect(timeToGetFirstChunk).toBeLessThan(500);
});
test("LLMAgent create task: first task should be executed immediately", async () => {
const responseMessage =
"This is a very long response message that should take a while to stream";
const timeBetweenToken = 20; // delay time between tokens
const agent = new LLMAgent({
tools: [],
llm: new MockLLM({ responseMessage, timeBetweenToken }),
});
const startTime = Date.now();
const task = agent.createTask("Write a long paragraph", true, false, []);
let timeToGetFirstChunk: number | undefined;
let output: ReadableStream | undefined;
for await (const stepOutput of task) {
if (timeToGetFirstChunk === undefined) {
timeToGetFirstChunk = Date.now() - startTime;
}
if (stepOutput.output instanceof ReadableStream) {
output = stepOutput.output;
}
}
expect(timeToGetFirstChunk).toBeLessThan(500);
expect(output).toBeDefined();
expect(output).toBeInstanceOf(ReadableStream);
});
@@ -66,9 +66,9 @@ describe("ChatMemoryBuffer", () => {
expect(result).toEqual([...inputMessages, ...storedMessages]);
});
test("getMessages throws error when initial token count exceeds limit", async () => {
test("getMessages throws error when initial token count exceeds limit", () => {
const buffer = new ChatMemoryBuffer({ tokenLimit: 10 });
await expect(async () => buffer.getMessages(undefined, 20)).rejects.toThrow(
expect(async () => buffer.getMessages(undefined, 20)).rejects.toThrow(
"Initial token count exceeds token limit",
);
});
@@ -1,24 +0,0 @@
import { NodeParser } from "@llamaindex/core/node-parser";
import { TextNode } from "@llamaindex/core/schema";
import { describe, expect, test } from "vitest";
describe("NodeParser", () => {
test("node parser should allow async parse function", async () => {
class MyNodeParser extends NodeParser<Promise<TextNode[]>> {
protected async parseNodes(documents: TextNode[]): Promise<TextNode[]> {
await new Promise((resolve) => setTimeout(resolve, 1000));
return documents;
}
}
const nodeParser = new MyNodeParser();
const nodes = [
new TextNode({
text: "Hello, world!",
}),
];
const result = nodeParser(nodes);
expect(result).toBeInstanceOf(Promise);
await expect(result).resolves.toEqual(nodes);
});
});
@@ -1,4 +1,4 @@
import { beforeEach, describe, expect, test, vi } from "vitest";
import { describe, expect, test, vi } from "vitest";
import type { LLMMetadata } from "../../llms/dist/index.js";
import { getResponseSynthesizer } from "../../response-synthesizers/dist/index.js";
import { Document } from "../../schema/dist/index.js";
@@ -10,69 +10,26 @@ const mockLllm = () => ({
return response;
}
return {
[Symbol.asyncIterator]: function* gen() {
// yield a few times to make sure each chunk has the sourceNodes
yield response;
yield response;
yield response;
},
};
function* gen() {
// yield a few times to make sure each chunk has the sourceNodes
yield response;
yield response;
yield response;
}
return gen();
}),
chat: vi.fn(),
metadata: {} as unknown as LLMMetadata,
});
describe("refine response synthesizer", () => {
let synthesizer: ReturnType<typeof getResponseSynthesizer<"refine">>;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const isAsyncIterable = (obj: any): boolean =>
obj[Symbol.asyncIterator] !== undefined;
beforeEach(() => {
synthesizer = getResponseSynthesizer("refine", {
llm: mockLllm(),
});
});
describe("getResponse", () => {
test("should return async iterable of EngineResponse when stream is true and sourceNodes are empty", async () => {
const response = await synthesizer.getResponse(
"unimportant query",
[],
true,
);
expect(isAsyncIterable(response)).toBe(true);
for await (const chunk of response) {
expect(chunk.message.content).toEqual("");
}
});
test("should return non async iterable when stream is false and sourceNodes are empty", async () => {
const response = await synthesizer.getResponse(
"unimportant query",
[],
false,
);
expect(isAsyncIterable(response)).toBe(false);
expect(response.message.content).toEqual("");
});
});
});
describe("compact and refine response synthesizer", () => {
let synthesizer: ReturnType<typeof getResponseSynthesizer<"compact">>;
beforeEach(() => {
synthesizer = getResponseSynthesizer("compact", {
llm: mockLllm(),
});
});
describe("synthesize", () => {
test("should return original sourceNodes with response when stream = false", async () => {
const synthesizer = getResponseSynthesizer("compact", {
llm: mockLllm(),
});
const sourceNode = { node: new Document({}), score: 1 };
const response = await synthesizer.synthesize(
@@ -87,6 +44,10 @@ describe("compact and refine response synthesizer", () => {
});
test("should return original sourceNodes with response when stream = true", async () => {
const synthesizer = getResponseSynthesizer("compact", {
llm: mockLllm(),
});
const sourceNode = { node: new Document({}), score: 1 };
const response = await synthesizer.synthesize(
-6
View File
@@ -1,11 +1,5 @@
# @llamaindex/env
## 0.1.28
### Patch Changes
- cc50c9c: fix: missing release
## 0.1.27
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/env",
"description": "environment wrapper, supports all JS environment including node, deno, bun, edge runtime, and cloudflare worker",
"version": "0.1.28",
"version": "0.1.27",
"type": "module",
"types": "dist/index.d.ts",
"module": "dist/index.js",
@@ -119,7 +119,7 @@
"@huggingface/transformers": "^3.0.2",
"@types/node": "^22.9.0",
"@types/readable-stream": "^4.0.15",
"bunchee": "6.3.4",
"bunchee": "6.2.0",
"gpt-tokenizer": "^2.6.2",
"pathe": "^1.1.2",
"vitest": "^2.1.5"
+4 -5
View File
@@ -20,7 +20,7 @@ import { Readable } from "node:stream";
import { fileURLToPath } from "node:url";
import { createWriteStream, fs } from "./fs/node.js";
import "./global-check.js";
import { type SHA256 } from "./node-polyfill.js";
import { type SHA256, process } from "./node-polyfill.js";
export function createSHA256(): SHA256 {
const hash = createHash("sha256");
@@ -34,19 +34,18 @@ export function createSHA256(): SHA256 {
};
}
export const process = globalThis.process;
export * from "./als/index.node.js";
export { consoleLogger, emptyLogger, type Logger } from "./logger/index.js";
export { CustomEvent, getEnv, setEnvs } from "./utils/index.js";
export { NotSupportCurrentRuntimeClass } from "./utils/shared.js";
export {
createWriteStream,
EOL,
Readable,
createWriteStream,
fileURLToPath,
fs,
ok,
path,
process,
randomUUID,
Readable,
};
-43
View File
@@ -1,48 +1,5 @@
# @llamaindex/experimental
## 0.0.155
### Patch Changes
- llamaindex@0.9.5
## 0.0.154
### Patch Changes
- Updated dependencies [cb021e7]
- llamaindex@0.9.4
## 0.0.153
### Patch Changes
- llamaindex@0.9.3
## 0.0.152
### Patch Changes
- Updated dependencies [88d776f]
- llamaindex@0.9.2
## 0.0.151
### Patch Changes
- Updated dependencies [6d37d44]
- llamaindex@0.9.1
## 0.0.150
### Patch Changes
- Updated dependencies [6a4a737]
- Updated dependencies [d924c63]
- Updated dependencies [b490376]
- Updated dependencies [f4588bc]
- llamaindex@0.9.0
## 0.0.149
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/experimental",
"description": "Experimental package for LlamaIndexTS",
"version": "0.0.155",
"version": "0.0.149",
"type": "module",
"types": "dist/type/index.d.ts",
"main": "dist/cjs/index.js",
-70
View File
@@ -1,75 +1,5 @@
# llamaindex
## 0.9.5
### Patch Changes
- Updated dependencies [ad3c7f1]
- @llamaindex/core@0.5.4
- @llamaindex/cloud@3.0.5
- @llamaindex/node-parser@1.0.4
- @llamaindex/openai@0.1.56
## 0.9.4
### Patch Changes
- cb021e7: feat(node-parser): support async function
- Updated dependencies [cb256f2]
- Updated dependencies [cb021e7]
- @llamaindex/openai@0.1.55
- @llamaindex/core@0.5.3
- @llamaindex/cloud@3.0.4
- @llamaindex/node-parser@1.0.3
## 0.9.3
### Patch Changes
- Updated dependencies [d952e68]
- @llamaindex/core@0.5.2
- @llamaindex/cloud@3.0.3
- @llamaindex/node-parser@1.0.2
- @llamaindex/openai@0.1.54
## 0.9.2
### Patch Changes
- 88d776f: fix: enhance error message in llamacloud
- Updated dependencies [c902fcb]
- @llamaindex/cloud@3.0.2
## 0.9.1
### Patch Changes
- 6d37d44: fix: Update react agent to support tool calls from Cohere command-r models
- Updated dependencies [cc50c9c]
- @llamaindex/env@0.1.28
- @llamaindex/cloud@3.0.1
- @llamaindex/core@0.5.1
- @llamaindex/node-parser@1.0.1
- @llamaindex/openai@0.1.53
## 0.9.0
### Minor Changes
- 6a4a737: Remove re-exports from llamaindex main package
- b490376: Remove deprecated ServiceContext
- f4588bc: Remove readers package from llamaindex
### Patch Changes
- d924c63: feat: asChatEngine function for index
- Updated dependencies [6a4a737]
- Updated dependencies [d924c63]
- @llamaindex/core@0.5.0
- @llamaindex/cloud@3.0.0
- @llamaindex/node-parser@1.0.0
- @llamaindex/openai@0.1.52
## 0.8.37
### Patch Changes
+21 -1
View File
@@ -1,6 +1,6 @@
{
"name": "llamaindex",
"version": "0.9.5",
"version": "0.8.37",
"license": "MIT",
"type": "module",
"keywords": [
@@ -77,10 +77,29 @@
"default": "./dist/cjs/next.js"
}
},
"./register": "./register.js",
"./internal/*": {
"import": "./dist/not-allow.js",
"require": "./dist/cjs/not-allow.js"
},
"./readers/SimpleDirectoryReader": {
"workerd": {
"types": "./dist/type/readers/SimpleDirectoryReader.edge.d.ts",
"default": "./dist/readers/SimpleDirectoryReader.edge.js"
},
"edge-light": {
"types": "./dist/type/readers/SimpleDirectoryReader.edge.d.ts",
"default": "./dist/readers/SimpleDirectoryReader.edge.js"
},
"import": {
"types": "./dist/type/readers/SimpleDirectoryReader.d.ts",
"default": "./dist/readers/SimpleDirectoryReader.js"
},
"require": {
"types": "./dist/type/readers/SimpleDirectoryReader.d.ts",
"default": "./dist/cjs/readers/SimpleDirectoryReader.js"
}
},
"./*": {
"import": {
"types": "./dist/type/*.d.ts",
@@ -93,6 +112,7 @@
}
},
"files": [
"./register.js",
"dist",
"CHANGELOG.md",
"examples",
+6
View File
@@ -0,0 +1,6 @@
/**
* ```shell
* node --import llamaindex/register ./loader.js
* ```
*/
import "@llamaindex/readers/node";
+1 -1
View File
@@ -100,7 +100,7 @@ function extractToolUse(
inputText: string,
): [thought: string, action: string, input: string] {
const pattern =
/\s*Thought: (.*?)\nAction: ([a-zA-Z0-9_]+).*?\.*[Input:]*.*?(\{.*?\})/s;
/\s*Thought: (.*?)\nAction: ([a-zA-Z0-9_]+).*?\.*Input: .*?(\{.*?\})/s;
const match = inputText.match(pattern);

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