mirror of
https://github.com/run-llama/LlamaIndexTS.git
synced 2026-07-16 07:14:29 -04:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 34d2080962 | |||
| bb0ae5e321 | |||
| f4588bc770 | |||
| b49037612d | |||
| a87efb91a4 | |||
| 6a4a73760b | |||
| 1564831158 | |||
| 4d94f6e50d | |||
| 7bd5d9340c | |||
| d924c63162 | |||
| 83cff1277c | |||
| 1c908fd852 |
@@ -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
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@llamaindex/doc": patch
|
||||
---
|
||||
|
||||
docs: update chat engine docs
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@llamaindex/doc": patch
|
||||
---
|
||||
|
||||
docs: update workflow doc
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
"@llamaindex/core": patch
|
||||
"llamaindex": patch
|
||||
---
|
||||
|
||||
feat: asChatEngine function for index
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"llamaindex": minor
|
||||
"@llamaindex/cloudflare-hono": patch
|
||||
"@llamaindex/examples": patch
|
||||
---
|
||||
|
||||
Remove deprecated ServiceContext
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
"llamaindex": minor
|
||||
"@llamaindex/doc": minor
|
||||
"@llamaindex/examples": minor
|
||||
"@llamaindex/unit-test": minor
|
||||
---
|
||||
|
||||
Remove readers package from llamaindex
|
||||
@@ -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/*
|
||||
|
||||
@@ -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
@@ -1,3 +1 @@
|
||||
pnpm format
|
||||
pnpm lint
|
||||
npx lint-staged
|
||||
pnpm run lint-staged
|
||||
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
LlamaIndexTS
|
||||
Vendored
+2
-1
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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 +1,2 @@
|
||||
logs
|
||||
.temp
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
# @llamaindex/next-agent-test
|
||||
|
||||
## 0.1.133
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.37
|
||||
|
||||
## 0.1.132
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 });
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
|
||||
@@ -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,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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,9 +1,9 @@
|
||||
import { OpenAIAgent } from "@llamaindex/openai";
|
||||
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
|
||||
import {
|
||||
FunctionTool,
|
||||
MetadataMode,
|
||||
NodeWithScore,
|
||||
SimpleDirectoryReader,
|
||||
VectorStoreIndex,
|
||||
} from "llamaindex";
|
||||
|
||||
|
||||
@@ -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,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 });
|
||||
|
||||
|
||||
@@ -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);
|
||||
@@ -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,4 +1,4 @@
|
||||
import { SimpleDirectoryReader } from "llamaindex";
|
||||
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
|
||||
|
||||
function callback(
|
||||
category: string,
|
||||
|
||||
+1
-2
@@ -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,9 +1,9 @@
|
||||
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
|
||||
import {
|
||||
ImageDocument,
|
||||
JinaAIEmbedding,
|
||||
similarity,
|
||||
SimilarityType,
|
||||
SimpleDirectoryReader,
|
||||
} from "llamaindex";
|
||||
import path from "path";
|
||||
|
||||
|
||||
@@ -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";
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,9 +1,9 @@
|
||||
import { OpenAI } from "@llamaindex/openai";
|
||||
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
|
||||
import {
|
||||
RouterQueryEngine,
|
||||
SentenceSplitter,
|
||||
Settings,
|
||||
SimpleDirectoryReader,
|
||||
SummaryIndex,
|
||||
VectorStoreIndex,
|
||||
} from "llamaindex";
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,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,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
|
||||
|
||||
@@ -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,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
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:*",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
@@ -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,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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
Vendored
+6
@@ -1,5 +1,11 @@
|
||||
# @llamaindex/env
|
||||
|
||||
## 0.1.27
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 1c908fd: Revert previous release (not working with CJS)
|
||||
|
||||
## 0.1.26
|
||||
|
||||
### Patch Changes
|
||||
|
||||
Vendored
+5
-11
@@ -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"
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
# @llamaindex/experimental
|
||||
|
||||
## 0.0.149
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.37
|
||||
|
||||
## 0.0.148
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user