Compare commits

..

5 Commits

Author SHA1 Message Date
Marcus Schiesser bcd5c9acc1 fix: lint 2024-12-04 11:25:22 +07:00
Marcus Schiesser 1cd4bcf554 fix: skip clip test on node 18 2024-12-04 11:01:48 +07:00
Marcus Schiesser 5d86dd8a1a fix: crypto for node 18 2024-12-04 10:48:00 +07:00
Marcus Schiesser e202659cfd fix: lock file 2024-12-03 16:34:31 +07:00
Marcus Schiesser f2df55800c fix: Allow Node 18 again to make Stackblitz work 2024-12-03 15:50:52 +07:00
99 changed files with 548 additions and 2539 deletions
+6
View File
@@ -0,0 +1,6 @@
---
"llamaindex": patch
"@llamaindex/env": patch
---
Allow Node 18 again (throw run-time error if not possible) to make Stackblitz work
-17
View File
@@ -1,22 +1,5 @@
# docs
## 0.0.134
### Patch Changes
- llamaindex@0.8.28
- @llamaindex/examples@0.0.21
## 0.0.133
### Patch Changes
- c1850ee: feat: Amazon Nova support via Bedrock
- Updated dependencies [b504303]
- Updated dependencies [a0e6f57]
- llamaindex@0.8.27
- @llamaindex/examples@0.0.20
## 0.0.132
### Patch Changes
@@ -37,9 +37,6 @@ META_LLAMA3_2_1B_INSTRUCT = "meta.llama3-2-1b-instruct-v1:0"; // only available
META_LLAMA3_2_3B_INSTRUCT = "meta.llama3-2-3b-instruct-v1:0"; // only available via inference endpoints (see below)
META_LLAMA3_2_11B_INSTRUCT = "meta.llama3-2-11b-instruct-v1:0"; // only available via inference endpoints (see below), multimodal and function call supported
META_LLAMA3_2_90B_INSTRUCT = "meta.llama3-2-90b-instruct-v1:0"; // only available via inference endpoints (see below), multimodal and function call supported
AMAZON_NOVA_PRO_1 = "amazon.nova-pro-v1:0";
AMAZON_NOVA_LITE_1 = "amazon.nova-lite-v1:0";
AMAZON_NOVA_MICRO_1 = "amazon.nova-micro-v1:0";
```
You can also use Bedrock's Inference endpoints by using the model names:
@@ -56,9 +53,6 @@ US_META_LLAMA_3_2_1B_INSTRUCT = "us.meta.llama3-2-1b-instruct-v1:0";
US_META_LLAMA_3_2_3B_INSTRUCT = "us.meta.llama3-2-3b-instruct-v1:0";
US_META_LLAMA_3_2_11B_INSTRUCT = "us.meta.llama3-2-11b-instruct-v1:0";
US_META_LLAMA_3_2_90B_INSTRUCT = "us.meta.llama3-2-90b-instruct-v1:0";
US_AMAZON_NOVA_PRO_1 = "us.amazon.nova-pro-v1:0";
US_AMAZON_NOVA_LITE_1 = "us.amazon.nova-lite-v1:0";
US_AMAZON_NOVA_MICRO_1 = "us.amazon.nova-micro-v1:0";
// EU
EU_ANTHROPIC_CLAUDE_3_HAIKU = "eu.anthropic.claude-3-haiku-20240307-v1:0";
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "docs",
"version": "0.0.134",
"version": "0.0.132",
"private": true,
"scripts": {
"docusaurus": "docusaurus",
-1
View File
@@ -29,5 +29,4 @@ next-env.d.ts
# build
/src/content/docs/cloud/api
/src/content/docs/api
./types
-28
View File
@@ -1,33 +1,5 @@
# @llamaindex/doc
## 0.0.32
### Patch Changes
- a9b5b99: feat: build api reference pages for new documentation site
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
- @llamaindex/readers@1.0.21
- @llamaindex/cloud@2.0.19
- llamaindex@0.8.28
- @llamaindex/node-parser@0.0.20
- @llamaindex/openai@0.1.44
## 0.0.31
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [e0f6cc3]
- Updated dependencies [a0e6f57]
- llamaindex@0.8.27
- @llamaindex/core@0.4.18
- @llamaindex/cloud@2.0.18
- @llamaindex/node-parser@0.0.19
- @llamaindex/openai@0.1.43
- @llamaindex/readers@1.0.20
- @llamaindex/workflow@0.0.8
## 0.0.30
### Patch Changes
+7 -11
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/doc",
"version": "0.0.32",
"version": "0.0.30",
"private": true,
"scripts": {
"build": "pnpm run build:docs && next build",
@@ -8,7 +8,7 @@
"start": "next start",
"postdev": "fumadocs-mdx",
"postbuild": "fumadocs-mdx && tsx scripts/post-build.mts",
"build:docs": "cross-env NODE_OPTIONS=\"--max-old-space-size=8192\" typedoc && node ./scripts/generate-docs.mjs"
"build:docs": "node ./scripts/generate-docs.mjs"
},
"dependencies": {
"@icons-pack/react-simple-icons": "^10.1.0",
@@ -33,13 +33,13 @@
"clsx": "2.1.1",
"foxact": "^0.2.41",
"framer-motion": "^11.11.17",
"fumadocs-core": "^14.6.0",
"fumadocs-core": "14.4.2",
"fumadocs-docgen": "^1.3.2",
"fumadocs-mdx": "^11.1.2",
"fumadocs-openapi": "^5.8.2",
"fumadocs-twoslash": "^2.0.2",
"fumadocs-mdx": "^11.1.1",
"fumadocs-openapi": "^5.7.0",
"fumadocs-twoslash": "^2.0.1",
"fumadocs-typescript": "^3.0.2",
"fumadocs-ui": "^14.6.0",
"fumadocs-ui": "14.4.2",
"hast-util-to-jsx-runtime": "^2.3.2",
"llamaindex": "workspace:*",
"lucide-react": "^0.460.0",
@@ -72,7 +72,6 @@
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"autoprefixer": "^10.4.20",
"cross-env": "^7.0.3",
"fast-glob": "^3.3.2",
"gray-matter": "^4.0.3",
"monaco-editor-webpack-plugin": "^7.1.0",
@@ -83,9 +82,6 @@
"remark-stringify": "^11.0.0",
"tailwindcss": "^3.4.15",
"tsx": "^4.19.2",
"typedoc": "^0.26.11",
"typedoc-plugin-markdown": "^4.3.1",
"typedoc-plugin-merge-modules": "^6.1.0",
"typescript": "^5.6.3"
}
}
-64
View File
@@ -1,12 +1,8 @@
import * as OpenAPI from "fumadocs-openapi";
import { generateFiles } from "fumadocs-typescript";
import fs from "node:fs";
import * as path from "node:path";
import { fileURLToPath } from "node:url";
import { rimrafSync } from "rimraf";
const out = "./src/content/docs/cloud/api";
const apiRefOut = "./src/content/docs/api";
// clean generated files
rimrafSync(out, {
@@ -24,63 +20,3 @@ void OpenAPI.generateFiles({
output: out,
groupBy: "tag",
});
void generateFiles({
input: ["./src/content/docs/api/**/*.mdx"],
output: (file) => path.resolve(path.dirname(file), path.basename(file)),
transformOutput,
});
function transformOutput(filePath, content) {
const fileName = path.basename(filePath);
let title = fileName.split(".")[0];
let pageContent = content;
if (title === "index") title = "LlamaIndex API Reference";
return `---\ntitle: ${title}\n---\n\n${transformAbsoluteUrl(pageContent, filePath)}`;
}
/**
* Transforms the content by converting relative MDX links to absolute docs API links
* Example: [text](../type-aliases/TaskHandler.mdx) -> [text](/docs/api/type-aliases/TaskHandler)
* [text](BaseChatEngine.mdx) -> [text](/docs/api/classes/BaseChatEngine)
* [text](BaseVectorStore.mdx#constructors) -> [text](/docs/api/classes/BaseVectorStore#constructors)
* [text](TaskStep.mdx) -> [text](/docs/api/type-aliases/TaskStep)
*/
function transformAbsoluteUrl(content, filePath) {
const group = path.dirname(filePath).split(path.sep).pop();
return content.replace(
/\]\(([^)]+)\.mdx([^)]*)\)/g,
(match, slug, anchor) => {
const slugParts = slug.split("/");
const fileName = slugParts[slugParts.length - 1];
const fileGroup = slugParts[slugParts.length - 2] ?? group;
const result = ["/docs/api", fileGroup, fileName, anchor]
.filter(Boolean)
.join("/");
return `](${result})`;
},
);
}
// append meta.json for API page
fs.writeFileSync(
path.resolve(apiRefOut, "meta.json"),
JSON.stringify(
{
title: "API Reference",
description: "LlamaIndex API Reference",
root: true,
pages: [
"index",
"classes",
"enumerations",
"functions",
"interfaces",
"type-aliases",
"variables",
],
},
null,
2,
),
);
-29
View File
@@ -94,33 +94,4 @@
body {
@apply bg-background text-foreground;
}
/*
* Override default styles for Markdown
*/
.prose
:where(blockquote):not(
:where([class~="not-prose"], [class~="not-prose"] *)
) {
font-style: normal !important;
}
.prose
:where(blockquote p:first-of-type):not(
:where([class~="not-prose"], [class~="not-prose"] *)
):before {
content: none !important;
}
.prose
:where(blockquote p:first-of-type):not(
:where([class~="not-prose"], [class~="not-prose"] *)
):after {
content: none !important;
}
.prose
:where(code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
@apply text-blue-600 !important;
}
}
@@ -3,9 +3,7 @@ title: Vercel
description: Integrate LlamaIndex with Vercel's AI SDK
---
LlamaIndex provides integration with Vercel's AI SDK, allowing you to create powerful search and retrieval applications. You can:
- Use any of Vercel AI's [model providers](https://sdk.vercel.ai/docs/foundations/providers-and-models) as LLMs in LlamaIndex
- Use indexes (e.g. VectorStoreIndex, LlamaCloudIndex) from LlamaIndexTS in your Vercel AI applications
LlamaIndex provides integration with Vercel's AI SDK, allowing you to create powerful search and retrieval applications. Below are examples of how to use LlamaIndex with `streamText` from the Vercel AI SDK.
## Setup
@@ -15,22 +13,7 @@ First, install the required dependencies:
npm install @llamaindex/vercel ai
```
## Using Vercel AI's Model Providers
Using the `VercelLLM` adapter, it's easy to use any of Vercel AI's [model providers](https://sdk.vercel.ai/docs/foundations/providers-and-models) as LLMs in LlamaIndex. Here's an example of how to use OpenAI's GPT-4o model:
```typescript
const llm = new VercelLLM({ model: openai("gpt-4o") });
const result = await llm.complete({
prompt: "What is the capital of France?",
stream: false, // Set to true if you want streaming responses
});
console.log(result.text);
```
## Use Indexes
### Using VectorStoreIndex
## Using Local Vector Store
Here's how to create a simple vector store index and query it using Vercel's AI SDK:
@@ -46,25 +29,22 @@ const index = await VectorStoreIndex.fromDocuments([document]);
// Create a query tool
const queryTool = llamaindex({
model: openai("gpt-4"),
index,
description: "Search through the documents", // optional
});
// Use the tool with Vercel's AI SDK
streamText({
model: openai("gpt-4"),
prompt: "Your question here",
tools: { queryTool },
prompt: "Your question here",
model: openai("gpt-4"),
onFinish({ response }) {
console.log("Response:", response.messages); // log the response
},
}).toDataStream();
```
> Note: the Vercel AI model referenced in the `llamaindex` function is used by the response synthesizer to generate a response for the tool call.
### Using LlamaCloud
## Using LlamaCloud
For production deployments, you can use LlamaCloud to store and manage your documents:
@@ -81,16 +61,15 @@ const index = await LlamaCloudIndex.fromDocuments({
// Use it the same way as VectorStoreIndex
const queryTool = llamaindex({
model: openai("gpt-4"),
index,
description: "Search through the documents",
});
// Use the tool with Vercel's AI SDK
streamText({
model: openai("gpt-4"),
prompt: "Your question here",
tools: { queryTool },
prompt: "Your question here",
model: openai("gpt-4"),
}).toDataStream();
```
@@ -84,7 +84,7 @@ Imaging you put output file into `/dist/openai.js` but you are importing `llamai
}
```
In old module resolution, TypeScript will not be able to find the module because it is not following the file structure, even you run `node index.js` successfully. (on Node.js >=16)
In old module resolution, TypeScript will not be able to find the module because it is not follow the file structure, even you run `node index.js` successfully. (on Node.js >=16)
See more about [moduleResolution](https://www.typescriptlang.org/docs/handbook/modules/theory.html#module-resolution) or
[TypeScript 5.0 blog](https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/#--moduleresolution-bundler7).
+1 -1
View File
@@ -1,3 +1,3 @@
{
"pages": ["llamaindex", "cloud", "api"]
"pages": ["llamaindex", "cloud"]
}
-18
View File
@@ -1,18 +0,0 @@
{
"plugin": ["typedoc-plugin-markdown", "typedoc-plugin-merge-modules"],
"entryPoints": ["../../packages/llamaindex/src/index.ts"],
"tsconfig": "../../tsconfig.json",
"readme": "none",
"sourceLinkTemplate": "https://github.com/run-llama/LlamaIndexTS/blob/{gitRevision}/{path}#L{line}",
"out": "./src/content/docs/api",
"outputFileStrategy": "members",
"categorizeByGroup": true,
"categoryOrder": ["Classes", "Enums", "Functions", "Interfaces", "Types"],
"sort": ["source-order"],
"entryFileName": "index.md",
"fileExtension": ".mdx",
"hidePageTitle": true,
"hidePageHeader": true,
"hideGroupHeadings": true,
"hideBreadcrumbs": true
}
@@ -1,19 +1,5 @@
# @llamaindex/cloudflare-worker-agent-test
## 0.0.124
### Patch Changes
- llamaindex@0.8.28
## 0.0.123
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [a0e6f57]
- llamaindex@0.8.27
## 0.0.122
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloudflare-worker-agent-test",
"version": "0.0.124",
"version": "0.0.122",
"type": "module",
"private": true,
"scripts": {
@@ -1,17 +1,5 @@
# @llamaindex/llama-parse-browser-test
## 0.0.39
### Patch Changes
- @llamaindex/cloud@2.0.19
## 0.0.38
### Patch Changes
- @llamaindex/cloud@2.0.18
## 0.0.37
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/llama-parse-browser-test",
"private": true,
"version": "0.0.39",
"version": "0.0.37",
"type": "module",
"scripts": {
"dev": "vite",
-14
View File
@@ -1,19 +1,5 @@
# @llamaindex/next-agent-test
## 0.1.124
### Patch Changes
- llamaindex@0.8.28
## 0.1.123
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [a0e6f57]
- llamaindex@0.8.27
## 0.1.122
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-agent-test",
"version": "0.1.124",
"version": "0.1.122",
"private": true,
"scripts": {
"dev": "next dev",
@@ -1,19 +1,5 @@
# test-edge-runtime
## 0.1.123
### Patch Changes
- llamaindex@0.8.28
## 0.1.122
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [a0e6f57]
- llamaindex@0.8.27
## 0.1.121
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/nextjs-edge-runtime-test",
"version": "0.1.123",
"version": "0.1.121",
"private": true,
"scripts": {
"dev": "next dev",
@@ -1,19 +1,5 @@
# @llamaindex/next-node-runtime
## 0.0.105
### Patch Changes
- llamaindex@0.8.28
## 0.0.104
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [a0e6f57]
- llamaindex@0.8.27
## 0.0.103
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-node-runtime-test",
"version": "0.0.105",
"version": "0.0.103",
"private": true,
"scripts": {
"dev": "next dev",
@@ -1,19 +1,5 @@
# @llamaindex/waku-query-engine-test
## 0.0.124
### Patch Changes
- llamaindex@0.8.28
## 0.0.123
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [a0e6f57]
- llamaindex@0.8.27
## 0.0.122
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/waku-query-engine-test",
"version": "0.0.124",
"version": "0.0.122",
"type": "module",
"private": true,
"scripts": {
-24
View File
@@ -1,29 +1,5 @@
# examples
## 0.0.21
### Patch Changes
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
- @llamaindex/readers@1.0.21
- llamaindex@0.8.28
- @llamaindex/vercel@0.0.6
## 0.0.20
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [086a651]
- Updated dependencies [e0f6cc3]
- Updated dependencies [a0e6f57]
- llamaindex@0.8.27
- @llamaindex/vercel@0.0.5
- @llamaindex/core@0.4.18
- @llamaindex/readers@1.0.20
- @llamaindex/workflow@0.0.8
## 0.0.19
### Patch Changes
+6 -6
View File
@@ -1,17 +1,17 @@
{
"name": "@llamaindex/examples",
"private": true,
"version": "0.0.21",
"version": "0.0.19",
"dependencies": {
"@ai-sdk/openai": "^1.0.5",
"@aws-crypto/sha256-js": "^5.2.0",
"@azure/cosmos": "^4.1.1",
"@azure/identity": "^4.4.1",
"@datastax/astra-db-ts": "^1.4.1",
"@llamaindex/core": "^0.4.19",
"@llamaindex/readers": "^1.0.21",
"@llamaindex/workflow": "^0.0.8",
"@llamaindex/vercel": "^0.0.6",
"@llamaindex/core": "^0.4.17",
"@llamaindex/readers": "^1.0.19",
"@llamaindex/workflow": "^0.0.7",
"@llamaindex/vercel": "^0.0.4",
"@notionhq/client": "^2.2.15",
"@pinecone-database/pinecone": "^4.0.0",
"@vercel/postgres": "^0.10.0",
@@ -21,7 +21,7 @@
"commander": "^12.1.0",
"dotenv": "^16.4.5",
"js-tiktoken": "^1.0.14",
"llamaindex": "^0.8.28",
"llamaindex": "^0.8.26",
"mongodb": "^6.7.0",
"pathe": "^1.1.2",
"postgres": "^3.4.4"
@@ -1,15 +1,16 @@
import fs from "node:fs/promises";
import {
Document,
IngestionPipeline,
MetadataMode,
OpenAIEmbedding,
SentenceSplitter,
VectorStoreIndex,
} from "llamaindex";
import fs from "node:fs/promises";
async function main() {
// Load essay from abramov.txt in Node
const path = "../node_modules/llamaindex/examples/abramov.txt";
const path = "node_modules/llamaindex/examples/abramov.txt";
const essay = await fs.readFile(path, "utf-8");
@@ -21,23 +22,14 @@ async function main() {
new OpenAIEmbedding(),
],
});
console.time("Pipeline Run Time");
// run the pipeline
const nodes = await pipeline.run({ documents: [document] });
console.timeEnd("Pipeline Run Time");
// initialize the VectorStoreIndex from nodes
const index = await VectorStoreIndex.init({ nodes });
// Query the index
const queryEngine = index.asQueryEngine();
const { message } = await queryEngine.query({
query: "summarize the article in three sentence",
});
console.log(message);
// print out the result of the pipeline run
for (const node of nodes) {
console.log(node.getContent(MetadataMode.NONE));
}
}
main().catch(console.error);
-10
View File
@@ -14,16 +14,6 @@ npm i
Make sure to run the examples from the parent folder called `examples`. The following examples are available:
### Vercel LLM Example
Run the Vercel LLM example with:
```bash
npx tsx vercel/llm.ts
```
This example demonstrates using the `VercelLLM` adapter with Vercel's OpenAI model provider
### Vector Store Example
Run the local vector store example with:
-1
View File
@@ -22,7 +22,6 @@ async function main() {
prompt: "Cost of moving cat from Russia to UK?",
tools: {
queryTool: llamaindex({
model: openai("gpt-4o"),
index,
description:
"get information from your knowledge base to answer questions.", // optional description
-45
View File
@@ -1,45 +0,0 @@
import { openai } from "@ai-sdk/openai";
import { VercelLLM } from "@llamaindex/vercel";
import { LLMAgent, WikipediaTool } from "llamaindex";
async function main() {
// Create an instance of VercelLLM with the OpenAI model
const vercelLLM = new VercelLLM({ model: openai("gpt-4o") });
console.log("\n=== Test 1: Using complete() for single response ===");
const result = await vercelLLM.complete({
prompt: "What is the capital of France?",
stream: false, // Set to true if you want streaming responses
});
console.log(result.text);
console.log("\n=== Test 2: Using chat() for streaming response ===");
const stream = await vercelLLM.chat({
messages: [
{ content: "You want to talk in rhymes.", role: "system" },
{
content:
"How much wood would a woodchuck chuck if a woodchuck could chuck wood?",
role: "user",
},
],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.delta);
}
console.log("\n=== Test 3: Using LLMAgent with WikipediaTool ===");
const agent = new LLMAgent({
llm: vercelLLM,
tools: [new WikipediaTool()],
});
const { message } = await agent.chat({
message: "What's the history of New York from Wikipedia in 3 sentences?",
});
console.log(message);
}
main().catch(console.error);
-1
View File
@@ -18,7 +18,6 @@ async function main() {
prompt: "Cost of moving cat from Russia to UK?",
tools: {
queryTool: llamaindex({
model: openai("gpt-4o"),
index,
description:
"get information from your knowledge base to answer questions.", // optional description
-14
View File
@@ -1,19 +1,5 @@
# @llamaindex/autotool
## 5.0.28
### Patch Changes
- llamaindex@0.8.28
## 5.0.27
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [a0e6f57]
- llamaindex@0.8.27
## 5.0.26
### Patch Changes
@@ -1,21 +1,5 @@
# @llamaindex/autotool-01-node-example
## 0.0.71
### Patch Changes
- llamaindex@0.8.28
- @llamaindex/autotool@5.0.28
## 0.0.70
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [a0e6f57]
- llamaindex@0.8.27
- @llamaindex/autotool@5.0.27
## 0.0.69
### Patch Changes
@@ -13,5 +13,5 @@
"scripts": {
"start": "node --import tsx --import @llamaindex/autotool/node ./src/index.ts"
},
"version": "0.0.71"
"version": "0.0.69"
}
@@ -1,21 +1,5 @@
# @llamaindex/autotool-02-next-example
## 0.1.115
### Patch Changes
- llamaindex@0.8.28
- @llamaindex/autotool@5.0.28
## 0.1.114
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [a0e6f57]
- llamaindex@0.8.27
- @llamaindex/autotool@5.0.27
## 0.1.113
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/autotool-02-next-example",
"private": true,
"version": "0.1.115",
"version": "0.1.113",
"scripts": {
"dev": "next dev",
"build": "next build",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/autotool",
"type": "module",
"version": "5.0.28",
"version": "5.0.26",
"description": "auto transpile your JS function to LLM Agent compatible",
"files": [
"dist",
-16
View File
@@ -1,21 +1,5 @@
# @llamaindex/cloud
## 2.0.19
### Patch Changes
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
## 2.0.18
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [e0f6cc3]
- @llamaindex/env@0.1.25
- @llamaindex/core@0.4.18
## 2.0.17
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloud",
"version": "2.0.19",
"version": "2.0.17",
"type": "module",
"license": "MIT",
"scripts": {
-18
View File
@@ -1,23 +1,5 @@
# @llamaindex/community
## 0.0.77
### Patch Changes
- 24caf93: fix: added inference profile mapping for nova models"
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
## 0.0.76
### Patch Changes
- c1850ee: feat: Amazon Nova support via Bedrock
- Updated dependencies [b504303]
- Updated dependencies [e0f6cc3]
- @llamaindex/env@0.1.25
- @llamaindex/core@0.4.18
## 0.0.75
### Patch Changes
-1
View File
@@ -4,7 +4,6 @@
## Current Features:
- Bedrock support for Amazon Nova models Pro, Lite and Micro
- Bedrock support for the Anthropic Claude Models [usage](https://ts.llamaindex.ai/modules/llms/available_llms/bedrock) including the latest Sonnet 3.5 v2 and Haiku 3.5
- Bedrock support for the Meta LLama 2, 3, 3.1 and 3.2 Models [usage](https://ts.llamaindex.ai/modules/llms/available_llms/bedrock)
- Meta LLama3.1 405b and Llama3.2 tool call support
+3 -3
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/community",
"description": "Community package for LlamaIndexTS",
"version": "0.0.77",
"version": "0.0.75",
"type": "module",
"types": "dist/type/index.d.ts",
"main": "dist/cjs/index.js",
@@ -46,8 +46,8 @@
"bunchee": "5.6.1"
},
"dependencies": {
"@aws-sdk/client-bedrock-agent-runtime": "^3.706.0",
"@aws-sdk/client-bedrock-runtime": "^3.706.0",
"@aws-sdk/client-bedrock-agent-runtime": "^3.693.0",
"@aws-sdk/client-bedrock-runtime": "^3.693.0",
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*"
}
@@ -1,133 +0,0 @@
import type {
ContentBlockDelta,
ConverseOutput,
ConverseRequest,
ConverseResponse,
ConverseStreamOutput,
InvokeModelCommandInput,
InvokeModelWithResponseStreamCommandInput,
ResponseStream,
} from "@aws-sdk/client-bedrock-runtime";
import type {
BaseTool,
ChatMessage,
LLMMetadata,
ToolCall,
ToolCallLLMMessageOptions,
} from "@llamaindex/core/llms";
import { toUtf8 } from "../utils";
import { Provider, type BedrockChatStreamResponse } from "../provider";
import {
mapBaseToolsToAmazonTools,
mapChatMessagesToAmazonMessages,
} from "./utils";
export class AmazonProvider extends Provider<ConverseStreamOutput> {
getResultFromResponse(response: Record<string, any>): ConverseResponse {
return JSON.parse(toUtf8(response.body));
}
getToolsFromResponse<ToolContent>(response: ConverseOutput): ToolContent[] {
return (
response.message?.content
?.filter((item) => item.toolUse)
.map(
(item) =>
({
id: item.toolUse!.toolUseId,
name: item.toolUse!.name,
input: item.toolUse!.input
? JSON.parse(item.toolUse!.input as string)
: "",
}) as ToolContent,
) ?? []
);
}
getTextFromResponse(response: ConverseResponse): string {
const result = this.getResultFromResponse(response);
const content = result.output?.message?.content ?? [];
return content.map((item) => item.text).join(" ");
}
getTextFromStreamResponse(response: ResponseStream): string {
let event: ConverseStreamOutput | undefined =
this.getStreamingEventResponse(response);
if (!event || !event.contentBlockDelta) return "";
const delta: ContentBlockDelta | undefined = event.contentBlockDelta.delta;
return delta?.text || "";
}
async *reduceStream(
stream: AsyncIterable<ResponseStream>,
): BedrockChatStreamResponse {
let toolId: string | undefined = undefined;
let toolName: string | undefined = undefined;
for await (const response of stream) {
const event = this.getStreamingEventResponse(response);
const delta = this.getTextFromStreamResponse(response);
let options: undefined | ToolCallLLMMessageOptions = undefined;
if (event?.contentBlockStart && event.contentBlockStart.start?.toolUse) {
toolId = event.contentBlockStart.start?.toolUse.toolUseId;
toolName = event.contentBlockStart.start?.toolUse.name;
continue;
}
if (
toolId &&
toolName &&
event?.contentBlockDelta?.delta?.toolUse?.input
) {
options = {
toolCall: [
{
id: toolId,
name: toolName,
input: JSON.parse(event?.contentBlockDelta?.delta?.toolUse.input),
} as ToolCall,
],
};
toolId = undefined;
toolName = undefined;
}
if (!delta && !options) continue;
yield {
delta: options ? "" : delta,
options,
raw: response,
};
}
}
getRequestBody<T extends ChatMessage>(
metadata: LLMMetadata,
messages: T[],
tools: BaseTool[] = [],
options: Omit<ConverseRequest, "modelId" | "messages" | "inferenceConfig">,
): InvokeModelCommandInput | InvokeModelWithResponseStreamCommandInput {
const request: Omit<ConverseRequest, "modelId"> = {
...options,
messages: mapChatMessagesToAmazonMessages(messages),
inferenceConfig: {
maxTokens: metadata.maxTokens,
temperature: metadata.temperature,
topP: metadata.topP,
},
};
if (tools.length) {
request.toolConfig = {
tools: mapBaseToolsToAmazonTools(tools),
};
}
return {
modelId: metadata.model,
contentType: "application/json",
accept: "application/json",
body: JSON.stringify(request),
};
}
}
@@ -1,5 +0,0 @@
import type { ConverseRequest, Message } from "@aws-sdk/client-bedrock-runtime";
export type AmazonMessages = ConverseRequest["messages"];
export type AmazonMessage = Message;
@@ -1,141 +0,0 @@
import type {
ImageBlock,
ImageFormat,
Message,
Tool,
} from "@aws-sdk/client-bedrock-runtime";
import type {
BaseTool,
ChatMessage,
MessageContentDetail,
ToolCallLLMMessageOptions,
} from "@llamaindex/core/llms";
import {
extractDataUrlComponents,
mapMessageContentToMessageContentDetails,
} from "../utils";
import type { JSONObject } from "@llamaindex/core/global";
import type { AmazonMessage, AmazonMessages } from "./types";
const ACCEPTED_IMAGE_MIME_TYPES = [
"image/jpeg",
"image/png",
"image/webp",
"image/gif",
] as const;
const ACCEPTED_IMAGE_MIME_TYPE_FORMAT_MAP: Record<
(typeof ACCEPTED_IMAGE_MIME_TYPES)[number],
ImageFormat
> = {
"image/jpeg": "jpeg",
"image/png": "png",
"image/webp": "webp",
"image/gif": "gif",
};
export const mapImageContent = (imageUrl: string): ImageBlock => {
if (!imageUrl.startsWith("data:"))
throw new Error(
"For Amazon please only use base64 data url, e.g.: data:image/jpeg;base64,SGVsbG8sIFdvcmxkIQ==",
);
const { mimeType, base64: data } = extractDataUrlComponents(imageUrl);
if (
!ACCEPTED_IMAGE_MIME_TYPES.includes(
mimeType as keyof typeof ACCEPTED_IMAGE_MIME_TYPE_FORMAT_MAP,
)
)
throw new Error(
`Amazon only accepts the following mimeTypes: ${ACCEPTED_IMAGE_MIME_TYPES.join("\n")}`,
);
return {
format:
ACCEPTED_IMAGE_MIME_TYPE_FORMAT_MAP[
mimeType as keyof typeof ACCEPTED_IMAGE_MIME_TYPE_FORMAT_MAP
],
// @ts-ignore: there's a mistake in the "@aws-sdk/client-bedrock-runtime" compared to the actual api
source: { bytes: data },
};
};
export const mapMessageContentDetailToAmazonContent = <
T extends MessageContentDetail,
>(
detail: T,
): Message["content"] => {
let content: Message["content"] = [];
if (detail.type === "text") {
content = [{ text: detail.text }];
} else if (detail.type === "image_url") {
content = [{ image: mapImageContent(detail.image_url.url) }];
} else {
throw new Error("Unsupported content detail type");
}
return content;
};
export const mapChatMessagesToAmazonMessages = <
T extends ChatMessage<ToolCallLLMMessageOptions>,
>(
messages: T[],
): AmazonMessages => {
return messages.flatMap((msg: T): AmazonMessage[] => {
return mapMessageContentToMessageContentDetails(msg.content).map(
(detail: MessageContentDetail): AmazonMessage => {
if (msg.options && "toolCall" in msg.options) {
return {
role: "assistant",
content: msg.options.toolCall.map((call) => ({
toolUse: {
toolUseId: call.id,
name: call.name,
input: call.input as JSONObject,
},
})),
};
}
if (msg.options && "toolResult" in msg.options) {
return {
role: "user",
content: [
{
toolResult: {
toolUseId: msg.options.toolResult.id,
content: [
{
text: msg.options.toolResult.result,
},
],
},
},
],
};
}
return {
role: msg.role === "assistant" ? "assistant" : "user",
content: mapMessageContentDetailToAmazonContent(detail),
};
},
);
});
};
export const mapBaseToolsToAmazonTools = (tools?: BaseTool[]): Tool[] => {
if (!tools) return [];
return tools.map((tool: BaseTool) => {
const {
metadata: { parameters, ...options },
} = tool;
return {
toolSpec: {
...options,
inputSchema: parameters,
},
} as Tool;
});
};
@@ -11,10 +11,13 @@ import type {
ToolCall,
ToolCallLLMMessageOptions,
} from "@llamaindex/core/llms";
import { type BedrockChatStreamResponse, Provider } from "../provider";
import {
type BedrockAdditionalChatOptions,
type BedrockChatStreamResponse,
Provider,
} from "../provider";
import { toUtf8 } from "../utils";
import type {
AnthropicAdditionalChatOptions,
AnthropicNoneStreamingResponse,
AnthropicStreamEvent,
AnthropicTextContent,
@@ -131,7 +134,7 @@ export class AnthropicProvider extends Provider<AnthropicStreamEvent> {
metadata: LLMMetadata,
messages: T[],
tools?: BaseTool[],
options?: AnthropicAdditionalChatOptions,
options?: BedrockAdditionalChatOptions,
): InvokeModelCommandInput | InvokeModelWithResponseStreamCommandInput {
const extra: Record<string, unknown> = {};
if (options?.toolChoice) {
@@ -1,13 +1,6 @@
import type { ToolMetadata } from "@llamaindex/core/llms";
import type { InvocationMetrics } from "../types";
export type ToolChoice =
| { type: "any" }
| { type: "auto" }
| { type: "tool"; name: string };
export type AnthropicAdditionalChatOptions = { toolChoice: ToolChoice };
type Usage = {
input_tokens: number;
output_tokens: number;
+5 -32
View File
@@ -25,7 +25,6 @@ import {
import { mapMessageContentToMessageContentDetails } from "./utils";
import { wrapLLMEvent } from "@llamaindex/core/decorator";
import { AmazonProvider } from "./amazon/provider";
import { AnthropicProvider } from "./anthropic/provider";
import { MetaProvider } from "./meta/provider";
@@ -33,7 +32,6 @@ import { MetaProvider } from "./meta/provider";
export const PROVIDERS: { [key: string]: Provider } = {
anthropic: new AnthropicProvider(),
meta: new MetaProvider(),
amazon: new AmazonProvider(),
};
export type BedrockChatParamsStreaming = LLMChatParamsStreaming<
@@ -83,11 +81,7 @@ export const BEDROCK_MODELS = {
MISTRAL_7B_INSTRUCT: "mistral.mistral-7b-instruct-v0:2",
MISTRAL_MIXTRAL_7B_INSTRUCT: "mistral.mixtral-8x7b-instruct-v0:1",
MISTRAL_MIXTRAL_LARGE_2402: "mistral.mistral-large-2402-v1:0",
AMAZON_NOVA_PRO_1: "amazon.nova-pro-v1:0",
AMAZON_NOVA_LITE_1: "amazon.nova-lite-v1:0",
AMAZON_NOVA_MICRO_1: "amazon.nova-micro-v1:0",
};
export type BEDROCK_MODELS =
(typeof BEDROCK_MODELS)[keyof typeof BEDROCK_MODELS];
@@ -104,9 +98,6 @@ export const INFERENCE_BEDROCK_MODELS = {
US_META_LLAMA_3_2_3B_INSTRUCT: "us.meta.llama3-2-3b-instruct-v1:0",
US_META_LLAMA_3_2_11B_INSTRUCT: "us.meta.llama3-2-11b-instruct-v1:0",
US_META_LLAMA_3_2_90B_INSTRUCT: "us.meta.llama3-2-90b-instruct-v1:0",
US_AMAZON_NOVA_PRO_1: "us.amazon.nova-pro-v1:0",
US_AMAZON_NOVA_LITE_1: "us.amazon.nova-lite-v1:0",
US_AMAZON_NOVA_MICRO_1: "us.amazon.nova-micro-v1:0",
EU_ANTHROPIC_CLAUDE_3_HAIKU: "eu.anthropic.claude-3-haiku-20240307-v1:0",
EU_ANTHROPIC_CLAUDE_3_5_HAIKU: "eu.anthropic.claude-3-5-haiku-20240307-v1:0",
@@ -145,13 +136,6 @@ export const INFERENCE_TO_BEDROCK_MAP: Record<
[INFERENCE_BEDROCK_MODELS.US_META_LLAMA_3_2_90B_INSTRUCT]:
BEDROCK_MODELS.META_LLAMA3_2_90B_INSTRUCT,
[INFERENCE_BEDROCK_MODELS.US_AMAZON_NOVA_PRO_1]:
BEDROCK_MODELS.AMAZON_NOVA_PRO_1,
[INFERENCE_BEDROCK_MODELS.US_AMAZON_NOVA_LITE_1]:
BEDROCK_MODELS.AMAZON_NOVA_LITE_1,
[INFERENCE_BEDROCK_MODELS.US_AMAZON_NOVA_MICRO_1]:
BEDROCK_MODELS.AMAZON_NOVA_MICRO_1,
[INFERENCE_BEDROCK_MODELS.EU_ANTHROPIC_CLAUDE_3_HAIKU]:
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_HAIKU,
[INFERENCE_BEDROCK_MODELS.EU_ANTHROPIC_CLAUDE_3_SONNET]:
@@ -205,9 +189,6 @@ const CHAT_ONLY_MODELS = {
[BEDROCK_MODELS.MISTRAL_7B_INSTRUCT]: 32000,
[BEDROCK_MODELS.MISTRAL_MIXTRAL_7B_INSTRUCT]: 32000,
[BEDROCK_MODELS.MISTRAL_MIXTRAL_LARGE_2402]: 32000,
[BEDROCK_MODELS.AMAZON_NOVA_PRO_1]: 300000,
[BEDROCK_MODELS.AMAZON_NOVA_LITE_1]: 300000,
[BEDROCK_MODELS.AMAZON_NOVA_MICRO_1]: 130000,
};
const BEDROCK_FOUNDATION_LLMS = { ...COMPLETION_MODELS, ...CHAT_ONLY_MODELS };
@@ -244,9 +225,6 @@ export const STREAMING_MODELS = new Set([
BEDROCK_MODELS.MISTRAL_7B_INSTRUCT,
BEDROCK_MODELS.MISTRAL_MIXTRAL_7B_INSTRUCT,
BEDROCK_MODELS.MISTRAL_MIXTRAL_LARGE_2402,
BEDROCK_MODELS.AMAZON_NOVA_PRO_1,
BEDROCK_MODELS.AMAZON_NOVA_LITE_1,
BEDROCK_MODELS.AMAZON_NOVA_MICRO_1,
]);
export const TOOL_CALL_MODELS: BEDROCK_MODELS[] = [
@@ -261,9 +239,6 @@ export const TOOL_CALL_MODELS: BEDROCK_MODELS[] = [
BEDROCK_MODELS.META_LLAMA3_2_3B_INSTRUCT,
BEDROCK_MODELS.META_LLAMA3_2_11B_INSTRUCT,
BEDROCK_MODELS.META_LLAMA3_2_90B_INSTRUCT,
BEDROCK_MODELS.AMAZON_NOVA_PRO_1,
BEDROCK_MODELS.AMAZON_NOVA_LITE_1,
BEDROCK_MODELS.AMAZON_NOVA_MICRO_1,
];
const getProvider = (model: string): Provider => {
@@ -345,6 +320,10 @@ export class Bedrock extends ToolCallLLM<BedrockAdditionalChatOptions> {
this.temperature = temperature ?? DEFAULT_BEDROCK_PARAMS.temperature;
this.topP = topP ?? DEFAULT_BEDROCK_PARAMS.topP;
this.client = new BedrockRuntimeClient(params);
if (!this.supportToolCall) {
console.warn(`The model "${this.model}" doesn't support ToolCall`);
}
}
get supportToolCall(): boolean {
@@ -366,9 +345,6 @@ export class Bedrock extends ToolCallLLM<BedrockAdditionalChatOptions> {
protected async nonStreamChat(
params: BedrockChatParamsNonStreaming,
): Promise<BedrockChatNonStreamResponse> {
if (!this.supportToolCall && params.tools?.length) {
console.warn(`The model "${this.model}" doesn't support ToolCall`);
}
const input = this.provider.getRequestBody(
this.metadata,
params.messages,
@@ -402,10 +378,6 @@ export class Bedrock extends ToolCallLLM<BedrockAdditionalChatOptions> {
if (!STREAMING_MODELS.has(this.model))
throw new Error(`The model: ${this.model} does not support streaming`);
if (!this.supportToolCall && params.tools?.length) {
console.warn(`The model "${this.model}" doesn't support ToolCall`);
}
const input = this.provider.getRequestBody(
this.metadata,
params.messages,
@@ -416,6 +388,7 @@ export class Bedrock extends ToolCallLLM<BedrockAdditionalChatOptions> {
command.input.modelId = this.actualModel;
const response = await this.client.send(command);
if (response.body) yield* this.provider.reduceStream(response.body);
}
@@ -11,9 +11,10 @@ import {
type ToolCallLLMMessageOptions,
} from "@llamaindex/core/llms";
import { streamConverter } from "@llamaindex/core/utils";
import type { ToolChoice } from "./types";
import { toUtf8 } from "./utils";
export type BedrockAdditionalChatOptions = Record<string, unknown>;
export type BedrockAdditionalChatOptions = { toolChoice: ToolChoice };
export type BedrockChatStreamResponse = AsyncIterable<
ChatResponseChunk<ToolCallLLMMessageOptions>
@@ -4,3 +4,8 @@ export type InvocationMetrics = {
invocationLatency: number;
firstByteLatency: number;
};
export type ToolChoice =
| { type: "any" }
| { type: "auto" }
| { type: "tool"; name: string };
-14
View File
@@ -1,19 +1,5 @@
# @llamaindex/core
## 0.4.19
### Patch Changes
- a9b5b99: feat: build api reference pages for new documentation site
## 0.4.18
### Patch Changes
- e0f6cc3: The compact and refine response synthesizer (retrieved by using `getResponseSynthesizer('compact')`) has been fixed to return the original source nodes that were provided to it in its response. Previous to this it was returning the compacted text chunk documents.
- Updated dependencies [b504303]
- @llamaindex/env@0.1.25
## 0.4.17
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/core",
"type": "module",
"version": "0.4.19",
"version": "0.4.17",
"description": "LlamaIndex Core Module",
"exports": {
"./agent": {
@@ -22,8 +22,7 @@ import type { ContextGenerator } from "./type";
/**
* ContextChatEngine uses the Index to get the appropriate context for each query.
* The context is stored in the system prompt, and the chat history is chunk,
* allowing the appropriate context to be surfaced for each query.
* The context is stored in the system prompt, and the chat history is chunk: ChatResponseChunk, nodes?: NodeWithScore<import("/Users/marcus/code/llamaindex/LlamaIndexTS/packages/core/src/Node").Metadata>[], nodes?: NodeWithScore<import("/Users/marcus/code/llamaindex/LlamaIndexTS/packages/core/src/Node").Metadata>[]lowing the appropriate context to be surfaced for each query.
*/
export class ContextChatEngine extends PromptMixin implements BaseChatEngine {
chatModel: LLM;
@@ -77,16 +77,6 @@ class Refine extends BaseSynthesizer {
}
}
async getResponse(
query: MessageContent,
nodes: NodeWithScore[],
stream: true,
): Promise<AsyncIterable<EngineResponse>>;
async getResponse(
query: MessageContent,
nodes: NodeWithScore[],
stream: false,
): Promise<EngineResponse>;
async getResponse(
query: MessageContent,
nodes: NodeWithScore[],
@@ -207,16 +197,6 @@ class Refine extends BaseSynthesizer {
* CompactAndRefine is a slight variation of Refine that first compacts the text chunks into the smallest possible number of chunks.
*/
class CompactAndRefine extends Refine {
async getResponse(
query: MessageContent,
nodes: NodeWithScore[],
stream: true,
): Promise<AsyncIterable<EngineResponse>>;
async getResponse(
query: MessageContent,
nodes: NodeWithScore[],
stream: false,
): Promise<EngineResponse>;
async getResponse(
query: MessageContent,
nodes: NodeWithScore[],
@@ -236,24 +216,17 @@ class CompactAndRefine extends Refine {
const newTexts = this.promptHelper.repack(maxPrompt, textChunks);
const newNodes = newTexts.map((text) => new TextNode({ text }));
if (stream) {
const streamResponse = await super.getResponse(
return super.getResponse(
query,
newNodes.map((node) => ({ node })),
true,
);
return streamConverter(streamResponse, (chunk) => {
chunk.sourceNodes = nodes;
return chunk;
});
}
const originalResponse = await super.getResponse(
return super.getResponse(
query,
newNodes.map((node) => ({ node })),
false,
);
originalResponse.sourceNodes = nodes;
return originalResponse;
}
}
@@ -1,66 +0,0 @@
import { describe, expect, test, vi } from "vitest";
import type { LLMMetadata } from "../../llms/dist/index.js";
import { getResponseSynthesizer } from "../../response-synthesizers/dist/index.js";
import { Document } from "../../schema/dist/index.js";
const mockLllm = () => ({
complete: vi.fn().mockImplementation(({ stream }) => {
const response = { text: "unimportant" };
if (!stream) {
return response;
}
function* gen() {
// yield a few times to make sure each chunk has the sourceNodes
yield response;
yield response;
yield response;
}
return gen();
}),
chat: vi.fn(),
metadata: {} as unknown as LLMMetadata,
});
describe("compact and refine response synthesizer", () => {
describe("synthesize", () => {
test("should return original sourceNodes with response when stream = false", async () => {
const synthesizer = getResponseSynthesizer("compact", {
llm: mockLllm(),
});
const sourceNode = { node: new Document({}), score: 1 };
const response = await synthesizer.synthesize(
{
query: "test",
nodes: [sourceNode],
},
false,
);
expect(response.sourceNodes).toEqual([sourceNode]);
});
test("should return original sourceNodes with response when stream = true", async () => {
const synthesizer = getResponseSynthesizer("compact", {
llm: mockLllm(),
});
const sourceNode = { node: new Document({}), score: 1 };
const response = await synthesizer.synthesize(
{
query: "test",
nodes: [sourceNode],
},
true,
);
for await (const chunk of response) {
expect(chunk.sourceNodes).toEqual([sourceNode]);
}
});
});
});
-6
View File
@@ -1,11 +1,5 @@
# @llamaindex/env
## 0.1.25
### Patch Changes
- b504303: Allow Node 18 again (throw run-time error if not possible) to make Stackblitz work
## 0.1.24
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/env",
"description": "environment wrapper, supports all JS environment including node, deno, bun, edge runtime, and cloudflare worker",
"version": "0.1.25",
"version": "0.1.24",
"type": "module",
"types": "dist/index.d.ts",
"module": "dist/index.js",
-14
View File
@@ -1,19 +1,5 @@
# @llamaindex/experimental
## 0.0.140
### Patch Changes
- llamaindex@0.8.28
## 0.0.139
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [a0e6f57]
- llamaindex@0.8.27
## 0.0.138
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/experimental",
"description": "Experimental package for LlamaIndexTS",
"version": "0.0.140",
"version": "0.0.138",
"type": "module",
"types": "dist/type/index.d.ts",
"main": "dist/cjs/index.js",
-44
View File
@@ -1,49 +1,5 @@
# llamaindex
## 0.8.28
### Patch Changes
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
- @llamaindex/readers@1.0.21
- @llamaindex/cloud@2.0.19
- @llamaindex/node-parser@0.0.20
- @llamaindex/anthropic@0.0.28
- @llamaindex/clip@0.0.28
- @llamaindex/deepinfra@0.0.28
- @llamaindex/huggingface@0.0.28
- @llamaindex/ollama@0.0.35
- @llamaindex/openai@0.1.44
- @llamaindex/portkey-ai@0.0.28
- @llamaindex/replicate@0.0.28
- @llamaindex/groq@0.0.43
- @llamaindex/vllm@0.0.14
## 0.8.27
### Patch Changes
- b504303: Allow Node 18 again (throw run-time error if not possible) to make Stackblitz work
- a0e6f57: withLlamaIndex now passes through webpack options to the passed in customized NextJS webpack config. Before it was only passing through the config.
- Updated dependencies [b504303]
- Updated dependencies [e0f6cc3]
- @llamaindex/env@0.1.25
- @llamaindex/core@0.4.18
- @llamaindex/cloud@2.0.18
- @llamaindex/node-parser@0.0.19
- @llamaindex/anthropic@0.0.27
- @llamaindex/clip@0.0.27
- @llamaindex/deepinfra@0.0.27
- @llamaindex/groq@0.0.42
- @llamaindex/huggingface@0.0.27
- @llamaindex/ollama@0.0.34
- @llamaindex/openai@0.1.43
- @llamaindex/portkey-ai@0.0.27
- @llamaindex/replicate@0.0.27
- @llamaindex/readers@1.0.20
- @llamaindex/vllm@0.0.13
## 0.8.26
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "llamaindex",
"version": "0.8.28",
"version": "0.8.26",
"license": "MIT",
"type": "module",
"keywords": [
+1 -1
View File
@@ -41,7 +41,7 @@ export default function withLlamaIndex(config: any) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
config.webpack = function (webpackConfig: any, options: any) {
if (userWebpack) {
webpackConfig = userWebpack(webpackConfig, options);
webpackConfig = userWebpack(webpackConfig);
}
webpackConfig.resolve.alias = {
...webpackConfig.resolve.alias,
-16
View File
@@ -1,21 +1,5 @@
# @llamaindex/node-parser
## 0.0.20
### Patch Changes
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
## 0.0.19
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [e0f6cc3]
- @llamaindex/env@0.1.25
- @llamaindex/core@0.4.18
## 0.0.18
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/node-parser",
"version": "0.0.20",
"version": "0.0.18",
"description": "Node parser for LlamaIndex",
"type": "module",
"exports": {
-16
View File
@@ -1,21 +1,5 @@
# @llamaindex/anthropic
## 0.0.28
### Patch Changes
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
## 0.0.27
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [e0f6cc3]
- @llamaindex/env@0.1.25
- @llamaindex/core@0.4.18
## 0.0.26
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/anthropic",
"description": "Anthropic Adapter for LlamaIndex",
"version": "0.0.28",
"version": "0.0.26",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
-18
View File
@@ -1,23 +1,5 @@
# @llamaindex/clip
## 0.0.28
### Patch Changes
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
- @llamaindex/openai@0.1.44
## 0.0.27
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [e0f6cc3]
- @llamaindex/env@0.1.25
- @llamaindex/core@0.4.18
- @llamaindex/openai@0.1.43
## 0.0.26
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/clip",
"description": "Clip Embedding Adapter for LlamaIndex",
"version": "0.0.28",
"version": "0.0.26",
"type": "module",
"types": "dist/index.d.ts",
"main": "dist/index.cjs",
-18
View File
@@ -1,23 +1,5 @@
# @llamaindex/deepinfra
## 0.0.28
### Patch Changes
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
- @llamaindex/openai@0.1.44
## 0.0.27
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [e0f6cc3]
- @llamaindex/env@0.1.25
- @llamaindex/core@0.4.18
- @llamaindex/openai@0.1.43
## 0.0.26
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/deepinfra",
"description": "Deepinfra Adapter for LlamaIndex",
"version": "0.0.28",
"version": "0.0.26",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
-14
View File
@@ -1,19 +1,5 @@
# @llamaindex/groq
## 0.0.43
### Patch Changes
- @llamaindex/openai@0.1.44
## 0.0.42
### Patch Changes
- Updated dependencies [b504303]
- @llamaindex/env@0.1.25
- @llamaindex/openai@0.1.43
## 0.0.41
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/groq",
"description": "Groq Adapter for LlamaIndex",
"version": "0.0.43",
"version": "0.0.41",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
@@ -1,23 +1,5 @@
# @llamaindex/huggingface
## 0.0.28
### Patch Changes
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
- @llamaindex/openai@0.1.44
## 0.0.27
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [e0f6cc3]
- @llamaindex/env@0.1.25
- @llamaindex/core@0.4.18
- @llamaindex/openai@0.1.43
## 0.0.26
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/huggingface",
"description": "Huggingface Adapter for LlamaIndex",
"version": "0.0.28",
"version": "0.0.26",
"type": "module",
"types": "dist/index.d.ts",
"main": "dist/index.cjs",
-16
View File
@@ -1,21 +1,5 @@
# @llamaindex/ollama
## 0.0.35
### Patch Changes
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
## 0.0.34
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [e0f6cc3]
- @llamaindex/env@0.1.25
- @llamaindex/core@0.4.18
## 0.0.33
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/ollama",
"description": "Ollama Adapter for LlamaIndex",
"version": "0.0.35",
"version": "0.0.33",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
-16
View File
@@ -1,21 +1,5 @@
# @llamaindex/openai
## 0.1.44
### Patch Changes
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
## 0.1.43
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [e0f6cc3]
- @llamaindex/env@0.1.25
- @llamaindex/core@0.4.18
## 0.1.42
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/openai",
"description": "OpenAI Adapter for LlamaIndex",
"version": "0.1.44",
"version": "0.1.42",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
@@ -1,21 +1,5 @@
# @llamaindex/portkey-ai
## 0.0.28
### Patch Changes
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
## 0.0.27
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [e0f6cc3]
- @llamaindex/env@0.1.25
- @llamaindex/core@0.4.18
## 0.0.26
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/portkey-ai",
"description": "Portkey Adapter for LlamaIndex",
"version": "0.0.28",
"version": "0.0.26",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
-16
View File
@@ -1,21 +1,5 @@
# @llamaindex/replicate
## 0.0.28
### Patch Changes
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
## 0.0.27
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [e0f6cc3]
- @llamaindex/env@0.1.25
- @llamaindex/core@0.4.18
## 0.0.26
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/replicate",
"description": "Replicate Adapter for LlamaIndex",
"version": "0.0.28",
"version": "0.0.26",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
-15
View File
@@ -1,20 +1,5 @@
# @llamaindex/vercel
## 0.0.6
### Patch Changes
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
## 0.0.5
### Patch Changes
- 086a651: Add VercelLLM (adapter to use any model provider from Vercel AI in LlamaIndex)
- Updated dependencies [e0f6cc3]
- @llamaindex/core@0.4.18
## 0.0.4
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/vercel",
"description": "Vercel Adapter for LlamaIndex",
"version": "0.0.6",
"version": "0.0.4",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
-1
View File
@@ -1,2 +1 @@
export { VercelLLM } from "./llm";
export { llamaindex } from "./tool";
-183
View File
@@ -1,183 +0,0 @@
import { wrapEventCaller, wrapLLMEvent } from "@llamaindex/core/decorator";
import {
ToolCallLLM,
type ChatMessage,
type ChatResponse,
type ChatResponseChunk,
type LLMChatParamsNonStreaming,
type LLMChatParamsStreaming,
type LLMMetadata,
type ToolCallLLMMessageOptions,
} from "@llamaindex/core/llms";
import { extractText } from "@llamaindex/core/utils";
import {
generateText,
streamText,
type CoreAssistantMessage,
type CoreMessage,
type CoreSystemMessage,
type CoreToolMessage,
type CoreUserMessage,
type ImagePart,
type LanguageModelV1,
type TextPart,
} from "ai";
export type VercelAdditionalChatOptions = ToolCallLLMMessageOptions;
export class VercelLLM extends ToolCallLLM<VercelAdditionalChatOptions> {
supportToolCall: boolean = true;
private model: LanguageModelV1;
constructor({ model }: { model: LanguageModelV1 }) {
super();
this.model = model;
}
get metadata(): LLMMetadata {
return {
model: this.model.modelId,
temperature: 1,
topP: 1,
contextWindow: 128000,
tokenizer: undefined,
};
}
private toVercelMessages(
messages: ChatMessage<ToolCallLLMMessageOptions>[],
): CoreMessage[] {
return messages.map((message) => {
const options = message.options ?? {};
if ("toolResult" in options) {
return {
role: "tool",
content: [
{
type: "tool-result",
toolCallId: options.toolResult.id,
toolName: "", // XXX: tool result doesn't name
isError: options.toolResult.isError,
result: options.toolResult.result,
},
],
} satisfies CoreToolMessage;
} else if ("toolCall" in options) {
return {
role: "assistant",
content: options.toolCall.map((toolCall) => ({
type: "tool-call",
toolName: toolCall.name,
toolCallId: toolCall.id,
args: toolCall.input,
})),
} satisfies CoreAssistantMessage;
}
if (message.role === "system" || message.role === "assistant") {
return {
role: message.role,
content: extractText(message.content),
} satisfies CoreSystemMessage | CoreAssistantMessage;
}
if (message.role === "user") {
return {
role: message.role,
content:
typeof message.content === "string"
? message.content
: message.content.map((contentDetail) => {
if (contentDetail.type === "image_url") {
return {
type: "image",
image: new URL(contentDetail.image_url.url),
} satisfies ImagePart;
}
return {
type: "text",
text: contentDetail.text,
} satisfies TextPart;
}),
} satisfies CoreUserMessage;
}
throw new Error(`Can not convert message ${JSON.stringify(message)}`);
});
}
chat(
params: LLMChatParamsStreaming<
VercelAdditionalChatOptions,
ToolCallLLMMessageOptions
>,
): Promise<AsyncIterable<ChatResponseChunk<ToolCallLLMMessageOptions>>>;
chat(
params: LLMChatParamsNonStreaming<
VercelAdditionalChatOptions,
ToolCallLLMMessageOptions
>,
): Promise<ChatResponse<ToolCallLLMMessageOptions>>;
@wrapEventCaller
@wrapLLMEvent
async chat(
params:
| LLMChatParamsNonStreaming<
VercelAdditionalChatOptions,
ToolCallLLMMessageOptions
>
| LLMChatParamsStreaming<
VercelAdditionalChatOptions,
ToolCallLLMMessageOptions
>,
): Promise<
| ChatResponse<ToolCallLLMMessageOptions>
| AsyncIterable<ChatResponseChunk<ToolCallLLMMessageOptions>>
> {
const { messages, stream } = params;
// Streaming
if (stream) {
const result = streamText({
model: this.model,
messages: this.toVercelMessages(messages),
});
return result.fullStream.pipeThrough(
new TransformStream({
async transform(message, controller): Promise<void> {
switch (message.type) {
case "text-delta":
controller.enqueue({ raw: message, delta: message.textDelta });
}
},
}),
);
}
// Non-streaming
const result = await generateText({
model: this.model,
messages: this.toVercelMessages(messages),
});
return {
raw: result,
message: {
content: result.text,
role: "assistant",
options: result.toolCalls?.length
? {
toolCall: result.toolCalls.map(
({ toolCallId, toolName, args }) => ({
id: toolCallId,
name: toolName,
input: args,
}),
),
}
: {},
},
};
}
}
+13 -20
View File
@@ -1,36 +1,29 @@
import { Settings } from "@llamaindex/core/global";
import type { BaseQueryEngine } from "@llamaindex/core/query-engine";
import { type CoreTool, type LanguageModelV1, tool } from "ai";
import { type CoreTool, tool } from "ai";
import { z } from "zod";
import { VercelLLM } from "./llm";
interface DatasourceIndex {
asQueryEngine: () => BaseQueryEngine;
}
export function llamaindex({
model,
index,
description,
}: {
model: LanguageModelV1;
index: DatasourceIndex;
description?: string;
}): CoreTool {
const llm = new VercelLLM({ model });
return Settings.withLLM<CoreTool>(llm, () => {
const queryEngine = index.asQueryEngine();
return tool({
description: description ?? "Get information about your documents.",
parameters: z.object({
query: z
.string()
.describe("The query to get information about your documents."),
}),
execute: async ({ query }) => {
const result = await queryEngine?.query({ query });
return result?.message.content ?? "No result found in documents.";
},
});
const queryEngine = index.asQueryEngine();
return tool({
description: description ?? "Get information about your documents.",
parameters: z.object({
query: z
.string()
.describe("The query to get information about your documents."),
}),
execute: async ({ query }) => {
const result = await queryEngine?.query({ query });
return result?.message.content ?? "No result found in documents.";
},
});
}
-12
View File
@@ -1,17 +1,5 @@
# @llamaindex/vllm
## 0.0.14
### Patch Changes
- @llamaindex/openai@0.1.44
## 0.0.13
### Patch Changes
- @llamaindex/openai@0.1.43
## 0.0.12
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/vllm",
"description": "vLLM Adapter for LlamaIndex",
"version": "0.0.14",
"version": "0.0.12",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
-17
View File
@@ -1,22 +1,5 @@
# @llamaindex/readers
## 1.0.21
### Patch Changes
- a9b5b99: feat: build api reference pages for new documentation site
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
## 1.0.20
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [e0f6cc3]
- @llamaindex/env@0.1.25
- @llamaindex/core@0.4.18
## 1.0.19
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/readers",
"description": "LlamaIndex Readers",
"version": "1.0.21",
"version": "1.0.19",
"type": "module",
"exports": {
"./node/hook": "./node/dist/hook.js",
+1 -1
View File
@@ -13,7 +13,7 @@ export class HTMLReader extends FileReader<Document> {
* Public method for this reader.
* Required by BaseReader interface.
* @param fileContent - The content of the file.
* @returns `Promise<Document[]>` A Promise object, eventually yielding zero or one Document parsed from the HTML content of the specified file.
* @returns Promise<Document[]> A Promise object, eventually yielding zero or one Document parsed from the HTML content of the specified file.
*/
async loadDataAsContent(fileContent: Uint8Array): Promise<Document[]> {
const decoder = new TextDecoder("utf-8");
+1 -1
View File
@@ -8,7 +8,7 @@ export class ImageReader extends FileReader<ImageDocument> {
* Public method for this reader.
* Required by BaseReader interface.
* @param fileContent - The content of the file.
* @returns `Promise<Document[]>` A Promise object, eventually yielding zero or one ImageDocument of the specified file.
* @returns Promise<Document[]> A Promise object, eventually yielding zero or one ImageDocument of the specified file.
*/
async loadDataAsContent(fileContent: Uint8Array): Promise<ImageDocument[]> {
const blob = new Blob([fileContent]);
-7
View File
@@ -1,12 +1,5 @@
# @llamaindex/workflow
## 0.0.8
### Patch Changes
- Updated dependencies [b504303]
- @llamaindex/env@0.1.25
## 0.0.7
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/workflow",
"description": "Workflow API",
"version": "0.0.8",
"version": "0.0.7",
"type": "module",
"types": "dist/index.d.ts",
"module": "dist/index.js",
+441 -1089
View File
File diff suppressed because it is too large Load Diff
-27
View File
@@ -1,32 +1,5 @@
# @llamaindex/unit-test
## 0.0.38
### Patch Changes
- Updated dependencies [a9b5b99]
- @llamaindex/core@0.4.19
- @llamaindex/readers@1.0.21
- @llamaindex/cloud@2.0.19
- llamaindex@0.8.28
- @llamaindex/node-parser@0.0.20
- @llamaindex/openai@0.1.44
## 0.0.37
### Patch Changes
- Updated dependencies [b504303]
- Updated dependencies [e0f6cc3]
- Updated dependencies [a0e6f57]
- llamaindex@0.8.27
- @llamaindex/core@0.4.18
- @llamaindex/cloud@2.0.18
- @llamaindex/node-parser@0.0.19
- @llamaindex/openai@0.1.43
- @llamaindex/readers@1.0.20
- @llamaindex/workflow@0.0.8
## 0.0.36
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/unit-test",
"private": true,
"version": "0.0.38",
"version": "0.0.36",
"type": "module",
"scripts": {
"test": "vitest run"