mirror of
https://github.com/run-llama/LlamaIndexTS.git
synced 2026-07-15 06:52:45 -04:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bbb87f42ed | |||
| 24caf93efe | |||
| a9b5b993fa | |||
| f369d3de4f | |||
| c1850ee370 | |||
| 086a65141d | |||
| d99d598491 | |||
| a0e6f57d9b | |||
| e0f6cc3be1 | |||
| 8386510d86 | |||
| b504303c66 | |||
| cf9a9356e0 |
@@ -23,7 +23,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
node-version: [20.x, 22.x, 23.x]
|
node-version: [18.x, 20.x, 22.x, 23.x]
|
||||||
name: E2E on Node.js ${{ matrix.node-version }}
|
name: E2E on Node.js ${{ matrix.node-version }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
@@ -53,7 +53,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
node-version: [20.x, 22.x, 23.x]
|
node-version: [18.x, 20.x, 22.x, 23.x]
|
||||||
name: Test on Node.js ${{ matrix.node-version }}
|
name: Test on Node.js ${{ matrix.node-version }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
@@ -1,5 +1,22 @@
|
|||||||
# docs
|
# 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
|
## 0.0.132
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -37,6 +37,9 @@ 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_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_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
|
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:
|
You can also use Bedrock's Inference endpoints by using the model names:
|
||||||
@@ -53,6 +56,9 @@ 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_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_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_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
|
||||||
EU_ANTHROPIC_CLAUDE_3_HAIKU = "eu.anthropic.claude-3-haiku-20240307-v1:0";
|
EU_ANTHROPIC_CLAUDE_3_HAIKU = "eu.anthropic.claude-3-haiku-20240307-v1:0";
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "docs",
|
"name": "docs",
|
||||||
"version": "0.0.132",
|
"version": "0.0.134",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"docusaurus": "docusaurus",
|
"docusaurus": "docusaurus",
|
||||||
|
|||||||
@@ -29,4 +29,5 @@ next-env.d.ts
|
|||||||
|
|
||||||
# build
|
# build
|
||||||
/src/content/docs/cloud/api
|
/src/content/docs/cloud/api
|
||||||
|
/src/content/docs/api
|
||||||
./types
|
./types
|
||||||
|
|||||||
@@ -1,5 +1,33 @@
|
|||||||
# @llamaindex/doc
|
# @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
|
## 0.0.30
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
+11
-7
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/doc",
|
"name": "@llamaindex/doc",
|
||||||
"version": "0.0.30",
|
"version": "0.0.32",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "pnpm run build:docs && next build",
|
"build": "pnpm run build:docs && next build",
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
"start": "next start",
|
"start": "next start",
|
||||||
"postdev": "fumadocs-mdx",
|
"postdev": "fumadocs-mdx",
|
||||||
"postbuild": "fumadocs-mdx && tsx scripts/post-build.mts",
|
"postbuild": "fumadocs-mdx && tsx scripts/post-build.mts",
|
||||||
"build:docs": "node ./scripts/generate-docs.mjs"
|
"build:docs": "cross-env NODE_OPTIONS=\"--max-old-space-size=8192\" typedoc && node ./scripts/generate-docs.mjs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@icons-pack/react-simple-icons": "^10.1.0",
|
"@icons-pack/react-simple-icons": "^10.1.0",
|
||||||
@@ -33,13 +33,13 @@
|
|||||||
"clsx": "2.1.1",
|
"clsx": "2.1.1",
|
||||||
"foxact": "^0.2.41",
|
"foxact": "^0.2.41",
|
||||||
"framer-motion": "^11.11.17",
|
"framer-motion": "^11.11.17",
|
||||||
"fumadocs-core": "14.4.2",
|
"fumadocs-core": "^14.6.0",
|
||||||
"fumadocs-docgen": "^1.3.2",
|
"fumadocs-docgen": "^1.3.2",
|
||||||
"fumadocs-mdx": "^11.1.1",
|
"fumadocs-mdx": "^11.1.2",
|
||||||
"fumadocs-openapi": "^5.7.0",
|
"fumadocs-openapi": "^5.8.2",
|
||||||
"fumadocs-twoslash": "^2.0.1",
|
"fumadocs-twoslash": "^2.0.2",
|
||||||
"fumadocs-typescript": "^3.0.2",
|
"fumadocs-typescript": "^3.0.2",
|
||||||
"fumadocs-ui": "14.4.2",
|
"fumadocs-ui": "^14.6.0",
|
||||||
"hast-util-to-jsx-runtime": "^2.3.2",
|
"hast-util-to-jsx-runtime": "^2.3.2",
|
||||||
"llamaindex": "workspace:*",
|
"llamaindex": "workspace:*",
|
||||||
"lucide-react": "^0.460.0",
|
"lucide-react": "^0.460.0",
|
||||||
@@ -72,6 +72,7 @@
|
|||||||
"@types/react": "^18.3.12",
|
"@types/react": "^18.3.12",
|
||||||
"@types/react-dom": "^18.3.1",
|
"@types/react-dom": "^18.3.1",
|
||||||
"autoprefixer": "^10.4.20",
|
"autoprefixer": "^10.4.20",
|
||||||
|
"cross-env": "^7.0.3",
|
||||||
"fast-glob": "^3.3.2",
|
"fast-glob": "^3.3.2",
|
||||||
"gray-matter": "^4.0.3",
|
"gray-matter": "^4.0.3",
|
||||||
"monaco-editor-webpack-plugin": "^7.1.0",
|
"monaco-editor-webpack-plugin": "^7.1.0",
|
||||||
@@ -82,6 +83,9 @@
|
|||||||
"remark-stringify": "^11.0.0",
|
"remark-stringify": "^11.0.0",
|
||||||
"tailwindcss": "^3.4.15",
|
"tailwindcss": "^3.4.15",
|
||||||
"tsx": "^4.19.2",
|
"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"
|
"typescript": "^5.6.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
import * as OpenAPI from "fumadocs-openapi";
|
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 { fileURLToPath } from "node:url";
|
||||||
import { rimrafSync } from "rimraf";
|
import { rimrafSync } from "rimraf";
|
||||||
|
|
||||||
const out = "./src/content/docs/cloud/api";
|
const out = "./src/content/docs/cloud/api";
|
||||||
|
const apiRefOut = "./src/content/docs/api";
|
||||||
|
|
||||||
// clean generated files
|
// clean generated files
|
||||||
rimrafSync(out, {
|
rimrafSync(out, {
|
||||||
@@ -20,3 +24,63 @@ void OpenAPI.generateFiles({
|
|||||||
output: out,
|
output: out,
|
||||||
groupBy: "tag",
|
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,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|||||||
@@ -94,4 +94,33 @@
|
|||||||
body {
|
body {
|
||||||
@apply bg-background text-foreground;
|
@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,7 +3,9 @@ title: Vercel
|
|||||||
description: Integrate LlamaIndex with Vercel's AI SDK
|
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. Below are examples of how to use LlamaIndex with `streamText` from the Vercel 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
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
@@ -13,7 +15,22 @@ First, install the required dependencies:
|
|||||||
npm install @llamaindex/vercel ai
|
npm install @llamaindex/vercel ai
|
||||||
```
|
```
|
||||||
|
|
||||||
## Using Local Vector Store
|
## 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
|
||||||
|
|
||||||
Here's how to create a simple vector store index and query it using Vercel's AI SDK:
|
Here's how to create a simple vector store index and query it using Vercel's AI SDK:
|
||||||
|
|
||||||
@@ -29,22 +46,25 @@ const index = await VectorStoreIndex.fromDocuments([document]);
|
|||||||
|
|
||||||
// Create a query tool
|
// Create a query tool
|
||||||
const queryTool = llamaindex({
|
const queryTool = llamaindex({
|
||||||
|
model: openai("gpt-4"),
|
||||||
index,
|
index,
|
||||||
description: "Search through the documents", // optional
|
description: "Search through the documents", // optional
|
||||||
});
|
});
|
||||||
|
|
||||||
// Use the tool with Vercel's AI SDK
|
// Use the tool with Vercel's AI SDK
|
||||||
streamText({
|
streamText({
|
||||||
tools: { queryTool },
|
|
||||||
prompt: "Your question here",
|
|
||||||
model: openai("gpt-4"),
|
model: openai("gpt-4"),
|
||||||
|
prompt: "Your question here",
|
||||||
|
tools: { queryTool },
|
||||||
onFinish({ response }) {
|
onFinish({ response }) {
|
||||||
console.log("Response:", response.messages); // log the response
|
console.log("Response:", response.messages); // log the response
|
||||||
},
|
},
|
||||||
}).toDataStream();
|
}).toDataStream();
|
||||||
```
|
```
|
||||||
|
|
||||||
## Using LlamaCloud
|
> 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
|
||||||
|
|
||||||
For production deployments, you can use LlamaCloud to store and manage your documents:
|
For production deployments, you can use LlamaCloud to store and manage your documents:
|
||||||
|
|
||||||
@@ -61,20 +81,21 @@ const index = await LlamaCloudIndex.fromDocuments({
|
|||||||
|
|
||||||
// Use it the same way as VectorStoreIndex
|
// Use it the same way as VectorStoreIndex
|
||||||
const queryTool = llamaindex({
|
const queryTool = llamaindex({
|
||||||
|
model: openai("gpt-4"),
|
||||||
index,
|
index,
|
||||||
description: "Search through the documents",
|
description: "Search through the documents",
|
||||||
});
|
});
|
||||||
|
|
||||||
// Use the tool with Vercel's AI SDK
|
// Use the tool with Vercel's AI SDK
|
||||||
streamText({
|
streamText({
|
||||||
tools: { queryTool },
|
|
||||||
prompt: "Your question here",
|
|
||||||
model: openai("gpt-4"),
|
model: openai("gpt-4"),
|
||||||
|
prompt: "Your question here",
|
||||||
|
tools: { queryTool },
|
||||||
}).toDataStream();
|
}).toDataStream();
|
||||||
```
|
```
|
||||||
|
|
||||||
## Next Steps
|
## Next Steps
|
||||||
|
|
||||||
1. Explore [LlamaCloud](https://cloud.llamaindex.ai/) for managed document storage and retrieval
|
1. Explore [LlamaCloud](https://cloud.llamaindex.ai/) for managed document storage and retrieval
|
||||||
2. Join our [Discord community](https://discord.gg/llamaindex) for support and discussions
|
2. Join our [Discord community](https://discord.gg/dGcwcsnxhU) for support and discussions
|
||||||
|
|
||||||
|
|||||||
@@ -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 follow 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 following 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
|
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).
|
[TypeScript 5.0 blog](https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/#--moduleresolution-bundler7).
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"pages": ["llamaindex", "cloud"]
|
"pages": ["llamaindex", "cloud", "api"]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"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,5 +1,19 @@
|
|||||||
# @llamaindex/cloudflare-worker-agent-test
|
# @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
|
## 0.0.122
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/cloudflare-worker-agent-test",
|
"name": "@llamaindex/cloudflare-worker-agent-test",
|
||||||
"version": "0.0.122",
|
"version": "0.0.124",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -1,5 +1,17 @@
|
|||||||
# @llamaindex/llama-parse-browser-test
|
# @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
|
## 0.0.37
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/llama-parse-browser-test",
|
"name": "@llamaindex/llama-parse-browser-test",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.0.37",
|
"version": "0.0.39",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -1,5 +1,19 @@
|
|||||||
# @llamaindex/next-agent-test
|
# @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
|
## 0.1.122
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/next-agent-test",
|
"name": "@llamaindex/next-agent-test",
|
||||||
"version": "0.1.122",
|
"version": "0.1.124",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
|
|||||||
@@ -1,5 +1,19 @@
|
|||||||
# test-edge-runtime
|
# 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
|
## 0.1.121
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/nextjs-edge-runtime-test",
|
"name": "@llamaindex/nextjs-edge-runtime-test",
|
||||||
"version": "0.1.121",
|
"version": "0.1.123",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
|
|||||||
@@ -1,5 +1,19 @@
|
|||||||
# @llamaindex/next-node-runtime
|
# @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
|
## 0.0.103
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/next-node-runtime-test",
|
"name": "@llamaindex/next-node-runtime-test",
|
||||||
"version": "0.0.103",
|
"version": "0.0.105",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
|
|||||||
@@ -1,5 +1,19 @@
|
|||||||
# @llamaindex/waku-query-engine-test
|
# @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
|
## 0.0.122
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/waku-query-engine-test",
|
"name": "@llamaindex/waku-query-engine-test",
|
||||||
"version": "0.0.122",
|
"version": "0.0.124",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -21,6 +21,11 @@ test.beforeEach(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
await test("clip embedding", async (t) => {
|
await test("clip embedding", async (t) => {
|
||||||
|
const major = parseInt(process.versions.node.split(".")[0] ?? "0", 10);
|
||||||
|
if (major < 20) {
|
||||||
|
t.skip("Skip CLIP tests on Node.js < 20");
|
||||||
|
return;
|
||||||
|
}
|
||||||
await t.test("should trigger load transformer event", async () => {
|
await t.test("should trigger load transformer event", async () => {
|
||||||
const nodes = [
|
const nodes = [
|
||||||
new ImageNode({
|
new ImageNode({
|
||||||
|
|||||||
@@ -1,5 +1,29 @@
|
|||||||
# examples
|
# 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
|
## 0.0.19
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,16 +1,15 @@
|
|||||||
import fs from "node:fs/promises";
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Document,
|
Document,
|
||||||
IngestionPipeline,
|
IngestionPipeline,
|
||||||
MetadataMode,
|
|
||||||
OpenAIEmbedding,
|
OpenAIEmbedding,
|
||||||
SentenceSplitter,
|
SentenceSplitter,
|
||||||
|
VectorStoreIndex,
|
||||||
} from "llamaindex";
|
} from "llamaindex";
|
||||||
|
import fs from "node:fs/promises";
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
// Load essay from abramov.txt in Node
|
// 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");
|
const essay = await fs.readFile(path, "utf-8");
|
||||||
|
|
||||||
@@ -22,14 +21,23 @@ async function main() {
|
|||||||
new OpenAIEmbedding(),
|
new OpenAIEmbedding(),
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
console.time("Pipeline Run Time");
|
||||||
|
|
||||||
// run the pipeline
|
|
||||||
const nodes = await pipeline.run({ documents: [document] });
|
const nodes = await pipeline.run({ documents: [document] });
|
||||||
|
|
||||||
// print out the result of the pipeline run
|
console.timeEnd("Pipeline Run Time");
|
||||||
for (const node of nodes) {
|
|
||||||
console.log(node.getContent(MetadataMode.NONE));
|
// 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
main().catch(console.error);
|
main().catch(console.error);
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/examples",
|
"name": "@llamaindex/examples",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.0.19",
|
"version": "0.0.21",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ai-sdk/openai": "^1.0.5",
|
"@ai-sdk/openai": "^1.0.5",
|
||||||
"@aws-crypto/sha256-js": "^5.2.0",
|
"@aws-crypto/sha256-js": "^5.2.0",
|
||||||
"@azure/cosmos": "^4.1.1",
|
"@azure/cosmos": "^4.1.1",
|
||||||
"@azure/identity": "^4.4.1",
|
"@azure/identity": "^4.4.1",
|
||||||
"@datastax/astra-db-ts": "^1.4.1",
|
"@datastax/astra-db-ts": "^1.4.1",
|
||||||
"@llamaindex/core": "^0.4.17",
|
"@llamaindex/core": "^0.4.19",
|
||||||
"@llamaindex/readers": "^1.0.19",
|
"@llamaindex/readers": "^1.0.21",
|
||||||
"@llamaindex/workflow": "^0.0.7",
|
"@llamaindex/workflow": "^0.0.8",
|
||||||
"@llamaindex/vercel": "^0.0.4",
|
"@llamaindex/vercel": "^0.0.6",
|
||||||
"@notionhq/client": "^2.2.15",
|
"@notionhq/client": "^2.2.15",
|
||||||
"@pinecone-database/pinecone": "^4.0.0",
|
"@pinecone-database/pinecone": "^4.0.0",
|
||||||
"@vercel/postgres": "^0.10.0",
|
"@vercel/postgres": "^0.10.0",
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
"commander": "^12.1.0",
|
"commander": "^12.1.0",
|
||||||
"dotenv": "^16.4.5",
|
"dotenv": "^16.4.5",
|
||||||
"js-tiktoken": "^1.0.14",
|
"js-tiktoken": "^1.0.14",
|
||||||
"llamaindex": "^0.8.26",
|
"llamaindex": "^0.8.28",
|
||||||
"mongodb": "^6.7.0",
|
"mongodb": "^6.7.0",
|
||||||
"pathe": "^1.1.2",
|
"pathe": "^1.1.2",
|
||||||
"postgres": "^3.4.4"
|
"postgres": "^3.4.4"
|
||||||
|
|||||||
@@ -14,6 +14,16 @@ npm i
|
|||||||
|
|
||||||
Make sure to run the examples from the parent folder called `examples`. The following examples are available:
|
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
|
### Vector Store Example
|
||||||
|
|
||||||
Run the local vector store example with:
|
Run the local vector store example with:
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ async function main() {
|
|||||||
prompt: "Cost of moving cat from Russia to UK?",
|
prompt: "Cost of moving cat from Russia to UK?",
|
||||||
tools: {
|
tools: {
|
||||||
queryTool: llamaindex({
|
queryTool: llamaindex({
|
||||||
|
model: openai("gpt-4o"),
|
||||||
index,
|
index,
|
||||||
description:
|
description:
|
||||||
"get information from your knowledge base to answer questions.", // optional description
|
"get information from your knowledge base to answer questions.", // optional description
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
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);
|
||||||
@@ -18,6 +18,7 @@ async function main() {
|
|||||||
prompt: "Cost of moving cat from Russia to UK?",
|
prompt: "Cost of moving cat from Russia to UK?",
|
||||||
tools: {
|
tools: {
|
||||||
queryTool: llamaindex({
|
queryTool: llamaindex({
|
||||||
|
model: openai("gpt-4o"),
|
||||||
index,
|
index,
|
||||||
description:
|
description:
|
||||||
"get information from your knowledge base to answer questions.", // optional description
|
"get information from your knowledge base to answer questions.", // optional description
|
||||||
|
|||||||
@@ -1,5 +1,19 @@
|
|||||||
# @llamaindex/autotool
|
# @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
|
## 5.0.26
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
# @llamaindex/autotool-01-node-example
|
# @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
|
## 0.0.69
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -13,5 +13,5 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node --import tsx --import @llamaindex/autotool/node ./src/index.ts"
|
"start": "node --import tsx --import @llamaindex/autotool/node ./src/index.ts"
|
||||||
},
|
},
|
||||||
"version": "0.0.69"
|
"version": "0.0.71"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
# @llamaindex/autotool-02-next-example
|
# @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
|
## 0.1.113
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/autotool-02-next-example",
|
"name": "@llamaindex/autotool-02-next-example",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.1.113",
|
"version": "0.1.115",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/autotool",
|
"name": "@llamaindex/autotool",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "5.0.26",
|
"version": "5.0.28",
|
||||||
"description": "auto transpile your JS function to LLM Agent compatible",
|
"description": "auto transpile your JS function to LLM Agent compatible",
|
||||||
"files": [
|
"files": [
|
||||||
"dist",
|
"dist",
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
# @llamaindex/cloud
|
# @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
|
## 2.0.17
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/cloud",
|
"name": "@llamaindex/cloud",
|
||||||
"version": "2.0.17",
|
"version": "2.0.19",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -1,5 +1,23 @@
|
|||||||
# @llamaindex/community
|
# @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
|
## 0.0.75
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
## Current Features:
|
## 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 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)
|
- 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
|
- Meta LLama3.1 405b and Llama3.2 tool call support
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/community",
|
"name": "@llamaindex/community",
|
||||||
"description": "Community package for LlamaIndexTS",
|
"description": "Community package for LlamaIndexTS",
|
||||||
"version": "0.0.75",
|
"version": "0.0.77",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "dist/type/index.d.ts",
|
"types": "dist/type/index.d.ts",
|
||||||
"main": "dist/cjs/index.js",
|
"main": "dist/cjs/index.js",
|
||||||
@@ -46,8 +46,8 @@
|
|||||||
"bunchee": "5.6.1"
|
"bunchee": "5.6.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@aws-sdk/client-bedrock-agent-runtime": "^3.693.0",
|
"@aws-sdk/client-bedrock-agent-runtime": "^3.706.0",
|
||||||
"@aws-sdk/client-bedrock-runtime": "^3.693.0",
|
"@aws-sdk/client-bedrock-runtime": "^3.706.0",
|
||||||
"@llamaindex/core": "workspace:*",
|
"@llamaindex/core": "workspace:*",
|
||||||
"@llamaindex/env": "workspace:*"
|
"@llamaindex/env": "workspace:*"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,133 @@
|
|||||||
|
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),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import type { ConverseRequest, Message } from "@aws-sdk/client-bedrock-runtime";
|
||||||
|
|
||||||
|
export type AmazonMessages = ConverseRequest["messages"];
|
||||||
|
|
||||||
|
export type AmazonMessage = Message;
|
||||||
@@ -0,0 +1,141 @@
|
|||||||
|
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,13 +11,10 @@ import type {
|
|||||||
ToolCall,
|
ToolCall,
|
||||||
ToolCallLLMMessageOptions,
|
ToolCallLLMMessageOptions,
|
||||||
} from "@llamaindex/core/llms";
|
} from "@llamaindex/core/llms";
|
||||||
import {
|
import { type BedrockChatStreamResponse, Provider } from "../provider";
|
||||||
type BedrockAdditionalChatOptions,
|
|
||||||
type BedrockChatStreamResponse,
|
|
||||||
Provider,
|
|
||||||
} from "../provider";
|
|
||||||
import { toUtf8 } from "../utils";
|
import { toUtf8 } from "../utils";
|
||||||
import type {
|
import type {
|
||||||
|
AnthropicAdditionalChatOptions,
|
||||||
AnthropicNoneStreamingResponse,
|
AnthropicNoneStreamingResponse,
|
||||||
AnthropicStreamEvent,
|
AnthropicStreamEvent,
|
||||||
AnthropicTextContent,
|
AnthropicTextContent,
|
||||||
@@ -134,7 +131,7 @@ export class AnthropicProvider extends Provider<AnthropicStreamEvent> {
|
|||||||
metadata: LLMMetadata,
|
metadata: LLMMetadata,
|
||||||
messages: T[],
|
messages: T[],
|
||||||
tools?: BaseTool[],
|
tools?: BaseTool[],
|
||||||
options?: BedrockAdditionalChatOptions,
|
options?: AnthropicAdditionalChatOptions,
|
||||||
): InvokeModelCommandInput | InvokeModelWithResponseStreamCommandInput {
|
): InvokeModelCommandInput | InvokeModelWithResponseStreamCommandInput {
|
||||||
const extra: Record<string, unknown> = {};
|
const extra: Record<string, unknown> = {};
|
||||||
if (options?.toolChoice) {
|
if (options?.toolChoice) {
|
||||||
|
|||||||
@@ -1,6 +1,13 @@
|
|||||||
import type { ToolMetadata } from "@llamaindex/core/llms";
|
import type { ToolMetadata } from "@llamaindex/core/llms";
|
||||||
import type { InvocationMetrics } from "../types";
|
import type { InvocationMetrics } from "../types";
|
||||||
|
|
||||||
|
export type ToolChoice =
|
||||||
|
| { type: "any" }
|
||||||
|
| { type: "auto" }
|
||||||
|
| { type: "tool"; name: string };
|
||||||
|
|
||||||
|
export type AnthropicAdditionalChatOptions = { toolChoice: ToolChoice };
|
||||||
|
|
||||||
type Usage = {
|
type Usage = {
|
||||||
input_tokens: number;
|
input_tokens: number;
|
||||||
output_tokens: number;
|
output_tokens: number;
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import {
|
|||||||
import { mapMessageContentToMessageContentDetails } from "./utils";
|
import { mapMessageContentToMessageContentDetails } from "./utils";
|
||||||
|
|
||||||
import { wrapLLMEvent } from "@llamaindex/core/decorator";
|
import { wrapLLMEvent } from "@llamaindex/core/decorator";
|
||||||
|
import { AmazonProvider } from "./amazon/provider";
|
||||||
import { AnthropicProvider } from "./anthropic/provider";
|
import { AnthropicProvider } from "./anthropic/provider";
|
||||||
import { MetaProvider } from "./meta/provider";
|
import { MetaProvider } from "./meta/provider";
|
||||||
|
|
||||||
@@ -32,6 +33,7 @@ import { MetaProvider } from "./meta/provider";
|
|||||||
export const PROVIDERS: { [key: string]: Provider } = {
|
export const PROVIDERS: { [key: string]: Provider } = {
|
||||||
anthropic: new AnthropicProvider(),
|
anthropic: new AnthropicProvider(),
|
||||||
meta: new MetaProvider(),
|
meta: new MetaProvider(),
|
||||||
|
amazon: new AmazonProvider(),
|
||||||
};
|
};
|
||||||
|
|
||||||
export type BedrockChatParamsStreaming = LLMChatParamsStreaming<
|
export type BedrockChatParamsStreaming = LLMChatParamsStreaming<
|
||||||
@@ -81,7 +83,11 @@ export const BEDROCK_MODELS = {
|
|||||||
MISTRAL_7B_INSTRUCT: "mistral.mistral-7b-instruct-v0:2",
|
MISTRAL_7B_INSTRUCT: "mistral.mistral-7b-instruct-v0:2",
|
||||||
MISTRAL_MIXTRAL_7B_INSTRUCT: "mistral.mixtral-8x7b-instruct-v0:1",
|
MISTRAL_MIXTRAL_7B_INSTRUCT: "mistral.mixtral-8x7b-instruct-v0:1",
|
||||||
MISTRAL_MIXTRAL_LARGE_2402: "mistral.mistral-large-2402-v1:0",
|
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 =
|
export type BEDROCK_MODELS =
|
||||||
(typeof BEDROCK_MODELS)[keyof typeof BEDROCK_MODELS];
|
(typeof BEDROCK_MODELS)[keyof typeof BEDROCK_MODELS];
|
||||||
|
|
||||||
@@ -98,6 +104,9 @@ 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_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_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_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_HAIKU: "eu.anthropic.claude-3-haiku-20240307-v1:0",
|
||||||
EU_ANTHROPIC_CLAUDE_3_5_HAIKU: "eu.anthropic.claude-3-5-haiku-20240307-v1:0",
|
EU_ANTHROPIC_CLAUDE_3_5_HAIKU: "eu.anthropic.claude-3-5-haiku-20240307-v1:0",
|
||||||
@@ -136,6 +145,13 @@ export const INFERENCE_TO_BEDROCK_MAP: Record<
|
|||||||
[INFERENCE_BEDROCK_MODELS.US_META_LLAMA_3_2_90B_INSTRUCT]:
|
[INFERENCE_BEDROCK_MODELS.US_META_LLAMA_3_2_90B_INSTRUCT]:
|
||||||
BEDROCK_MODELS.META_LLAMA3_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]:
|
[INFERENCE_BEDROCK_MODELS.EU_ANTHROPIC_CLAUDE_3_HAIKU]:
|
||||||
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_HAIKU,
|
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_HAIKU,
|
||||||
[INFERENCE_BEDROCK_MODELS.EU_ANTHROPIC_CLAUDE_3_SONNET]:
|
[INFERENCE_BEDROCK_MODELS.EU_ANTHROPIC_CLAUDE_3_SONNET]:
|
||||||
@@ -189,6 +205,9 @@ const CHAT_ONLY_MODELS = {
|
|||||||
[BEDROCK_MODELS.MISTRAL_7B_INSTRUCT]: 32000,
|
[BEDROCK_MODELS.MISTRAL_7B_INSTRUCT]: 32000,
|
||||||
[BEDROCK_MODELS.MISTRAL_MIXTRAL_7B_INSTRUCT]: 32000,
|
[BEDROCK_MODELS.MISTRAL_MIXTRAL_7B_INSTRUCT]: 32000,
|
||||||
[BEDROCK_MODELS.MISTRAL_MIXTRAL_LARGE_2402]: 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 };
|
const BEDROCK_FOUNDATION_LLMS = { ...COMPLETION_MODELS, ...CHAT_ONLY_MODELS };
|
||||||
@@ -225,6 +244,9 @@ export const STREAMING_MODELS = new Set([
|
|||||||
BEDROCK_MODELS.MISTRAL_7B_INSTRUCT,
|
BEDROCK_MODELS.MISTRAL_7B_INSTRUCT,
|
||||||
BEDROCK_MODELS.MISTRAL_MIXTRAL_7B_INSTRUCT,
|
BEDROCK_MODELS.MISTRAL_MIXTRAL_7B_INSTRUCT,
|
||||||
BEDROCK_MODELS.MISTRAL_MIXTRAL_LARGE_2402,
|
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[] = [
|
export const TOOL_CALL_MODELS: BEDROCK_MODELS[] = [
|
||||||
@@ -239,6 +261,9 @@ export const TOOL_CALL_MODELS: BEDROCK_MODELS[] = [
|
|||||||
BEDROCK_MODELS.META_LLAMA3_2_3B_INSTRUCT,
|
BEDROCK_MODELS.META_LLAMA3_2_3B_INSTRUCT,
|
||||||
BEDROCK_MODELS.META_LLAMA3_2_11B_INSTRUCT,
|
BEDROCK_MODELS.META_LLAMA3_2_11B_INSTRUCT,
|
||||||
BEDROCK_MODELS.META_LLAMA3_2_90B_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 => {
|
const getProvider = (model: string): Provider => {
|
||||||
@@ -320,10 +345,6 @@ export class Bedrock extends ToolCallLLM<BedrockAdditionalChatOptions> {
|
|||||||
this.temperature = temperature ?? DEFAULT_BEDROCK_PARAMS.temperature;
|
this.temperature = temperature ?? DEFAULT_BEDROCK_PARAMS.temperature;
|
||||||
this.topP = topP ?? DEFAULT_BEDROCK_PARAMS.topP;
|
this.topP = topP ?? DEFAULT_BEDROCK_PARAMS.topP;
|
||||||
this.client = new BedrockRuntimeClient(params);
|
this.client = new BedrockRuntimeClient(params);
|
||||||
|
|
||||||
if (!this.supportToolCall) {
|
|
||||||
console.warn(`The model "${this.model}" doesn't support ToolCall`);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportToolCall(): boolean {
|
get supportToolCall(): boolean {
|
||||||
@@ -345,6 +366,9 @@ export class Bedrock extends ToolCallLLM<BedrockAdditionalChatOptions> {
|
|||||||
protected async nonStreamChat(
|
protected async nonStreamChat(
|
||||||
params: BedrockChatParamsNonStreaming,
|
params: BedrockChatParamsNonStreaming,
|
||||||
): Promise<BedrockChatNonStreamResponse> {
|
): Promise<BedrockChatNonStreamResponse> {
|
||||||
|
if (!this.supportToolCall && params.tools?.length) {
|
||||||
|
console.warn(`The model "${this.model}" doesn't support ToolCall`);
|
||||||
|
}
|
||||||
const input = this.provider.getRequestBody(
|
const input = this.provider.getRequestBody(
|
||||||
this.metadata,
|
this.metadata,
|
||||||
params.messages,
|
params.messages,
|
||||||
@@ -378,6 +402,10 @@ export class Bedrock extends ToolCallLLM<BedrockAdditionalChatOptions> {
|
|||||||
if (!STREAMING_MODELS.has(this.model))
|
if (!STREAMING_MODELS.has(this.model))
|
||||||
throw new Error(`The model: ${this.model} does not support streaming`);
|
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(
|
const input = this.provider.getRequestBody(
|
||||||
this.metadata,
|
this.metadata,
|
||||||
params.messages,
|
params.messages,
|
||||||
@@ -388,7 +416,6 @@ export class Bedrock extends ToolCallLLM<BedrockAdditionalChatOptions> {
|
|||||||
command.input.modelId = this.actualModel;
|
command.input.modelId = this.actualModel;
|
||||||
|
|
||||||
const response = await this.client.send(command);
|
const response = await this.client.send(command);
|
||||||
|
|
||||||
if (response.body) yield* this.provider.reduceStream(response.body);
|
if (response.body) yield* this.provider.reduceStream(response.body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,10 +11,9 @@ import {
|
|||||||
type ToolCallLLMMessageOptions,
|
type ToolCallLLMMessageOptions,
|
||||||
} from "@llamaindex/core/llms";
|
} from "@llamaindex/core/llms";
|
||||||
import { streamConverter } from "@llamaindex/core/utils";
|
import { streamConverter } from "@llamaindex/core/utils";
|
||||||
import type { ToolChoice } from "./types";
|
|
||||||
import { toUtf8 } from "./utils";
|
import { toUtf8 } from "./utils";
|
||||||
|
|
||||||
export type BedrockAdditionalChatOptions = { toolChoice: ToolChoice };
|
export type BedrockAdditionalChatOptions = Record<string, unknown>;
|
||||||
|
|
||||||
export type BedrockChatStreamResponse = AsyncIterable<
|
export type BedrockChatStreamResponse = AsyncIterable<
|
||||||
ChatResponseChunk<ToolCallLLMMessageOptions>
|
ChatResponseChunk<ToolCallLLMMessageOptions>
|
||||||
|
|||||||
@@ -4,8 +4,3 @@ export type InvocationMetrics = {
|
|||||||
invocationLatency: number;
|
invocationLatency: number;
|
||||||
firstByteLatency: number;
|
firstByteLatency: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type ToolChoice =
|
|
||||||
| { type: "any" }
|
|
||||||
| { type: "auto" }
|
|
||||||
| { type: "tool"; name: string };
|
|
||||||
|
|||||||
@@ -1,5 +1,19 @@
|
|||||||
# @llamaindex/core
|
# @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
|
## 0.4.17
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/core",
|
"name": "@llamaindex/core",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "0.4.17",
|
"version": "0.4.19",
|
||||||
"description": "LlamaIndex Core Module",
|
"description": "LlamaIndex Core Module",
|
||||||
"exports": {
|
"exports": {
|
||||||
"./agent": {
|
"./agent": {
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ import type { ContextGenerator } from "./type";
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* ContextChatEngine uses the Index to get the appropriate context for each query.
|
* 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: 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.
|
* The context is stored in the system prompt, and the chat history is chunk,
|
||||||
|
* allowing the appropriate context to be surfaced for each query.
|
||||||
*/
|
*/
|
||||||
export class ContextChatEngine extends PromptMixin implements BaseChatEngine {
|
export class ContextChatEngine extends PromptMixin implements BaseChatEngine {
|
||||||
chatModel: LLM;
|
chatModel: LLM;
|
||||||
|
|||||||
@@ -77,6 +77,16 @@ 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(
|
async getResponse(
|
||||||
query: MessageContent,
|
query: MessageContent,
|
||||||
nodes: NodeWithScore[],
|
nodes: NodeWithScore[],
|
||||||
@@ -197,6 +207,16 @@ class Refine extends BaseSynthesizer {
|
|||||||
* CompactAndRefine is a slight variation of Refine that first compacts the text chunks into the smallest possible number of chunks.
|
* CompactAndRefine is a slight variation of Refine that first compacts the text chunks into the smallest possible number of chunks.
|
||||||
*/
|
*/
|
||||||
class CompactAndRefine extends Refine {
|
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(
|
async getResponse(
|
||||||
query: MessageContent,
|
query: MessageContent,
|
||||||
nodes: NodeWithScore[],
|
nodes: NodeWithScore[],
|
||||||
@@ -216,17 +236,24 @@ class CompactAndRefine extends Refine {
|
|||||||
const newTexts = this.promptHelper.repack(maxPrompt, textChunks);
|
const newTexts = this.promptHelper.repack(maxPrompt, textChunks);
|
||||||
const newNodes = newTexts.map((text) => new TextNode({ text }));
|
const newNodes = newTexts.map((text) => new TextNode({ text }));
|
||||||
if (stream) {
|
if (stream) {
|
||||||
return super.getResponse(
|
const streamResponse = await super.getResponse(
|
||||||
query,
|
query,
|
||||||
newNodes.map((node) => ({ node })),
|
newNodes.map((node) => ({ node })),
|
||||||
true,
|
true,
|
||||||
);
|
);
|
||||||
|
return streamConverter(streamResponse, (chunk) => {
|
||||||
|
chunk.sourceNodes = nodes;
|
||||||
|
return chunk;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
return super.getResponse(
|
|
||||||
|
const originalResponse = await super.getResponse(
|
||||||
query,
|
query,
|
||||||
newNodes.map((node) => ({ node })),
|
newNodes.map((node) => ({ node })),
|
||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
|
originalResponse.sourceNodes = nodes;
|
||||||
|
return originalResponse;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,66 @@
|
|||||||
|
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]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
Vendored
+6
@@ -1,5 +1,11 @@
|
|||||||
# @llamaindex/env
|
# @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
|
## 0.1.24
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
Vendored
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/env",
|
"name": "@llamaindex/env",
|
||||||
"description": "environment wrapper, supports all JS environment including node, deno, bun, edge runtime, and cloudflare worker",
|
"description": "environment wrapper, supports all JS environment including node, deno, bun, edge runtime, and cloudflare worker",
|
||||||
"version": "0.1.24",
|
"version": "0.1.25",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "dist/index.d.ts",
|
"types": "dist/index.d.ts",
|
||||||
"module": "dist/index.js",
|
"module": "dist/index.js",
|
||||||
|
|||||||
@@ -7,6 +7,13 @@ export {
|
|||||||
} from "./shared.js";
|
} from "./shared.js";
|
||||||
|
|
||||||
export async function loadTransformers(onLoad: OnLoad) {
|
export async function loadTransformers(onLoad: OnLoad) {
|
||||||
|
const nodeVersions = process.versions.node.split(".");
|
||||||
|
if (nodeVersions[0] && parseInt(nodeVersions[0], 10) < 20) {
|
||||||
|
throw new Error(
|
||||||
|
"@huggingface/transformers is not supported on Node.js versions below 20",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (getTransformers() === null) {
|
if (getTransformers() === null) {
|
||||||
setTransformers(await import("@huggingface/transformers"));
|
setTransformers(await import("@huggingface/transformers"));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,5 +1,19 @@
|
|||||||
# @llamaindex/experimental
|
# @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
|
## 0.0.138
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/experimental",
|
"name": "@llamaindex/experimental",
|
||||||
"description": "Experimental package for LlamaIndexTS",
|
"description": "Experimental package for LlamaIndexTS",
|
||||||
"version": "0.0.138",
|
"version": "0.0.140",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "dist/type/index.d.ts",
|
"types": "dist/type/index.d.ts",
|
||||||
"main": "dist/cjs/index.js",
|
"main": "dist/cjs/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,49 @@
|
|||||||
# llamaindex
|
# 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
|
## 0.8.26
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "llamaindex",
|
"name": "llamaindex",
|
||||||
"version": "0.8.26",
|
"version": "0.8.28",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
@@ -86,7 +86,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@huggingface/transformers": "^3.0.2",
|
|
||||||
"@swc/cli": "^0.5.0",
|
"@swc/cli": "^0.5.0",
|
||||||
"@swc/core": "^1.9.2",
|
"@swc/core": "^1.9.2",
|
||||||
"@vercel/postgres": "^0.10.0",
|
"@vercel/postgres": "^0.10.0",
|
||||||
@@ -98,7 +97,7 @@
|
|||||||
"typescript": "^5.6.3"
|
"typescript": "^5.6.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=20.0.0"
|
"node": ">=18.0.0"
|
||||||
},
|
},
|
||||||
"types": "./dist/type/index.d.ts",
|
"types": "./dist/type/index.d.ts",
|
||||||
"main": "./dist/cjs/index.js",
|
"main": "./dist/cjs/index.js",
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ export default function withLlamaIndex(config: any) {
|
|||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
config.webpack = function (webpackConfig: any, options: any) {
|
config.webpack = function (webpackConfig: any, options: any) {
|
||||||
if (userWebpack) {
|
if (userWebpack) {
|
||||||
webpackConfig = userWebpack(webpackConfig);
|
webpackConfig = userWebpack(webpackConfig, options);
|
||||||
}
|
}
|
||||||
webpackConfig.resolve.alias = {
|
webpackConfig.resolve.alias = {
|
||||||
...webpackConfig.resolve.alias,
|
...webpackConfig.resolve.alias,
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
# @llamaindex/node-parser
|
# @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
|
## 0.0.18
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/node-parser",
|
"name": "@llamaindex/node-parser",
|
||||||
"version": "0.0.18",
|
"version": "0.0.20",
|
||||||
"description": "Node parser for LlamaIndex",
|
"description": "Node parser for LlamaIndex",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"exports": {
|
"exports": {
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
# @llamaindex/anthropic
|
# @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
|
## 0.0.26
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/anthropic",
|
"name": "@llamaindex/anthropic",
|
||||||
"description": "Anthropic Adapter for LlamaIndex",
|
"description": "Anthropic Adapter for LlamaIndex",
|
||||||
"version": "0.0.26",
|
"version": "0.0.28",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,23 @@
|
|||||||
# @llamaindex/clip
|
# @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
|
## 0.0.26
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/clip",
|
"name": "@llamaindex/clip",
|
||||||
"description": "Clip Embedding Adapter for LlamaIndex",
|
"description": "Clip Embedding Adapter for LlamaIndex",
|
||||||
"version": "0.0.26",
|
"version": "0.0.28",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "dist/index.d.ts",
|
"types": "dist/index.d.ts",
|
||||||
"main": "dist/index.cjs",
|
"main": "dist/index.cjs",
|
||||||
|
|||||||
@@ -1,5 +1,23 @@
|
|||||||
# @llamaindex/deepinfra
|
# @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
|
## 0.0.26
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/deepinfra",
|
"name": "@llamaindex/deepinfra",
|
||||||
"description": "Deepinfra Adapter for LlamaIndex",
|
"description": "Deepinfra Adapter for LlamaIndex",
|
||||||
"version": "0.0.26",
|
"version": "0.0.28",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,19 @@
|
|||||||
# @llamaindex/groq
|
# @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
|
## 0.0.41
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/groq",
|
"name": "@llamaindex/groq",
|
||||||
"description": "Groq Adapter for LlamaIndex",
|
"description": "Groq Adapter for LlamaIndex",
|
||||||
"version": "0.0.41",
|
"version": "0.0.43",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,23 @@
|
|||||||
# @llamaindex/huggingface
|
# @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
|
## 0.0.26
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/huggingface",
|
"name": "@llamaindex/huggingface",
|
||||||
"description": "Huggingface Adapter for LlamaIndex",
|
"description": "Huggingface Adapter for LlamaIndex",
|
||||||
"version": "0.0.26",
|
"version": "0.0.28",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "dist/index.d.ts",
|
"types": "dist/index.d.ts",
|
||||||
"main": "dist/index.cjs",
|
"main": "dist/index.cjs",
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
# @llamaindex/ollama
|
# @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
|
## 0.0.33
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/ollama",
|
"name": "@llamaindex/ollama",
|
||||||
"description": "Ollama Adapter for LlamaIndex",
|
"description": "Ollama Adapter for LlamaIndex",
|
||||||
"version": "0.0.33",
|
"version": "0.0.35",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
# @llamaindex/openai
|
# @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
|
## 0.1.42
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/openai",
|
"name": "@llamaindex/openai",
|
||||||
"description": "OpenAI Adapter for LlamaIndex",
|
"description": "OpenAI Adapter for LlamaIndex",
|
||||||
"version": "0.1.42",
|
"version": "0.1.44",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
# @llamaindex/portkey-ai
|
# @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
|
## 0.0.26
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/portkey-ai",
|
"name": "@llamaindex/portkey-ai",
|
||||||
"description": "Portkey Adapter for LlamaIndex",
|
"description": "Portkey Adapter for LlamaIndex",
|
||||||
"version": "0.0.26",
|
"version": "0.0.28",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
# @llamaindex/replicate
|
# @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
|
## 0.0.26
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/replicate",
|
"name": "@llamaindex/replicate",
|
||||||
"description": "Replicate Adapter for LlamaIndex",
|
"description": "Replicate Adapter for LlamaIndex",
|
||||||
"version": "0.0.26",
|
"version": "0.0.28",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,20 @@
|
|||||||
# @llamaindex/vercel
|
# @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
|
## 0.0.4
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/vercel",
|
"name": "@llamaindex/vercel",
|
||||||
"description": "Vercel Adapter for LlamaIndex",
|
"description": "Vercel Adapter for LlamaIndex",
|
||||||
"version": "0.0.4",
|
"version": "0.0.6",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
|
export { VercelLLM } from "./llm";
|
||||||
export { llamaindex } from "./tool";
|
export { llamaindex } from "./tool";
|
||||||
|
|||||||
@@ -0,0 +1,183 @@
|
|||||||
|
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,
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
}
|
||||||
|
: {},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,29 +1,36 @@
|
|||||||
|
import { Settings } from "@llamaindex/core/global";
|
||||||
import type { BaseQueryEngine } from "@llamaindex/core/query-engine";
|
import type { BaseQueryEngine } from "@llamaindex/core/query-engine";
|
||||||
import { type CoreTool, tool } from "ai";
|
import { type CoreTool, type LanguageModelV1, tool } from "ai";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
import { VercelLLM } from "./llm";
|
||||||
|
|
||||||
interface DatasourceIndex {
|
interface DatasourceIndex {
|
||||||
asQueryEngine: () => BaseQueryEngine;
|
asQueryEngine: () => BaseQueryEngine;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function llamaindex({
|
export function llamaindex({
|
||||||
|
model,
|
||||||
index,
|
index,
|
||||||
description,
|
description,
|
||||||
}: {
|
}: {
|
||||||
|
model: LanguageModelV1;
|
||||||
index: DatasourceIndex;
|
index: DatasourceIndex;
|
||||||
description?: string;
|
description?: string;
|
||||||
}): CoreTool {
|
}): CoreTool {
|
||||||
const queryEngine = index.asQueryEngine();
|
const llm = new VercelLLM({ model });
|
||||||
return tool({
|
return Settings.withLLM<CoreTool>(llm, () => {
|
||||||
description: description ?? "Get information about your documents.",
|
const queryEngine = index.asQueryEngine();
|
||||||
parameters: z.object({
|
return tool({
|
||||||
query: z
|
description: description ?? "Get information about your documents.",
|
||||||
.string()
|
parameters: z.object({
|
||||||
.describe("The query to get information about your documents."),
|
query: z
|
||||||
}),
|
.string()
|
||||||
execute: async ({ query }) => {
|
.describe("The query to get information about your documents."),
|
||||||
const result = await queryEngine?.query({ query });
|
}),
|
||||||
return result?.message.content ?? "No result found in documents.";
|
execute: async ({ query }) => {
|
||||||
},
|
const result = await queryEngine?.query({ query });
|
||||||
|
return result?.message.content ?? "No result found in documents.";
|
||||||
|
},
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,17 @@
|
|||||||
# @llamaindex/vllm
|
# @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
|
## 0.0.12
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/vllm",
|
"name": "@llamaindex/vllm",
|
||||||
"description": "vLLM Adapter for LlamaIndex",
|
"description": "vLLM Adapter for LlamaIndex",
|
||||||
"version": "0.0.12",
|
"version": "0.0.14",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,22 @@
|
|||||||
# @llamaindex/readers
|
# @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
|
## 1.0.19
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/readers",
|
"name": "@llamaindex/readers",
|
||||||
"description": "LlamaIndex Readers",
|
"description": "LlamaIndex Readers",
|
||||||
"version": "1.0.19",
|
"version": "1.0.21",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"exports": {
|
"exports": {
|
||||||
"./node/hook": "./node/dist/hook.js",
|
"./node/hook": "./node/dist/hook.js",
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export class HTMLReader extends FileReader<Document> {
|
|||||||
* Public method for this reader.
|
* Public method for this reader.
|
||||||
* Required by BaseReader interface.
|
* Required by BaseReader interface.
|
||||||
* @param fileContent - The content of the file.
|
* @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[]> {
|
async loadDataAsContent(fileContent: Uint8Array): Promise<Document[]> {
|
||||||
const decoder = new TextDecoder("utf-8");
|
const decoder = new TextDecoder("utf-8");
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ export class ImageReader extends FileReader<ImageDocument> {
|
|||||||
* Public method for this reader.
|
* Public method for this reader.
|
||||||
* Required by BaseReader interface.
|
* Required by BaseReader interface.
|
||||||
* @param fileContent - The content of the file.
|
* @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[]> {
|
async loadDataAsContent(fileContent: Uint8Array): Promise<ImageDocument[]> {
|
||||||
const blob = new Blob([fileContent]);
|
const blob = new Blob([fileContent]);
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/workflow
|
# @llamaindex/workflow
|
||||||
|
|
||||||
|
## 0.0.8
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [b504303]
|
||||||
|
- @llamaindex/env@0.1.25
|
||||||
|
|
||||||
## 0.0.7
|
## 0.0.7
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/workflow",
|
"name": "@llamaindex/workflow",
|
||||||
"description": "Workflow API",
|
"description": "Workflow API",
|
||||||
"version": "0.0.7",
|
"version": "0.0.8",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "dist/index.d.ts",
|
"types": "dist/index.d.ts",
|
||||||
"module": "dist/index.js",
|
"module": "dist/index.js",
|
||||||
@@ -54,7 +54,11 @@
|
|||||||
"build": "bunchee"
|
"build": "bunchee"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@llamaindex/env": "workspace:*",
|
||||||
"@types/node": "^22.9.0",
|
"@types/node": "^22.9.0",
|
||||||
"bunchee": "5.6.1"
|
"bunchee": "5.6.1"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@llamaindex/env": "workspace:*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { CustomEvent, randomUUID } from "@llamaindex/env";
|
||||||
import {
|
import {
|
||||||
type AnyWorkflowEventConstructor,
|
type AnyWorkflowEventConstructor,
|
||||||
StartEvent,
|
StartEvent,
|
||||||
@@ -231,7 +232,7 @@ export class WorkflowContext<Start = string, Stop = string, Data = unknown>
|
|||||||
#requireEvent = async <T extends AnyWorkflowEventConstructor>(
|
#requireEvent = async <T extends AnyWorkflowEventConstructor>(
|
||||||
event: T,
|
event: T,
|
||||||
): Promise<InstanceType<T>> => {
|
): Promise<InstanceType<T>> => {
|
||||||
const requestId = crypto.randomUUID();
|
const requestId = randomUUID();
|
||||||
this.#queue.push({
|
this.#queue.push({
|
||||||
type: "requestEvent",
|
type: "requestEvent",
|
||||||
id: requestId,
|
id: requestId,
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
"emitDeclarationOnly": true,
|
"emitDeclarationOnly": true,
|
||||||
"module": "ESNext",
|
"module": "ESNext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
|
"skipLibCheck": true,
|
||||||
"types": ["node"],
|
"types": ["node"],
|
||||||
"resolveJsonModule": true
|
"resolveJsonModule": true
|
||||||
},
|
},
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user