Compare commits

...

27 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
174 changed files with 4907 additions and 12533 deletions
-5
View File
@@ -1,5 +0,0 @@
---
"@llamaindex/core": patch
---
Fix createMemory factory when parsing options
+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
+7 -7
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/doc",
"version": "0.2.34",
"version": "0.2.40",
"private": true,
"scripts": {
"postinstall": "fumadocs-mdx",
@@ -76,21 +76,21 @@
"@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",
+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,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": {
@@ -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",
+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
+6 -6
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",
@@ -15,11 +15,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",
"@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",
"@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",
"@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",
@@ -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
+4 -4
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",
"tailwindcss": "^4.1.11",
"typescript": "5.8.3"
}
}
+3 -3
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",
"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);
+52 -52
View File
@@ -1,79 +1,79 @@
{
"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.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.76"
},
"devDependencies": {
"@types/node": "^22.9.0",
"tsx": "^4.19.3",
"@types/node": "^24.0.13",
"tsx": "^4.20.3",
"typescript": "^5.8.3"
},
"stackblitz": {
+2
View File
@@ -0,0 +1,2 @@
packages:
- "**"
+3 -2
View File
@@ -23,11 +23,12 @@
"@llamaindex/cloud": "workspace:* || ^2.0.24",
"@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",
"@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
+14 -8
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",
@@ -38,10 +39,15 @@
"prettier-plugin-tailwindcss": "^0.6.11",
"turbo": "^2.4.4",
"typescript": "^5.8.3",
"typescript-eslint": "^8.18.0",
"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"
}
+3 -3
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,11 +74,11 @@
"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",
"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."
},
+15 -2
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",
+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
+13 -2
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,7 +321,7 @@
},
"dependencies": {
"@llamaindex/env": "workspace:*",
"@types/node": "^22.9.0",
"@types/node": "^24.0.13",
"magic-bytes.js": "^1.10.0",
"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<
-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([]);
});
});
+1 -1
View File
@@ -1,7 +1,7 @@
import { Settings } from "@llamaindex/core/global";
import type { ChatMessage, LLM } from "@llamaindex/core/llms";
import { MockLLM } from "@llamaindex/core/llms/mock";
import { createMemory, Memory, staticBlock } from "@llamaindex/core/memory";
import { MockLLM } from "@llamaindex/core/utils";
import type { Tokenizer } from "@llamaindex/env/tokenizers";
import {
afterAll,
@@ -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
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/huggingface",
"description": "Huggingface Adapter for LlamaIndex",
"version": "0.1.17",
"version": "0.1.19",
"type": "module",
"types": "dist/index.d.ts",
"main": "dist/index.cjs",
+18
View File
@@ -1,5 +1,23 @@
# @llamaindex/jinaai
## 0.0.25
### Patch Changes
- Updated dependencies [7ad3411]
- Updated dependencies [5da5b3c]
- Updated dependencies [a1fdb07]
- @llamaindex/core@0.6.15
- @llamaindex/openai@0.4.9
## 0.0.24
### Patch Changes
- Updated dependencies [8eeac33]
- @llamaindex/core@0.6.14
- @llamaindex/openai@0.4.8
## 0.0.23
### Patch Changes

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