mirror of
https://github.com/run-llama/LlamaIndexTS.git
synced 2026-07-18 16:44:33 -04:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1054c3382a | |||
| e60328b086 | |||
| 3371dfb89f | |||
| 2065a16a07 | |||
| 5dae534f8d | |||
| 3d503cb810 | |||
| daf8522bec | |||
| 223f3136b4 | |||
| c6bad7d951 | |||
| 630b425545 |
@@ -1,5 +1,26 @@
|
||||
# docs
|
||||
|
||||
## 0.0.121
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.16
|
||||
|
||||
## 0.0.120
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [3d503cb]
|
||||
- Updated dependencies [5dae534]
|
||||
- llamaindex@0.8.15
|
||||
|
||||
## 0.0.119
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [630b425]
|
||||
- llamaindex@0.8.14
|
||||
|
||||
## 0.0.118
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "docs",
|
||||
"version": "0.0.118",
|
||||
"version": "0.0.121",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"docusaurus": "docusaurus",
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
# @llamaindex/doc
|
||||
|
||||
## 0.0.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [e60328b]
|
||||
- @llamaindex/readers@1.0.12
|
||||
- llamaindex@0.8.16
|
||||
|
||||
## 0.0.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [3d503cb]
|
||||
- Updated dependencies [5dae534]
|
||||
- llamaindex@0.8.15
|
||||
|
||||
## 0.0.17
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [630b425]
|
||||
- llamaindex@0.8.14
|
||||
|
||||
## 0.0.16
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -6,6 +6,7 @@ const withMDX = createMDX();
|
||||
const config = {
|
||||
reactStrictMode: true,
|
||||
transpilePackages: ["monaco-editor"],
|
||||
serverExternalPackages: ["@huggingface/transformers"],
|
||||
webpack: (config, { isServer }) => {
|
||||
if (Array.isArray(config.target) && config.target.includes("web")) {
|
||||
config.target = ["web", "es2020"];
|
||||
@@ -26,6 +27,7 @@ const config = {
|
||||
}),
|
||||
);
|
||||
}
|
||||
config.resolve.alias["replicate"] = false;
|
||||
return config;
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@llamaindex/doc",
|
||||
"version": "0.0.16",
|
||||
"version": "0.0.19",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "pnpm run build:docs && next build",
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import { Message } from "ai";
|
||||
import { simulateReadableStream } from "ai/test";
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
import { llm } from "@/lib/utils";
|
||||
import { LlamaIndexAdapter, type Message } from "ai";
|
||||
import { Settings, SimpleChatEngine, type ChatMessage } from "llamaindex";
|
||||
import { NextResponse, type NextRequest } from "next/server";
|
||||
|
||||
Settings.llm = llm;
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
try {
|
||||
@@ -12,19 +15,16 @@ export async function POST(request: NextRequest) {
|
||||
{ status: 400 },
|
||||
);
|
||||
}
|
||||
const mockResponse = `Hello! This is a mock response to: ${userMessage.content}`;
|
||||
return new Response(
|
||||
simulateReadableStream({
|
||||
chunkDelayInMs: 20,
|
||||
values: mockResponse.split(" ").map((t) => `0:"${t} "\n`),
|
||||
}).pipeThrough(new TextEncoderStream()),
|
||||
{
|
||||
status: 200,
|
||||
headers: {
|
||||
"X-Vercel-AI-Data-Stream": "v1",
|
||||
"Content-Type": "text/plain; charset=utf-8",
|
||||
},
|
||||
},
|
||||
|
||||
const chatEngine = new SimpleChatEngine();
|
||||
|
||||
return LlamaIndexAdapter.toDataStreamResponse(
|
||||
await chatEngine.chat({
|
||||
message: userMessage.content,
|
||||
chatHistory: messages as ChatMessage[],
|
||||
stream: true,
|
||||
}),
|
||||
{},
|
||||
);
|
||||
} catch (error) {
|
||||
const detail = (error as Error).message;
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { llm } from "@/lib/utils";
|
||||
import { Markdown } from "@llamaindex/chat-ui/widgets";
|
||||
import { generateId, Message, parseStreamPart } from "ai";
|
||||
import { generateId, Message } from "ai";
|
||||
import { createAI, createStreamableUI, getMutableAIState } from "ai/rsc";
|
||||
import { simulateReadableStream } from "ai/test";
|
||||
import { type ChatMessage, Settings, SimpleChatEngine } from "llamaindex";
|
||||
import { ReactNode } from "react";
|
||||
|
||||
type ServerState = Message[];
|
||||
@@ -10,6 +11,8 @@ type Actions = {
|
||||
chat: (message: Message) => Promise<Message & { display: ReactNode }>;
|
||||
};
|
||||
|
||||
Settings.llm = llm;
|
||||
|
||||
export const AI = createAI<ServerState, FrontendState, Actions>({
|
||||
initialAIState: [],
|
||||
initialUIState: [],
|
||||
@@ -20,31 +23,30 @@ export const AI = createAI<ServerState, FrontendState, Actions>({
|
||||
const aiState = getMutableAIState<typeof AI>();
|
||||
aiState.update((prev) => [...prev, message]);
|
||||
|
||||
const mockResponse = `Hello! This is a mock response to: ${message.content}`;
|
||||
const responseStream = simulateReadableStream({
|
||||
chunkDelayInMs: 20,
|
||||
values: mockResponse.split(" ").map((t) => `0:"${t} "\n`),
|
||||
});
|
||||
|
||||
const uiStream = createStreamableUI();
|
||||
const chatEngine = new SimpleChatEngine();
|
||||
const assistantMessage: Message = {
|
||||
id: generateId(),
|
||||
role: "assistant",
|
||||
content: "",
|
||||
};
|
||||
|
||||
responseStream.pipeTo(
|
||||
new WritableStream({
|
||||
write: async (message) => {
|
||||
assistantMessage.content += parseStreamPart(message).value;
|
||||
uiStream.update(<Markdown content={assistantMessage.content} />);
|
||||
},
|
||||
close: () => {
|
||||
aiState.done([...aiState.get(), assistantMessage]);
|
||||
uiStream.done();
|
||||
},
|
||||
}),
|
||||
);
|
||||
// run the async function without blocking
|
||||
(async () => {
|
||||
const chatResponse = await chatEngine.chat({
|
||||
stream: true,
|
||||
message: message.content,
|
||||
chatHistory: aiState.get() as ChatMessage[],
|
||||
});
|
||||
|
||||
for await (const chunk of chatResponse) {
|
||||
assistantMessage.content += chunk.delta;
|
||||
uiStream.update(<Markdown content={assistantMessage.content} />);
|
||||
}
|
||||
|
||||
aiState.done([...aiState.get(), assistantMessage]);
|
||||
uiStream.done();
|
||||
})();
|
||||
|
||||
return {
|
||||
...assistantMessage,
|
||||
|
||||
@@ -85,6 +85,33 @@ const Footer = () => {
|
||||
<Text as="span">SharePoint</Text>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="https://llamaindex.ai/llamacloud-aws-s3-data-loading-for-generative-ai"
|
||||
data-tracking-variant="link"
|
||||
data-tracking-section="footer"
|
||||
>
|
||||
<Text as="span">AWS S3</Text>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="https://llamaindex.ai/llamacloud-azure-blob-storage-data-loading-for-generative-ai"
|
||||
data-tracking-variant="link"
|
||||
data-tracking-section="footer"
|
||||
>
|
||||
<Text as="span">Azure Blob Storage</Text>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="https://llamaindex.ai/llamacloud-google-drive-data-loading-for-generative-ai"
|
||||
data-tracking-variant="link"
|
||||
data-tracking-section="footer"
|
||||
>
|
||||
<Text as="span">Google Drive</Text>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
@@ -171,11 +198,6 @@ const Footer = () => {
|
||||
<Text as="span">SEC Insights</Text>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://chat.llamaindex.ai/">
|
||||
<Text as="span">Chat LlamaIndex</Text>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://github.com/run-llama/llamabot">
|
||||
<Text as="span">LlamaBot</Text>
|
||||
|
||||
@@ -1,6 +1,34 @@
|
||||
import { clsx, type ClassValue } from "clsx"
|
||||
import { twMerge } from "tailwind-merge"
|
||||
import { clsx, type ClassValue } from "clsx";
|
||||
import { LLM, LLMMetadata } from "llamaindex";
|
||||
import { twMerge } from "tailwind-merge";
|
||||
|
||||
export function cn(...inputs: ClassValue[]) {
|
||||
return twMerge(clsx(inputs))
|
||||
}
|
||||
|
||||
class MockLLM {
|
||||
metadata: LLMMetadata = {
|
||||
model: "MockLLM",
|
||||
temperature: 0.5,
|
||||
topP: 0.5,
|
||||
contextWindow: 1024,
|
||||
tokenizer: undefined,
|
||||
};
|
||||
|
||||
chat() {
|
||||
const mockResponse = "Hello! This is a mock response";
|
||||
return Promise.resolve(
|
||||
new ReadableStream({
|
||||
async start(controller) {
|
||||
for (const char of mockResponse) {
|
||||
controller.enqueue({ delta: char });
|
||||
await new Promise((resolve) => setTimeout(resolve, 20));
|
||||
}
|
||||
controller.close();
|
||||
},
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export const llm = new MockLLM() as unknown as LLM;
|
||||
@@ -1,5 +1,26 @@
|
||||
# @llamaindex/cloudflare-worker-agent-test
|
||||
|
||||
## 0.0.112
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.16
|
||||
|
||||
## 0.0.111
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [3d503cb]
|
||||
- Updated dependencies [5dae534]
|
||||
- llamaindex@0.8.15
|
||||
|
||||
## 0.0.110
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [630b425]
|
||||
- llamaindex@0.8.14
|
||||
|
||||
## 0.0.109
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@llamaindex/cloudflare-worker-agent-test",
|
||||
"version": "0.0.109",
|
||||
"version": "0.0.112",
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
|
||||
@@ -1,5 +1,26 @@
|
||||
# @llamaindex/next-agent-test
|
||||
|
||||
## 0.1.112
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.16
|
||||
|
||||
## 0.1.111
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [3d503cb]
|
||||
- Updated dependencies [5dae534]
|
||||
- llamaindex@0.8.15
|
||||
|
||||
## 0.1.110
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [630b425]
|
||||
- llamaindex@0.8.14
|
||||
|
||||
## 0.1.109
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@llamaindex/next-agent-test",
|
||||
"version": "0.1.109",
|
||||
"version": "0.1.112",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
|
||||
@@ -1,5 +1,26 @@
|
||||
# test-edge-runtime
|
||||
|
||||
## 0.1.111
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.16
|
||||
|
||||
## 0.1.110
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [3d503cb]
|
||||
- Updated dependencies [5dae534]
|
||||
- llamaindex@0.8.15
|
||||
|
||||
## 0.1.109
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [630b425]
|
||||
- llamaindex@0.8.14
|
||||
|
||||
## 0.1.108
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@llamaindex/nextjs-edge-runtime-test",
|
||||
"version": "0.1.108",
|
||||
"version": "0.1.111",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
|
||||
@@ -1,5 +1,26 @@
|
||||
# @llamaindex/next-node-runtime
|
||||
|
||||
## 0.0.93
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.16
|
||||
|
||||
## 0.0.92
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [3d503cb]
|
||||
- Updated dependencies [5dae534]
|
||||
- llamaindex@0.8.15
|
||||
|
||||
## 0.0.91
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [630b425]
|
||||
- llamaindex@0.8.14
|
||||
|
||||
## 0.0.90
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@llamaindex/next-node-runtime-test",
|
||||
"version": "0.0.90",
|
||||
"version": "0.0.93",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
|
||||
@@ -1,5 +1,26 @@
|
||||
# @llamaindex/waku-query-engine-test
|
||||
|
||||
## 0.0.112
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.16
|
||||
|
||||
## 0.0.111
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [3d503cb]
|
||||
- Updated dependencies [5dae534]
|
||||
- llamaindex@0.8.15
|
||||
|
||||
## 0.0.110
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [630b425]
|
||||
- llamaindex@0.8.14
|
||||
|
||||
## 0.0.109
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@llamaindex/waku-query-engine-test",
|
||||
"version": "0.0.109",
|
||||
"version": "0.0.112",
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
|
||||
@@ -1,5 +1,26 @@
|
||||
# @llamaindex/autotool
|
||||
|
||||
## 5.0.16
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.16
|
||||
|
||||
## 5.0.15
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [3d503cb]
|
||||
- Updated dependencies [5dae534]
|
||||
- llamaindex@0.8.15
|
||||
|
||||
## 5.0.14
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [630b425]
|
||||
- llamaindex@0.8.14
|
||||
|
||||
## 5.0.13
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,5 +1,29 @@
|
||||
# @llamaindex/autotool-01-node-example
|
||||
|
||||
## 0.0.59
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.16
|
||||
- @llamaindex/autotool@5.0.16
|
||||
|
||||
## 0.0.58
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [3d503cb]
|
||||
- Updated dependencies [5dae534]
|
||||
- llamaindex@0.8.15
|
||||
- @llamaindex/autotool@5.0.15
|
||||
|
||||
## 0.0.57
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [630b425]
|
||||
- llamaindex@0.8.14
|
||||
- @llamaindex/autotool@5.0.14
|
||||
|
||||
## 0.0.56
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -13,5 +13,5 @@
|
||||
"scripts": {
|
||||
"start": "node --import tsx --import @llamaindex/autotool/node ./src/index.ts"
|
||||
},
|
||||
"version": "0.0.56"
|
||||
"version": "0.0.59"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,29 @@
|
||||
# @llamaindex/autotool-02-next-example
|
||||
|
||||
## 0.1.103
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.16
|
||||
- @llamaindex/autotool@5.0.16
|
||||
|
||||
## 0.1.102
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [3d503cb]
|
||||
- Updated dependencies [5dae534]
|
||||
- llamaindex@0.8.15
|
||||
- @llamaindex/autotool@5.0.15
|
||||
|
||||
## 0.1.101
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [630b425]
|
||||
- llamaindex@0.8.14
|
||||
- @llamaindex/autotool@5.0.14
|
||||
|
||||
## 0.1.100
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@llamaindex/autotool-02-next-example",
|
||||
"private": true,
|
||||
"version": "0.1.100",
|
||||
"version": "0.1.103",
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
"build": "next build",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@llamaindex/autotool",
|
||||
"type": "module",
|
||||
"version": "5.0.13",
|
||||
"version": "5.0.16",
|
||||
"description": "auto transpile your JS function to LLM Agent compatible",
|
||||
"files": [
|
||||
"dist",
|
||||
|
||||
@@ -1,5 +1,26 @@
|
||||
# @llamaindex/experimental
|
||||
|
||||
## 0.0.128
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- llamaindex@0.8.16
|
||||
|
||||
## 0.0.127
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [3d503cb]
|
||||
- Updated dependencies [5dae534]
|
||||
- llamaindex@0.8.15
|
||||
|
||||
## 0.0.126
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [630b425]
|
||||
- llamaindex@0.8.14
|
||||
|
||||
## 0.0.125
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@llamaindex/experimental",
|
||||
"description": "Experimental package for LlamaIndexTS",
|
||||
"version": "0.0.125",
|
||||
"version": "0.0.128",
|
||||
"type": "module",
|
||||
"types": "dist/type/index.d.ts",
|
||||
"main": "dist/cjs/index.js",
|
||||
|
||||
@@ -1,5 +1,25 @@
|
||||
# llamaindex
|
||||
|
||||
## 0.8.16
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [e60328b]
|
||||
- @llamaindex/readers@1.0.12
|
||||
|
||||
## 0.8.15
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 3d503cb: Update azure cosmos db
|
||||
- 5dae534: fix: propagate queryStr to concrete vectorStore
|
||||
|
||||
## 0.8.14
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 630b425: feat: add Azure CosmosDB NoSql Chat store
|
||||
|
||||
## 0.8.13
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "llamaindex",
|
||||
"version": "0.8.13",
|
||||
"version": "0.8.16",
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"keywords": [
|
||||
|
||||
@@ -18,6 +18,7 @@ import {
|
||||
type NodeWithScore,
|
||||
} from "@llamaindex/core/schema";
|
||||
import type { BaseIndexStore } from "@llamaindex/core/storage/index-store";
|
||||
import { extractText } from "@llamaindex/core/utils";
|
||||
import type { ServiceContext } from "../../ServiceContext.js";
|
||||
import { nodeParserFromSettingsOrContext } from "../../Settings.js";
|
||||
import { RetrieverQueryEngine } from "../../engines/query/RetrieverQueryEngine.js";
|
||||
@@ -449,8 +450,13 @@ export class VectorIndexRetriever extends BaseRetriever {
|
||||
filters?: MetadataFilters,
|
||||
): Promise<NodeWithScore[]> {
|
||||
// convert string message to multi-modal format
|
||||
|
||||
let queryStr = query;
|
||||
if (typeof query === "string") {
|
||||
query = [{ type: "text", text: query }];
|
||||
queryStr = query;
|
||||
query = [{ type: "text", text: queryStr }];
|
||||
} else {
|
||||
queryStr = extractText(query);
|
||||
}
|
||||
// overwrite embed model if specified, otherwise use the one from the vector store
|
||||
const embedModel = this.index.embedModel ?? vectorStore.embedModel;
|
||||
@@ -460,6 +466,7 @@ export class VectorIndexRetriever extends BaseRetriever {
|
||||
const queryEmbedding = await embedModel.getQueryEmbedding(item);
|
||||
if (queryEmbedding) {
|
||||
const result = await vectorStore.query({
|
||||
queryStr,
|
||||
queryEmbedding,
|
||||
mode: VectorStoreQueryMode.DEFAULT,
|
||||
similarityTopK: this.topK[type]!,
|
||||
|
||||
@@ -0,0 +1,345 @@
|
||||
import { CosmosClient, type Container, type Database } from "@azure/cosmos";
|
||||
import { DefaultAzureCredential, type TokenCredential } from "@azure/identity";
|
||||
import type {
|
||||
ChatMessage,
|
||||
MessageContent,
|
||||
MessageType,
|
||||
} from "@llamaindex/core/llms";
|
||||
import { BaseChatStore } from "@llamaindex/core/storage/chat-store";
|
||||
import { getEnv } from "@llamaindex/env";
|
||||
|
||||
const USER_AGENT_SUFFIX = "llamaindex-cdbnosql-chatstore-javascript";
|
||||
const DEFAULT_CHAT_DATABASE = "ChatMessagesDB";
|
||||
const DEFAULT_CHAT_CONTAINER = "ChatMessagesContainer";
|
||||
const DEFAULT_OFFER_THROUGHPUT = 400;
|
||||
|
||||
function parseConnectionString(connectionString: string): {
|
||||
endpoint: string;
|
||||
key: string;
|
||||
} {
|
||||
const parts = connectionString.split(";");
|
||||
let endpoint = "";
|
||||
let accountKey = "";
|
||||
|
||||
parts.forEach((part) => {
|
||||
const [key, value] = part.split("=");
|
||||
if (key && key.trim() === "AccountEndpoint") {
|
||||
endpoint = value?.trim() ?? "";
|
||||
} else if ((key ?? "").trim() === "AccountKey") {
|
||||
accountKey = value?.trim() ?? "";
|
||||
}
|
||||
});
|
||||
|
||||
if (!endpoint || !accountKey) {
|
||||
throw new Error(
|
||||
"Invalid connection string: missing AccountEndpoint or AccountKey.",
|
||||
);
|
||||
}
|
||||
return { endpoint, key: accountKey };
|
||||
}
|
||||
|
||||
export interface AzureCosmosChatDatabaseProperties {
|
||||
throughput?: number;
|
||||
}
|
||||
|
||||
export interface AzureCosmosChatContainerProperties {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
export interface AzureCosmosNoSqlChatStoreConfig {
|
||||
cosmosClient?: CosmosClient;
|
||||
dbName?: string;
|
||||
containerName?: string;
|
||||
userId?: string;
|
||||
sessionId?: string;
|
||||
cosmosContainerProperties?: AzureCosmosChatContainerProperties;
|
||||
cosmosDatabaseProperties?: AzureCosmosChatDatabaseProperties;
|
||||
ttlInSeconds?: number;
|
||||
}
|
||||
|
||||
export class AzureCosmosNoSqlChatStore<
|
||||
AdditionalMessageOptions extends object = object,
|
||||
> extends BaseChatStore<AdditionalMessageOptions> {
|
||||
private userId: string;
|
||||
private ttl: number;
|
||||
private cosmosClient: CosmosClient;
|
||||
private database!: Database;
|
||||
private container!: Container;
|
||||
private initPromise?: Promise<void>;
|
||||
|
||||
private dbName: string;
|
||||
private containerName: string;
|
||||
private cosmosContainerProperties: AzureCosmosChatContainerProperties;
|
||||
private cosmosDatabaseProperties: AzureCosmosChatDatabaseProperties;
|
||||
private initialize: () => Promise<void>;
|
||||
|
||||
constructor({
|
||||
cosmosClient,
|
||||
dbName = DEFAULT_CHAT_DATABASE,
|
||||
containerName = DEFAULT_CHAT_CONTAINER,
|
||||
cosmosContainerProperties = { partitionKey: "/userId" },
|
||||
cosmosDatabaseProperties = {},
|
||||
ttlInSeconds = -1,
|
||||
}: AzureCosmosNoSqlChatStoreConfig) {
|
||||
super();
|
||||
if (!cosmosClient) {
|
||||
throw new Error(
|
||||
"CosmosClient is required for AzureCosmosDBNoSQLChatStore initialization",
|
||||
);
|
||||
}
|
||||
this.ttl = ttlInSeconds;
|
||||
this.userId = cosmosContainerProperties.userId || "anonymous";
|
||||
this.cosmosClient = cosmosClient;
|
||||
this.dbName = dbName;
|
||||
this.containerName = containerName;
|
||||
this.cosmosContainerProperties = cosmosContainerProperties;
|
||||
this.cosmosDatabaseProperties = cosmosDatabaseProperties;
|
||||
|
||||
this.initialize = () => {
|
||||
if (this.initPromise === undefined) {
|
||||
this.initPromise = this.init().catch((error) => {
|
||||
console.error(
|
||||
"Error during AzureCosmosDBNoSQLChatStore initialization",
|
||||
error,
|
||||
);
|
||||
});
|
||||
}
|
||||
return this.initPromise;
|
||||
};
|
||||
}
|
||||
|
||||
client(): CosmosClient {
|
||||
return this.cosmosClient;
|
||||
}
|
||||
|
||||
// Asynchronous initialization method to create database and container
|
||||
private async init(): Promise<void> {
|
||||
// Set default throughput if not provided
|
||||
const throughput =
|
||||
this.cosmosDatabaseProperties?.throughput || DEFAULT_OFFER_THROUGHPUT;
|
||||
|
||||
// Create the database if it doesn't exist
|
||||
const { database } = await this.cosmosClient.databases.createIfNotExists({
|
||||
id: this.dbName,
|
||||
throughput,
|
||||
});
|
||||
this.database = database;
|
||||
|
||||
// Create the container if it doesn't exist
|
||||
const { container } = await this.database.containers.createIfNotExists({
|
||||
id: this.containerName,
|
||||
throughput: this.cosmosContainerProperties?.throughput,
|
||||
partitionKey: "/userId",
|
||||
indexingPolicy: this.cosmosContainerProperties?.indexingPolicy,
|
||||
defaultTtl: this.ttl,
|
||||
uniqueKeyPolicy: this.cosmosContainerProperties?.uniqueKeyPolicy,
|
||||
conflictResolutionPolicy:
|
||||
this.cosmosContainerProperties?.conflictResolutionPolicy,
|
||||
computedProperties: this.cosmosContainerProperties?.computedProperties,
|
||||
});
|
||||
this.container = container;
|
||||
}
|
||||
/**
|
||||
* Static method for creating an instance using a connection string.
|
||||
* If no connection string is provided, it will attempt to use the env variable `AZURE_COSMOSDB_NOSQL_CONNECTION_STRING` as connection string.
|
||||
* @returns Instance of AzureCosmosNoSqlKVStore
|
||||
*/
|
||||
static fromConnectionString(
|
||||
config: {
|
||||
connectionString?: string;
|
||||
} & AzureCosmosNoSqlChatStoreConfig = {},
|
||||
): AzureCosmosNoSqlChatStore {
|
||||
const cosmosConnectionString =
|
||||
config.connectionString ||
|
||||
(getEnv("AZURE_COSMOSDB_NOSQL_CONNECTION_STRING") as string);
|
||||
if (!cosmosConnectionString) {
|
||||
throw new Error("Azure CosmosDB connection string must be provided");
|
||||
}
|
||||
const { endpoint, key } = parseConnectionString(cosmosConnectionString);
|
||||
const cosmosClient = new CosmosClient({
|
||||
endpoint,
|
||||
key,
|
||||
userAgentSuffix: USER_AGENT_SUFFIX,
|
||||
});
|
||||
return new AzureCosmosNoSqlChatStore({
|
||||
...config,
|
||||
cosmosClient,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Static method for creating an instance using a account endpoint and key.
|
||||
* If no endpoint and key is provided, it will attempt to use the env variable `AZURE_COSMOSDB_NOSQL_ACCOUNT_ENDPOINT` as enpoint and `AZURE_COSMOSDB_NOSQL_ACCOUNT_KEY` as key.
|
||||
* @returns Instance of AzureCosmosNoSqlKVStore
|
||||
*/
|
||||
static fromAccountAndKey(
|
||||
config: {
|
||||
endpoint?: string;
|
||||
key?: string;
|
||||
} & AzureCosmosNoSqlChatStoreConfig = {},
|
||||
): AzureCosmosNoSqlChatStore {
|
||||
const cosmosEndpoint =
|
||||
config.endpoint ||
|
||||
(getEnv("AZURE_COSMOSDB_NOSQL_ACCOUNT_ENDPOINT") as string);
|
||||
const cosmosKey =
|
||||
config.key || (getEnv("AZURE_COSMOSDB_NOSQL_ACCOUNT_KEY") as string);
|
||||
|
||||
if (!cosmosEndpoint || !cosmosKey) {
|
||||
throw new Error(
|
||||
"Azure CosmosDB account endpoint and key must be provided",
|
||||
);
|
||||
}
|
||||
const cosmosClient = new CosmosClient({
|
||||
endpoint: cosmosEndpoint,
|
||||
key: cosmosKey,
|
||||
userAgentSuffix: USER_AGENT_SUFFIX,
|
||||
});
|
||||
return new AzureCosmosNoSqlChatStore({
|
||||
...config,
|
||||
cosmosClient,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Static method for creating an instance using AAD token.
|
||||
* If no endpoint and credentials are provided, it will attempt to use the env variable `AZURE_COSMOSDB_NOSQL_ACCOUNT_ENDPOINT` as endpoint and use DefaultAzureCredential() as credentials.
|
||||
* @returns Instance of AzureCosmosNoSqlKVStore
|
||||
*/
|
||||
static fromAadToken(
|
||||
config: {
|
||||
endpoint?: string;
|
||||
credential?: TokenCredential;
|
||||
} & AzureCosmosNoSqlChatStoreConfig = {},
|
||||
): AzureCosmosNoSqlChatStore {
|
||||
const cosmosEndpoint =
|
||||
config.endpoint ||
|
||||
(getEnv("AZURE_COSMOSDB_NOSQL_CONNECTION_STRING") as string);
|
||||
|
||||
if (!cosmosEndpoint) {
|
||||
throw new Error("Azure CosmosDB account endpoint must be provided");
|
||||
}
|
||||
const credentials = config.credential ?? new DefaultAzureCredential();
|
||||
const cosmosClient = new CosmosClient({
|
||||
endpoint: cosmosEndpoint,
|
||||
aadCredentials: credentials,
|
||||
userAgentSuffix: USER_AGENT_SUFFIX,
|
||||
});
|
||||
return new AzureCosmosNoSqlChatStore({
|
||||
...config,
|
||||
cosmosClient,
|
||||
});
|
||||
}
|
||||
|
||||
private convertToChatMessage(
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
message: any,
|
||||
): ChatMessage<AdditionalMessageOptions> {
|
||||
return {
|
||||
content: message.content as MessageContent,
|
||||
role: message.role as MessageType,
|
||||
options: message.options as AdditionalMessageOptions,
|
||||
} as ChatMessage<AdditionalMessageOptions>;
|
||||
}
|
||||
|
||||
private convertToCosmosMessage(
|
||||
message: ChatMessage<AdditionalMessageOptions>,
|
||||
): // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
any {
|
||||
return {
|
||||
content: message.content,
|
||||
role: message.role,
|
||||
options: message.options,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Set messages for a given key.
|
||||
*/
|
||||
async setMessages(
|
||||
key: string,
|
||||
messages: ChatMessage<AdditionalMessageOptions>[],
|
||||
): Promise<void> {
|
||||
await this.initialize();
|
||||
const inputMessages = messages.map(this.convertToCosmosMessage);
|
||||
await this.container.items.upsert({
|
||||
id: key,
|
||||
messages: inputMessages,
|
||||
userId: this.userId,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Get messages for a given key.
|
||||
*/
|
||||
async getMessages(
|
||||
key: string,
|
||||
): Promise<ChatMessage<AdditionalMessageOptions>[]> {
|
||||
await this.initialize();
|
||||
const res = await this.container.item(key, this.userId).read();
|
||||
const messageHistory = res?.resource?.messages ?? [];
|
||||
const result = messageHistory.map(this.convertToChatMessage);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a message for a given key.
|
||||
*/
|
||||
async addMessage(
|
||||
key: string,
|
||||
message: ChatMessage<AdditionalMessageOptions>,
|
||||
idx?: number,
|
||||
): Promise<void> {
|
||||
await this.initialize();
|
||||
const res = await this.container.item(key, this.userId).read();
|
||||
const messageHistory = res?.resource?.messages ?? [];
|
||||
if (idx === undefined) {
|
||||
messageHistory.push(this.convertToCosmosMessage(message));
|
||||
} else {
|
||||
messageHistory.splice(idx, 0, this.convertToCosmosMessage(message));
|
||||
}
|
||||
await this.setMessages(key, messageHistory);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes all messages for a given key.
|
||||
*/
|
||||
async deleteMessages(key: string): Promise<void> {
|
||||
await this.initialize();
|
||||
try {
|
||||
await this.container.item(key, this.userId).delete();
|
||||
// eslint-disable-next-line no-empty
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes one message at idx index for a given key.
|
||||
*/
|
||||
async deleteMessage(key: string, idx: number): Promise<void> {
|
||||
await this.initialize();
|
||||
const res = await this.container.item(key, this.userId).read();
|
||||
const messageHistory = res?.resource?.messages ?? [];
|
||||
if (idx >= 0 && idx < messageHistory.length) {
|
||||
messageHistory.splice(idx, 1);
|
||||
await this.setMessages(key, messageHistory);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all keys.
|
||||
*/
|
||||
async getKeys(): Promise<IterableIterator<string>> {
|
||||
await this.initialize();
|
||||
const result = await this.container.items
|
||||
.query("Select c.id from c")
|
||||
.fetchAll();
|
||||
const keys = result.resources.map((res: { id: string }) => res.id);
|
||||
|
||||
function* keyGenerator(): IterableIterator<string> {
|
||||
for (const key of keys) {
|
||||
yield key;
|
||||
}
|
||||
}
|
||||
return keyGenerator();
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ export * from "@llamaindex/core/storage/chat-store";
|
||||
export * from "@llamaindex/core/storage/doc-store";
|
||||
export * from "@llamaindex/core/storage/index-store";
|
||||
export * from "@llamaindex/core/storage/kv-store";
|
||||
export * from "./chatStore/AzureCosmosNoSqlChatStore.js";
|
||||
export * from "./docStore/AzureCosmosNoSqlDocumentStore.js";
|
||||
export { PostgresDocumentStore } from "./docStore/PostgresDocumentStore.js";
|
||||
export { SimpleDocumentStore } from "./docStore/SimpleDocumentStore.js";
|
||||
|
||||
@@ -3,7 +3,7 @@ import { Container, CosmosClient, Database } from "@azure/cosmos";
|
||||
import { DefaultAzureCredential, type TokenCredential } from "@azure/identity";
|
||||
import { BaseKVStore } from "@llamaindex/core/storage/kv-store";
|
||||
import { getEnv } from "@llamaindex/env";
|
||||
const USER_AGENT_SUFFIX = "LlamaIndex-CDBNoSQL-KVStore-JavaScript";
|
||||
const USER_AGENT_SUFFIX = "llamaindex-cdbnosql-kvstore-javascript";
|
||||
const DEFAULT_CHAT_DATABASE = "KVStoreDB";
|
||||
const DEFAULT_CHAT_CONTAINER = "KVStoreContainer";
|
||||
const DEFAULT_OFFER_THROUGHPUT = 400;
|
||||
@@ -82,7 +82,7 @@ export class AzureCosmosNoSqlKVStore extends BaseKVStore {
|
||||
super();
|
||||
if (!cosmosClient) {
|
||||
throw new Error(
|
||||
"CosmosClient is required for AzureCosmosDBNoSQLVectorStore initialization",
|
||||
"CosmosClient is required for AzureCosmosDBNoSQLKVStore initialization",
|
||||
);
|
||||
}
|
||||
this.cosmosClient = cosmosClient;
|
||||
|
||||
@@ -56,7 +56,7 @@ export interface AzureCosmosDBNoSQLConfig
|
||||
readonly idKey?: string;
|
||||
}
|
||||
|
||||
const USER_AGENT_SUFFIX = "LlamaIndex-CDBNoSQL-VectorStore-JavaScript";
|
||||
const USER_AGENT_SUFFIX = "llamaindex-cdbnosql-vectorstore-javascript";
|
||||
|
||||
const DEFAULT_VECTOR_EMBEDDING_POLICY = {
|
||||
vectorEmbeddings: [
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
# @llamaindex/readers
|
||||
|
||||
## 1.0.12
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- e60328b: fix: import error in cjs
|
||||
|
||||
## 1.0.11
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,20 +1,12 @@
|
||||
{
|
||||
"name": "@llamaindex/readers",
|
||||
"description": "LlamaIndex Readers",
|
||||
"version": "1.0.11",
|
||||
"version": "1.0.12",
|
||||
"type": "module",
|
||||
"exports": {
|
||||
"./node/hook": "./node/dist/hook.js",
|
||||
"./node": "./node/dist/index.js",
|
||||
"./assembly-ai": {
|
||||
"edge-light": {
|
||||
"types": "./assembly-ai/dist/index.edge-light.d.ts",
|
||||
"default": "./assembly-ai/dist/index.edge-light.js"
|
||||
},
|
||||
"workerd": {
|
||||
"types": "./assembly-ai/dist/index.workerd.d.ts",
|
||||
"default": "./assembly-ai/dist/index.workerd.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./assembly-ai/dist/index.d.cts",
|
||||
"default": "./assembly-ai/dist/index.cjs"
|
||||
@@ -25,14 +17,6 @@
|
||||
}
|
||||
},
|
||||
"./cosmosdb": {
|
||||
"edge-light": {
|
||||
"types": "./cosmosdb/dist/index.edge-light.d.ts",
|
||||
"default": "./cosmosdb/dist/index.edge-light.js"
|
||||
},
|
||||
"workerd": {
|
||||
"types": "./cosmosdb/dist/index.workerd.d.ts",
|
||||
"default": "./cosmosdb/dist/index.workerd.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./cosmosdb/dist/index.d.cts",
|
||||
"default": "./cosmosdb/dist/index.cjs"
|
||||
@@ -79,14 +63,6 @@
|
||||
}
|
||||
},
|
||||
"./discord": {
|
||||
"edge-light": {
|
||||
"types": "./discord/dist/index.edge-light.d.ts",
|
||||
"default": "./discord/dist/index.edge-light.js"
|
||||
},
|
||||
"workerd": {
|
||||
"types": "./discord/dist/index.workerd.d.ts",
|
||||
"default": "./discord/dist/index.workerd.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./discord/dist/index.d.cts",
|
||||
"default": "./discord/dist/index.cjs"
|
||||
@@ -97,14 +73,6 @@
|
||||
}
|
||||
},
|
||||
"./docx": {
|
||||
"edge-light": {
|
||||
"types": "./docx/dist/index.edge-light.d.ts",
|
||||
"default": "./docx/dist/index.edge-light.js"
|
||||
},
|
||||
"workerd": {
|
||||
"types": "./docx/dist/index.workerd.d.ts",
|
||||
"default": "./docx/dist/index.workerd.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./docx/dist/index.d.cts",
|
||||
"default": "./docx/dist/index.cjs"
|
||||
@@ -115,14 +83,6 @@
|
||||
}
|
||||
},
|
||||
"./html": {
|
||||
"edge-light": {
|
||||
"types": "./html/dist/index.edge-light.d.ts",
|
||||
"default": "./html/dist/index.edge-light.js"
|
||||
},
|
||||
"workerd": {
|
||||
"types": "./html/dist/index.workerd.d.ts",
|
||||
"default": "./html/dist/index.workerd.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./html/dist/index.d.cts",
|
||||
"default": "./html/dist/index.cjs"
|
||||
@@ -133,14 +93,6 @@
|
||||
}
|
||||
},
|
||||
"./image": {
|
||||
"edge-light": {
|
||||
"types": "./image/dist/index.edge-light.d.ts",
|
||||
"default": "./image/dist/index.edge-light.js"
|
||||
},
|
||||
"workerd": {
|
||||
"types": "./image/dist/index.workerd.d.ts",
|
||||
"default": "./image/dist/index.workerd.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./image/dist/index.d.cts",
|
||||
"default": "./image/dist/index.cjs"
|
||||
@@ -151,14 +103,6 @@
|
||||
}
|
||||
},
|
||||
"./json": {
|
||||
"edge-light": {
|
||||
"types": "./json/dist/index.edge-light.d.ts",
|
||||
"default": "./json/dist/index.edge-light.js"
|
||||
},
|
||||
"workerd": {
|
||||
"types": "./json/dist/index.workerd.d.ts",
|
||||
"default": "./json/dist/index.workerd.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./json/dist/index.d.cts",
|
||||
"default": "./json/dist/index.cjs"
|
||||
@@ -169,14 +113,6 @@
|
||||
}
|
||||
},
|
||||
"./markdown": {
|
||||
"edge-light": {
|
||||
"types": "./markdown/dist/index.edge-light.d.ts",
|
||||
"default": "./markdown/dist/index.edge-light.js"
|
||||
},
|
||||
"workerd": {
|
||||
"types": "./markdown/dist/index.workerd.d.ts",
|
||||
"default": "./markdown/dist/index.workerd.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./markdown/dist/index.d.cts",
|
||||
"default": "./markdown/dist/index.cjs"
|
||||
@@ -187,14 +123,6 @@
|
||||
}
|
||||
},
|
||||
"./mongo": {
|
||||
"edge-light": {
|
||||
"types": "./mongo/dist/index.edge-light.d.ts",
|
||||
"default": "./mongo/dist/index.edge-light.js"
|
||||
},
|
||||
"workerd": {
|
||||
"types": "./mongo/dist/index.workerd.d.ts",
|
||||
"default": "./mongo/dist/index.workerd.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./mongo/dist/index.d.cts",
|
||||
"default": "./mongo/dist/index.cjs"
|
||||
@@ -205,14 +133,6 @@
|
||||
}
|
||||
},
|
||||
"./notion": {
|
||||
"edge-light": {
|
||||
"types": "./notion/dist/index.edge-light.d.ts",
|
||||
"default": "./notion/dist/index.edge-light.js"
|
||||
},
|
||||
"workerd": {
|
||||
"types": "./notion/dist/index.workerd.d.ts",
|
||||
"default": "./notion/dist/index.workerd.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./notion/dist/index.d.cts",
|
||||
"default": "./notion/dist/index.cjs"
|
||||
@@ -223,14 +143,6 @@
|
||||
}
|
||||
},
|
||||
"./pdf": {
|
||||
"edge-light": {
|
||||
"types": "./pdf/dist/index.edge-light.d.ts",
|
||||
"default": "./pdf/dist/index.edge-light.js"
|
||||
},
|
||||
"workerd": {
|
||||
"types": "./pdf/dist/index.workerd.d.ts",
|
||||
"default": "./pdf/dist/index.workerd.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./pdf/dist/index.d.cts",
|
||||
"default": "./pdf/dist/index.cjs"
|
||||
@@ -241,14 +153,6 @@
|
||||
}
|
||||
},
|
||||
"./text": {
|
||||
"edge-light": {
|
||||
"types": "./text/dist/index.edge-light.d.ts",
|
||||
"default": "./text/dist/index.edge-light.js"
|
||||
},
|
||||
"workerd": {
|
||||
"types": "./text/dist/index.workerd.d.ts",
|
||||
"default": "./text/dist/index.workerd.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./text/dist/index.d.cts",
|
||||
"default": "./text/dist/index.cjs"
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
# @llamaindex/unit-test
|
||||
|
||||
## 0.0.26
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [e60328b]
|
||||
- @llamaindex/readers@1.0.12
|
||||
- llamaindex@0.8.16
|
||||
|
||||
## 0.0.25
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [3d503cb]
|
||||
- Updated dependencies [5dae534]
|
||||
- llamaindex@0.8.15
|
||||
|
||||
## 0.0.24
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [630b425]
|
||||
- llamaindex@0.8.14
|
||||
|
||||
## 0.0.23
|
||||
|
||||
### Patch Changes
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@llamaindex/unit-test",
|
||||
"private": true,
|
||||
"version": "0.0.23",
|
||||
"version": "0.0.26",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"test": "vitest run"
|
||||
|
||||
Reference in New Issue
Block a user