Compare commits

..

31 Commits

Author SHA1 Message Date
github-actions[bot] c1c58feed2 Release 0.11.19 (#2105)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: marcusschiesser <17126+marcusschiesser@users.noreply.github.com>
2025-07-17 15:44:22 +08:00
Marcus Schiesser 7ad3411766 feat: add llm.exec (#2078) 2025-07-17 15:36:56 +08:00
Neha Prasad a1fdb07b96 feat: multi-turn image generation support (#2106)
Co-authored-by: Marcus Schiesser <marcus.schiesser@googlemail.com>
2025-07-17 10:30:39 +08:00
Jeremy B. Merrill 5da5b3c89c feat: add progress callback to embeddings (#2098)
Co-authored-by: Marcus Schiesser <mail@marcusschiesser.de>
2025-07-16 13:49:49 +08:00
r3rer3 ddc0eafbaa feat(anthropic): stream partial tool calls (#2100) 2025-07-15 10:06:17 -07:00
github-actions[bot] 1782554488 Release 0.11.18 (#2103)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-14 15:53:20 -07:00
Adrian Lyjak a1b1598bc6 fix(cloud): add generic types into agent data responses (#2102)
Co-authored-by: Alex Yang <himself65@outlook.com>
2025-07-14 12:01:56 -07:00
Terry Zhao b02847ae91 fix(notion): resolve @notionhq/client dependency conflict (#2097) 2025-07-12 11:04:06 -07:00
Alex Yang 50acb4821e feat(cloud): use camelCase (#2096) 2025-07-12 10:59:46 -07:00
github-actions[bot] 47a5b94b0c Release 0.11.17 (#2095)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-11 21:57:02 -07:00
Alex Yang d2be868b93 feat(cloud): missing agent api (#2094) 2025-07-11 20:45:22 -07:00
github-actions[bot] 50d42c4129 Release 0.11.16 (#2093)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-11 20:13:37 -07:00
github-actions[bot] 848b97d4d0 Release 0.11.16 (#2092)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-11 18:19:17 -07:00
Alex Yang c5796b8d2d fix: only allow pnpm (#2091) 2025-07-11 18:17:47 -07:00
Alex Yang 579ca0cf60 chore: bump sdk version (#2090) 2025-07-11 18:10:15 -07:00
Alex Yang f7e670c8d9 fix: sdk type improvement (#2089) 2025-07-11 17:56:41 -07:00
Alex Yang 9ff971435c fix(cloud): agent sdk (#2088) 2025-07-11 17:41:25 -07:00
github-actions[bot] 7c9d0e24c4 Release (#2086)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: marcusschiesser <17126+marcusschiesser@users.noreply.github.com>
2025-07-11 12:30:04 -07:00
NIEDASEN af3f86694b feat: add supportToolCall getter to DeepSeekLLM class (#2085)
Co-authored-by: Marcus Schiesser <marcus.schiesser@googlemail.com>
2025-07-11 16:11:22 +08:00
github-actions[bot] 5cce681f62 Release 0.11.15 (#2084)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-10 19:08:05 -07:00
Alex Yang 48b0d88941 chore: bump dev deps (#2082) 2025-07-10 19:00:37 -07:00
Alex Yang f18577263a fix(cloud): missing file (#2083) 2025-07-10 18:33:41 -07:00
github-actions[bot] 214e133e92 Release 0.11.14 (#2068)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: himself65 <14026360+himself65@users.noreply.github.com>
2025-07-10 17:10:02 -07:00
Alex Yang ae58862669 fix: missing agent entry (#2081) 2025-07-10 11:39:07 -07:00
Alex Yang 5a0ed1f990 feat: init agent api on cloud sdk (#2069) 2025-07-10 10:00:53 -07:00
Logan 36773a82b6 fix examples scripts (#2077) 2025-07-09 11:24:07 +08:00
Logan 891562d598 remove workspace from examples package.json (#2075) 2025-07-08 16:36:33 -07:00
Alex Yang 93852e15fd chore: bump zod (#2074) 2025-07-08 13:58:52 -07:00
Clelia (Astra) Bertelli e1320b08a8 fix: adding more details in the contribution guidelines about changesets (#2073) 2025-07-08 13:58:36 -07:00
Logan 8eeac3310f fix memory factory (#2066) 2025-07-08 10:01:19 +07:00
Logan 984a573068 docs: update contributing instructions (#2067) 2025-07-07 16:38:26 -07:00
177 changed files with 5483 additions and 13317 deletions
+3 -1
View File
@@ -143,7 +143,7 @@ Before sending a PR, make sure of the following:
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
### Bumping the versions of packages you've modified
We use [changesets](https://github.com/changesets/changesets) for managing versions and changelogs. To create a new
changeset, run in the root folder:
@@ -152,6 +152,8 @@ changeset, run in the root folder:
pnpm changeset
```
You will be prompted to choose what packages need their versions bumped, and what kind of bump (major, minor or patch) is needed. Once you carry out this operation, the bumping will be automatic after the PR is merged.
## Publishing (maintainers only)
The [Release Github Action](.github/workflows/release.yml) is automatically generating and updating a
+63
View File
@@ -1,5 +1,68 @@
# @llamaindex/doc
## 0.2.40
### Patch Changes
- Updated dependencies [7ad3411]
- Updated dependencies [5da5b3c]
- Updated dependencies [a1fdb07]
- @llamaindex/core@0.6.15
- @llamaindex/workflow@1.1.15
- @llamaindex/openai@0.4.9
- @llamaindex/cloud@4.0.24
- llamaindex@0.11.19
- @llamaindex/node-parser@2.0.15
- @llamaindex/readers@3.1.14
## 0.2.39
### Patch Changes
- Updated dependencies [a1b1598]
- @llamaindex/cloud@4.0.23
- llamaindex@0.11.18
## 0.2.38
### Patch Changes
- Updated dependencies [d2be868]
- @llamaindex/cloud@4.0.22
- llamaindex@0.11.17
## 0.2.37
### Patch Changes
- Updated dependencies [579ca0c]
- @llamaindex/cloud@4.0.21
- llamaindex@0.11.16
## 0.2.36
### Patch Changes
- Updated dependencies [48b0d88]
- Updated dependencies [f185772]
- @llamaindex/cloud@4.0.20
- llamaindex@0.11.15
## 0.2.35
### Patch Changes
- Updated dependencies [5a0ed1f]
- Updated dependencies [5a0ed1f]
- Updated dependencies [8eeac33]
- @llamaindex/cloud@4.0.19
- @llamaindex/core@0.6.14
- llamaindex@0.11.14
- @llamaindex/node-parser@2.0.14
- @llamaindex/openai@0.4.8
- @llamaindex/readers@3.1.13
- @llamaindex/workflow@1.1.14
## 0.2.34
### Patch Changes
+10 -10
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/doc",
"version": "0.2.34",
"version": "0.2.40",
"private": true,
"scripts": {
"postinstall": "fumadocs-mdx",
@@ -35,7 +35,7 @@
"@radix-ui/react-tooltip": "^1.1.4",
"@scalar/api-client-react": "^1.1.25",
"@vercel/functions": "^1.5.0",
"ai": "^3.4.33",
"ai": "^4.3.17",
"class-variance-authority": "^0.7.0",
"clsx": "2.1.1",
"foxact": "^0.2.41",
@@ -70,30 +70,30 @@
"twoslash": "^0.3.1",
"use-stick-to-bottom": "^1.0.42",
"web-tree-sitter": "^0.24.4",
"zod": "^3.25.67"
"zod": "^3.25.76"
},
"devDependencies": {
"@next/env": "^15.3.0",
"@tailwindcss/postcss": "^4.0.9",
"@types/mdx": "^2.0.13",
"@types/node": "22.9.0",
"@types/react": "^19.0.10",
"@types/react-dom": "^19.0.4",
"@types/node": "24.0.13",
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"autoprefixer": "^10.4.20",
"cross-env": "^7.0.3",
"fast-glob": "^3.3.2",
"gray-matter": "^4.0.3",
"postcss": "^8.5.3",
"postcss": "^8.5.6",
"raw-loader": "^4.0.2",
"remark": "^15.0.1",
"remark-gfm": "^4.0.0",
"remark-mdx": "^3.1.0",
"remark-stringify": "^11.0.0",
"tailwindcss": "^4.0.9",
"tsx": "^4.19.3",
"tailwindcss": "^4.1.11",
"tsx": "^4.20.3",
"typedoc": "0.28.3",
"typedoc-plugin-markdown": "^4.6.2",
"typedoc-plugin-merge-modules": " ^7.0.0",
"typescript": "^5.7.3"
"typescript": "^5.8.3"
}
}
+1 -1
View File
@@ -1,4 +1,4 @@
import { MockLLM } from "@llamaindex/core/utils";
import { MockLLM } from "@llamaindex/core/llms/mock";
import { LlamaIndexAdapter, type Message } from "ai";
import { Settings, SimpleChatEngine, type ChatMessage } from "llamaindex";
import { NextResponse, type NextRequest } from "next/server";
+1 -1
View File
@@ -11,7 +11,7 @@
},
"devDependencies": {
"@cloudflare/workers-types": "^4.20241112.0",
"typescript": "^5.7.3",
"typescript": "^5.8.3",
"wrangler": "^3.89.0"
},
"dependencies": {
@@ -1,5 +1,41 @@
# @llamaindex/cloudflare-worker-agent-test
## 0.0.180
### Patch Changes
- llamaindex@0.11.19
## 0.0.179
### Patch Changes
- llamaindex@0.11.18
## 0.0.178
### Patch Changes
- llamaindex@0.11.17
## 0.0.177
### Patch Changes
- llamaindex@0.11.16
## 0.0.176
### Patch Changes
- llamaindex@0.11.15
## 0.0.175
### Patch Changes
- llamaindex@0.11.14
## 0.0.174
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloudflare-worker-agent-test",
"version": "0.0.174",
"version": "0.0.180",
"type": "module",
"private": true,
"scripts": {
@@ -16,7 +16,7 @@
"@cloudflare/workers-types": "^4.20241112.0",
"@vitest/runner": "2.1.5",
"@vitest/snapshot": "2.1.5",
"typescript": "^5.7.3",
"typescript": "^5.8.3",
"vitest": "2.1.5",
"wrangler": "^3.87.0"
},
@@ -1,5 +1,48 @@
# @llamaindex/llama-parse-browser-test
## 0.0.79
### Patch Changes
- @llamaindex/cloud@4.0.24
## 0.0.78
### Patch Changes
- Updated dependencies [a1b1598]
- @llamaindex/cloud@4.0.23
## 0.0.77
### Patch Changes
- Updated dependencies [d2be868]
- @llamaindex/cloud@4.0.22
## 0.0.76
### Patch Changes
- Updated dependencies [579ca0c]
- @llamaindex/cloud@4.0.21
## 0.0.75
### Patch Changes
- Updated dependencies [48b0d88]
- Updated dependencies [f185772]
- @llamaindex/cloud@4.0.20
## 0.0.74
### Patch Changes
- Updated dependencies [5a0ed1f]
- Updated dependencies [5a0ed1f]
- @llamaindex/cloud@4.0.19
## 0.0.73
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/llama-parse-browser-test",
"private": true,
"version": "0.0.73",
"version": "0.0.79",
"type": "module",
"scripts": {
"dev": "vite",
@@ -9,7 +9,7 @@
"preview": "vite preview"
},
"devDependencies": {
"typescript": "^5.7.3",
"typescript": "^5.8.3",
"vite": "^6.3.3",
"vite-plugin-wasm": "^3.4.1"
},
+36
View File
@@ -1,5 +1,41 @@
# @llamaindex/next-agent-test
## 0.1.180
### Patch Changes
- llamaindex@0.11.19
## 0.1.179
### Patch Changes
- llamaindex@0.11.18
## 0.1.178
### Patch Changes
- llamaindex@0.11.17
## 0.1.177
### Patch Changes
- llamaindex@0.11.16
## 0.1.176
### Patch Changes
- llamaindex@0.11.15
## 0.1.175
### Patch Changes
- llamaindex@0.11.14
## 0.1.174
### Patch Changes
+8 -8
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-agent-test",
"version": "0.1.174",
"version": "0.1.180",
"private": true,
"scripts": {
"dev": "next dev",
@@ -8,18 +8,18 @@
"start": "next start"
},
"dependencies": {
"ai": "^4.0.0",
"ai": "^4.3.17",
"llamaindex": "workspace:*",
"next": "^15.3.3",
"react": "19.0.0",
"react-dom": "19.0.0"
},
"devDependencies": {
"@types/node": "^22.9.0",
"@types/react": "^19.0.10",
"@types/react-dom": "^19.0.4",
"eslint": "9.16.0",
"eslint-config-next": "15.1.0",
"typescript": "^5.7.3"
"@types/node": "^24.0.13",
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"eslint": "9.30.1",
"eslint-config-next": "15.3.5",
"typescript": "^5.8.3"
}
}
@@ -1,5 +1,41 @@
# test-edge-runtime
## 0.1.179
### Patch Changes
- llamaindex@0.11.19
## 0.1.178
### Patch Changes
- llamaindex@0.11.18
## 0.1.177
### Patch Changes
- llamaindex@0.11.17
## 0.1.176
### Patch Changes
- llamaindex@0.11.16
## 0.1.175
### Patch Changes
- llamaindex@0.11.15
## 0.1.174
### Patch Changes
- llamaindex@0.11.14
## 0.1.173
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/nextjs-edge-runtime-test",
"version": "0.1.173",
"version": "0.1.179",
"private": true,
"scripts": {
"dev": "next dev",
@@ -14,9 +14,9 @@
"react-dom": "^19.1.0"
},
"devDependencies": {
"@types/node": "^22.9.0",
"@types/react": "^19.0.10",
"@types/react-dom": "^19.0.4",
"typescript": "^5.7.3"
"@types/node": "^24.0.13",
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"typescript": "^5.8.3"
}
}
@@ -1,5 +1,45 @@
# @llamaindex/next-node-runtime
## 0.1.48
### Patch Changes
- llamaindex@0.11.19
- @llamaindex/huggingface@0.1.19
- @llamaindex/readers@3.1.14
## 0.1.47
### Patch Changes
- llamaindex@0.11.18
## 0.1.46
### Patch Changes
- llamaindex@0.11.17
## 0.1.45
### Patch Changes
- llamaindex@0.11.16
## 0.1.44
### Patch Changes
- llamaindex@0.11.15
## 0.1.43
### Patch Changes
- llamaindex@0.11.14
- @llamaindex/huggingface@0.1.18
- @llamaindex/readers@3.1.13
## 0.1.42
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-node-runtime-test",
"version": "0.1.42",
"version": "0.1.48",
"private": true,
"scripts": {
"dev": "next dev",
@@ -16,11 +16,11 @@
"react-dom": "19.0.0"
},
"devDependencies": {
"@types/node": "^22.9.0",
"@types/react": "^19.0.10",
"@types/react-dom": "^19.0.4",
"eslint": "9.16.0",
"eslint-config-next": "15.1.0",
"typescript": "^5.7.3"
"@types/node": "^24.0.13",
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"eslint": "9.30.1",
"eslint-config-next": "15.3.5",
"typescript": "^5.8.3"
}
}
@@ -1,5 +1,41 @@
# vite-import-llamaindex
## 0.0.46
### Patch Changes
- llamaindex@0.11.19
## 0.0.45
### Patch Changes
- llamaindex@0.11.18
## 0.0.44
### Patch Changes
- llamaindex@0.11.17
## 0.0.43
### Patch Changes
- llamaindex@0.11.16
## 0.0.42
### Patch Changes
- llamaindex@0.11.15
## 0.0.41
### Patch Changes
- llamaindex@0.11.14
## 0.0.40
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "vite-import-llamaindex",
"private": true,
"version": "0.0.40",
"version": "0.0.46",
"type": "module",
"scripts": {
"build": "vite build",
@@ -15,7 +15,7 @@
"devDependencies": {
"@size-limit/preset-big-lib": "^11.1.6",
"size-limit": "^11.1.6",
"typescript": "^5.7.3",
"typescript": "^5.8.3",
"vite": "^6.3.3"
},
"dependencies": {
@@ -1,5 +1,41 @@
# @llamaindex/waku-query-engine-test
## 0.0.180
### Patch Changes
- llamaindex@0.11.19
## 0.0.179
### Patch Changes
- llamaindex@0.11.18
## 0.0.178
### Patch Changes
- llamaindex@0.11.17
## 0.0.177
### Patch Changes
- llamaindex@0.11.16
## 0.0.176
### Patch Changes
- llamaindex@0.11.15
## 0.0.175
### Patch Changes
- llamaindex@0.11.14
## 0.0.174
### Patch Changes
+5 -5
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/waku-query-engine-test",
"version": "0.0.174",
"version": "0.0.180",
"type": "module",
"private": true,
"scripts": {
@@ -18,10 +18,10 @@
},
"devDependencies": {
"@tailwindcss/postcss": "^4.1.4",
"@types/react": "19.0.10",
"@types/react-dom": "19.0.4",
"@types/react": "19.1.8",
"@types/react-dom": "19.1.6",
"rollup": "4.38.0",
"tailwindcss": "^4.1.4",
"typescript": "5.7.3"
"tailwindcss": "^4.1.11",
"typescript": "5.8.3"
}
}
+4 -4
View File
@@ -19,14 +19,14 @@
"@llamaindex/openai": "workspace:*",
"@llamaindex/pinecone": "workspace:*",
"@llamaindex/postgres": "workspace:*",
"@types/node": "^22.9.0",
"@types/node": "^24.0.13",
"@types/pg": "^8.11.8",
"consola": "^3.2.3",
"dotenv": "^16.4.5",
"dotenv": "^17.2.0",
"llamaindex": "workspace:*",
"pg": "^8.12.0",
"pgvector": "0.2.0",
"tsx": "^4.19.3",
"zod": "^3.25.67"
"tsx": "^4.20.3",
"zod": "^3.25.76"
}
}
+118
View File
@@ -1,5 +1,123 @@
# examples
## 0.3.30
### Patch Changes
- Updated dependencies [7ad3411]
- Updated dependencies [5da5b3c]
- Updated dependencies [a1fdb07]
- Updated dependencies [ddc0eaf]
- @llamaindex/core@0.6.15
- @llamaindex/tools@0.1.5
- @llamaindex/workflow@1.1.15
- @llamaindex/openai@0.4.9
- @llamaindex/anthropic@0.3.17
- @llamaindex/cloud@4.0.24
- llamaindex@0.11.19
- @llamaindex/node-parser@2.0.15
- @llamaindex/assemblyai@0.1.14
- @llamaindex/clip@0.0.65
- @llamaindex/cohere@0.0.29
- @llamaindex/deepinfra@0.0.65
- @llamaindex/discord@0.1.14
- @llamaindex/google@0.3.14
- @llamaindex/huggingface@0.1.19
- @llamaindex/jinaai@0.0.25
- @llamaindex/mistral@0.1.15
- @llamaindex/mixedbread@0.0.29
- @llamaindex/notion@0.1.14
- @llamaindex/ollama@0.1.15
- @llamaindex/perplexity@0.0.22
- @llamaindex/portkey-ai@0.0.57
- @llamaindex/replicate@0.0.57
- @llamaindex/bm25-retriever@0.0.4
- @llamaindex/astra@0.0.29
- @llamaindex/azure@0.1.26
- @llamaindex/chroma@0.0.29
- @llamaindex/elastic-search@0.1.15
- @llamaindex/firestore@1.0.22
- @llamaindex/milvus@0.1.24
- @llamaindex/mongodb@0.0.30
- @llamaindex/pinecone@0.1.15
- @llamaindex/postgres@0.0.58
- @llamaindex/qdrant@0.1.25
- @llamaindex/supabase@0.1.15
- @llamaindex/upstash@0.0.29
- @llamaindex/weaviate@0.0.30
- @llamaindex/vercel@0.1.15
- @llamaindex/voyage-ai@1.0.21
- @llamaindex/readers@3.1.14
- @llamaindex/deepseek@0.0.26
- @llamaindex/fireworks@0.0.25
- @llamaindex/groq@0.0.81
- @llamaindex/together@0.0.25
- @llamaindex/vllm@0.0.51
- @llamaindex/xai@0.0.12
## 0.3.29
### Patch Changes
- Updated dependencies [af3f866]
- @llamaindex/deepseek@0.0.25
## 0.3.28
### Patch Changes
- 36773a8: Fixed start script, reverted some changes to imports
- 891562d: Fix xai dependency in the examples
- Updated dependencies [5a0ed1f]
- Updated dependencies [5a0ed1f]
- Updated dependencies [8eeac33]
- @llamaindex/cloud@4.0.19
- @llamaindex/core@0.6.14
- llamaindex@0.11.14
- @llamaindex/node-parser@2.0.14
- @llamaindex/anthropic@0.3.16
- @llamaindex/assemblyai@0.1.13
- @llamaindex/clip@0.0.64
- @llamaindex/cohere@0.0.28
- @llamaindex/deepinfra@0.0.64
- @llamaindex/discord@0.1.13
- @llamaindex/google@0.3.13
- @llamaindex/huggingface@0.1.18
- @llamaindex/jinaai@0.0.24
- @llamaindex/mistral@0.1.14
- @llamaindex/mixedbread@0.0.28
- @llamaindex/notion@0.1.13
- @llamaindex/ollama@0.1.14
- @llamaindex/openai@0.4.8
- @llamaindex/perplexity@0.0.21
- @llamaindex/portkey-ai@0.0.56
- @llamaindex/replicate@0.0.56
- @llamaindex/bm25-retriever@0.0.3
- @llamaindex/astra@0.0.28
- @llamaindex/azure@0.1.25
- @llamaindex/chroma@0.0.28
- @llamaindex/elastic-search@0.1.14
- @llamaindex/firestore@1.0.21
- @llamaindex/milvus@0.1.23
- @llamaindex/mongodb@0.0.29
- @llamaindex/pinecone@0.1.14
- @llamaindex/postgres@0.0.57
- @llamaindex/qdrant@0.1.24
- @llamaindex/supabase@0.1.14
- @llamaindex/upstash@0.0.28
- @llamaindex/weaviate@0.0.29
- @llamaindex/vercel@0.1.14
- @llamaindex/voyage-ai@1.0.20
- @llamaindex/readers@3.1.13
- @llamaindex/tools@0.1.4
- @llamaindex/workflow@1.1.14
- @llamaindex/deepseek@0.0.24
- @llamaindex/fireworks@0.0.24
- @llamaindex/groq@0.0.80
- @llamaindex/together@0.0.24
- @llamaindex/vllm@0.0.50
- @llamaindex/xai@0.0.11
## 0.3.27
### Patch Changes
+31 -7
View File
@@ -1,9 +1,10 @@
# LlamaIndexTS Examples
Before running any of the code examples,
make sure you have basic knowledge of the [LlamaIndexTS](https://ts.llamaindex.ai/).
This package contains several examples of how to use LlamaIndexTS.
## Usage
Most examples will use OpenAI by default, so be sure to set your API key.
## Running Examples
```shell
# export your API key
@@ -12,8 +13,31 @@ export OPENAI_API_KEY="sk-..."
npx tsx ./rag/chatEngine.ts
```
## Build your own RAG app
## Recommended Starter Examples
```shell
npx create llama
```
Agents:
- [Basic OpenAI Agent with Tools](./agents/agent/openai.ts)
- [Agent with MCP Tools](./agents/agent/mcp-tools.ts)
- [Customizing Memory](./agents/memory/agent-memory.ts)
Workflows:
- [Workflow basics](./agents/workflow/joke.ts)
- [Find more workflow examples in the `workflows-ts` repo!](https://github.com/run-llama/workflows-ts)
Indexing, Retrieval, and Querying:
- [Basic Vector Indexing + Query Engine](./index/vectorIndex.ts)
- [Agent + Query Engine Tool](./agents/agent/query-tool.ts)
Multimodal:
- [Multimodal RAG](./multimodal/rag.ts)
- [Multimodal Chat](./multimodal/context.ts)
Some more general folders that might be useful to explore:
- [storage](./storage/): Examples with various vector stores
- [readers](./readers/): Examples of how to use the various readers
- [models](./models/): Examples of how to use the various LLMs and embedding models from many providers
+1 -1
View File
@@ -3,7 +3,7 @@
*/
import { openai } from "@llamaindex/openai";
import { agent } from "@llamaindex/workflow";
import { getWeatherTool } from "../../deprecated/agents/utils/tools";
import { getWeatherTool } from "../tools/tools";
async function main() {
const weatherAgent = agent({
+1 -1
View File
@@ -1,6 +1,6 @@
import { ollama } from "@llamaindex/ollama";
import { agent } from "@llamaindex/workflow";
import { getWeatherTool } from "../../deprecated/agents/utils/tools";
import { getWeatherTool } from "../tools/tools";
async function main() {
const myAgent = agent({
@@ -1,7 +1,7 @@
import { OpenAI } from "@llamaindex/openai";
import { openai } from "@llamaindex/openai";
async function main() {
const llm = new OpenAI({ model: "gpt-4-turbo" });
const llm = openai({ model: "gpt-4.1-mini" });
const args: Parameters<typeof llm.chat>[0] = {
additionalChatOptions: {
tool_choice: "auto",
+46
View File
@@ -0,0 +1,46 @@
import { openai } from "@llamaindex/openai";
import { tool } from "llamaindex";
import z from "zod";
import { ChatMessage } from "llamaindex";
async function main() {
const llm = openai({ model: "gpt-4.1-mini" });
const messages = [
{
content: `What's the weather like in San Francisco?`,
role: "user",
} as ChatMessage,
];
let exit = false;
do {
const { stream, newMessages, toolCalls } = await llm.exec({
messages,
tools: [
tool({
name: "get_weather",
description: "Get the current weather for a location",
parameters: z.object({
address: z.string().describe("The address"),
}),
execute: ({ address }) => {
return `It's sunny in ${address}!`;
},
}),
],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.delta);
}
messages.push(...newMessages());
// exit condition to stop the agent loop
// here we can also check for specific tool calls or limit the number of llm.exec calls
exit = toolCalls.length === 0;
} while (!exit);
}
(async function () {
await main();
})();
+43
View File
@@ -0,0 +1,43 @@
import { openai } from "@llamaindex/openai";
import { ChatMessage, tool } from "llamaindex";
import z from "zod";
async function main() {
const llm = openai({ model: "gpt-4.1-mini" });
const messages = [
{
content: `What's the weather like in San Francisco?`,
role: "user",
} as ChatMessage,
];
let exit = false;
do {
const { newMessages, toolCalls } = await llm.exec({
messages,
tools: [
tool({
name: "get_weather",
description: "Get the current weather for a location",
parameters: z.object({
address: z.string().describe("The address"),
}),
execute: ({ address }) => {
return `It's sunny in ${address}!`;
},
}),
],
});
console.log(newMessages);
messages.push(...newMessages);
// exit condition to stop the agent loop
// here we can also check for specific tool calls or limit the number of llm.exec calls
exit = toolCalls.length === 0;
} while (!exit);
}
(async function () {
console.log("Starting...");
await main();
console.log("Done");
})();
+1 -1
View File
@@ -4,7 +4,7 @@ import {
getCurrentIDTool,
getUserInfoTool,
getWeatherTool,
} from "./utils/tools";
} from "../../agents/tools/tools";
async function main() {
// Create an OpenAIAgent with the function tools
+1 -1
View File
@@ -3,7 +3,7 @@ import {
getCurrentIDTool,
getUserInfoTool,
getWeatherTool,
} from "./utils/tools";
} from "../../agents/tools/tools";
async function main() {
// Create an OpenAIAgent with the function tools
@@ -15,15 +15,15 @@
},
"devDependencies": {
"@eslint/js": "^9.25.0",
"@types/react": "^19.1.2",
"@types/react-dom": "^19.1.2",
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"@vitejs/plugin-react": "^4.5.2",
"eslint": "^9.25.0",
"eslint": "^9.30.1",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.19",
"globals": "^16.0.0",
"typescript": "~5.8.3",
"typescript-eslint": "^8.30.1",
"typescript-eslint": "^8.36.0",
"vite": "^6.3.5"
}
}
@@ -30,6 +30,12 @@ async function main() {
);
// and print out the text part
console.log(textPart?.text);
const imageId = response.message.options?.image_id;
if (imageId) {
console.log("Image ID for multi-turn generation:", imageId);
console.log("Use this image_id in subsequent requests to modify the image");
}
}
main().catch(console.error);
@@ -0,0 +1,89 @@
import { openaiResponses } from "@llamaindex/openai";
import fs from "fs";
import { MessageContentDetail } from "llamaindex";
async function main() {
const llm = openaiResponses({
model: "gpt-4.1-mini",
builtInTools: [{ type: "image_generation" }],
});
// First turn: Generate initial image
console.log("=== First Turn: Generate initial image ===");
const firstResponse = await llm.chat({
messages: [
{
role: "user",
content:
"Generate an image of a cute tiny llama wearing a hat playing with a cat on a meadow",
},
],
});
const firstContent = firstResponse.message.content as MessageContentDetail[];
const firstImagePart = firstContent.find((part) => part.type === "image");
const firstTextPart = firstContent.find((part) => part.type === "text");
// Save the first image
if (firstImagePart?.data) {
fs.writeFileSync(
"llama-initial.png",
Buffer.from(firstImagePart.data as string, "base64"),
);
console.log("First image saved as 'llama-initial.png'");
}
if (firstTextPart?.text) {
console.log("First response:", firstTextPart.text);
}
// Get the image_id from the response options for multi-turn
const imageId = firstResponse.message.options?.image_id;
console.log("Image ID for multi-turn:", imageId);
if (imageId) {
// Second turn: Modify the image using the image_id
console.log("\n=== Second Turn: Modify the image ===");
const secondResponse = await llm.chat({
messages: [
{
role: "user",
content:
"Generate an image of a cute tiny llama wearing a hat playing with a cat on a meadow",
},
{
role: "assistant",
content: firstContent,
options: { image_id: imageId },
},
{
role: "user",
content:
"Now add a rainbow in the background and make the llama's hat blue",
},
],
});
const secondContent = secondResponse.message
.content as MessageContentDetail[];
const secondImagePart = secondContent.find((part) => part.type === "image");
const secondTextPart = secondContent.find((part) => part.type === "text");
// Save the modified image
if (secondImagePart?.data) {
fs.writeFileSync(
"llama-modified.png",
Buffer.from(secondImagePart.data as string, "base64"),
);
console.log("Modified image saved as 'llama-modified.png'");
}
if (secondTextPart?.text) {
console.log("Second response:", secondTextPart.text);
}
} else {
console.log("No image_id received, cannot perform multi-turn generation");
}
}
main().catch(console.error);
+55 -55
View File
@@ -1,80 +1,80 @@
{
"name": "@llamaindex/examples",
"version": "0.3.27",
"version": "0.3.30",
"private": true,
"scripts": {
"lint": "eslint .",
"start": "tsx ./starter.ts"
"start": "echo 'To get started, run `npx tsx <path to example>`'"
},
"dependencies": {
"@ai-sdk/openai": "^1.0.5",
"@azure/cosmos": "^4.1.1",
"@azure/identity": "^4.4.1",
"@azure/search-documents": "^12.1.0",
"@llamaindex/anthropic": "^0.3.15",
"@llamaindex/assemblyai": "^0.1.12",
"@llamaindex/astra": "^0.0.27",
"@llamaindex/azure": "^0.1.24",
"@llamaindex/bm25-retriever": "^0.0.2",
"@llamaindex/chroma": "^0.0.27",
"@llamaindex/clip": "^0.0.63",
"@llamaindex/cloud": "^4.0.18",
"@llamaindex/cohere": "^0.0.27",
"@llamaindex/core": "^0.6.13",
"@llamaindex/deepinfra": "^0.0.63",
"@llamaindex/deepseek": "^0.0.23",
"@llamaindex/discord": "^0.1.12",
"@llamaindex/elastic-search": "^0.1.13",
"@llamaindex/anthropic": "^0.3.17",
"@llamaindex/assemblyai": "^0.1.14",
"@llamaindex/astra": "^0.0.29",
"@llamaindex/azure": "^0.1.26",
"@llamaindex/bm25-retriever": "^0.0.4",
"@llamaindex/chroma": "^0.0.29",
"@llamaindex/clip": "^0.0.65",
"@llamaindex/cloud": "^4.0.24",
"@llamaindex/cohere": "^0.0.29",
"@llamaindex/core": "^0.6.15",
"@llamaindex/deepinfra": "^0.0.65",
"@llamaindex/deepseek": "^0.0.26",
"@llamaindex/discord": "^0.1.14",
"@llamaindex/elastic-search": "^0.1.15",
"@llamaindex/env": "^0.1.30",
"@llamaindex/firestore": "^1.0.20",
"@llamaindex/fireworks": "^0.0.23",
"@llamaindex/google": "^0.3.12",
"@llamaindex/groq": "^0.0.79",
"@llamaindex/huggingface": "^0.1.17",
"@llamaindex/jinaai": "^0.0.23",
"@llamaindex/milvus": "^0.1.22",
"@llamaindex/mistral": "^0.1.13",
"@llamaindex/mixedbread": "^0.0.27",
"@llamaindex/mongodb": "^0.0.28",
"@llamaindex/node-parser": "^2.0.13",
"@llamaindex/notion": "^0.1.12",
"@llamaindex/ollama": "^0.1.13",
"@llamaindex/openai": "^0.4.7",
"@llamaindex/perplexity": "^0.0.20",
"@llamaindex/pinecone": "^0.1.13",
"@llamaindex/portkey-ai": "^0.0.55",
"@llamaindex/postgres": "^0.0.56",
"@llamaindex/qdrant": "^0.1.23",
"@llamaindex/readers": "^3.1.12",
"@llamaindex/replicate": "^0.0.55",
"@llamaindex/supabase": "^0.1.13",
"@llamaindex/together": "^0.0.23",
"@llamaindex/tools": "^0.1.3",
"@llamaindex/upstash": "^0.0.27",
"@llamaindex/vercel": "^0.1.13",
"@llamaindex/vllm": "^0.0.49",
"@llamaindex/voyage-ai": "^1.0.19",
"@llamaindex/weaviate": "^0.0.28",
"@llamaindex/workflow": "^1.1.13",
"@llamaindex/xai": "workspace:^0.0.10",
"@notionhq/client": "^2.2.15",
"@llamaindex/firestore": "^1.0.22",
"@llamaindex/fireworks": "^0.0.25",
"@llamaindex/google": "^0.3.14",
"@llamaindex/groq": "^0.0.81",
"@llamaindex/huggingface": "^0.1.19",
"@llamaindex/jinaai": "^0.0.25",
"@llamaindex/milvus": "^0.1.24",
"@llamaindex/mistral": "^0.1.15",
"@llamaindex/mixedbread": "^0.0.29",
"@llamaindex/mongodb": "^0.0.30",
"@llamaindex/node-parser": "^2.0.15",
"@llamaindex/notion": "^0.1.14",
"@llamaindex/ollama": "^0.1.15",
"@llamaindex/openai": "^0.4.9",
"@llamaindex/perplexity": "^0.0.22",
"@llamaindex/pinecone": "^0.1.15",
"@llamaindex/portkey-ai": "^0.0.57",
"@llamaindex/postgres": "^0.0.58",
"@llamaindex/qdrant": "^0.1.25",
"@llamaindex/readers": "^3.1.14",
"@llamaindex/replicate": "^0.0.57",
"@llamaindex/supabase": "^0.1.15",
"@llamaindex/together": "^0.0.25",
"@llamaindex/tools": "^0.1.5",
"@llamaindex/upstash": "^0.0.29",
"@llamaindex/vercel": "^0.1.15",
"@llamaindex/vllm": "^0.0.51",
"@llamaindex/voyage-ai": "^1.0.21",
"@llamaindex/weaviate": "^0.0.30",
"@llamaindex/workflow": "^1.1.15",
"@llamaindex/xai": "^0.0.12",
"@notionhq/client": "^4.0.0",
"@pinecone-database/pinecone": "^4.0.0",
"@vercel/postgres": "^0.10.0",
"ai": "^4.0.0",
"ai": "^4.3.17",
"ajv": "^8.17.1",
"commander": "^12.1.0",
"dotenv": "^16.4.5",
"dotenv": "^17.2.0",
"js-tiktoken": "^1.0.14",
"llamaindex": "^0.11.13",
"llamaindex": "^0.11.19",
"mongodb": "6.7.0",
"postgres": "^3.4.4",
"wikipedia": "^2.1.2",
"zod": "^3.25.67"
"zod": "^3.25.76"
},
"devDependencies": {
"@types/node": "^22.9.0",
"tsx": "^4.19.3",
"typescript": "^5.7.3"
"@types/node": "^24.0.13",
"tsx": "^4.20.3",
"typescript": "^5.8.3"
},
"stackblitz": {
"startCommand": "npm start"
+2
View File
@@ -0,0 +1,2 @@
packages:
- "**"
+5 -4
View File
@@ -21,13 +21,14 @@
},
"dependencies": {
"@llamaindex/cloud": "workspace:* || ^2.0.24",
"@llamaindex/readers": "workspace:* || ^1.0.25",
"@llamaindex/excel": "workspace:*",
"@llamaindex/readers": "workspace:* || ^1.0.25",
"@notionhq/client": "^4.0.0",
"llamaindex": "workspace:* || ^0.8.37"
},
"devDependencies": {
"@types/node": "^22.9.0",
"tsx": "^4.19.3",
"typescript": "^5.7.3"
"@types/node": "^24.0.13",
"tsx": "^4.20.3",
"typescript": "^5.8.3"
}
}
-10114
View File
File diff suppressed because it is too large Load Diff
+15 -9
View File
@@ -17,18 +17,19 @@
"release-snapshot": "pnpm run build && changeset publish --tag snapshot",
"new-version": "changeset version && pnpm format:write && pnpm run build",
"new-snapshot": "pnpm run build && changeset version --snapshot",
"lint-staged": "lint-staged"
"lint-staged": "lint-staged",
"preinstall": "npx only-allow pnpm"
},
"devDependencies": {
"@changesets/cli": "^2.27.5",
"@eslint/js": "^9.25.0",
"bunchee": "6.4.0",
"eslint": "9.22.0",
"eslint-config-next": "^15.1.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-turbo": "^2.3.3",
"eslint-plugin-react": "7.37.2",
"eslint-plugin-turbo": "^2.5.0",
"eslint": "9.30.1",
"eslint-config-next": "^15.3.5",
"eslint-config-prettier": "^10.1.5",
"eslint-config-turbo": "^2.5.4",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-turbo": "^2.5.4",
"globals": "^15.12.0",
"husky": "^9.1.7",
"lint-staged": "^15.2.11",
@@ -37,11 +38,16 @@
"prettier-plugin-organize-imports": "^4.1.0",
"prettier-plugin-tailwindcss": "^0.6.11",
"turbo": "^2.4.4",
"typescript": "^5.7.3",
"typescript-eslint": "^8.18.0",
"typescript": "^5.8.3",
"typescript-eslint": "^8.36.0",
"vitest": "^3.1.1"
},
"packageManager": "pnpm@10.8.1",
"pnpm": {
"overrides": {
"@notionhq/client": "4.0.0"
}
},
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
"eslint --fix",
+36
View File
@@ -1,5 +1,41 @@
# @llamaindex/autotool
## 8.0.19
### Patch Changes
- llamaindex@0.11.19
## 8.0.18
### Patch Changes
- llamaindex@0.11.18
## 8.0.17
### Patch Changes
- llamaindex@0.11.17
## 8.0.16
### Patch Changes
- llamaindex@0.11.16
## 8.0.15
### Patch Changes
- llamaindex@0.11.15
## 8.0.14
### Patch Changes
- llamaindex@0.11.14
## 8.0.13
### Patch Changes
@@ -1,5 +1,47 @@
# @llamaindex/autotool-01-node-example
## 0.0.127
### Patch Changes
- llamaindex@0.11.19
- @llamaindex/autotool@8.0.19
## 0.0.126
### Patch Changes
- llamaindex@0.11.18
- @llamaindex/autotool@8.0.18
## 0.0.125
### Patch Changes
- llamaindex@0.11.17
- @llamaindex/autotool@8.0.17
## 0.0.124
### Patch Changes
- llamaindex@0.11.16
- @llamaindex/autotool@8.0.16
## 0.0.123
### Patch Changes
- llamaindex@0.11.15
- @llamaindex/autotool@8.0.15
## 0.0.122
### Patch Changes
- llamaindex@0.11.14
- @llamaindex/autotool@8.0.14
## 0.0.121
### Patch Changes
@@ -8,10 +8,10 @@
"openai": "^4.73.1"
},
"devDependencies": {
"tsx": "^4.19.3"
"tsx": "^4.20.3"
},
"scripts": {
"start": "node --import tsx --import @llamaindex/autotool/node ./src/index.ts"
},
"version": "0.0.121"
"version": "0.0.127"
}
+4 -4
View File
@@ -6,7 +6,7 @@
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
"directory": "packages/autotool"
},
"version": "8.0.13",
"version": "8.0.19",
"description": "auto transpile your JS function to LLM Agent compatible",
"files": [
"dist",
@@ -74,12 +74,12 @@
"devDependencies": {
"@swc/types": "^0.1.12",
"@types/json-schema": "^7.0.15",
"@types/node": "^22.9.0",
"@types/node": "^24.0.13",
"llamaindex": "workspace:*",
"next": "^15.3.3",
"rollup": "^4.28.1",
"tsx": "^4.19.3",
"typescript": "^5.7.3",
"tsx": "^4.20.3",
"typescript": "^5.8.3",
"vitest": "^2.1.5",
"webpack": "^5.97.1"
}
+42
View File
@@ -1,5 +1,47 @@
# @llamaindex/cloud
## 4.0.24
### Patch Changes
- Updated dependencies [7ad3411]
- Updated dependencies [5da5b3c]
- @llamaindex/core@0.6.15
## 4.0.23
### Patch Changes
- a1b1598: fix: add generic types into agent data responses
## 4.0.22
### Patch Changes
- d2be868: Bug fixes for new beta agent-data cloud API
## 4.0.21
### Patch Changes
- 579ca0c: chore: bump sdk version
## 4.0.20
### Patch Changes
- 48b0d88: fix: exports in `api` submodule
- f185772: fix(cloud): missing file
## 4.0.19
### Patch Changes
- 5a0ed1f: feat: init agent api on cloud sdk
- 5a0ed1f: feat: init agent api on cloud sdk
- Updated dependencies [8eeac33]
- @llamaindex/core@0.6.14
## 4.0.18
### Patch Changes
+8
View File
@@ -0,0 +1,8 @@
{
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": "./dist/index.js",
"private": true
}
+262 -183
View File
@@ -2519,7 +2519,7 @@
"get": {
"tags": ["Organizations"],
"summary": "Get Organization Usage",
"description": "Get usage for a project",
"description": "Get usage for a specific organization.",
"operationId": "get_organization_usage_api_v1_organizations__organization_id__usage_get",
"security": [
{
@@ -2535,15 +2535,8 @@
"in": "path",
"required": true,
"schema": {
"anyOf": [
{
"type": "string",
"format": "uuid"
},
{
"type": "null"
}
],
"type": "string",
"format": "uuid",
"title": "Organization Id"
}
},
@@ -11650,7 +11643,7 @@
},
"/api/v1/projects/{project_id}/agents": {
"get": {
"tags": ["Llama Apps"],
"tags": ["Agent Deployments"],
"summary": "List Deployments",
"description": "List all deployments for a project.",
"operationId": "list_deployments_api_v1_projects__project_id__agents_get",
@@ -11716,7 +11709,7 @@
},
"/api/v1/projects/{project_id}/agents:sync": {
"post": {
"tags": ["Llama Apps"],
"tags": ["Agent Deployments"],
"summary": "Sync Deployments",
"description": "Sync deployments for a project.",
"operationId": "sync_deployments_api_v1_projects__project_id__agents_sync_post",
@@ -11780,12 +11773,12 @@
}
}
},
"/api/v1/billing/checkout-session": {
"/api/v1/classifier/classify": {
"post": {
"tags": ["Billing"],
"summary": "Create Checkout Session",
"description": "Create a new checkout session.",
"operationId": "create_checkout_session_api_v1_billing_checkout_session_post",
"tags": ["Classifier", "Beta", "Classifier"],
"summary": "Classify Documents",
"description": "**[BETA]** Classify documents based on provided rules - simplified classification system.\n\n**This is a Beta feature** - API may change based on user feedback.\n\nThis endpoint supports:\n- Classifying new uploaded files\n- Classifying existing files by ID\n- Both new files and existing file IDs in one request\n\n## v0 Features:\n- **Simplified Rules**: Only `type` and `description` fields needed\n- **Matching Threshold**: Confidence-based classification with configurable threshold\n- **Smart Classification**: Filename heuristics + LLM content analysis\n- **Document Type Filtering**: Automatically filters out non-document file types\n- **Fast Processing**: Uses LlamaParse fast mode + GPT-4.1-nano\n- **Optimized Performance**: Parses each file only once for all rules\n\n## Simplified Scoring Logic:\n1. **Evaluate All Rules**: Compare document against all classification rules\n2. **Best Match Selection**: Return the highest scoring rule above matching_threshold\n3. **Unknown Classification**: Return as \"unknown\" if no rules score above threshold\n\nThis ensures optimal classification by:\n- Finding the best possible match among all rules\n- Avoiding false positives with confidence thresholds\n- Maximizing performance with single-pass file parsing\n\n## Rule Format:\n```json\n[\n {\n \"type\": \"invoice\",\n \"description\": \"contains invoice number, line items, and total amount\"\n },\n {\n \"type\": \"receipt\",\n \"description\": \"purchase receipt with transaction details and payment info\"\n }\n]\n```\n\n## Classification Process:\n1. **Metadata Heuristics** (configurable via API):\n - **Document Type Filter**: Only process document file types (PDF, DOC, DOCX, RTF, TXT, ODT, Pages, HTML, XML, Markdown)\n - **Filename Heuristics**: Check if rule type appears in filename\n - **Content Analysis**: Parse document content once and use LLM for semantic matching against all rules\n2. **Result**: Returns type, confidence score, and matched rule information\n\n## API Parameters:\n- `matching_threshold` (0.1-0.99, default: 0.6): Minimum confidence threshold for acceptable matches\n- `enable_metadata_heuristic` (boolean, default: true): Enable metadata-based features\n\n## Supported Document Types:\n**Text Documents**: pdf, doc, docx, rtf, txt, odt, pages\n**Web Documents**: html, htm, xml\n**Markup**: md, markdown\n\n## Limits (Beta):\n- Maximum 100 files per request\n- Maximum 10 rules per request\n- Rule descriptions: 10-500 characters\n- Document types: 1-50 characters (alphanumeric, hyphens, underscores)\n\n**Beta Notice**: This API is subject to change. Please provide feedback!",
"operationId": "classify_documents_api_v1_classifier_classify_post",
"security": [
{
"HTTPBearer": []
@@ -11795,6 +11788,23 @@
}
],
"parameters": [
{
"name": "project_id",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"type": "string",
"format": "uuid"
},
{
"type": "null"
}
],
"title": "Project Id"
}
},
{
"name": "organization_id",
"in": "query",
@@ -11832,9 +11842,9 @@
"requestBody": {
"required": true,
"content": {
"application/json": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/CheckoutSessionCreatePayload"
"$ref": "#/components/schemas/Body_classify_documents_api_v1_classifier_classify_post"
}
}
}
@@ -11845,8 +11855,7 @@
"content": {
"application/json": {
"schema": {
"type": "string",
"title": "Response Create Checkout Session Api V1 Billing Checkout Session Post"
"$ref": "#/components/schemas/ClassifyResponse"
}
}
}
@@ -11948,55 +11957,6 @@
}
}
},
"/api/v1/billing/webhook": {
"post": {
"tags": ["Billing"],
"summary": "Stripe Webhook",
"description": "Stripe webhook endpoint.",
"operationId": "stripe_webhook_api_v1_billing_webhook_post",
"parameters": [
{
"name": "stripe-signature",
"in": "header",
"required": false,
"schema": {
"type": "string",
"title": "Stripe-Signature"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": {
"const": "success",
"type": "string"
},
"propertyNames": {
"const": "status"
},
"title": "Response Stripe Webhook Api V1 Billing Webhook Post"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/api/v1/billing/downgrade-plan": {
"post": {
"tags": ["Billing"],
@@ -12165,64 +12125,6 @@
}
}
},
"/api/v1/billing/metronome-webhook": {
"post": {
"tags": ["Billing"],
"summary": "Metronome Webhook",
"description": "Metronome webhook endpoint.",
"operationId": "metronome_webhook_api_v1_billing_metronome_webhook_post",
"parameters": [
{
"name": "Metronome-Webhook-Signature",
"in": "header",
"required": false,
"schema": {
"type": "string",
"title": "Metronome-Webhook-Signature"
}
},
{
"name": "Date",
"in": "header",
"required": false,
"schema": {
"type": "string",
"title": "Date"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": {
"const": "success",
"type": "string"
},
"propertyNames": {
"const": "status"
},
"title": "Response Metronome Webhook Api V1 Billing Metronome Webhook Post"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/api/v1/billing/metronome/dashboard": {
"get": {
"tags": ["Billing"],
@@ -15768,12 +15670,12 @@
}
}
},
"/api/v1/beta/agent-data/": {
"/api/v1/beta/agent-data": {
"post": {
"tags": ["Beta", "Agent Data"],
"summary": "Create Agent Data",
"description": "Create new agent data.",
"operationId": "create_agent_data_api_v1_beta_agent_data__post",
"operationId": "create_agent_data_api_v1_beta_agent_data_post",
"security": [
{
"HTTPBearer": []
@@ -18883,6 +18785,73 @@
"required": ["start_date", "end_date"],
"title": "BillingPeriod"
},
"Body_classify_documents_api_v1_classifier_classify_post": {
"properties": {
"rules_json": {
"type": "string",
"title": "Rules Json",
"description": "JSON string containing classifier rules"
},
"files": {
"anyOf": [
{
"items": {
"type": "string",
"format": "binary"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Files"
},
"file_ids": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "File Ids",
"description": "Comma-separated list of existing file IDs"
},
"matching_threshold": {
"anyOf": [
{
"type": "number",
"maximum": 0.99,
"minimum": 0.1
},
{
"type": "null"
}
],
"title": "Matching Threshold",
"description": "Minimum confidence threshold for acceptable matches (0.1-0.99, default: 0.6)",
"default": 0.6
},
"enable_metadata_heuristic": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Enable Metadata Heuristic",
"description": "Enable metadata-based features (document filtering + content classification, default: true)",
"default": true
}
},
"type": "object",
"required": ["rules_json"],
"title": "Body_classify_documents_api_v1_classifier_classify_post"
},
"Body_create_report_api_v1_reports__post": {
"properties": {
"name": {
@@ -19376,6 +19345,11 @@
],
"title": "Max Pages"
},
"merge_tables_across_pages_in_markdown": {
"type": "boolean",
"title": "Merge Tables Across Pages In Markdown",
"default": false
},
"outlined_table_extraction": {
"type": "boolean",
"title": "Outlined Table Extraction",
@@ -19857,6 +19831,11 @@
],
"title": "Max Pages"
},
"merge_tables_across_pages_in_markdown": {
"type": "boolean",
"title": "Merge Tables Across Pages In Markdown",
"default": false
},
"outlined_table_extraction": {
"type": "boolean",
"title": "Outlined Table Extraction",
@@ -20430,30 +20409,101 @@
"type": "object",
"title": "ChatInputParams"
},
"CheckoutSessionCreatePayload": {
"properties": {
"success_url": {
"type": "string",
"minLength": 1,
"format": "uri",
"title": "Success Url"
},
"cancel_url": {
"type": "string",
"minLength": 1,
"format": "uri",
"title": "Cancel Url"
}
},
"type": "object",
"required": ["success_url", "cancel_url"],
"title": "CheckoutSessionCreatePayload"
},
"ChunkMode": {
"type": "string",
"enum": ["PAGE", "DOCUMENT", "SECTION", "GROUPED_PAGES"],
"title": "ChunkMode"
},
"ClassificationResult": {
"properties": {
"file_id": {
"type": "string",
"format": "uuid",
"title": "File Id",
"description": "The ID of the classified file"
},
"type": {
"type": "string",
"title": "Type",
"description": "The assigned document type ('unknown' if no rules matched)",
"examples": ["invoice", "receipt", "contract", "unknown"]
},
"confidence": {
"type": "number",
"maximum": 1.0,
"minimum": 0.0,
"title": "Confidence",
"description": "Confidence score of the classification (0.0-1.0)"
},
"matched_rule": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Matched Rule",
"description": "Description of the rule that matched, or method used (e.g., 'auto: filename contains invoice')",
"examples": [
"contains invoice number, line items, and total",
"auto: filename contains 'invoice'",
null
]
}
},
"type": "object",
"required": ["file_id", "type", "confidence", "matched_rule"],
"title": "ClassificationResult",
"description": "Result of classifying a single file.\n\nContains the classification outcome with confidence score and matched rule info."
},
"ClassifyResponse": {
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/ClassificationResult"
},
"type": "array",
"title": "Items",
"description": "The list of items."
},
"next_page_token": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Next Page Token",
"description": "A token, which can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages."
},
"total_size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Total Size",
"description": "The total number of items available. This is only populated when specifically requested. The value may be an estimate and can be used for display purposes only."
},
"unknown_count": {
"type": "integer",
"minimum": 0.0,
"title": "Unknown Count",
"description": "Number of files that couldn't be classified"
}
},
"type": "object",
"required": ["items", "unknown_count"],
"title": "ClassifyResponse",
"description": "Response model for the classify endpoint following AIP-132 pagination standard.\n\nContains classification results with pagination support and summary statistics."
},
"CloudAzStorageBlobDataSource": {
"properties": {
"supports_access_control": {
@@ -21941,6 +21991,7 @@
},
"query": {
"type": "string",
"minLength": 1,
"title": "Query",
"description": "The query to retrieve against."
}
@@ -22457,14 +22508,12 @@
"version_metadata": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
"$ref": "#/components/schemas/DataSourceReaderVersionMetadata"
},
{
"type": "null"
}
],
"title": "Version Metadata",
"description": "Version metadata for the data source"
},
"project_id": {
@@ -22570,6 +22619,24 @@
"title": "DataSourceCreate",
"description": "Schema for creating a data source."
},
"DataSourceReaderVersionMetadata": {
"properties": {
"reader_version": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Reader Version",
"description": "The version of the reader to use for this data source."
}
},
"type": "object",
"title": "DataSourceReaderVersionMetadata"
},
"DataSourceUpdate": {
"properties": {
"name": {
@@ -22841,6 +22908,7 @@
},
"query": {
"type": "string",
"minLength": 1,
"title": "Query",
"description": "The query to retrieve against."
},
@@ -23799,7 +23867,7 @@
},
"ExtractMode": {
"type": "string",
"enum": ["FAST", "BALANCED", "PREMIUM", "MULTIMODAL", "ACCURATE"],
"enum": ["FAST", "BALANCED", "PREMIUM", "MULTIMODAL"],
"title": "ExtractMode"
},
"ExtractModels": {
@@ -26210,6 +26278,19 @@
"description": "Whether to try to extract outlined tables",
"default": false
},
"mergeTablesAcrossPagesInMarkdown": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Mergetablesacrosspagesinmarkdown",
"description": "Whether to merge tables across pages in markdown",
"default": false
},
"saveImages": {
"anyOf": [
{
@@ -27070,6 +27151,7 @@
"disable_image_extraction": false,
"invalidate_cache": false,
"outlined_table_extraction": false,
"merge_tables_across_pages_in_markdown": false,
"output_pdf_of_document": false,
"do_not_cache": false,
"fast_mode": false,
@@ -27246,6 +27328,18 @@
"title": "Outlined Table Extraction",
"default": false
},
"merge_tables_across_pages_in_markdown": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Merge Tables Across Pages In Markdown",
"default": false
},
"output_pdf_of_document": {
"anyOf": [
{
@@ -29406,6 +29500,18 @@
"title": "Outlined Table Extraction",
"default": false
},
"merge_tables_across_pages_in_markdown": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Merge Tables Across Pages In Markdown",
"default": false
},
"output_pdf_of_document": {
"anyOf": [
{
@@ -31334,14 +31440,12 @@
"version_metadata": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
"$ref": "#/components/schemas/DataSourceReaderVersionMetadata"
},
{
"type": "null"
}
],
"title": "Version Metadata",
"description": "Version metadata for the data source"
},
"project_id": {
@@ -32129,12 +32233,6 @@
"title": "Data Source Project File Changed",
"description": "Whether the data source project file has changed",
"default": false
},
"should_migrate_pipeline_file_to_external_file_id": {
"type": "boolean",
"title": "Should Migrate Pipeline File To External File Id",
"description": "Whether to migrate the pipeline file to the external file id",
"default": false
}
},
"type": "object",
@@ -34239,19 +34337,6 @@
"title": "Name",
"description": "A name for the role."
},
"organization_id": {
"anyOf": [
{
"type": "string",
"format": "uuid"
},
{
"type": "null"
}
],
"title": "Organization Id",
"description": "The organization's ID."
},
"permissions": {
"items": {
"$ref": "#/components/schemas/Permission"
@@ -34262,7 +34347,7 @@
}
},
"type": "object",
"required": ["id", "name", "organization_id", "permissions"],
"required": ["id", "name", "permissions"],
"title": "Role",
"description": "Schema for a role."
},
@@ -35134,19 +35219,13 @@
"title": "Project Ids",
"description": "The project ID scope."
},
"role_id": {
"type": "string",
"format": "uuid",
"title": "Role Id",
"description": "The role's ID."
},
"role": {
"$ref": "#/components/schemas/Role",
"description": "The role."
}
},
"type": "object",
"required": ["id", "user_id", "organization_id", "role_id", "role"],
"required": ["id", "user_id", "organization_id", "role"],
"title": "UserOrganizationRole",
"description": "Schema for a user's role in an organization."
},
+16 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloud",
"version": "4.0.18",
"version": "4.0.24",
"type": "module",
"license": "MIT",
"scripts": {
@@ -11,10 +11,23 @@
"files": [
"openapi.json",
"./api",
"./reader"
"./reader",
"./parse",
"./beta/agent"
],
"exports": {
"./openapi.json": "./openapi.json",
"./beta/agent": {
"require": {
"types": "./beta/agent/dist/index.d.cts",
"default": "./beta/agent/dist/index.cjs"
},
"import": {
"types": "./beta/agent/dist/index.d.ts",
"default": "./beta/agent/dist/index.js"
},
"default": "./beta/agent/dist/index.js"
},
"./api": {
"require": {
"types": "./api/dist/index.d.cts",
@@ -79,6 +92,6 @@
},
"dependencies": {
"p-retry": "^6.2.1",
"zod": "^3.25.67"
"zod": "^3.25.76"
}
}
+314
View File
@@ -0,0 +1,314 @@
import { createClient, createConfig } from "@hey-api/client-fetch";
import { getEnv } from "@llamaindex/env";
import {
aggregateAgentDataApiV1BetaAgentDataAggregatePost,
createAgentDataApiV1BetaAgentDataPost,
deleteAgentDataApiV1BetaAgentDataItemIdDelete,
getAgentDataApiV1BetaAgentDataItemIdGet,
searchAgentDataApiV1BetaAgentDataSearchPost,
updateAgentDataApiV1BetaAgentDataItemIdPut,
type AgentData,
type AggregateGroup,
} from "../../client";
import type {
AggregateAgentDataOptions,
SearchAgentDataOptions,
TypedAgentData,
TypedAgentDataItems,
TypedAggregateGroup,
TypedAggregateGroupItems,
} from "./types";
/**
* Async client for agent data operations
*/
export class AgentClient<T = unknown> {
private client: ReturnType<typeof createClient>;
private baseUrl: string;
private headers: Record<string, string>;
private collection: string;
private agentUrlId: string;
constructor({
apiKey = getEnv("LLAMA_CLOUD_API_KEY"),
baseUrl = "https://api.cloud.llamaindex.ai/",
collection = "default",
agentUrlId = "default",
}: {
apiKey?: string;
baseUrl?: string;
collection?: string;
agentUrlId?: string;
}) {
this.baseUrl = baseUrl;
this.headers = {
"X-SDK-Name": "llamaindex-ts",
...(apiKey && { Authorization: `Bearer ${apiKey}` }),
};
this.client = createClient(
createConfig({
baseUrl: this.baseUrl,
headers: this.headers,
}),
);
this.collection = collection;
this.agentUrlId = agentUrlId;
}
/**
* Create new agent data
*/
async createItem(data: T): Promise<TypedAgentData<T>> {
const response = await createAgentDataApiV1BetaAgentDataPost({
throwOnError: true,
body: {
agent_slug: this.agentUrlId,
collection: this.collection,
data: data as Record<string, unknown>,
},
client: this.client,
});
return this.transformResponse(response.data);
}
/**
* Get agent data by ID
*/
async getItem(id: string): Promise<TypedAgentData<T> | null> {
try {
const response = await getAgentDataApiV1BetaAgentDataItemIdGet({
throwOnError: true,
path: { item_id: id },
client: this.client,
});
return this.transformResponse(response.data);
} catch (error) {
if (
error instanceof Error &&
"response" in error &&
(error as { response?: { status?: number } }).response?.status === 404
) {
return null;
}
throw error;
}
}
/**
* Update agent data
*/
async updateItem(id: string, data: T): Promise<TypedAgentData<T>> {
const response = await updateAgentDataApiV1BetaAgentDataItemIdPut({
throwOnError: true,
path: { item_id: id },
body: {
data: data as Record<string, unknown>,
},
client: this.client,
});
return this.transformResponse(response.data);
}
/**
* Delete agent data
*/
async deleteItem(id: string): Promise<void> {
await deleteAgentDataApiV1BetaAgentDataItemIdDelete({
throwOnError: true,
path: { item_id: id },
client: this.client,
});
}
/**
* List agent data
*/
async search(
options: SearchAgentDataOptions,
): Promise<TypedAgentDataItems<T>> {
const response = await searchAgentDataApiV1BetaAgentDataSearchPost({
throwOnError: true,
body: {
agent_slug: this.agentUrlId,
...(this.collection !== undefined && {
collection: this.collection,
}),
...(options.filter !== undefined && { filter: options.filter }),
...(options.orderBy !== undefined && { order_by: options.orderBy }),
...(options.pageSize !== undefined && { page_size: options.pageSize }),
...(options.offset !== undefined && { offset: options.offset }),
...(options.includeTotal !== undefined && {
include_total: options.includeTotal,
}),
},
client: this.client,
});
const result: TypedAgentDataItems<T> = {
items: response.data.items.map((item: AgentData) =>
this.transformResponse(item),
),
};
if (
response.data.total_size !== null &&
response.data.total_size !== undefined
) {
result.totalSize = response.data.total_size;
}
if (
response.data.next_page_token !== null &&
response.data.next_page_token !== undefined
) {
result.nextPageToken = response.data.next_page_token;
}
return result;
}
/**
* Aggregate agent data into groups
*/
async aggregate(
options: AggregateAgentDataOptions,
): Promise<TypedAggregateGroupItems<T>> {
const response = await aggregateAgentDataApiV1BetaAgentDataAggregatePost({
throwOnError: true,
body: {
agent_slug: this.agentUrlId,
...(this.collection !== undefined && {
collection: this.collection,
}),
...(options.filter !== undefined && { filter: options.filter }),
...(options.groupBy !== undefined && { group_by: options.groupBy }),
...(options.count !== undefined && { count: options.count }),
...(options.first !== undefined && { first: options.first }),
...(options.orderBy !== undefined && { order_by: options.orderBy }),
...(options.offset !== undefined && { offset: options.offset }),
...(options.pageSize !== undefined && { page_size: options.pageSize }),
},
client: this.client,
});
const result: TypedAggregateGroupItems<T> = {
items: response.data.items.map((item) =>
this.transformAggregateResponse(item),
),
};
if (
response.data.total_size !== null &&
response.data.total_size !== undefined
) {
result.totalSize = response.data.total_size;
}
if (
response.data.next_page_token !== null &&
response.data.next_page_token !== undefined
) {
result.nextPageToken = response.data.next_page_token;
}
return result;
}
/**
* Transform API response to typed data
*/
private transformResponse(data: AgentData): TypedAgentData<T> {
const result: TypedAgentData<T> = {
id: data.id!,
agentUrlId: data.agent_slug,
data: data.data as T,
createdAt: new Date(data.created_at!),
updatedAt: new Date(data.updated_at!),
};
if (data.collection !== undefined) {
result.collection = data.collection;
}
return result;
}
/**
* Transform API aggregate response to typed data
*/
private transformAggregateResponse(
data: AggregateGroup,
): TypedAggregateGroup<T> {
const result: TypedAggregateGroup<T> = {
groupKey: data.group_key,
};
if (data.count !== null && data.count !== undefined) {
result.count = data.count;
}
if (data.first_item !== null && data.first_item !== undefined) {
result.firstItem = data.first_item as T;
}
return result;
}
}
export interface AgentDataClientOptions<T = unknown> {
/** API key for the client */
apiKey?: string;
/** Base URL for the client */
/** Base URL of the llama cloud api */
baseUrl?: string;
/** If running in an agent runtime, optionally provide the window url to infer the agent url id */
windowUrl?: string;
/** Agent URL ID for the client, if not provided, it will be inferred from the window url, or fall back to "default" */
agentUrlId?: string;
/** Collection name for the client, defaults to "default" */
collection?: string;
}
/**
* Create a new AsyncAgentDataClient instance
* @param options - The options for the client
* @returns A new AgentClient instance
*/
export function createAgentDataClient<T = unknown>({
apiKey,
baseUrl,
windowUrl,
agentUrlId,
collection = "default",
}: {
apiKey?: string;
baseUrl?: string;
windowUrl?: string;
agentUrlId?: string;
collection?: string;
} = {}): AgentClient<T> {
if (windowUrl && !agentUrlId) {
try {
const path = new URL(windowUrl).pathname;
// /deployments/<agent-url-id>/ui/ -> ["", "deployments", "<agent-url-id>", "ui"]
agentUrlId = path.split("/")[2];
} catch (error) {
console.warn(
"Failed to infer agent url id from window url, falling back to default",
error,
);
}
}
return new AgentClient({
...(apiKey && { apiKey }),
...(baseUrl && { baseUrl }),
...(agentUrlId && { agentUrlId }),
collection,
});
}
+16
View File
@@ -0,0 +1,16 @@
export { AgentClient, createAgentDataClient } from "./client";
export type {
AggregateAgentDataOptions,
ComparisonOperator,
ExtractedData,
FilterOperation,
SearchAgentDataOptions,
StatusType,
TypedAgentData,
TypedAgentDataItems,
TypedAggregateGroup,
TypedAggregateGroupItems,
} from "./types";
export { StatusType as StatusTypeEnum } from "./types";
+138
View File
@@ -0,0 +1,138 @@
import type { FilterOperation as RawFilterOperation } from "../../client/types.gen";
/**
* Status types for agent data processing
*/
export const StatusType = {
ERROR: "error",
ACCEPTED: "accepted",
REJECTED: "rejected",
PENDING_REVIEW: "pending_review",
} as const;
export type StatusType = (typeof StatusType)[keyof typeof StatusType];
export const ComparisonOperator = {
GT: "gt",
GTE: "gte",
LT: "lt",
LTE: "lte",
EQ: "eq",
INCLUDES: "includes",
} as const;
export type ComparisonOperator =
(typeof ComparisonOperator)[keyof typeof ComparisonOperator];
/**
* Filter operation for searching/filtering agent data
*/
export type FilterOperation = RawFilterOperation;
/**
* Base extracted data interface
*/
export interface ExtractedData<T = unknown> {
/** The original data that was extracted from the document. For tracking changes. Should not be updated. */
original_data: T;
/** The latest state of the data. Will differ if data has been updated. */
data?: T;
/** The status of the extracted data. Prefer to use the StatusType values, but any string is allowed. */
status: StatusType | string;
/** Confidence scores, if any, for each primitive field in the original_data data. */
confidence?: Record<string, unknown>;
/** The ID of the file that was used to extract the data. */
file_id?: string;
/** The name of the file that was used to extract the data. */
file_name?: string;
/** The hash of the file that was used to extract the data. */
file_hash?: string;
/** Additional metadata about the extracted data, such as errors, tokens, etc. */
metadata?: Record<string, unknown>;
}
/**
* TypedAgentData interface for typed agent data
*/
export interface TypedAgentData<T = unknown> {
/** The unique ID of the agent data record. */
id: string;
/** The ID of the agent that created the data. */
agentUrlId: string;
/** The collection of the agent data. */
collection?: string;
/** The data of the agent data. Usually an ExtractedData&lt;SomeOtherType&gt; */
data: T;
/** The date and time the data was created. */
createdAt: Date;
/** The date and time the data was last updated. */
updatedAt: Date;
}
/**
* Paginated response of typed agent data items
*/
export interface TypedAgentDataItems<T = unknown> {
items: TypedAgentData<T>[];
totalSize?: number;
nextPageToken?: string;
}
/**
* Options for listing agent data
*/
export interface SearchAgentDataOptions {
/** Filter options for the list. */
filter?: Record<string, FilterOperation>;
/** Order by options for the list. */
orderBy?: string;
/** Page size for the list. */
pageSize?: number;
/** Offset for the list. */
offset?: number;
/**
* Whether to include the total number of items in the response.
* Should use only for first request to build total pagination, and not subsequent requests.
*/
includeTotal?: boolean;
}
/**
* Options for aggregating agent data
*/
export interface AggregateAgentDataOptions {
/** Filter options for the aggregation. */
filter?: Record<string, FilterOperation>;
/** Fields to group by. */
groupBy?: string[];
/** Whether to count the number of items in each group. */
count?: boolean;
/** Whether to return the first item in each group. */
first?: boolean;
/** Order by options for the aggregation. */
orderBy?: string;
/** Offset for the aggregation. */
offset?: number;
/** Page size for the aggregation. */
pageSize?: number;
}
/**
* Single aggregation group result
*/
export interface TypedAggregateGroup<T = unknown> {
/** The group key values */
groupKey: Record<string, unknown>;
/** Count of items in the group */
count?: number;
/** First item in the group */
firstItem?: T;
}
/**
* Paginated response of aggregated agent data
*/
export interface TypedAggregateGroupItems<T = unknown> {
items: TypedAggregateGroup<T>[];
totalSize?: number;
nextPageToken?: string;
}
+3
View File
@@ -179,6 +179,7 @@ export class LlamaParseReader extends FileReader {
page_header_suffix?: string | undefined;
page_footer_prefix?: string | undefined;
page_footer_suffix?: string | undefined;
merge_tables_across_pages_in_markdown?: boolean | undefined;
constructor(
params: Partial<Omit<LlamaParseReader, "language" | "apiKey">> & {
@@ -368,6 +369,8 @@ export class LlamaParseReader extends FileReader {
page_header_suffix: this.page_header_suffix,
page_footer_prefix: this.page_footer_prefix,
page_footer_suffix: this.page_footer_suffix,
merge_tables_across_pages_in_markdown:
this.merge_tables_across_pages_in_markdown,
} satisfies {
[Key in keyof BodyUploadFileApiParsingUploadPost]-?:
| BodyUploadFileApiParsingUploadPost[Key]
+13
View File
@@ -1,5 +1,18 @@
# @llamaindex/core
## 0.6.15
### Patch Changes
- 7ad3411: feat: add llm.exec
- 5da5b3c: add progress callback to embeddings
## 0.6.14
### Patch Changes
- 8eeac33: Fix createMemory factory when parsing options
## 0.6.13
### Patch Changes
+14 -3
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/core",
"type": "module",
"version": "0.6.13",
"version": "0.6.15",
"description": "LlamaIndex Core Module",
"exports": {
"./agent": {
@@ -59,6 +59,17 @@
},
"default": "./llms/dist/index.js"
},
"./llms/mock": {
"require": {
"types": "./llms/mock/dist/index.d.cts",
"default": "./llms/mock/dist/index.cjs"
},
"import": {
"types": "./llms/mock/dist/index.d.ts",
"default": "./llms/mock/dist/index.js"
},
"default": "./llms/mock/dist/index.js"
},
"./decorator": {
"require": {
"types": "./decorator/dist/index.d.cts",
@@ -310,9 +321,9 @@
},
"dependencies": {
"@llamaindex/env": "workspace:*",
"@types/node": "^22.9.0",
"@types/node": "^24.0.13",
"magic-bytes.js": "^1.10.0",
"zod": "^3.25.67",
"zod": "^3.25.76",
"zod-to-json-schema": "^3.24.6"
}
}
+5 -2
View File
@@ -17,6 +17,7 @@ export type EmbeddingInfo = {
export type BaseEmbeddingOptions = {
logProgress?: boolean;
progressCallback?: (current: number, total: number) => void;
};
export abstract class BaseEmbedding extends TransformComponent<
@@ -138,9 +139,11 @@ export async function batchEmbeddings<T>(
const embeddings = await embedFunc(curBatch);
resultEmbeddings.push(...embeddings);
if (options?.progressCallback) {
options?.progressCallback?.(i + 1, queue.length);
}
if (options?.logProgress) {
console.log(`getting embedding progress: ${i} / ${queue.length}`);
console.log(`getting embedding progress: ${i + 1} / ${queue.length}`);
}
curBatch.length = 0;
+173 -1
View File
@@ -1,15 +1,20 @@
import { extractText } from "../utils/llms";
import { streamConverter } from "../utils/stream";
import { callTool, getToolCallsFromResponse } from "./tool-call";
import type {
ChatMessage,
ChatResponse,
ChatResponseChunk,
CompletionResponse,
ExecResponse,
ExecStreamResponse,
LLM,
LLMChatParamsNonStreaming,
LLMChatParamsStreaming,
LLMCompletionParamsNonStreaming,
LLMCompletionParamsStreaming,
LLMMetadata,
PartialToolCall,
ToolCallLLMMessageOptions,
} from "./type";
@@ -60,13 +65,180 @@ export abstract class BaseLLM<
AdditionalChatOptions,
AdditionalMessageOptions
>,
): Promise<AsyncIterable<ChatResponseChunk>>;
): Promise<AsyncIterable<ChatResponseChunk<AdditionalMessageOptions>>>;
abstract chat(
params: LLMChatParamsNonStreaming<
AdditionalChatOptions,
AdditionalMessageOptions
>,
): Promise<ChatResponse<AdditionalMessageOptions>>;
exec(
params: LLMChatParamsStreaming<
AdditionalChatOptions,
AdditionalMessageOptions
>,
): Promise<ExecStreamResponse<AdditionalMessageOptions>>;
exec(
params: LLMChatParamsNonStreaming<
AdditionalChatOptions,
AdditionalMessageOptions
>,
): Promise<ExecResponse<AdditionalMessageOptions>>;
async exec(
params:
| LLMChatParamsStreaming<AdditionalChatOptions, AdditionalMessageOptions>
| LLMChatParamsNonStreaming<
AdditionalChatOptions,
AdditionalMessageOptions
>,
): Promise<
| ExecResponse<AdditionalMessageOptions>
| ExecStreamResponse<AdditionalMessageOptions>
> {
if (params.stream) {
return this.streamExec(params);
}
const newMessages: ChatMessage<AdditionalMessageOptions>[] = [];
const response = await this.chat(params);
newMessages.push(response.message);
const toolCalls = getToolCallsFromResponse(response);
if (params.tools && toolCalls.length > 0) {
for (const toolCall of toolCalls) {
const toolResultMessage = await callTool<AdditionalMessageOptions>(
params.tools,
toolCall,
);
if (toolResultMessage) {
newMessages.push(toolResultMessage);
}
}
}
return {
newMessages,
toolCalls,
};
}
async streamExec(
params: LLMChatParamsStreaming<
AdditionalChatOptions,
AdditionalMessageOptions
>,
): Promise<ExecStreamResponse<AdditionalMessageOptions>> {
const responseStream = await this.chat(params);
const iterator = responseStream[Symbol.asyncIterator]();
const first = await iterator.next();
// Set firstChunk to null if empty
const firstChunk = !first.done ? first.value : null;
const hasToolCallsInFirst =
firstChunk?.options && "toolCall" in firstChunk.options;
if (!hasToolCallsInFirst) {
let content = firstChunk?.delta ?? "";
let finished = false;
return {
stream: (async function* () {
if (firstChunk) {
yield firstChunk;
}
for await (const chunk of {
[Symbol.asyncIterator]: () => iterator,
}) {
content += chunk.delta;
yield chunk;
}
finished = true;
})(),
toolCalls: [],
newMessages() {
if (!finished) {
throw new Error(
"New messages are not ready yet. Call newMessages() after the stream is done.",
);
}
return content
? [
{
role: "assistant",
content,
} as ChatMessage<AdditionalMessageOptions>,
]
: [];
},
};
}
// Helper function to process a chunk
function processChunk(
chunk: ChatResponseChunk,
toolCallMap: Map<string, PartialToolCall>,
): ChatResponseChunk | null {
if (chunk.options && "toolCall" in chunk.options) {
// update tool call map
for (const toolCall of chunk.options.toolCall as PartialToolCall[]) {
if (toolCall.id) {
toolCallMap.set(toolCall.id, toolCall);
}
}
// return the current full response with the tool calls
const toolCalls = Array.from(toolCallMap.values());
return {
...chunk,
options: {
...chunk.options,
toolCall: toolCalls,
},
};
}
return null;
}
// Collect for tool call
let fullResponse: ChatResponseChunk | null = null;
const toolCallMap = new Map<string, PartialToolCall>();
// Process first chunk
fullResponse = processChunk(firstChunk, toolCallMap);
// Process remaining chunks
while (true) {
const next = await iterator.next();
if (next.done) break;
const chunk = next.value;
const potentialFull = processChunk(chunk, toolCallMap);
if (potentialFull) {
fullResponse = potentialFull;
}
}
if (params.tools && fullResponse) {
const toolCalls = getToolCallsFromResponse(fullResponse);
const messages: ChatMessage<AdditionalMessageOptions>[] = [];
messages.push({
role: "assistant",
content: "",
options: {
toolCall: toolCalls,
} as AdditionalMessageOptions,
});
for (const toolCall of toolCalls) {
const toolResultMessage = await callTool<AdditionalMessageOptions>(
params.tools,
toolCall,
);
if (toolResultMessage) {
messages.push(toolResultMessage);
}
}
return {
stream: (async function* () {})(),
newMessages() {
return messages;
},
toolCalls,
};
} else {
throw new Error("Cannot get tool calls from response");
}
}
}
export abstract class ToolCallLLM<
@@ -1,5 +1,4 @@
// TODO: move to a test package
import { ToolCallLLM } from "../llms/base";
import { ToolCallLLM } from "./base";
import type {
ChatResponse,
ChatResponseChunk,
@@ -9,7 +8,7 @@ import type {
LLMCompletionParamsNonStreaming,
LLMCompletionParamsStreaming,
LLMMetadata,
} from "../llms/type";
} from "./type";
export class MockLLM extends ToolCallLLM {
metadata: LLMMetadata;
+61
View File
@@ -0,0 +1,61 @@
import { stringifyJSONToMessageContent } from "../utils";
import type {
BaseTool,
ChatMessage,
ChatResponse,
ChatResponseChunk,
ToolCall,
ToolCallLLMMessageOptions,
} from "./type";
export const getToolCallsFromResponse = (
response:
| ChatResponse<ToolCallLLMMessageOptions>
| ChatResponseChunk<ToolCallLLMMessageOptions>,
): ToolCall[] => {
let options;
if ("message" in response) {
options = response.message.options;
} else {
options = response.options;
}
if (options && "toolCall" in options) {
return (options.toolCall as ToolCall[]).map((toolCall) => ({
...toolCall,
input:
// XXX: this is a hack openai returns parsed object for streaming, but not for
// non-streaming
typeof toolCall.input === "string"
? JSON.parse(toolCall.input)
: toolCall.input,
}));
}
return [];
};
export const callTool = async <
AdditionalMessageOptions extends object = object,
>(
tools: BaseTool[],
toolCall: ToolCall,
): Promise<ChatMessage<AdditionalMessageOptions> | null> => {
const tool = tools?.find((t) => t.metadata.name === toolCall.name);
// TODO: consider using BaseToolWithCall instead of BaseTool to avoid checking for tool.call
if (tool && tool.call) {
const result = await tool.call(toolCall.input);
const toolResultMessage: ChatMessage<AdditionalMessageOptions> = {
role: "user",
content: stringifyJSONToMessageContent(result),
options: {
toolResult: {
id: toolCall.id,
result,
},
} as AdditionalMessageOptions,
};
return toolResultMessage;
}
return null;
};
+19 -3
View File
@@ -95,6 +95,22 @@ export type ChatResponseChunk<
options?: undefined | AdditionalMessageOptions;
};
export interface ExecResponse<
AdditionalMessageOptions extends object = object,
> {
newMessages: ChatMessage<AdditionalMessageOptions>[];
toolCalls: ToolCall[];
}
export interface ExecStreamResponse<
AdditionalMessageOptions extends object = object,
> {
stream: AsyncIterable<ChatResponseChunk<AdditionalMessageOptions>>;
// this is a function as while streaming, the assistant message is not ready yet - can be called after the stream is done
newMessages(): ChatMessage<AdditionalMessageOptions>[];
toolCalls: ToolCall[];
}
export interface CompletionResponse {
text: string;
/**
@@ -120,9 +136,9 @@ export interface LLMChatParamsBase<
AdditionalMessageOptions extends object = object,
> {
messages: ChatMessage<AdditionalMessageOptions>[];
additionalChatOptions?: AdditionalChatOptions;
tools?: BaseTool[];
responseFormat?: z.ZodType | object;
additionalChatOptions?: AdditionalChatOptions | undefined;
tools?: BaseTool[] | undefined;
responseFormat?: z.ZodType | object | undefined;
}
export interface LLMChatParamsStreaming<
+12 -1
View File
@@ -79,7 +79,18 @@ export function createMemory<TMessageOptions extends object = object>(
}
}
}
return new Memory<Record<string, never>, TMessageOptions>(messages, options);
// Determine the correct options to pass to Memory
const resolvedOptions: MemoryOptions<TMessageOptions> = Array.isArray(
messagesOrOptions,
)
? options
: (messagesOrOptions as MemoryOptions<TMessageOptions>);
return new Memory<Record<string, never>, TMessageOptions>(
messages,
resolvedOptions,
);
}
/**
-2
View File
@@ -70,8 +70,6 @@ export {
toToolDescriptions,
} from "./llms";
export { MockLLM } from "./mock";
export * from "./encoding";
export { objectEntries } from "./object-entries";
export * from "./stream";
+1 -1
View File
@@ -1,5 +1,5 @@
import { LLMAgent, validateAgentParams } from "@llamaindex/core/agent";
import { MockLLM } from "@llamaindex/core/utils";
import { MockLLM } from "@llamaindex/core/llms/mock";
import { expect, test } from "vitest";
import { ZodError } from "zod";
+80 -1
View File
@@ -1,4 +1,9 @@
import { truncateMaxTokens } from "@llamaindex/core/embeddings";
import {
BaseEmbedding,
batchEmbeddings,
truncateMaxTokens,
type BaseEmbeddingOptions,
} from "@llamaindex/core/embeddings";
import { Tokenizers, tokenizers } from "@llamaindex/env/tokenizers";
import { describe, expect, test } from "vitest";
@@ -27,3 +32,77 @@ describe("truncateMaxTokens", () => {
expect(t.includes("")).toBe(false);
});
});
describe("BaseEmbedding progressCallback", () => {
const mockEmbedFunc = async (text: string): Promise<number[]> => {
return Array.from({ length: 10 }, () => Math.random());
};
const mockBatchEmbedFunc = async (
texts: string[],
): Promise<Array<number[]>> => {
return await Promise.all(texts.map(mockEmbedFunc));
};
const mockProgressCallback = (current: number, total: number) => {
console.log(`Progress: ${current}/${total}`);
};
const mockLogProgress = true;
const mockOptions = {
logProgress: mockLogProgress,
progressCallback: mockProgressCallback,
};
class MockEmbedding extends BaseEmbedding {
constructor(options: BaseEmbeddingOptions) {
super();
this.options = options;
}
private options: BaseEmbeddingOptions;
async getTextEmbedding(text: string): Promise<number[]> {
return await mockEmbedFunc(text);
}
getTextEmbeddings = async (texts: string[]): Promise<Array<number[]>> => {
return await mockBatchEmbedFunc(texts);
};
async getTextEmbeddingsBatch(
texts: string[],
options?: BaseEmbeddingOptions,
): Promise<Array<number[]>> {
const mergedOptions = { ...this.options, ...options };
expect(mergedOptions.progressCallback).toBeDefined();
return await batchEmbeddings(
texts,
this.getTextEmbeddings,
this.embedBatchSize,
mergedOptions,
);
}
}
test("should call progressCallback with correct values", async () => {
// Import and use a real embedding class instead
const progressCalls: Array<{ current: number; total: number }> = [];
const progressCallback = (current: number, total: number) => {
progressCalls.push({ current, total });
};
const texts = ["text1", "text2", "text3"];
const embedding = new MockEmbedding({ progressCallback: progressCallback });
embedding.embedBatchSize = 1; // Set batch size to 1 for testing
// so that progressCallback is called for each item
// (otherwise, we'd only get a callback for 3/3, which is fine but less clear)
await embedding.getTextEmbeddingsBatch(texts);
expect(progressCalls).toEqual([
{ current: 1, total: 3 },
{ current: 2, total: 3 },
{ current: 3, total: 3 },
]);
});
});
+43
View File
@@ -0,0 +1,43 @@
import { MockLLM } from "@llamaindex/core/llms/mock";
import { describe, expect, it } from "vitest";
// TODO: add tests for tool calls
describe("BaseLLM exec", () => {
it("should stream text response when no tool call is made", async () => {
const responseMessage = "This is a response message while streaming";
const llm = new MockLLM({ responseMessage });
const { stream, newMessages, toolCalls } = await llm.exec({
messages: [{ content: "Hi", role: "user" }],
stream: true,
});
expect(() => newMessages()).toThrowError();
const chunks = [];
for await (const chunk of stream) {
chunks.push(chunk);
}
expect(chunks.map((c) => c.delta).join("")).toBe(responseMessage);
expect(toolCalls).toEqual([]);
expect(newMessages()).toEqual([
{ content: responseMessage, role: "assistant" },
]);
});
it("should return text response when no tool call is made", async () => {
const responseMessage = "This is a response message";
const llm = new MockLLM({ responseMessage });
const { newMessages, toolCalls } = await llm.exec({
messages: [{ content: "Hi", role: "user" }],
});
expect(newMessages).toEqual([
{ content: responseMessage, role: "assistant" },
]);
expect(toolCalls).toEqual([]);
});
});
+45 -2
View File
@@ -1,7 +1,7 @@
import { Settings } from "@llamaindex/core/global";
import type { ChatMessage, LLM } from "@llamaindex/core/llms";
import { createMemory, Memory } from "@llamaindex/core/memory";
import { MockLLM } from "@llamaindex/core/utils";
import { MockLLM } from "@llamaindex/core/llms/mock";
import { createMemory, Memory, staticBlock } from "@llamaindex/core/memory";
import type { Tokenizer } from "@llamaindex/env/tokenizers";
import {
afterAll,
@@ -392,4 +392,47 @@ describe("Memory", () => {
expect(messages[0]?.role).toBe("user"); // data role should be mapped to user
});
});
describe("memoryBlocks initialization", () => {
test("should include static block content in getLLM result", async () => {
const STATIC_CONTENT = "You are speaking with a helpful assistant.";
const block = staticBlock({
content: STATIC_CONTENT,
messageRole: "system",
});
const memoryWithBlock = createMemory({ memoryBlocks: [block] });
// Fetch messages via getLLM static block (priority 0) should always be present
const messages = await memoryWithBlock.getLLM();
// There should be exactly one message (the static block) when no other messages are added
expect(messages).toHaveLength(1);
expect(messages[0]?.content).toBe(STATIC_CONTENT);
expect(messages[0]?.role).toBe("system");
});
test("should retain static block alongside dynamic messages", async () => {
const STATIC_CONTENT = "Always respond in pirate speak.";
const block = staticBlock({
content: STATIC_CONTENT,
messageRole: "system",
});
const memoryWithBlock = createMemory({ memoryBlocks: [block] });
// Add a regular user message
await memoryWithBlock.add({ role: "user", content: "Hello there!" });
const messages = await memoryWithBlock.getLLM();
// Static block + user message
expect(messages).toHaveLength(2);
const contents = messages.map((m) => m.content);
expect(contents).toEqual(
expect.arrayContaining([STATIC_CONTENT, "Hello there!"]),
);
});
});
});
@@ -1,6 +1,6 @@
import { SimpleChatEngine } from "@llamaindex/core/chat-engine";
import { MockLLM } from "@llamaindex/core/llms/mock";
import { Memory } from "@llamaindex/core/memory";
import { MockLLM } from "@llamaindex/core/utils";
import { describe, expect, test } from "vitest";
describe("SimpleChatEngine", () => {
+3 -3
View File
@@ -117,14 +117,14 @@
},
"devDependencies": {
"@huggingface/transformers": "^3.5.0",
"@types/node": "^22.9.0",
"@types/node": "^24.0.13",
"@types/readable-stream": "^4.0.15",
"vitest": "^2.1.5"
},
"dependencies": {
"pathe": "^1.1.2",
"@aws-crypto/sha256-js": "^5.2.0",
"js-tiktoken": "^1.0.12"
"js-tiktoken": "^1.0.12",
"pathe": "^1.1.2"
},
"peerDependencies": {
"@huggingface/transformers": "^3.5.0",
+36
View File
@@ -1,5 +1,41 @@
# @llamaindex/experimental
## 0.0.196
### Patch Changes
- llamaindex@0.11.19
## 0.0.195
### Patch Changes
- llamaindex@0.11.18
## 0.0.194
### Patch Changes
- llamaindex@0.11.17
## 0.0.193
### Patch Changes
- llamaindex@0.11.16
## 0.0.192
### Patch Changes
- llamaindex@0.11.15
## 0.0.191
### Patch Changes
- llamaindex@0.11.14
## 0.0.190
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/experimental",
"description": "Experimental package for LlamaIndexTS",
"version": "0.0.190",
"version": "0.0.196",
"type": "module",
"types": "dist/type/index.d.ts",
"main": "dist/cjs/index.js",
@@ -62,7 +62,7 @@
},
"dependencies": {
"@types/lodash": "^4.17.7",
"@types/node": "^22.9.0",
"@types/node": "^24.0.13",
"jsonpath": "^1.1.1",
"llamaindex": "workspace:*",
"lodash": "^4.17.21"
+52
View File
@@ -1,5 +1,57 @@
# llamaindex
## 0.11.19
### Patch Changes
- Updated dependencies [7ad3411]
- Updated dependencies [5da5b3c]
- @llamaindex/core@0.6.15
- @llamaindex/workflow@1.1.15
- @llamaindex/cloud@4.0.24
- @llamaindex/node-parser@2.0.15
## 0.11.18
### Patch Changes
- Updated dependencies [a1b1598]
- @llamaindex/cloud@4.0.23
## 0.11.17
### Patch Changes
- Updated dependencies [d2be868]
- @llamaindex/cloud@4.0.22
## 0.11.16
### Patch Changes
- Updated dependencies [579ca0c]
- @llamaindex/cloud@4.0.21
## 0.11.15
### Patch Changes
- Updated dependencies [48b0d88]
- Updated dependencies [f185772]
- @llamaindex/cloud@4.0.20
## 0.11.14
### Patch Changes
- Updated dependencies [5a0ed1f]
- Updated dependencies [5a0ed1f]
- Updated dependencies [8eeac33]
- @llamaindex/cloud@4.0.19
- @llamaindex/core@0.6.14
- @llamaindex/node-parser@2.0.14
- @llamaindex/workflow@1.1.14
## 0.11.13
### Patch Changes
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "llamaindex",
"version": "0.11.13",
"version": "0.11.19",
"license": "MIT",
"type": "module",
"keywords": [
@@ -26,13 +26,13 @@
"@llamaindex/node-parser": "workspace:*",
"@llamaindex/workflow": "workspace:*",
"@types/lodash": "^4.17.7",
"@types/node": "^22.9.0",
"@types/node": "^24.0.13",
"lodash": "^4.17.21",
"magic-bytes.js": "^1.10.0"
},
"devDependencies": {
"ajv": "^8.17.1",
"@types/node": "^22.9.0"
"@types/node": "^22.9.0",
"ajv": "^8.17.1"
},
"engines": {
"node": ">=18.0.0"
+13
View File
@@ -1,5 +1,18 @@
# @llamaindex/core-test
## 0.1.10
### Patch Changes
- Updated dependencies [a1fdb07]
- @llamaindex/openai@0.4.9
## 0.1.9
### Patch Changes
- @llamaindex/openai@0.4.8
## 0.1.8
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/llamaindex-test",
"private": true,
"version": "0.1.8",
"version": "0.1.10",
"type": "module",
"scripts": {
"test": "vitest run"
+15
View File
@@ -1,5 +1,20 @@
# @llamaindex/node-parser
## 2.0.15
### Patch Changes
- Updated dependencies [7ad3411]
- Updated dependencies [5da5b3c]
- @llamaindex/core@0.6.15
## 2.0.14
### Patch Changes
- Updated dependencies [8eeac33]
- @llamaindex/core@0.6.14
## 2.0.13
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/node-parser",
"version": "2.0.13",
"version": "2.0.15",
"description": "Node parser for LlamaIndex",
"type": "module",
"exports": {
@@ -42,7 +42,7 @@
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*",
"@types/html-to-text": "^9.0.4",
"@types/node": "^22.9.0",
"@types/node": "^24.0.13",
"tree-sitter": "^0.22.1",
"web-tree-sitter": "^0.24.4"
},
+16
View File
@@ -1,5 +1,21 @@
# @llamaindex/anthropic
## 0.3.17
### Patch Changes
- ddc0eaf: anthropic: stream partial tool calls
- Updated dependencies [7ad3411]
- Updated dependencies [5da5b3c]
- @llamaindex/core@0.6.15
## 0.3.16
### Patch Changes
- Updated dependencies [8eeac33]
- @llamaindex/core@0.6.14
## 0.3.15
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/anthropic",
"description": "Anthropic Adapter for LlamaIndex",
"version": "0.3.15",
"version": "0.3.17",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
+16 -10
View File
@@ -578,7 +578,6 @@ export class Anthropic extends ToolCallLLM<
});
let currentToolCall: PartialToolCall | null = null;
let accumulatedToolInput = "";
for await (const part of stream) {
const textContent =
@@ -607,7 +606,13 @@ export class Anthropic extends ToolCallLLM<
name: part.content_block.name,
input: "",
};
accumulatedToolInput = "";
yield {
raw: part,
delta: "",
options: {
toolCall: [currentToolCall],
},
};
continue;
}
@@ -616,7 +621,14 @@ export class Anthropic extends ToolCallLLM<
part.delta.type === "input_json_delta" &&
currentToolCall
) {
accumulatedToolInput += part.delta.partial_json;
currentToolCall.input += part.delta.partial_json;
yield {
raw: part,
delta: "",
options: {
toolCall: [currentToolCall],
},
};
continue;
}
@@ -625,13 +637,7 @@ export class Anthropic extends ToolCallLLM<
raw: part,
delta: "",
options: {
toolCall: [
{
id: currentToolCall.id,
name: currentToolCall.name,
input: accumulatedToolInput,
},
],
toolCall: [currentToolCall],
},
};
currentToolCall = null;
@@ -1,5 +1,20 @@
# @llamaindex/assemblyai
## 0.1.14
### Patch Changes
- Updated dependencies [7ad3411]
- Updated dependencies [5da5b3c]
- @llamaindex/core@0.6.15
## 0.1.13
### Patch Changes
- Updated dependencies [8eeac33]
- @llamaindex/core@0.6.14
## 0.1.12
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/assemblyai",
"description": "AssemblyAI Reader for LlamaIndex",
"version": "0.1.12",
"version": "0.1.14",
"type": "module",
"types": "dist/index.d.ts",
"main": "dist/index.cjs",
+15
View File
@@ -1,5 +1,20 @@
# @llamaindex/community
## 0.0.110
### Patch Changes
- Updated dependencies [7ad3411]
- Updated dependencies [5da5b3c]
- @llamaindex/core@0.6.15
## 0.0.109
### Patch Changes
- Updated dependencies [8eeac33]
- @llamaindex/core@0.6.14
## 0.0.108
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/aws",
"description": "AWS package for LlamaIndexTS",
"version": "0.0.108",
"version": "0.0.110",
"type": "module",
"types": "dist/type/index.d.ts",
"main": "dist/cjs/index.js",
@@ -44,7 +44,7 @@
"devDependencies": {
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*",
"@types/node": "^22.9.0"
"@types/node": "^24.0.13"
},
"dependencies": {
"@aws-sdk/client-bedrock-agent-runtime": "^3.706.0",
+18
View File
@@ -1,5 +1,23 @@
# @llamaindex/clip
## 0.0.65
### Patch Changes
- Updated dependencies [7ad3411]
- Updated dependencies [5da5b3c]
- Updated dependencies [a1fdb07]
- @llamaindex/core@0.6.15
- @llamaindex/openai@0.4.9
## 0.0.64
### Patch Changes
- Updated dependencies [8eeac33]
- @llamaindex/core@0.6.14
- @llamaindex/openai@0.4.8
## 0.0.63
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/clip",
"description": "Clip Embedding Adapter for LlamaIndex",
"version": "0.0.63",
"version": "0.0.65",
"type": "module",
"types": "dist/index.d.ts",
"main": "dist/index.cjs",
+15
View File
@@ -1,5 +1,20 @@
# @llamaindex/cohere
## 0.0.29
### Patch Changes
- Updated dependencies [7ad3411]
- Updated dependencies [5da5b3c]
- @llamaindex/core@0.6.15
## 0.0.28
### Patch Changes
- Updated dependencies [8eeac33]
- @llamaindex/core@0.6.14
## 0.0.27
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/cohere",
"description": "Cohere Adapter for LlamaIndex",
"version": "0.0.27",
"version": "0.0.29",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
+18
View File
@@ -1,5 +1,23 @@
# @llamaindex/deepinfra
## 0.0.65
### Patch Changes
- Updated dependencies [7ad3411]
- Updated dependencies [5da5b3c]
- Updated dependencies [a1fdb07]
- @llamaindex/core@0.6.15
- @llamaindex/openai@0.4.9
## 0.0.64
### Patch Changes
- Updated dependencies [8eeac33]
- @llamaindex/core@0.6.14
- @llamaindex/openai@0.4.8
## 0.0.63
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/deepinfra",
"description": "Deepinfra Adapter for LlamaIndex",
"version": "0.0.63",
"version": "0.0.65",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
+19
View File
@@ -1,5 +1,24 @@
# @llamaindex/deepseek
## 0.0.26
### Patch Changes
- Updated dependencies [a1fdb07]
- @llamaindex/openai@0.4.9
## 0.0.25
### Patch Changes
- af3f866: feat: add supportToolCall getter to DeepSeekLLM class
## 0.0.24
### Patch Changes
- @llamaindex/openai@0.4.8
## 0.0.23
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/deepseek",
"description": "DeepSeek Adapter for LlamaIndex",
"version": "0.0.23",
"version": "0.0.26",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
+4
View File
@@ -34,6 +34,10 @@ export class DeepSeekLLM extends OpenAI {
...rest,
});
}
get supportToolCall() {
return true;
}
}
/**
+15
View File
@@ -1,5 +1,20 @@
# @llamaindex/discord
## 0.1.14
### Patch Changes
- Updated dependencies [7ad3411]
- Updated dependencies [5da5b3c]
- @llamaindex/core@0.6.15
## 0.1.13
### Patch Changes
- Updated dependencies [8eeac33]
- @llamaindex/core@0.6.14
## 0.1.12
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/discord",
"description": "Discord Reader for LlamaIndex",
"version": "0.1.12",
"version": "0.1.14",
"type": "module",
"types": "dist/index.d.ts",
"main": "dist/index.cjs",
+15
View File
@@ -1,5 +1,20 @@
# @llamaindex/excel
## 0.1.15
### Patch Changes
- Updated dependencies [7ad3411]
- Updated dependencies [5da5b3c]
- @llamaindex/core@0.6.15
## 0.1.14
### Patch Changes
- Updated dependencies [8eeac33]
- @llamaindex/core@0.6.14
## 0.1.13
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/excel",
"description": "Excel Reader for LlamaIndex",
"version": "0.1.13",
"version": "0.1.15",
"type": "module",
"types": "dist/index.d.ts",
"main": "dist/index.cjs",
+13
View File
@@ -1,5 +1,18 @@
# @llamaindex/fireworks
## 0.0.25
### Patch Changes
- Updated dependencies [a1fdb07]
- @llamaindex/openai@0.4.9
## 0.0.24
### Patch Changes
- @llamaindex/openai@0.4.8
## 0.0.23
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/fireworks",
"description": "Fireworks Adapter for LlamaIndex",
"version": "0.0.23",
"version": "0.0.25",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
+15
View File
@@ -1,5 +1,20 @@
# @llamaindex/google
## 0.3.14
### Patch Changes
- Updated dependencies [7ad3411]
- Updated dependencies [5da5b3c]
- @llamaindex/core@0.6.15
## 0.3.13
### Patch Changes
- Updated dependencies [8eeac33]
- @llamaindex/core@0.6.14
## 0.3.12
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/google",
"description": "Google Adapter for LlamaIndex",
"version": "0.3.12",
"version": "0.3.14",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
+13
View File
@@ -1,5 +1,18 @@
# @llamaindex/groq
## 0.0.81
### Patch Changes
- Updated dependencies [a1fdb07]
- @llamaindex/openai@0.4.9
## 0.0.80
### Patch Changes
- @llamaindex/openai@0.4.8
## 0.0.79
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/groq",
"description": "Groq Adapter for LlamaIndex",
"version": "0.0.79",
"version": "0.0.81",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
@@ -1,5 +1,23 @@
# @llamaindex/huggingface
## 0.1.19
### Patch Changes
- Updated dependencies [7ad3411]
- Updated dependencies [5da5b3c]
- Updated dependencies [a1fdb07]
- @llamaindex/core@0.6.15
- @llamaindex/openai@0.4.9
## 0.1.18
### Patch Changes
- Updated dependencies [8eeac33]
- @llamaindex/core@0.6.14
- @llamaindex/openai@0.4.8
## 0.1.17
### Patch Changes

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