Compare commits

...

12 Commits

Author SHA1 Message Date
Alex Yang 34d2080962 fix: default in default 2025-02-13 14:39:11 +08:00
Alex Yang bb0ae5e321 chore: fix pkg.pr.new issue (#1651) 2025-02-12 21:19:29 +08:00
Marcus Schiesser f4588bc770 chore: Remove readers package from llamaindex (#1649) 2025-02-12 17:16:41 +07:00
Marcus Schiesser b49037612d remove service context (#1618)
Co-authored-by: thucpn <thucsh2@gmail.com>
2025-02-12 15:10:11 +07:00
Thuc Pham a87efb91a4 docs: update chat engine docs (#1648) 2025-02-12 12:45:26 +07:00
Thuc Pham 6a4a73760b chore: remove re-exporting packages in llamaindex (#1624)
Co-authored-by: Marcus Schiesser <mail@marcusschiesser.de>
2025-02-12 12:44:52 +07:00
Alex Yang 1564831158 ci: fix pkg-pr-new release (#1646) 2025-02-11 22:42:42 +08:00
Alex Yang 4d94f6e50d test: smoke test with cjs/esm dual package (#1644) 2025-02-11 15:02:06 +08:00
Thuc Pham 7bd5d9340c docs: update workflow doc (#1637)
Co-authored-by: Marcus Schiesser <mail@marcusschiesser.de>
2025-02-11 13:41:11 +07:00
Thuc Pham d924c63162 feat: asChatEngine function for index (#1640) 2025-02-11 12:57:15 +07:00
github-actions[bot] 83cff1277c Release 0.8.37 (#1642)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: marcusschiesser <17126+marcusschiesser@users.noreply.github.com>
2025-02-11 12:48:58 +07:00
Marcus Schiesser 1c908fd852 Revert "fix: bundle output incorrect (#1638)" (#1641) 2025-02-11 12:27:11 +07:00
229 changed files with 5605 additions and 7886 deletions
+16
View File
@@ -0,0 +1,16 @@
---
"@llamaindex/milvus": minor
"@llamaindex/qdrant": minor
"@llamaindex/next-node-runtime-test": minor
"@llamaindex/azure": minor
"@llamaindex/cloudflare-hono": minor
"@llamaindex/anthropic": minor
"@llamaindex/llamaindex-test": minor
"llamaindex": minor
"@llamaindex/core": minor
"@llamaindex/doc": minor
"@llamaindex/examples": minor
"@llamaindex/e2e": minor
---
Remove re-exports from llamaindex main package
+5
View File
@@ -0,0 +1,5 @@
---
"@llamaindex/doc": patch
---
docs: update chat engine docs
+5
View File
@@ -0,0 +1,5 @@
---
"@llamaindex/doc": patch
---
docs: update workflow doc
+6
View File
@@ -0,0 +1,6 @@
---
"@llamaindex/core": patch
"llamaindex": patch
---
feat: asChatEngine function for index
+7
View File
@@ -0,0 +1,7 @@
---
"llamaindex": minor
"@llamaindex/cloudflare-hono": patch
"@llamaindex/examples": patch
---
Remove deprecated ServiceContext
+8
View File
@@ -0,0 +1,8 @@
---
"llamaindex": minor
"@llamaindex/doc": minor
"@llamaindex/examples": minor
"@llamaindex/unit-test": minor
---
Remove readers package from llamaindex
+1 -1
View File
@@ -25,4 +25,4 @@ jobs:
run: pnpm run build
- name: Pre Release
run: pnpx pkg-pr-new publish ./packages/* ./packages/providers/*
run: pnpx pkg-pr-new publish --pnpm ./packages/* ./packages/providers/* ./packages/providers/storage/*
-5
View File
@@ -83,11 +83,6 @@ jobs:
run: pnpm install
- name: Build
run: pnpm run build
- name: Use Build For Examples
run: |
pnpm link ../packages/llamaindex/
cd readers && pnpm link ../../packages/llamaindex/
working-directory: ./examples
- name: Run Type Check
run: pnpm run type-check
- name: Run Circular Dependency Check
+1 -3
View File
@@ -1,3 +1 @@
pnpm format
pnpm lint
npx lint-staged
pnpm run lint-staged
+1
View File
@@ -0,0 +1 @@
LlamaIndexTS
+2 -1
View File
@@ -14,5 +14,6 @@
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"prettier.prettierPath": "./node_modules/prettier"
"prettier.prettierPath": "./node_modules/prettier",
"prettier.configPath": "prettier.config.mjs"
}
+7 -33
View File
@@ -65,44 +65,18 @@ yarn add llamaindex
See our official document: <https://ts.llamaindex.ai/docs/llamaindex/getting_started/>
### Tips when using in non-Node.js environments
### Adding provider packages
When you are importing `llamaindex` in a non-Node.js environment(such as Vercel Edge, Cloudflare Workers, etc.)
Some classes are not exported from top-level entry file.
In most cases, you'll also need to install provider packages to use LlamaIndexTS. These are for adding AI models, file readers for ingestion or storing documents, e.g. in vector databases.
The reason is that some classes are only compatible with Node.js runtime,(e.g. `PDFReader`) which uses Node.js specific APIs(like `fs`, `child_process`, `crypto`).
For example, to use the OpenAI LLM, you would install the following package:
If you need any of those classes, you have to import them instead directly though their file path in the package.
Here's an example for importing the `PineconeVectorStore` class:
```typescript
import { PineconeVectorStore } from "llamaindex/vector-store/PineconeVectorStore";
```shell
npm install @llamaindex/openai
pnpm install @llamaindex/openai
yarn add @llamaindex/openai
```
As the `PDFReader` is not working with the Edge runtime, here's how to use the `SimpleDirectoryReader` with the `LlamaParseReader` to load PDFs:
```typescript
import { SimpleDirectoryReader } from "llamaindex/readers/SimpleDirectoryReader";
import { LlamaParseReader } from "llamaindex/readers/LlamaParseReader";
export const DATA_DIR = "./data";
export async function getDocuments() {
const reader = new SimpleDirectoryReader();
// Load PDFs using LlamaParseReader
return await reader.loadData({
directoryPath: DATA_DIR,
fileExtToReader: {
pdf: new LlamaParseReader({ resultType: "markdown" }),
},
});
}
```
> _Note_: Reader classes have to be added explictly to the `fileExtToReader` map in the Edge version of the `SimpleDirectoryReader`.
You'll find a complete example with LlamaIndexTS here: https://github.com/run-llama/create_llama_projects/tree/main/nextjs-edge-llamaparse
## Playground
Check out our NextJS playground at https://llama-playground.vercel.app/. The source is available at https://github.com/run-llama/ts-playground
+13
View File
@@ -1,5 +1,18 @@
# @llamaindex/doc
## 0.0.41
### Patch Changes
- Updated dependencies [1c908fd]
- @llamaindex/openai@0.1.51
- @llamaindex/node-parser@0.0.24
- @llamaindex/workflow@0.0.10
- @llamaindex/readers@1.0.25
- @llamaindex/cloud@2.0.24
- @llamaindex/core@0.4.23
- llamaindex@0.8.37
## 0.0.40
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/doc",
"version": "0.0.40",
"version": "0.0.41",
"private": true,
"scripts": {
"build": "pnpm run build:docs && next build",
@@ -57,4 +57,3 @@ In this example, the Context-Aware Agent uses the retriever to fetch relevant co
## Available Context-Aware Agents
- `OpenAIContextAwareAgent`: A context-aware agent using OpenAI's models.
- `AnthropicContextAwareAgent`: A context-aware agent using Anthropic's models.
@@ -15,7 +15,7 @@ In LlamaIndex, an agent is a semi-autonomous piece of software powered by an LLM
You'll need to have a recent version of [Node.js](https://nodejs.org/en) installed. Then you can install LlamaIndex.TS by running
```bash
npm install llamaindex
npm install llamaindex @llamaindex/openai @llamaindex/readers @llamaindex/huggingface
```
## Choose your model
@@ -40,7 +40,7 @@ We'll be bringing in `SimpleDirectoryReader`, `HuggingFaceEmbedding`, `VectorSto
import { FunctionTool, QueryEngineTool, Settings, VectorStoreIndex } from "llamaindex";
import { OpenAI, OpenAIAgent } from "@llamaindex/openai";
import { HuggingFaceEmbedding } from "@llamaindex/huggingface";
import { SimpleDirectoryReader } from "llamaindex";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
```
### Add an embedding model
@@ -10,7 +10,7 @@ import { Accordion, Accordions } from 'fumadocs-ui/components/accordion';
<Accordions>
<Accordion title="Install @llamaindex/readers">
If you want to only use reader modules, you can install `@llamaindex/readers`
If you want to use the reader module, you need to install `@llamaindex/readers`
<Tabs groupId="install-llamaindex" items={["npm", "yarn", "pnpm"]} persist>
```shell tab="npm"
@@ -31,72 +31,73 @@ import { Accordion, Accordions } from 'fumadocs-ui/components/accordion';
We offer readers for different file formats.
<Tabs groupId="llamaindex-or-readers" items={["llamaindex", "@llamaindex/readers"]} persist>
```ts twoslash tab="llamaindex"
import { CSVReader } from '@llamaindex/readers/csv'
import { PDFReader } from '@llamaindex/readers/pdf'
import { JSONReader } from '@llamaindex/readers/json'
import { MarkdownReader } from '@llamaindex/readers/markdown'
import { HTMLReader } from '@llamaindex/readers/html'
// you can find more readers in the documentation
```
```ts twoslash tab="@llamaindex/readers"
import { CSVReader } from '@llamaindex/readers/csv'
import { PDFReader } from '@llamaindex/readers/pdf'
import { JSONReader } from '@llamaindex/readers/json'
import { MarkdownReader } from '@llamaindex/readers/markdown'
import { HTMLReader } from '@llamaindex/readers/html'
// you can find more readers in the documentation
```
</Tabs>
```ts twoslash
import { CSVReader } from '@llamaindex/readers/csv'
import { PDFReader } from '@llamaindex/readers/pdf'
import { JSONReader } from '@llamaindex/readers/json'
import { MarkdownReader } from '@llamaindex/readers/markdown'
import { HTMLReader } from '@llamaindex/readers/html'
// you can find more readers in the documentation
```
## SimpleDirectoryReader
`SimpleDirectoryReader` is the simplest way to load data from local files into LlamaIndex.
<Tabs groupId="llamaindex-or-readers" items={["llamaindex", "@llamaindex/readers"]} persist>
```ts twoslash
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
```ts twoslash tab="llamaindex"
import { SimpleDirectoryReader } from "llamaindex";
const reader = new SimpleDirectoryReader()
const documents = await reader.loadData("./data")
// ^?
const reader = new SimpleDirectoryReader()
const documents = await reader.loadData("./data")
// ^?
const texts = documents.map(doc => doc.getText())
// ^?
```
```ts twoslash tab="@llamaindex/readers"
import { SimpleDirectoryReader } from "llamaindex";
const reader = new SimpleDirectoryReader()
const documents = await reader.loadData("./data")
// ^?
const texts = documents.map(doc => doc.getText())
// ^?
```
const texts = documents.map(doc => doc.getText())
// ^?
```
## Tips when using in non-Node.js environments
When using `@llamaindex/readers` in a non-Node.js environment (such as Vercel Edge, Cloudflare Workers, etc.)
Some classes are not exported from top-level entry file.
The reason is that some classes are only compatible with Node.js runtime, (e.g. `PDFReader`) which uses Node.js specific APIs (like `fs`, `child_process`, `crypto`).
If you need any of those classes, you have to import them instead directly through their file path in the package.
As the `PDFReader` is not working with the Edge runtime, here's how to use the `SimpleDirectoryReader` with the `LlamaParseReader` to load PDFs:
```typescript
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
import { LlamaParseReader } from "@llamaindex/cloud";
export const DATA_DIR = "./data";
export async function getDocuments() {
const reader = new SimpleDirectoryReader();
// Load PDFs using LlamaParseReader
return await reader.loadData({
directoryPath: DATA_DIR,
fileExtToReader: {
pdf: new LlamaParseReader({ resultType: "markdown" }),
},
});
}
```
> _Note_: Reader classes have to be added explicitly to the `fileExtToReader` map in the Edge version of the `SimpleDirectoryReader`.
You'll find a complete example with LlamaIndexTS here: https://github.com/run-llama/create_llama_projects/tree/main/nextjs-edge-llamaparse
</Tabs>
## Load file natively using Node.js Customization Hooks
We have a helper utility to allow you to import a file in Node.js script.
<Tabs groupId="llamaindex-or-readers" items={["llamaindex", "@llamaindex/readers"]} persist>
```shell tab="llamaindex"
node --import llamaindex/register ./script.js
```
```shell tab="@llamaindex/readers"
node --import @llamaindex/readers/node ./script.js
```
</Tabs>
```shell
node --import @llamaindex/readers/node ./script.js
```
```ts
import csv from './path/to/data.csv';
@@ -12,9 +12,26 @@ const chatEngine = new ContextChatEngine({ retriever });
const response = await chatEngine.chat({ message: query });
```
In short, you can use the chat engine by calling `index.asChatEngine()`. It will return a `ContextChatEngine` to start chatting.
```typescript
const chatEngine = index.asChatEngine();
```
You can also pass in options to the chat engine.
```typescript
const chatEngine = index.asChatEngine({
similarityTopK: 5,
systemPrompt: "You are a helpful assistant.",
});
```
The `chat` function also supports streaming, just add `stream: true` as an option:
```typescript
const chatEngine = index.asChatEngine();
const stream = await chatEngine.chat({ message: query, stream: true });
for await (const chunk of stream) {
process.stdout.write(chunk.response);
@@ -34,7 +34,7 @@ import {
Settings,
} from "llamaindex";
import { OpenAI } from "@llamaindex/openai";
import { SimpleDirectoryReader } from "llamaindex";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
```
## Loading Data
@@ -124,7 +124,7 @@ import {
Settings,
} from "llamaindex";
import { OpenAI } from "@llamaindex/openai";
import { SimpleDirectoryReader } from "llamaindex";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
Settings.llm = new OpenAI();
Settings.nodeParser = new SentenceSplitter({
@@ -13,6 +13,22 @@ When a step function is added to a workflow, you need to specify the input and o
You can create a `Workflow` to do anything! Build an agent, a RAG flow, an extraction flow, or anything else you want.
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
<Tabs groupId="install" items={["npm", "yarn", "pnpm"]} persist>
```shell tab="npm"
npm install @llamaindex/workflow
```
```shell tab="yarn"
yarn add @llamaindex/workflow
```
```shell tab="pnpm"
pnpm add @llamaindex/workflow
```
</Tabs>
## Getting Started
As an illustrative example, let's consider a naive workflow where a joke is generated and then critiqued.
@@ -34,51 +50,59 @@ Events are user-defined classes that extend `WorkflowEvent` and contain arbitrar
```typescript
const llm = new OpenAI();
...
const jokeFlow = new Workflow({ verbose: true });
const jokeFlow = new Workflow<unknown, string, string>();
```
Our workflow is implemented by initiating the `Workflow` class. For simplicity, we created a `OpenAI` llm instance.
Our workflow is implemented by initiating the `Workflow` class with three generic types: the context type (unknown), input type (string), and output type (string). The context type is `unknown`, as we're not using a shared context in this example.
For simplicity, we created an `OpenAI` llm instance that we're using for inference in our workflow.
### Workflow Entry Points
```typescript
const generateJoke = async (_context: Context, ev: StartEvent) => {
const prompt = `Write your best joke about ${ev.data.input}.`;
const generateJoke = async (_: unknown, ev: StartEvent<string>) => {
const prompt = `Write your best joke about ${ev.data}.`;
const response = await llm.complete({ prompt });
return new JokeEvent({ joke: response.text });
};
```
Here, we come to the entry-point of our workflow. While events are user-defined, there are two special-case events, the `StartEvent` and the `StopEvent`. Here, the `StartEvent` signifies where to send the initial workflow input.
Here, we come to the entry-point of our workflow. While events are user-defined, there are two special-case events, the `StartEvent` and the `StopEvent`. These events are predefined, but we can specify the payload type using generic types. We're using `StartEvent<string>` to indicate that we're going to send an input of type string.
The `StartEvent` is a bit of a special object since it can hold arbitrary attributes. Here, we accessed the topic with `ev.data.input`.
At this point, you may have noticed that we haven't explicitly told the workflow what events are handled by which steps.
To do so, we use the `addStep` method which adds a step to the workflow. The first argument is the event type that the step will handle, and the second argument is the previously defined step function:
To add this step to the workflow, we use the `addStep` method with an object specifying the input and output event types:
```typescript
jokeFlow.addStep(StartEvent, generateJoke);
jokeFlow.addStep(
{
inputs: [StartEvent<string>],
outputs: [JokeEvent],
},
generateJoke
);
```
### Workflow Exit Points
```typescript
const critiqueJoke = async (_context: Context, ev: JokeEvent) => {
const critiqueJoke = async (_: unknown, ev: JokeEvent) => {
const prompt = `Give a thorough critique of the following joke: ${ev.data.joke}`;
const response = await llm.complete({ prompt });
return new StopEvent({ result: response.text });
return new StopEvent(response.text);
};
```
Here, we have our second, and last step, in the workflow. We know its the last step because the special `StopEvent` is returned. When the workflow encounters a returned `StopEvent`, it immediately stops the workflow and returns whatever the result was.
Here, we have our second and last step in the workflow. We know it's the last step because the special `StopEvent` is returned. When the workflow encounters a returned `StopEvent`, it immediately stops the workflow and returns the result. Note that we're using the generic type `StopEvent<string>` to indicate that we're returning a string.
In this case, the result is a string, but it could be a map, array, or any other object.
Don't forget to add the step to the workflow:
Add this step to the workflow:
```typescript
jokeFlow.addStep(JokeEvent, critiqueJoke);
jokeFlow.addStep(
{
inputs: [JokeEvent],
outputs: [StopEvent<string>],
},
critiqueJoke
);
```
### Running the Workflow
@@ -90,42 +114,25 @@ console.log(result.data.result);
Lastly, we run the workflow. The `.run()` method is async, so we use await here to wait for the result.
### Validating Workflows
## Working with Shared Context/State
To tell the workflow what events are produced by each step, you can optionally provide a third argument to `addStep` to specify the output event type:
Optionally, you can choose to use a shared context between steps by specifying a context type when creating the workflow. Here's an example where multiple steps access a shared state:
```typescript
jokeFlow.addStep(StartEvent, generateJoke, { outputs: JokeEvent });
jokeFlow.addStep(JokeEvent, critiqueJoke, { outputs: StopEvent });
```
import { HandlerContext } from "@llamaindex/workflow";
To validate a workflow, you need to call the `validate` method:
type MyContextData = {
query: string;
intermediateResults: any[];
}
```typescript
jokeFlow.validate();
```
To automatically validate a workflow when you run it, you can set the `validate` flag to `true` at initialization:
```typescript
const jokeFlow = new Workflow({ verbose: true, validate: true });
```
## Working with Global Context/State
Optionally, you can choose to use global context between steps. For example, maybe multiple steps access the original `query` input from the user. You can store this in global context so that every step has access.
```typescript
import { Context } from "llamaindex";
const query = async (context: Context, ev: MyEvent) => {
const query = async (context: HandlerContext<MyContextData>, ev: MyEvent) => {
// get the query from the context
const query = context.get("query");
const query = context.data.query;
// do something with context and event
const val = ...
const result = ...
// store in context
context.set("key", val);
context.data.intermediateResults.push(val);
return new StopEvent({ result });
};
@@ -138,28 +145,15 @@ The context does more than just hold data, it also provides utilities to buffer
For example, you might have a step that waits for a query and retrieved nodes before synthesizing a response:
```typescript
const synthesize = async (context: Context, ev: QueryEvent | RetrieveEvent) => {
const events = context.collectEvents(ev, [QueryEvent | RetrieveEvent]);
if (!events) {
return;
}
const prompt = events
.map((event) => {
if (event instanceof QueryEvent) {
return `Answer this query using the context provided: ${event.data.query}`;
} else if (event instanceof RetrieveEvent) {
return `Context: ${event.data.context}`;
}
return "";
})
.join("\n");
const synthesize = async (context: Context, ev1: QueryEvent, ev2: RetrieveEvent) => {
const subPrompts = [`Answer this query using the context provided: ${ev1.data.query}`, `Context: ${ev2.data.context}`];
const prompt = subPrompts.join("\n");
const response = await llm.complete({ prompt });
return new StopEvent({ result: response.text });
};
```
Using `ctx.collectEvents()` we can buffer and wait for ALL expected events to arrive. This function will only return events (in the requested order) once all events have arrived.
Passing multiple events, we can buffer and wait for ALL expected events to arrive. The receiving step function will only be called once all events have arrived.
## Manually Triggering Events
+1
View File
@@ -1 +1,2 @@
logs
.temp
+9 -12
View File
@@ -17,23 +17,21 @@ app.post("/llm", async (c) => {
const { message } = await c.req.json();
const { extractText } = await import("@llamaindex/core/utils");
const {
extractText,
QueryEngineTool,
serviceContextFromDefaults,
VectorStoreIndex,
OpenAIAgent,
Settings,
OpenAI,
OpenAIEmbedding,
SentenceSplitter,
} = await import("llamaindex");
const { PineconeVectorStore } = await import(
"llamaindex/vector-store/PineconeVectorStore"
const { OpenAIAgent, OpenAI, OpenAIEmbedding } = await import(
"@llamaindex/openai"
);
const llm = new OpenAI({
const { PineconeVectorStore } = await import("@llamaindex/pinecone");
Settings.llm = new OpenAI({
model: "gpt-4o-mini",
apiKey: c.env.OPENAI_API_KEY,
});
@@ -43,8 +41,7 @@ app.post("/llm", async (c) => {
apiKey: c.env.OPENAI_API_KEY,
});
const serviceContext = serviceContextFromDefaults({
llm,
Settings.nodeParser = new SentenceSplitter({
chunkSize: 8191,
chunkOverlap: 0,
});
@@ -53,7 +50,7 @@ app.post("/llm", async (c) => {
namespace: "8xolsn4ulEQGdhnhP76yCzfLHdOZ",
});
const index = await VectorStoreIndex.fromVectorStore(store, serviceContext);
const index = await VectorStoreIndex.fromVectorStore(store);
const retriever = index.asRetriever({
similarityTopK: 3,
@@ -1,5 +1,11 @@
# @llamaindex/cloudflare-worker-agent-test
## 0.0.133
### Patch Changes
- llamaindex@0.8.37
## 0.0.132
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloudflare-worker-agent-test",
"version": "0.0.132",
"version": "0.0.133",
"type": "module",
"private": true,
"scripts": {
@@ -1,5 +1,12 @@
# @llamaindex/llama-parse-browser-test
## 0.0.44
### Patch Changes
- Updated dependencies [1c908fd]
- @llamaindex/cloud@2.0.24
## 0.0.43
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/llama-parse-browser-test",
"private": true,
"version": "0.0.43",
"version": "0.0.44",
"type": "module",
"scripts": {
"dev": "vite",
+6
View File
@@ -1,5 +1,11 @@
# @llamaindex/next-agent-test
## 0.1.133
### Patch Changes
- llamaindex@0.8.37
## 0.1.132
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-agent-test",
"version": "0.1.132",
"version": "0.1.133",
"private": true,
"scripts": {
"dev": "next dev",
@@ -1,5 +1,11 @@
# test-edge-runtime
## 0.1.132
### Patch Changes
- llamaindex@0.8.37
## 0.1.131
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/nextjs-edge-runtime-test",
"version": "0.1.131",
"version": "0.1.132",
"private": true,
"scripts": {
"dev": "next dev",
@@ -1,5 +1,11 @@
# @llamaindex/next-node-runtime
## 0.0.114
### Patch Changes
- llamaindex@0.8.37
## 0.0.113
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-node-runtime-test",
"version": "0.0.113",
"version": "0.0.114",
"private": true,
"scripts": {
"dev": "next dev",
@@ -9,6 +9,8 @@
},
"dependencies": {
"llamaindex": "workspace:*",
"@llamaindex/huggingface": "workspace:*",
"@llamaindex/readers": "workspace:*",
"next": "15.0.3",
"react": "18.3.1",
"react-dom": "18.3.1"
@@ -1,13 +1,13 @@
"use server";
import { HuggingFaceEmbedding } from "@llamaindex/huggingface";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
import {
OpenAI,
OpenAIAgent,
QueryEngineTool,
Settings,
SimpleDirectoryReader,
VectorStoreIndex,
} from "llamaindex";
import { HuggingFaceEmbedding } from "llamaindex/embeddings/HuggingFaceEmbedding";
Settings.llm = new OpenAI({
apiKey: process.env.NEXT_PUBLIC_OPENAI_KEY ?? "FAKE_KEY_TO_PASS_TESTS",
@@ -1,5 +1,11 @@
# @llamaindex/waku-query-engine-test
## 0.0.133
### Patch Changes
- llamaindex@0.8.37
## 0.0.132
### Patch Changes
+2 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/waku-query-engine-test",
"version": "0.0.132",
"version": "0.0.133",
"type": "module",
"private": true,
"scripts": {
@@ -9,6 +9,7 @@
"start": "waku start"
},
"dependencies": {
"@llamaindex/env": "workspace:*",
"llamaindex": "workspace:*",
"react": "19.0.0-rc-5c56b873-20241107",
"react-dom": "19.0.0-rc-5c56b873-20241107",
@@ -1,13 +1,14 @@
"use server";
import { fs } from "@llamaindex/env";
import { BaseQueryEngine, Document, VectorStoreIndex } from "llamaindex";
import { readFile } from "node:fs/promises";
let _queryEngine: BaseQueryEngine;
async function lazyLoadQueryEngine() {
if (!_queryEngine) {
const path = "node_modules/llamaindex/examples/abramov.txt";
const essay = await readFile(path, "utf-8");
const essay = await fs.readFile(path, "utf-8");
// Create Document object with essay
const document = new Document({ text: essay, id_: path });
+2 -2
View File
@@ -1,7 +1,7 @@
import { Anthropic, AnthropicAgent } from "@llamaindex/anthropic";
import { extractText } from "@llamaindex/core/utils";
import { consola } from "consola";
import { Anthropic, FunctionTool, Settings, type LLM } from "llamaindex";
import { AnthropicAgent } from "llamaindex/agent/anthropic";
import { FunctionTool, Settings, type LLM } from "llamaindex";
import { ok } from "node:assert";
import { beforeEach, test } from "node:test";
import { getWeatherTool, sumNumbersTool } from "./fixtures/tools.js";
+2 -1
View File
@@ -1,6 +1,7 @@
import { ClipEmbedding } from "@llamaindex/clip";
import type { LoadTransformerEvent } from "@llamaindex/env/multi-model";
import { setTransformers } from "@llamaindex/env/multi-model";
import { ClipEmbedding, ImageNode, Settings } from "llamaindex";
import { ImageNode, Settings } from "llamaindex";
import assert from "node:assert";
import { type Mock, test } from "node:test";
+86
View File
@@ -0,0 +1,86 @@
import { execSync } from "node:child_process";
import { mkdir, rm, writeFile } from "node:fs/promises";
import { resolve } from "node:path";
import { test } from "node:test";
import { testRootDir } from "./utils.js";
await test("cjs/esm dual module check", async (t) => {
const esmImports = `import fs from 'node:fs/promises'
import { Document, MetadataMode, VectorStoreIndex } from 'llamaindex'
import { OpenAIEmbedding } from '@llamaindex/openai'
import { Settings } from '@llamaindex/core/global'`;
const cjsRequire = `const fs = require('fs').promises
const { Document, MetadataMode, VectorStoreIndex } = require('llamaindex')
const { OpenAIEmbedding } = require('@llamaindex/openai')
const { Settings } = require('@llamaindex/core/global')`;
const mainCode = `
async function main() {
Settings.embedModel = new OpenAIEmbedding({
model: 'text-embedding-3-small',
apiKey: '${process.env.OPENAI_API_KEY}',
})
const model = Settings.embedModel
if (model == null) {
process.exit(-1)
}
}
main().catch(console.error)`;
t.before(async () => {
await mkdir(resolve(testRootDir, ".temp"), {
recursive: true,
mode: 0o755,
});
});
t.after(async () => {
await rm(resolve(testRootDir, ".temp"), {
recursive: true,
force: true,
});
});
await t.test("cjs", async () => {
const cjsCode = `${cjsRequire}\n${mainCode}`;
const filePath = resolve(
testRootDir,
".temp",
`${crypto.randomUUID()}.cjs`,
);
await writeFile(filePath, cjsCode, "utf-8");
execSync(`${process.argv[0]} ${filePath}`, {
cwd: process.cwd(),
});
});
await t.test("esm", async () => {
const esmCode = `${esmImports}\n${mainCode}`;
const filePath = resolve(
testRootDir,
".temp",
`${crypto.randomUUID()}.mjs`,
);
await writeFile(filePath, esmCode, "utf-8");
execSync(`${process.argv[0]} ${filePath}`, {
cwd: process.cwd(),
});
});
const specialConditions = ["edge-light", "workerd", "react-server"];
for (const condition of specialConditions) {
await t.test(condition, async () => {
const esmCode = `${esmImports}\n${mainCode}`;
const filePath = resolve(
testRootDir,
".temp",
`${crypto.randomUUID()}.mjs`,
);
await writeFile(filePath, esmCode, "utf-8");
execSync(`${process.argv[0]} ${filePath} -C ${condition}`, {
cwd: process.cwd(),
});
});
}
});
+1 -1
View File
@@ -1,6 +1,6 @@
import { PGVectorStore } from "@llamaindex/postgres";
import { config } from "dotenv";
import { Document, VectorStoreQueryMode } from "llamaindex";
import { PGVectorStore } from "llamaindex/vector-store/PGVectorStore";
import assert from "node:assert";
import { test } from "node:test";
import pg from "pg";
+3 -5
View File
@@ -1,10 +1,8 @@
import { Document, MetadataMode } from "@llamaindex/core/schema";
import { OpenAIEmbedding } from "@llamaindex/openai";
import { PineconeVectorStore } from "@llamaindex/pinecone";
import { config } from "dotenv";
import {
OpenAIEmbedding,
PineconeVectorStore,
VectorStoreIndex,
} from "llamaindex";
import { VectorStoreIndex } from "llamaindex";
import assert from "node:assert";
import { test } from "node:test";
+4
View File
@@ -14,6 +14,10 @@
"@llamaindex/env": "workspace:*",
"@llamaindex/ollama": "workspace:*",
"@llamaindex/openai": "workspace:*",
"@llamaindex/pinecone": "workspace:*",
"@llamaindex/postgres": "workspace:*",
"@llamaindex/clip": "workspace:*",
"@llamaindex/anthropic": "workspace:*",
"@types/node": "^22.9.0",
"@types/pg": "^8.11.8",
"@huggingface/transformers": "^3.0.2",
+36
View File
@@ -1,5 +1,41 @@
# examples
## 0.1.3
### Patch Changes
- Updated dependencies [1c908fd]
- @llamaindex/pinecone@0.0.4
- @llamaindex/postgres@0.0.32
- @llamaindex/weaviate@0.0.4
- @llamaindex/mongodb@0.0.4
- @llamaindex/upstash@0.0.4
- @llamaindex/chroma@0.0.4
- @llamaindex/milvus@0.0.4
- @llamaindex/qdrant@0.0.4
- @llamaindex/astra@0.0.4
- @llamaindex/azure@0.0.4
- @llamaindex/huggingface@0.0.35
- @llamaindex/mixedbread@0.0.4
- @llamaindex/portkey-ai@0.0.32
- @llamaindex/anthropic@0.0.33
- @llamaindex/deepinfra@0.0.35
- @llamaindex/replicate@0.0.32
- @llamaindex/mistral@0.0.4
- @llamaindex/cohere@0.0.4
- @llamaindex/google@0.0.6
- @llamaindex/ollama@0.0.39
- @llamaindex/openai@0.1.51
- @llamaindex/vercel@0.0.10
- @llamaindex/clip@0.0.35
- @llamaindex/groq@0.0.50
- @llamaindex/vllm@0.0.21
- @llamaindex/node-parser@0.0.24
- @llamaindex/workflow@0.0.10
- @llamaindex/readers@1.0.25
- @llamaindex/cloud@2.0.24
- llamaindex@0.8.37
## 0.1.2
### Patch Changes
+2 -5
View File
@@ -1,9 +1,6 @@
import { OpenAIAgent } from "@llamaindex/openai";
import {
QueryEngineTool,
SimpleDirectoryReader,
VectorStoreIndex,
} from "llamaindex";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
import { QueryEngineTool, VectorStoreIndex } from "llamaindex";
async function main() {
// Load the documents
+1 -1
View File
@@ -1,9 +1,9 @@
import { OpenAIAgent } from "@llamaindex/openai";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
import {
FunctionTool,
MetadataMode,
NodeWithScore,
SimpleDirectoryReader,
VectorStoreIndex,
} from "llamaindex";
+2 -5
View File
@@ -1,9 +1,6 @@
import { OpenAIAgent } from "@llamaindex/openai";
import {
QueryEngineTool,
SimpleDirectoryReader,
VectorStoreIndex,
} from "llamaindex";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
import { QueryEngineTool, VectorStoreIndex } from "llamaindex";
async function main() {
// Load the documents
+2 -3
View File
@@ -1,5 +1,5 @@
import { AstraDBVectorStore } from "@llamaindex/astra";
import { VectorStoreIndex, serviceContextFromDefaults } from "llamaindex";
import { VectorStoreIndex } from "llamaindex";
const collectionName = "movie_reviews";
@@ -8,8 +8,7 @@ async function main() {
const astraVS = new AstraDBVectorStore({ contentKey: "reviewtext" });
await astraVS.connect(collectionName);
const ctx = serviceContextFromDefaults();
const index = await VectorStoreIndex.fromVectorStore(astraVS, ctx);
const index = await VectorStoreIndex.fromVectorStore(astraVS);
const retriever = await index.asRetriever({ similarityTopK: 20 });
+15
View File
@@ -0,0 +1,15 @@
import { Document, KeywordTableIndex } from "llamaindex";
import essay from "../essay";
async function main() {
const document = new Document({ text: essay });
const index = await KeywordTableIndex.fromDocuments([document]);
const chatEngine = index.asChatEngine();
const response = await chatEngine.chat({
message: "What is Harsh Mistress?",
});
console.log(response.message.content);
}
main().catch(console.error);
+17
View File
@@ -0,0 +1,17 @@
import { Document, SummaryIndex, SummaryRetrieverMode } from "llamaindex";
import essay from "../essay";
async function main() {
const document = new Document({ text: essay });
const index = await SummaryIndex.fromDocuments([document]);
const chatEngine = index.asChatEngine({
mode: SummaryRetrieverMode.LLM,
});
const response = await chatEngine.chat({
message: "Summary about the author",
});
console.log(response.message.content);
}
main().catch(console.error);
@@ -0,0 +1,15 @@
import { Document, VectorStoreIndex } from "llamaindex";
import essay from "../essay";
async function main() {
const document = new Document({ text: essay });
const index = await VectorStoreIndex.fromDocuments([document]);
const chatEngine = index.asChatEngine({ similarityTopK: 5 });
const response = await chatEngine.chat({
message: "What did I work on in February 2021?",
});
console.log(response.message.content);
}
main().catch(console.error);
+1 -1
View File
@@ -1,4 +1,4 @@
import { SimpleDirectoryReader } from "llamaindex";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
function callback(
category: string,
+1 -2
View File
@@ -30,13 +30,12 @@ async function main() {
// Split text and create embeddings. Store them in a VectorStoreIndex
// var storageContext = await storageContextFromDefaults({});
// var serviceContext = serviceContextFromDefaults({});
// const docStore = storageContext.docStore;
// for (const doc of documents) {
// docStore.setDocumentHash(doc.id_, doc.hash);
// }
// const nodes = serviceContext.nodeParser.getNodesFromDocuments(documents);
// const nodes = Settings.nodeParser.getNodesFromDocuments(documents);
// console.log(nodes);
//
+1 -1
View File
@@ -1,9 +1,9 @@
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
import {
ImageDocument,
JinaAIEmbedding,
similarity,
SimilarityType,
SimpleDirectoryReader,
} from "llamaindex";
import path from "path";
+2 -1
View File
@@ -1,4 +1,5 @@
import { Settings, SimpleDirectoryReader, VectorStoreIndex } from "llamaindex";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
import { Settings, VectorStoreIndex } from "llamaindex";
import path from "path";
import { getStorageContext } from "./storage";
+9 -10
View File
@@ -1,17 +1,16 @@
import { storageContextFromDefaults } from "llamaindex";
import { ClipEmbedding } from "@llamaindex/clip";
import { path } from "@llamaindex/env";
import { SimpleVectorStore, storageContextFromDefaults } from "llamaindex";
// set up store context with two vector stores, one for text, the other for images
export async function getStorageContext() {
return await storageContextFromDefaults({
persistDir: "storage",
storeImages: true,
// if storeImages is true, the following vector store will be added
// vectorStores: {
// IMAGE: SimpleVectorStore.fromPersistDir(
// `${persistDir}/images`,
// fs,
// new ClipEmbedding(),
// ),
// },
vectorStores: {
IMAGE: await SimpleVectorStore.fromPersistDir(
path.join("storage", "images"),
new ClipEmbedding(),
),
},
});
}
+1 -2
View File
@@ -1,5 +1,4 @@
import { OllamaEmbedding } from "@llamaindex/ollama";
import { Ollama } from "llamaindex/llm/ollama";
import { Ollama, OllamaEmbedding } from "@llamaindex/ollama";
(async () => {
const llm = new Ollama({
+38 -37
View File
@@ -1,63 +1,64 @@
{
"name": "@llamaindex/examples",
"version": "0.1.3",
"private": true,
"version": "0.1.2",
"scripts": {
"lint": "eslint .",
"start": "tsx ./starter.ts"
},
"dependencies": {
"@ai-sdk/openai": "^1.0.5",
"@azure/cosmos": "^4.1.1",
"@azure/identity": "^4.4.1",
"@azure/search-documents": "^12.1.0",
"@llamaindex/vercel": "^0.0.9",
"@llamaindex/workflow": "^0.0.9",
"@llamaindex/anthropic": "workspace:* || ^0.0.33",
"@llamaindex/astra": "workspace:* || ^0.0.4",
"@llamaindex/azure": "workspace:* || ^0.0.4",
"@llamaindex/chroma": "workspace:* || ^0.0.4",
"@llamaindex/clip": "workspace:* || ^0.0.35",
"@llamaindex/cloud": "workspace:* || ^2.0.24",
"@llamaindex/cohere": "workspace:* || ^0.0.4",
"@llamaindex/deepinfra": "workspace:* || ^0.0.35",
"@llamaindex/env": "workspace:* || ^0.1.27",
"@llamaindex/google": "workspace:* || ^0.0.6",
"@llamaindex/groq": "workspace:* || ^0.0.50",
"@llamaindex/huggingface": "workspace:* || ^0.0.35",
"@llamaindex/milvus": "workspace:* || ^0.0.4",
"@llamaindex/mistral": "workspace:* || ^0.0.4",
"@llamaindex/mixedbread": "workspace:* || ^0.0.4",
"@llamaindex/mongodb": "workspace:* || ^0.0.4",
"@llamaindex/node-parser": "workspace:* || ^0.0.24",
"@llamaindex/ollama": "workspace:* || ^0.0.39",
"@llamaindex/openai": "workspace:* || ^0.1.51",
"@llamaindex/pinecone": "workspace:* || ^0.0.4",
"@llamaindex/portkey-ai": "workspace:* || ^0.0.32",
"@llamaindex/postgres": "workspace:* || ^0.0.32",
"@llamaindex/qdrant": "workspace:* || ^0.0.4",
"@llamaindex/readers": "workspace:* || ^1.0.25",
"@llamaindex/replicate": "workspace:* || ^0.0.32",
"@llamaindex/upstash": "workspace:* || ^0.0.4",
"@llamaindex/vercel": "workspace:* || ^0.0.10",
"@llamaindex/vllm": "workspace:* || ^0.0.21",
"@llamaindex/weaviate": "workspace:* || ^0.0.4",
"@llamaindex/workflow": "workspace:* || ^0.0.10",
"@notionhq/client": "^2.2.15",
"@pinecone-database/pinecone": "^4.0.0",
"@vercel/postgres": "^0.10.0",
"ai": "^4.0.0",
"ajv": "^8.17.1",
"commander": "^12.1.0",
"dotenv": "^16.4.5",
"js-tiktoken": "^1.0.14",
"llamaindex": "^0.8.36",
"llamaindex": "workspace:* || ^0.8.37",
"mongodb": "6.7.0",
"postgres": "^3.4.4",
"ajv": "^8.17.1",
"wikipedia": "^2.1.2",
"@llamaindex/openai": "workspace:*",
"@llamaindex/cloud": "workspace:*",
"@llamaindex/anthropic": "workspace:*",
"@llamaindex/clip": "workspace:*",
"@llamaindex/azure": "workspace:*",
"@llamaindex/deepinfra": "workspace:*",
"@llamaindex/groq": "workspace:*",
"@llamaindex/huggingface": "workspace:*",
"@llamaindex/node-parser": "workspace:*",
"@llamaindex/ollama": "workspace:*",
"@llamaindex/portkey-ai": "workspace:*",
"@llamaindex/readers": "workspace:*",
"@llamaindex/replicate": "workspace:*",
"@llamaindex/vllm": "workspace:*",
"@llamaindex/postgres": "workspace:*",
"@llamaindex/astra": "workspace:*",
"@llamaindex/milvus": "workspace:*",
"@llamaindex/chroma": "workspace:*",
"@llamaindex/mongodb": "workspace:*",
"@llamaindex/pinecone": "workspace:*",
"@llamaindex/qdrant": "workspace:*",
"@llamaindex/upstash": "workspace:*",
"@llamaindex/weaviate": "workspace:*",
"@llamaindex/google": "workspace:*",
"@llamaindex/mistral": "workspace:*",
"@llamaindex/mixedbread": "workspace:*",
"@llamaindex/cohere": "workspace:*"
"wikipedia": "^2.1.2"
},
"devDependencies": {
"@types/node": "^22.9.0",
"tsx": "^4.19.0",
"typescript": "^5.7.2"
},
"scripts": {
"lint": "eslint .",
"start": "tsx ./starter.ts"
},
"stackblitz": {
"startCommand": "npm start"
}
+2 -5
View File
@@ -1,11 +1,8 @@
// load-docs.ts
import { PineconeVectorStore } from "@llamaindex/pinecone";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
import fs from "fs/promises";
import {
SimpleDirectoryReader,
storageContextFromDefaults,
VectorStoreIndex,
} from "llamaindex";
import { storageContextFromDefaults, VectorStoreIndex } from "llamaindex";
async function getSourceFilenames(sourceDir: string) {
return await fs
+3 -3
View File
@@ -19,9 +19,9 @@
"start:obsidian": "node --import tsx ./src/obsidian.ts"
},
"dependencies": {
"@llamaindex/readers": "*",
"llamaindex": "*",
"@llamaindex/cloud": "*"
"@llamaindex/cloud": "workspace:* || ^2.0.24",
"@llamaindex/readers": "workspace:* || ^1.0.25",
"llamaindex": "workspace:* || ^0.8.37"
},
"devDependencies": {
"@types/node": "^22.9.0",
@@ -1,10 +1,10 @@
import { TextFileReader } from "@llamaindex/readers/text";
import type { Document, Metadata } from "llamaindex";
import {
FILE_EXT_TO_READER,
FileReader,
SimpleDirectoryReader,
} from "llamaindex";
} from "@llamaindex/readers/directory";
import { TextFileReader } from "@llamaindex/readers/text";
import type { Document, Metadata } from "llamaindex";
import { FileReader } from "llamaindex";
class ZipReader extends FileReader {
loadDataAsContent(fileContent: Uint8Array): Promise<Document<Metadata>[]> {
@@ -1,5 +1,6 @@
import { LlamaParseReader } from "@llamaindex/cloud";
import { SimpleDirectoryReader, VectorStoreIndex } from "llamaindex";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
import { VectorStoreIndex } from "llamaindex";
async function main() {
const reader = new SimpleDirectoryReader();
@@ -1,6 +1,4 @@
import { SimpleDirectoryReader } from "llamaindex";
// or
// import { SimpleDirectoryReader } from 'llamaindex'
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
const reader = new SimpleDirectoryReader();
const documents = await reader.loadData("../data");
+1 -1
View File
@@ -1,9 +1,9 @@
import { OpenAI } from "@llamaindex/openai";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
import {
RouterQueryEngine,
SentenceSplitter,
Settings,
SimpleDirectoryReader,
SummaryIndex,
VectorStoreIndex,
} from "llamaindex";
+1 -1
View File
@@ -14,6 +14,7 @@ import {
MetadataIndexFieldType,
} from "@llamaindex/azure";
import { OpenAI, OpenAIEmbedding } from "@llamaindex/openai";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
import dotenv from "dotenv";
import {
Document,
@@ -22,7 +23,6 @@ import {
Metadata,
NodeWithScore,
Settings,
SimpleDirectoryReader,
storageContextFromDefaults,
TextNode,
VectorStoreIndex,
+2 -5
View File
@@ -1,10 +1,7 @@
// load-docs.ts
import { PGVectorStore } from "@llamaindex/postgres";
import {
SimpleDirectoryReader,
storageContextFromDefaults,
VectorStoreIndex,
} from "llamaindex";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
import { storageContextFromDefaults, VectorStoreIndex } from "llamaindex";
import fs from "node:fs/promises";
async function getSourceFilenames(sourceDir: string) {
+1 -1
View File
@@ -1,6 +1,6 @@
import { PGVectorStore } from "@llamaindex/postgres";
import dotenv from "dotenv";
import { Document, VectorStoreQueryMode } from "llamaindex";
import { PGVectorStore } from "llamaindex/vector-store/PGVectorStore";
import postgres from "postgres";
dotenv.config();
+1 -1
View File
@@ -1,5 +1,5 @@
import { PGVectorStore } from "@llamaindex/postgres";
import { VectorStoreIndex } from "llamaindex";
import { PGVectorStore } from "llamaindex/vector-store/PGVectorStore";
async function main() {
// eslint-disable-next-line @typescript-eslint/no-require-imports
+2 -5
View File
@@ -1,10 +1,7 @@
import { PGVectorStore } from "@llamaindex/postgres";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
import dotenv from "dotenv";
import {
SimpleDirectoryReader,
storageContextFromDefaults,
VectorStoreIndex,
} from "llamaindex";
import { storageContextFromDefaults, VectorStoreIndex } from "llamaindex";
dotenv.config();
+1 -1
View File
@@ -1,8 +1,8 @@
// https://vercel.com/docs/storage/vercel-postgres/sdk
import { PGVectorStore } from "@llamaindex/postgres";
import { sql } from "@vercel/postgres";
import dotenv from "dotenv";
import { Document, VectorStoreQueryMode } from "llamaindex";
import { PGVectorStore } from "llamaindex/vector-store/PGVectorStore";
dotenv.config();
+10 -9
View File
@@ -2,8 +2,9 @@
"name": "@llamaindex/monorepo",
"private": true,
"scripts": {
"build": "turbo run build --filter=\"./packages/*\" --filter=\"./packages/providers/*\"",
"dev": "turbo run dev --filter=\"./packages/*\" --filter=\"./packages/providers/*\"",
"clean": "find . -type d \\( -name .turbo -o -name node_modules -o -name dist -o -name .next -o -name lib \\) -exec rm -rf {} +",
"build": "turbo run build --filter=\"./packages/*\" --filter=\"./packages/providers/**\"",
"dev": "turbo run dev --filter=\"./packages/*\" --filter=\"./packages/providers/**\"",
"format": "prettier --ignore-unknown --cache --check .",
"format:write": "prettier --ignore-unknown --write .",
"lint": "turbo run lint",
@@ -15,7 +16,8 @@
"release": "pnpm run build && changeset publish",
"release-snapshot": "pnpm run build && changeset publish --tag snapshot",
"new-version": "changeset version && pnpm format:write && pnpm run build",
"new-snapshot": "pnpm run build && changeset version --snapshot"
"new-snapshot": "pnpm run build && changeset version --snapshot",
"lint-staged": "lint-staged"
},
"devDependencies": {
"@changesets/cli": "^2.27.5",
@@ -36,11 +38,10 @@
},
"packageManager": "pnpm@9.12.3",
"lint-staged": {
"(!apps/docs/i18n/**/docusaurus-plugin-content-docs/current/api/*).{js,jsx,ts,tsx,md}": "prettier --write"
},
"pnpm": {
"patchedDependencies": {
"bunchee": "patches/bunchee.patch"
}
"*.{js,jsx,ts,tsx}": [
"prettier --check",
"eslint"
],
"*.{json,md}": "prettier --check"
}
}
+7
View File
@@ -1,5 +1,12 @@
# @llamaindex/autotool
## 5.0.37
### Patch Changes
- 1c908fd: Revert previous release (not working with CJS)
- llamaindex@0.8.37
## 5.0.36
### Patch Changes
@@ -1,5 +1,13 @@
# @llamaindex/autotool-01-node-example
## 0.0.80
### Patch Changes
- Updated dependencies [1c908fd]
- @llamaindex/autotool@5.0.37
- llamaindex@0.8.37
## 0.0.79
### Patch Changes
@@ -13,5 +13,5 @@
"scripts": {
"start": "node --import tsx --import @llamaindex/autotool/node ./src/index.ts"
},
"version": "0.0.79"
"version": "0.0.80"
}
@@ -1,5 +1,13 @@
# @llamaindex/autotool-02-next-example
## 0.1.124
### Patch Changes
- Updated dependencies [1c908fd]
- @llamaindex/autotool@5.0.37
- llamaindex@0.8.37
## 0.1.123
### Patch Changes
@@ -82,11 +82,8 @@
}
.background-gradient {
background-color: #fff;
background-image: radial-gradient(
at 21% 11%,
rgba(186, 186, 233, 0.53) 0,
transparent 50%
),
background-image:
radial-gradient(at 21% 11%, rgba(186, 186, 233, 0.53) 0, transparent 50%),
radial-gradient(at 85% 0, hsla(46, 57%, 78%, 0.52) 0, transparent 50%),
radial-gradient(at 91% 36%, rgba(194, 213, 255, 0.68) 0, transparent 50%),
radial-gradient(at 8% 40%, rgba(251, 218, 239, 0.46) 0, transparent 50%);
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/autotool-02-next-example",
"private": true,
"version": "0.1.123",
"version": "0.1.124",
"scripts": {
"dev": "next dev",
"build": "next build",
+7 -2
View File
@@ -1,7 +1,12 @@
{
"name": "@llamaindex/autotool",
"type": "module",
"version": "5.0.36",
"repository": {
"type": "git",
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
"directory": "packages/autotool"
},
"version": "5.0.37",
"description": "auto transpile your JS function to LLM Agent compatible",
"files": [
"dist",
@@ -70,7 +75,7 @@
"@swc/types": "^0.1.12",
"@types/json-schema": "^7.0.15",
"@types/node": "^22.9.0",
"bunchee": "6.3.3",
"bunchee": "6.2.0",
"llamaindex": "workspace:*",
"next": "15.0.3",
"rollup": "^4.28.1",
+9
View File
@@ -1,5 +1,14 @@
# @llamaindex/cloud
## 2.0.24
### Patch Changes
- 1c908fd: Revert previous release (not working with CJS)
- Updated dependencies [1c908fd]
- @llamaindex/core@0.4.23
- @llamaindex/env@0.1.27
## 2.0.23
### Patch Changes
+6 -15
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloud",
"version": "2.0.23",
"version": "2.0.24",
"type": "module",
"license": "MIT",
"scripts": {
@@ -24,10 +24,7 @@
"types": "./api/dist/index.d.ts",
"default": "./api/dist/index.js"
},
"default": {
"types": "./api/dist/index.d.ts",
"default": "./api/dist/index.js"
}
"default": "./api/dist/index.js"
},
"./reader": {
"require": {
@@ -38,10 +35,7 @@
"types": "./reader/dist/index.d.ts",
"default": "./reader/dist/index.js"
},
"default": {
"types": "./reader/dist/index.d.ts",
"default": "./reader/dist/index.js"
}
"default": "./reader/dist/index.js"
},
".": {
"require": {
@@ -52,15 +46,12 @@
"types": "./reader/dist/index.d.ts",
"default": "./reader/dist/index.js"
},
"default": {
"types": "./reader/dist/index.d.ts",
"default": "./reader/dist/index.js"
}
"default": "./reader/dist/index.js"
}
},
"repository": {
"type": "git",
"url": "https://github.com/run-llama/LlamaIndexTS.git",
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
"directory": "packages/cloud"
},
"devDependencies": {
@@ -68,7 +59,7 @@
"@hey-api/openapi-ts": "^0.61.0",
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*",
"bunchee": "6.3.3"
"bunchee": "6.2.0"
},
"peerDependencies": {
"@llamaindex/core": "workspace:*",
+9
View File
@@ -1,5 +1,14 @@
# @llamaindex/community
## 0.0.81
### Patch Changes
- 1c908fd: Revert previous release (not working with CJS)
- Updated dependencies [1c908fd]
- @llamaindex/core@0.4.23
- @llamaindex/env@0.1.27
## 0.0.80
### Patch Changes
+3 -3
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/community",
"description": "Community package for LlamaIndexTS",
"version": "0.0.80",
"version": "0.0.81",
"type": "module",
"types": "dist/type/index.d.ts",
"main": "dist/cjs/index.js",
@@ -34,7 +34,7 @@
],
"repository": {
"type": "git",
"url": "https://github.com/run-llama/LlamaIndexTS.git",
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
"directory": "packages/community"
},
"scripts": {
@@ -43,7 +43,7 @@
},
"devDependencies": {
"@types/node": "^22.9.0",
"bunchee": "6.3.3"
"bunchee": "6.2.0"
},
"dependencies": {
"@aws-sdk/client-bedrock-agent-runtime": "^3.706.0",
+8
View File
@@ -1,5 +1,13 @@
# @llamaindex/core
## 0.4.23
### Patch Changes
- 1c908fd: Revert previous release (not working with CJS)
- Updated dependencies [1c908fd]
- @llamaindex/env@0.1.27
## 0.4.22
### Patch Changes
+28 -103
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/core",
"type": "module",
"version": "0.4.22",
"version": "0.4.23",
"description": "LlamaIndex Core Module",
"exports": {
"./agent": {
@@ -13,10 +13,7 @@
"types": "./agent/dist/index.d.ts",
"default": "./agent/dist/index.js"
},
"default": {
"types": "./agent/dist/index.d.ts",
"default": "./agent/dist/index.js"
}
"default": "./agent/dist/index.js"
},
"./objects": {
"require": {
@@ -27,10 +24,7 @@
"types": "./objects/dist/index.d.ts",
"default": "./objects/dist/index.js"
},
"default": {
"types": "./objects/dist/index.d.ts",
"default": "./objects/dist/index.js"
}
"default": "./objects/dist/index.js"
},
"./node-parser": {
"require": {
@@ -41,10 +35,7 @@
"types": "./node-parser/dist/index.d.ts",
"default": "./node-parser/dist/index.js"
},
"default": {
"types": "./node-parser/dist/index.d.ts",
"default": "./node-parser/dist/index.js"
}
"default": "./node-parser/dist/index.js"
},
"./query-engine": {
"require": {
@@ -55,10 +46,7 @@
"types": "./query-engine/dist/index.d.ts",
"default": "./query-engine/dist/index.js"
},
"default": {
"types": "./query-engine/dist/index.d.ts",
"default": "./query-engine/dist/index.js"
}
"default": "./query-engine/dist/index.js"
},
"./llms": {
"require": {
@@ -69,10 +57,7 @@
"types": "./llms/dist/index.d.ts",
"default": "./llms/dist/index.js"
},
"default": {
"types": "./llms/dist/index.d.ts",
"default": "./llms/dist/index.js"
}
"default": "./llms/dist/index.js"
},
"./decorator": {
"require": {
@@ -83,10 +68,7 @@
"types": "./decorator/dist/index.d.ts",
"default": "./decorator/dist/index.js"
},
"default": {
"types": "./decorator/dist/index.d.ts",
"default": "./decorator/dist/index.js"
}
"default": "./decorator/dist/index.js"
},
"./embeddings": {
"require": {
@@ -97,10 +79,7 @@
"types": "./embeddings/dist/index.d.ts",
"default": "./embeddings/dist/index.js"
},
"default": {
"types": "./embeddings/dist/index.d.ts",
"default": "./embeddings/dist/index.js"
}
"default": "./embeddings/dist/index.js"
},
"./global": {
"require": {
@@ -111,10 +90,7 @@
"types": "./global/dist/index.d.ts",
"default": "./global/dist/index.js"
},
"default": {
"types": "./global/dist/index.d.ts",
"default": "./global/dist/index.js"
}
"default": "./global/dist/index.js"
},
"./schema": {
"require": {
@@ -125,10 +101,7 @@
"types": "./schema/dist/index.d.ts",
"default": "./schema/dist/index.js"
},
"default": {
"types": "./schema/dist/index.d.ts",
"default": "./schema/dist/index.js"
}
"default": "./schema/dist/index.js"
},
"./utils": {
"require": {
@@ -139,10 +112,7 @@
"types": "./utils/dist/index.d.ts",
"default": "./utils/dist/index.js"
},
"default": {
"types": "./utils/dist/index.d.ts",
"default": "./utils/dist/index.js"
}
"default": "./utils/dist/index.js"
},
"./prompts": {
"require": {
@@ -153,10 +123,7 @@
"types": "./prompts/dist/index.d.ts",
"default": "./prompts/dist/index.js"
},
"default": {
"types": "./prompts/dist/index.d.ts",
"default": "./prompts/dist/index.js"
}
"default": "./prompts/dist/index.js"
},
"./indices": {
"require": {
@@ -167,10 +134,7 @@
"types": "./indices/dist/index.d.ts",
"default": "./indices/dist/index.js"
},
"default": {
"types": "./indices/dist/index.d.ts",
"default": "./indices/dist/index.js"
}
"default": "./indices/dist/index.js"
},
"./workflow": {
"require": {
@@ -181,10 +145,7 @@
"types": "./workflow/dist/index.d.ts",
"default": "./workflow/dist/index.js"
},
"default": {
"types": "./workflow/dist/index.d.ts",
"default": "./workflow/dist/index.js"
}
"default": "./workflow/dist/index.js"
},
"./memory": {
"require": {
@@ -195,10 +156,7 @@
"types": "./memory/dist/index.d.ts",
"default": "./memory/dist/index.js"
},
"default": {
"types": "./memory/dist/index.d.ts",
"default": "./memory/dist/index.js"
}
"default": "./memory/dist/index.js"
},
"./storage/chat-store": {
"require": {
@@ -209,10 +167,7 @@
"types": "./storage/chat-store/dist/index.d.ts",
"default": "./storage/chat-store/dist/index.js"
},
"default": {
"types": "./storage/chat-store/dist/index.d.ts",
"default": "./storage/chat-store/dist/index.js"
}
"default": "./storage/chat-store/dist/index.js"
},
"./storage/doc-store": {
"require": {
@@ -223,10 +178,7 @@
"types": "./storage/doc-store/dist/index.d.ts",
"default": "./storage/doc-store/dist/index.js"
},
"default": {
"types": "./storage/doc-store/dist/index.d.ts",
"default": "./storage/doc-store/dist/index.js"
}
"default": "./storage/doc-store/dist/index.js"
},
"./storage/index-store": {
"require": {
@@ -237,10 +189,7 @@
"types": "./storage/index-store/dist/index.d.ts",
"default": "./storage/index-store/dist/index.js"
},
"default": {
"types": "./storage/index-store/dist/index.d.ts",
"default": "./storage/index-store/dist/index.js"
}
"default": "./storage/index-store/dist/index.js"
},
"./storage/kv-store": {
"require": {
@@ -251,10 +200,7 @@
"types": "./storage/kv-store/dist/index.d.ts",
"default": "./storage/kv-store/dist/index.js"
},
"default": {
"types": "./storage/kv-store/dist/index.d.ts",
"default": "./storage/kv-store/dist/index.js"
}
"default": "./storage/kv-store/dist/index.js"
},
"./response-synthesizers": {
"require": {
@@ -265,10 +211,7 @@
"types": "./response-synthesizers/dist/index.d.ts",
"default": "./response-synthesizers/dist/index.js"
},
"default": {
"types": "./response-synthesizers/dist/index.d.ts",
"default": "./response-synthesizers/dist/index.js"
}
"default": "./response-synthesizers/dist/index.js"
},
"./chat-engine": {
"require": {
@@ -279,10 +222,7 @@
"types": "./chat-engine/dist/index.d.ts",
"default": "./chat-engine/dist/index.js"
},
"default": {
"types": "./chat-engine/dist/index.d.ts",
"default": "./chat-engine/dist/index.js"
}
"default": "./chat-engine/dist/index.js"
},
"./retriever": {
"require": {
@@ -293,10 +233,7 @@
"types": "./retriever/dist/index.d.ts",
"default": "./retriever/dist/index.js"
},
"default": {
"types": "./retriever/dist/index.d.ts",
"default": "./retriever/dist/index.js"
}
"default": "./retriever/dist/index.js"
},
"./vector-store": {
"require": {
@@ -307,10 +244,7 @@
"types": "./vector-store/dist/index.d.ts",
"default": "./vector-store/dist/index.js"
},
"default": {
"types": "./vector-store/dist/index.d.ts",
"default": "./vector-store/dist/index.js"
}
"default": "./vector-store/dist/index.js"
},
"./tools": {
"require": {
@@ -321,10 +255,7 @@
"types": "./tools/dist/index.d.ts",
"default": "./tools/dist/index.js"
},
"default": {
"types": "./tools/dist/index.d.ts",
"default": "./tools/dist/index.js"
}
"default": "./tools/dist/index.js"
},
"./data-structs": {
"require": {
@@ -335,10 +266,7 @@
"types": "./data-structs/dist/index.d.ts",
"default": "./data-structs/dist/index.js"
},
"default": {
"types": "./data-structs/dist/index.d.ts",
"default": "./data-structs/dist/index.js"
}
"default": "./data-structs/dist/index.js"
},
"./postprocessor": {
"require": {
@@ -349,10 +277,7 @@
"types": "./postprocessor/dist/index.d.ts",
"default": "./postprocessor/dist/index.js"
},
"default": {
"types": "./postprocessor/dist/index.d.ts",
"default": "./postprocessor/dist/index.js"
}
"default": "./postprocessor/dist/index.js"
}
},
"files": [
@@ -386,12 +311,12 @@
"repository": {
"type": "git",
"directory": "packages/core",
"url": "https://github.com/run-llama/LlamaIndexTS.git"
"url": "git+https://github.com/run-llama/LlamaIndexTS.git"
},
"devDependencies": {
"@edge-runtime/vm": "^4.0.4",
"ajv": "^8.17.1",
"bunchee": "6.3.3",
"bunchee": "6.2.0",
"happy-dom": "^15.11.6",
"natural": "^8.0.1"
},
@@ -20,6 +20,16 @@ import type {
import { DefaultContextGenerator } from "./default-context-generator";
import type { ContextGenerator } from "./type";
export type ContextChatEngineOptions = {
retriever: BaseRetriever;
chatModel?: LLM | undefined;
chatHistory?: ChatMessage[] | undefined;
contextSystemPrompt?: ContextSystemPrompt | undefined;
nodePostprocessors?: BaseNodePostprocessor[] | undefined;
systemPrompt?: string | undefined;
contextRole?: MessageType | undefined;
};
/**
* 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,
@@ -35,15 +45,7 @@ export class ContextChatEngine extends PromptMixin implements BaseChatEngine {
return this.memory.getMessages();
}
constructor(init: {
retriever: BaseRetriever;
chatModel?: LLM | undefined;
chatHistory?: ChatMessage[] | undefined;
contextSystemPrompt?: ContextSystemPrompt | undefined;
nodePostprocessors?: BaseNodePostprocessor[] | undefined;
systemPrompt?: string | undefined;
contextRole?: MessageType | undefined;
}) {
constructor(init: ContextChatEngineOptions) {
super();
this.chatModel = init.chatModel ?? Settings.llm;
this.memory = new ChatMemoryBuffer({ chatHistory: init?.chatHistory });
+4 -1
View File
@@ -4,6 +4,9 @@ export {
type NonStreamingChatEngineParams,
type StreamingChatEngineParams,
} from "./base";
export { ContextChatEngine } from "./context-chat-engine";
export {
ContextChatEngine,
type ContextChatEngineOptions,
} from "./context-chat-engine";
export { DefaultContextGenerator } from "./default-context-generator";
export { SimpleChatEngine } from "./simple-chat-engine";
-1
View File
@@ -16,7 +16,6 @@ export const DEFAULT_DOC_STORE_PERSIST_FILENAME = "doc_store.json";
export const DEFAULT_VECTOR_STORE_PERSIST_FILENAME = "vector_store.json";
export const DEFAULT_GRAPH_STORE_PERSIST_FILENAME = "graph_store.json";
export const DEFAULT_NAMESPACE = "docstore";
export const DEFAULT_IMAGE_VECTOR_NAMESPACE = "images";
//#endregion
//#region llama cloud
export const DEFAULT_PROJECT_NAME = "Default";
+6
View File
@@ -1,5 +1,11 @@
# @llamaindex/env
## 0.1.27
### Patch Changes
- 1c908fd: Revert previous release (not working with CJS)
## 0.1.26
### Patch Changes
+5 -11
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/env",
"description": "environment wrapper, supports all JS environment including node, deno, bun, edge runtime, and cloudflare worker",
"version": "0.1.26",
"version": "0.1.27",
"type": "module",
"types": "dist/index.d.ts",
"module": "dist/index.js",
@@ -72,10 +72,7 @@
"types": "./tokenizers/dist/index.d.cts",
"default": "./tokenizers/dist/index.cjs"
},
"default": {
"types": "./tokenizers/dist/index.d.ts",
"default": "./tokenizers/dist/index.js"
}
"default": "./tokenizers/dist/index.js"
},
"./multi-model": {
"workerd": {
@@ -98,10 +95,7 @@
"types": "./multi-model/dist/index.d.cts",
"default": "./multi-model/dist/index.cjs"
},
"default": {
"types": "./multi-model/dist/index.d.ts",
"default": "./multi-model/dist/index.js"
}
"default": "./multi-model/dist/index.js"
}
},
"files": [
@@ -113,7 +107,7 @@
],
"repository": {
"type": "git",
"url": "https://github.com/run-llama/LlamaIndexTS.git",
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
"directory": "packages/env"
},
"scripts": {
@@ -125,7 +119,7 @@
"@huggingface/transformers": "^3.0.2",
"@types/node": "^22.9.0",
"@types/readable-stream": "^4.0.15",
"bunchee": "6.3.3",
"bunchee": "6.2.0",
"gpt-tokenizer": "^2.6.2",
"pathe": "^1.1.2",
"vitest": "^2.1.5"
+6
View File
@@ -1,5 +1,11 @@
# @llamaindex/experimental
## 0.0.149
### Patch Changes
- llamaindex@0.8.37
## 0.0.148
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/experimental",
"description": "Experimental package for LlamaIndexTS",
"version": "0.0.148",
"version": "0.0.149",
"type": "module",
"types": "dist/type/index.d.ts",
"main": "dist/cjs/index.js",
@@ -42,7 +42,7 @@
],
"repository": {
"type": "git",
"url": "https://github.com/run-llama/LlamaIndexTS.git",
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
"directory": "packages/experimental"
},
"scripts": {
+35
View File
@@ -1,5 +1,40 @@
# llamaindex
## 0.8.37
### Patch Changes
- Updated dependencies [1c908fd]
- @llamaindex/pinecone@0.0.4
- @llamaindex/postgres@0.0.32
- @llamaindex/weaviate@0.0.4
- @llamaindex/mongodb@0.0.4
- @llamaindex/upstash@0.0.4
- @llamaindex/chroma@0.0.4
- @llamaindex/milvus@0.0.4
- @llamaindex/qdrant@0.0.4
- @llamaindex/astra@0.0.4
- @llamaindex/azure@0.0.4
- @llamaindex/huggingface@0.0.35
- @llamaindex/mixedbread@0.0.4
- @llamaindex/portkey-ai@0.0.32
- @llamaindex/anthropic@0.0.33
- @llamaindex/deepinfra@0.0.35
- @llamaindex/replicate@0.0.32
- @llamaindex/mistral@0.0.4
- @llamaindex/cohere@0.0.4
- @llamaindex/google@0.0.6
- @llamaindex/ollama@0.0.39
- @llamaindex/openai@0.1.51
- @llamaindex/clip@0.0.35
- @llamaindex/groq@0.0.50
- @llamaindex/vllm@0.0.21
- @llamaindex/node-parser@0.0.24
- @llamaindex/readers@1.0.25
- @llamaindex/cloud@2.0.24
- @llamaindex/core@0.4.23
- @llamaindex/env@0.1.27
## 0.8.36
### Patch Changes
+2 -26
View File
@@ -1,6 +1,6 @@
{
"name": "llamaindex",
"version": "0.8.36",
"version": "0.8.37",
"license": "MIT",
"type": "module",
"keywords": [
@@ -20,35 +20,11 @@
"llamaindex"
],
"dependencies": {
"@llamaindex/anthropic": "workspace:*",
"@llamaindex/clip": "workspace:*",
"@llamaindex/cloud": "workspace:*",
"@llamaindex/core": "workspace:*",
"@llamaindex/deepinfra": "workspace:*",
"@llamaindex/env": "workspace:*",
"@llamaindex/groq": "workspace:*",
"@llamaindex/huggingface": "workspace:*",
"@llamaindex/node-parser": "workspace:*",
"@llamaindex/ollama": "workspace:*",
"@llamaindex/openai": "workspace:*",
"@llamaindex/portkey-ai": "workspace:*",
"@llamaindex/readers": "workspace:*",
"@llamaindex/replicate": "workspace:*",
"@llamaindex/vllm": "workspace:*",
"@llamaindex/postgres": "workspace:*",
"@llamaindex/azure": "workspace:*",
"@llamaindex/astra": "workspace:*",
"@llamaindex/milvus": "workspace:*",
"@llamaindex/chroma": "workspace:*",
"@llamaindex/mongodb": "workspace:*",
"@llamaindex/pinecone": "workspace:*",
"@llamaindex/qdrant": "workspace:*",
"@llamaindex/upstash": "workspace:*",
"@llamaindex/weaviate": "workspace:*",
"@llamaindex/google": "workspace:*",
"@llamaindex/mistral": "workspace:*",
"@llamaindex/mixedbread": "workspace:*",
"@llamaindex/cohere": "workspace:*",
"@types/lodash": "^4.17.7",
"@types/node": "^22.9.0",
"ajv": "^8.17.1",
@@ -144,7 +120,7 @@
],
"repository": {
"type": "git",
"url": "https://github.com/run-llama/LlamaIndexTS.git",
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
"directory": "packages/llamaindex"
},
"scripts": {
-67
View File
@@ -1,67 +0,0 @@
import type { BaseEmbedding } from "@llamaindex/core/embeddings";
import { PromptHelper } from "@llamaindex/core/indices";
import type { LLM } from "@llamaindex/core/llms";
import {
type NodeParser,
SentenceSplitter,
} from "@llamaindex/core/node-parser";
import { OpenAI, OpenAIEmbedding } from "@llamaindex/openai";
/**
* The ServiceContext is a collection of components that are used in different parts of the application.
*
* @deprecated This will no longer supported, please use `Settings` instead.
*/
export interface ServiceContext {
llm: LLM;
promptHelper: PromptHelper;
embedModel: BaseEmbedding;
nodeParser: NodeParser;
// llamaLogger: any;
}
export interface ServiceContextOptions {
llm?: LLM;
promptHelper?: PromptHelper;
embedModel?: BaseEmbedding;
nodeParser?: NodeParser;
// NodeParser arguments
chunkSize?: number;
chunkOverlap?: number;
}
export function serviceContextFromDefaults(options?: ServiceContextOptions) {
const serviceContext: ServiceContext = {
llm: options?.llm ?? new OpenAI(),
embedModel: options?.embedModel ?? new OpenAIEmbedding(),
nodeParser:
options?.nodeParser ??
new SentenceSplitter({
chunkSize: options?.chunkSize,
chunkOverlap: options?.chunkOverlap,
}),
promptHelper: options?.promptHelper ?? new PromptHelper(),
};
return serviceContext;
}
export function serviceContextFromServiceContext(
serviceContext: ServiceContext,
options: ServiceContextOptions,
) {
const newServiceContext = { ...serviceContext };
if (options.llm) {
newServiceContext.llm = options.llm;
}
if (options.promptHelper) {
newServiceContext.promptHelper = options.promptHelper;
}
if (options.embedModel) {
newServiceContext.embedModel = options.embedModel;
}
if (options.nodeParser) {
newServiceContext.nodeParser = options.nodeParser;
}
return newServiceContext;
}
-39
View File
@@ -12,7 +12,6 @@ import {
SentenceSplitter,
} from "@llamaindex/core/node-parser";
import { AsyncLocalStorage } from "@llamaindex/env";
import type { ServiceContext } from "./ServiceContext.js";
export type PromptConfig = {
llm?: string;
@@ -163,42 +162,4 @@ class GlobalSettings implements Config {
}
}
export const llmFromSettingsOrContext = (serviceContext?: ServiceContext) => {
if (serviceContext?.llm) {
return serviceContext.llm;
}
return Settings.llm;
};
export const nodeParserFromSettingsOrContext = (
serviceContext?: ServiceContext,
) => {
if (serviceContext?.nodeParser) {
return serviceContext.nodeParser;
}
return Settings.nodeParser;
};
export const embedModelFromSettingsOrContext = (
serviceContext?: ServiceContext,
) => {
if (serviceContext?.embedModel) {
return serviceContext.embedModel;
}
return Settings.embedModel;
};
export const promptHelperFromSettingsOrContext = (
serviceContext?: ServiceContext,
) => {
if (serviceContext?.promptHelper) {
return serviceContext.promptHelper;
}
return Settings.promptHelper;
};
export const Settings = new GlobalSettings();
@@ -1,7 +0,0 @@
import { AnthropicAgent } from "@llamaindex/anthropic";
import { withContextAwareness } from "./contextAwareMixin.js";
export const AnthropicContextAwareAgent = withContextAwareness(AnthropicAgent);
export type { ContextAwareConfig } from "./contextAwareMixin.js";
export * from "@llamaindex/anthropic";
@@ -1,7 +1,3 @@
import {
AnthropicAgent,
type AnthropicAgentParams,
} from "@llamaindex/anthropic";
import type {
NonStreamingChatEngineParams,
StreamingChatEngineParams,
@@ -20,29 +16,21 @@ export interface ContextAwareState {
retrievedContext: string | null;
}
export type SupportedAgent = typeof OpenAIAgent | typeof AnthropicAgent;
export type AgentParams<T> = T extends typeof OpenAIAgent
? OpenAIAgentParams
: T extends typeof AnthropicAgent
? AnthropicAgentParams
: never;
// TODO: support any LLMAgent
export type SupportedAgent = typeof OpenAIAgent;
export type AgentParams = OpenAIAgentParams;
/**
* ContextAwareAgentRunner enhances the base AgentRunner with the ability to retrieve and inject relevant context
* for each query. This allows the agent to access and utilize appropriate information from a given index or retriever,
* providing more informed and context-specific responses to user queries.
*/
export function withContextAwareness<T extends SupportedAgent>(Base: T) {
export function withContextAwareness(Base: SupportedAgent) {
return class ContextAwareAgent extends Base {
public readonly contextRetriever: BaseRetriever;
public retrievedContext: string | null = null;
declare public chatHistory: T extends typeof OpenAIAgent
? OpenAIAgent["chatHistory"]
: T extends typeof AnthropicAgent
? AnthropicAgent["chatHistory"]
: never;
constructor(params: AgentParams<T> & ContextAwareConfig) {
constructor(params: AgentParams & ContextAwareConfig) {
super(params);
this.contextRetriever = params.contextRetriever;
}
+2 -17
View File
@@ -1,21 +1,6 @@
export * from "@llamaindex/core/agent";
export {
OllamaAgent,
OllamaAgentWorker,
type OllamaAgentParams,
} from "@llamaindex/ollama";
export {
AnthropicAgent,
AnthropicAgentWorker,
AnthropicContextAwareAgent,
type AnthropicAgentParams,
} from "./anthropic.js";
export {
OpenAIAgent,
OpenAIAgentWorker,
OpenAIContextAwareAgent,
type OpenAIAgentParams,
} from "./openai.js";
export { OpenAIContextAwareAgent } from "./openai.js";
export {
ReACTAgentWorker,
ReActAgent,
-3
View File
@@ -1,5 +1,3 @@
import type { ServiceContext } from "../ServiceContext.js";
export type ClientParams = {
apiKey?: string | undefined;
baseUrl?: string | undefined;
@@ -9,5 +7,4 @@ export type CloudConstructorParams = {
name: string;
projectName: string;
organizationId?: string | undefined;
serviceContext?: ServiceContext | undefined;
} & ClientParams;
@@ -1 +0,0 @@
export * from "@llamaindex/clip";

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