Compare commits

..

2 Commits

Author SHA1 Message Date
Alex Yang aa0301d870 ci: typo 2024-11-04 19:35:54 -08:00
Alex Yang fc29ef8f5d ci: build document on all possible platform 2024-11-04 19:26:26 -08:00
116 changed files with 2319 additions and 5784 deletions
+40
View File
@@ -0,0 +1,40 @@
name: Build Docs
on:
push:
branches:
- main
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
TURBO_REMOTE_ONLY: true
jobs:
doc:
strategy:
fail-fast: false
matrix:
node-version: [20.x, 21.x, 22.x, 23.x]
os: [ubuntu-latest, macos-latest, windows-latest]
name: Build Docs on Node.js ${{ matrix.node-version }} (${{ matrix.os }})
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Run Build
run: pnpx turbo run build --filter @llamaindex/doc
+7 -15
View File
@@ -8,7 +8,7 @@ Right now, for first-time contributors, these three packages are of the highest
- `packages/llamaindex` which is the main NPM library `llamaindex`
- `examples` is where the demo code lives
- `apps/docs` is where the code for the documentation of https://ts.llamaindex.ai/ is located
- `apps/next` is where the code for the documentation of https://ts.llamaindex.ai/ is located
### Turborepo docs
@@ -21,14 +21,9 @@ Install NodeJS. Preferably v18 using nvm or n.
Inside the LlamaIndexTS directory:
```
npm i -g pnpm ts-node
pnpm install
```
Note: we use pnpm in this repo, which has a lot of the same functionality and CLI options as npm but it does do some things better in a monorepo, like centralizing dependencies and caching.
PNPM's has documentation on its [workspace feature](https://pnpm.io/workspaces) and Turborepo had some [useful documentation also](https://turbo.build/repo/docs/core-concepts/monorepos/running-tasks).
### Running Typescript
When we publish to NPM we will have a tsc compiled version of the library in JS. For now, the easiest thing to do is use ts-node.
@@ -65,20 +60,17 @@ To install packages for every package or application run
pnpm add -w [NPM Package]
```
### Docs
### Doc
To contribute to the docs, go to the docs website folder and run the Docusaurus instance.
To contribute to the docs, go to the docs website folder and run the Next.js server:
```bash
cd apps/docs
pnpm install
pnpm start
# run this if you are first time
pnpx turbo run build --filter @llamaindex/doc
cd apps/next
pnpm run dev
```
That should start a webserver which will serve the docs on https://localhost:3000
Any changes you make should be reflected in the browser. If you need to regenerate the API docs and find that your TSDoc isn't getting the updates, feel free to remove apps/docs/api. It will automatically regenerate itself when you run pnpm start again.
## Changeset
We use [changesets](https://github.com/changesets/changesets) for managing versions and changelogs. To create a new changeset, run in the root folder:
-9
View File
@@ -1,14 +1,5 @@
# docs
## 0.0.109
### Patch Changes
- Updated dependencies [14cc9eb]
- Updated dependencies [a6db5dd]
- Updated dependencies [396b1e1]
- llamaindex@0.8.5
## 0.0.108
### Patch Changes
@@ -25,7 +25,6 @@ ANTHROPIC_CLAUDE_3_SONNET = "anthropic.claude-3-sonnet-20240229-v1:0";
ANTHROPIC_CLAUDE_3_HAIKU = "anthropic.claude-3-haiku-20240307-v1:0";
ANTHROPIC_CLAUDE_3_OPUS = "anthropic.claude-3-opus-20240229-v1:0"; // available on us-west-2
ANTHROPIC_CLAUDE_3_5_SONNET = "anthropic.claude-3-5-sonnet-20240620-v1:0";
ANTHROPIC_CLAUDE_3_5_HAIKU = "anthropic.claude-3-5-haiku-20241022-v1:0";
META_LLAMA2_13B_CHAT = "meta.llama2-13b-chat-v1";
META_LLAMA2_70B_CHAT = "meta.llama2-70b-chat-v1";
META_LLAMA3_8B_INSTRUCT = "meta.llama3-8b-instruct-v1:0";
+17 -17
View File
@@ -1,6 +1,6 @@
{
"name": "docs",
"version": "0.0.109",
"version": "0.0.108",
"private": true,
"scripts": {
"docusaurus": "docusaurus",
@@ -15,29 +15,29 @@
"typecheck": "tsc"
},
"dependencies": {
"@docusaurus/core": "3.6.0",
"@docusaurus/remark-plugin-npm2yarn": "3.6.0",
"@docusaurus/core": "3.5.2",
"@docusaurus/remark-plugin-npm2yarn": "3.5.2",
"@llamaindex/examples": "workspace:*",
"@mdx-js/react": "^3.1.0",
"clsx": "^2.1.1",
"@mdx-js/react": "3.0.1",
"clsx": "2.1.1",
"llamaindex": "workspace:*",
"postcss": "^8.4.47",
"prism-react-renderer": "^2.4.0",
"raw-loader": "^4.0.2",
"react": "^18.3.1",
"postcss": "8.4.41",
"prism-react-renderer": "2.4.0",
"raw-loader": "4.0.2",
"react": "18.3.1",
"react-dom": "18.3.1"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "3.6.0",
"@docusaurus/preset-classic": "3.6.0",
"@docusaurus/theme-classic": "3.6.0",
"@docusaurus/types": "3.6.0",
"@docusaurus/module-type-aliases": "3.5.2",
"@docusaurus/preset-classic": "3.5.2",
"@docusaurus/theme-classic": "3.5.2",
"@docusaurus/types": "3.5.2",
"@tsconfig/docusaurus": "2.0.3",
"@types/node": "^22.9.0",
"@types/node": "^22.8.4",
"docusaurus-plugin-typedoc": "1.0.5",
"typedoc": "0.26.11",
"typedoc-plugin-markdown": "4.2.10",
"typescript": "^5.6.3"
"typedoc": "0.26.6",
"typedoc-plugin-markdown": "4.2.6",
"typescript": "^5.6.2"
},
"browserslist": {
"production": [
-14
View File
@@ -1,19 +1,5 @@
# @llamaindex/doc
## 0.0.7
### Patch Changes
- Updated dependencies [14cc9eb]
- Updated dependencies [a6db5dd]
- Updated dependencies [396b1e1]
- llamaindex@0.8.5
- @llamaindex/cloud@2.0.2
- @llamaindex/core@0.4.2
- @llamaindex/node-parser@0.0.3
- @llamaindex/openai@0.1.27
- @llamaindex/readers@1.0.3
## 0.0.6
### Patch Changes
+2 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/doc",
"version": "0.0.7",
"version": "0.0.6",
"private": true,
"scripts": {
"build": "pnpm run build:docs && next build",
@@ -12,7 +12,6 @@
},
"dependencies": {
"@icons-pack/react-simple-icons": "^10.1.0",
"@llamaindex/chat-ui": "0.0.5",
"@llamaindex/cloud": "workspace:*",
"@llamaindex/core": "workspace:*",
"@llamaindex/node-parser": "workspace:*",
@@ -68,7 +67,7 @@
"devDependencies": {
"@next/env": "^15.0.2",
"@types/mdx": "^2.0.13",
"@types/node": "22.9.0",
"@types/node": "22.8.6",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"autoprefixer": "^10.4.20",
+23 -20
View File
@@ -1,4 +1,4 @@
import { upsertBatchPipelineDocumentsApiV1PipelinesPipelineIdDocumentsPut } from "@llamaindex/cloud/api";
import { PipelinesService } from "@llamaindex/cloud/api";
import fg from "fast-glob";
import {
fileGenerator,
@@ -30,8 +30,9 @@ async function processContent(content: string): Promise<string> {
}
export async function updateLlamaCloud(): Promise<void> {
// eslint-disable-next-line turbo/no-undeclared-env-vars
const apiKey = process.env.LLAMA_CLOUD_API_KEY;
// eslint-disable-next-line turbo/no-undeclared-env-vars
const index = process.env.LLAMA_CLOUD_PIPELINE_ID;
if (!apiKey || !index) {
@@ -82,26 +83,28 @@ export async function updateLlamaCloud(): Promise<void> {
console.log(`added ${records.length} records`);
await upsertBatchPipelineDocumentsApiV1PipelinesPipelineIdDocumentsPut({
baseUrl: "https://api.cloud.llamaindex.ai/",
body: records.map((record) => ({
id: record.id,
metadata: {
title: record.title,
description: record.description,
documentUrl: record.id,
category: record.category,
await PipelinesService.upsertBatchPipelineDocumentsApiV1PipelinesPipelineIdDocumentsPut(
{
baseUrl: "https://api.cloud.llamaindex.ai/",
body: records.map((record) => ({
id: record.id,
metadata: {
title: record.title,
description: record.description,
documentUrl: record.id,
category: record.category,
},
text: record.content,
})),
path: {
pipeline_id: index,
},
throwOnError: true,
headers: {
Authorization: `Bearer ${apiKey}`,
},
text: record.content,
})),
path: {
pipeline_id: index,
},
throwOnError: true,
headers: {
Authorization: `Bearer ${apiKey}`,
},
});
);
console.log("done");
}
+15 -16
View File
@@ -25,16 +25,15 @@ export default function HomePage() {
return (
<main className="container mx-auto px-4 py-12">
<h1 className="text-4xl md:text-6xl font-bold text-center mb-4">
Build context-augmented web apps using
Build RAG Web App using
<br /> <span className="text-blue-500">LlamaIndex.TS</span>
</h1>
<p className="text-xl text-center text-fd-muted-foreground mb-12 ">
LlamaIndex.TS is the JS/TS version of{" "}
<a href="https://llamaindex.ai">LlamaIndex</a>, the framework for
building agentic generative AI applications connected to your data.
LlamaIndex.TS is the JS/TS library from our popular Python library
llama-index for building LLM applications
</p>
<div className="text-center text-lg text-fd-muted-foreground mb-12">
<span>Designed for building web applications in </span>
<span>Designed for building web applications under </span>
<TextEffect />
</div>
@@ -59,8 +58,8 @@ export default function HomePage() {
<Feature
icon={Footprints}
subheading="Progressive"
heading="From the simplest to the most complex"
description="LlamaIndex.TS is designed to be simple to get started, but powerful enough to build complex, agentic AI applications."
heading="Adding AI feature from simple to complex"
description="LlamaIndex.TS is designed to be simple to start with and can be extended to build complex AI applications."
>
<Suspense
fallback={
@@ -114,9 +113,9 @@ const response = await agent.chat({
</Feature>
<Feature
icon={Bot}
subheading="Agents"
heading="Build agentic RAG applications"
description="Truly powerful retrieval-augmented generation applications use agentic techniques, and LlamaIndex.TS makes it easy to build them."
subheading="Agent"
heading="Build agent for RAG"
description="Build agents for RAG using LlamaIndex.TS. Agents are the core building blocks of RAG applications."
>
<CodeBlock
code={`import { FunctionTool } from "llamaindex";
@@ -138,19 +137,19 @@ await agent.chat('...');`}
<Feature
icon={Blocks}
subheading="Providers"
heading="LLMs, Data Loaders, Vector Stores and more!"
description="LlamaIndex.TS has hundreds of integrations to connect to your data, index it, and query it with LLMs."
heading="LLM / Data Loader / Vector Store"
description="LlamaIndex.TS provides various providers to turn your data into valuable insights."
>
<div className="mt-8 flex flex-col gap-8">
<div>
<h3 className="text-lg font-semibold text-fd-muted-foreground mb-2">
LLMs
LLM
</h3>
<InfiniteLLMProviders />
</div>
<div>
<h3 className="text-lg font-semibold text-fd-muted-foreground mb-2">
Vector Stores
Vector Store
</h3>
<InfiniteVectorStoreProviders />
</div>
@@ -158,8 +157,8 @@ await agent.chat('...');`}
</Feature>
<Feature
icon={Terminal}
subheading="create-llama CLI"
heading="Build a RAG app with a single command"
subheading="Create Llama CLI"
heading="CLI for starting RAG app with one line"
description="A command line tool to generate LlamaIndex apps, the easiest way to get started with LlamaIndex."
>
<div className="my-6">
-30
View File
@@ -1,30 +0,0 @@
import { LlamaIndexAdapter, type Message } from "ai";
import { SimpleChatEngine, type ChatMessage } from "llamaindex";
import { NextResponse, type NextRequest } from "next/server";
export async function POST(request: NextRequest) {
try {
const { messages } = (await request.json()) as { messages: Message[] };
const userMessage = messages[messages.length - 1];
if (!userMessage || userMessage.role !== "user") {
return NextResponse.json(
{ detail: "Last message is not a user message" },
{ status: 400 },
);
}
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;
return NextResponse.json({ detail }, { status: 500 });
}
}
+2 -1
View File
@@ -7,8 +7,9 @@ import { ReactElement } from "react";
export function Contributing(): ReactElement {
return (
<div className="flex flex-col items-center border-x border-t px-4 py-16 text-center">
<Heart className="mb-4" />
<h2 className="mb-4 text-xl font-semibold sm:text-2xl">
Made possible by you <Heart className="inline align-middle" />
Made Possible by You.
</h2>
<p className="mb-4 text-fd-muted-foreground">
LlamaIndex.TS is powered by the open source community.
@@ -53,6 +53,9 @@ export default async function ContributorCounter({
</div>
) : null}
</div>
<div className="text-center text-sm text-fd-muted-foreground">
Some of our best contributors.
</div>
</div>
);
}
-8
View File
@@ -1,8 +0,0 @@
"use client";
import { ChatSection } from "@llamaindex/chat-ui";
import { useChat } from "ai/react";
export const ChatDemo = () => {
const handler = useChat();
return <ChatSection handler={handler} />;
};
@@ -1,46 +0,0 @@
---
title: Chat-UI
description: Use chat-ui to add a chat interface to your LlamaIndexTS application.
---
import { ChatDemo } from '../../../../components/demo/chat';
import "@llamaindex/chat-ui/styles/code.css";
import "@llamaindex/chat-ui/styles/katex.css";
Using [chat-ui](https://github.com/run-llama/chat-ui), it's easy to add a chat interface to your LlamaIndexTS application.
You just need to create an API route that provides an `api/chat` endpoint and a chat component to consume the API.
## API route
As an example, this is an API route for the Next.js App Router. Copy the following code into your `app/api/chat/route.ts` file to get started:
```json doc-gen:file
{
"file": "./src/app/api/chat/route.ts",
"codeblock": true
}
```
## Chat UI
This is the simplest way to add a chat interface to your application. Copy the following code into your application to consume the API:
```json doc-gen:file
{
"file": "./src/components/demo/chat.tsx",
"codeblock": true
}
```
## Try it out ⬇️
Combining both, you're getting a fully functional chat interface:
<ChatDemo />
## Next Steps
The steps above are the bare minimum to get a chat interface working. From here, you can go two ways:
1. Use [create-llama](https://github.com/run-llama/create-llama) to scaffold a new LlamaIndexTS project including complex API routes and chat interfaces or
2. Learn more about [chat-ui](https://github.com/run-llama/chat-ui) and [LlamaIndexTS](https://github.com/run-llama/llamaindex-ts) to customize the chat interface and API routes to your needs.
@@ -1,5 +1,5 @@
{
"title": "Guide",
"description": "See our guide",
"pages": ["workflow", "chat"]
"pages": ["workflow"]
}
+2 -2
View File
@@ -1,8 +1,8 @@
import {
type MetadataFilter,
type MetadataFilters,
PipelinesService,
type RetrievalParams,
runSearchApiV1PipelinesPipelineIdRetrievePost,
type TextNodeWithScore,
} from "@llamaindex/cloud/api";
import { QueryBundle } from "@llamaindex/core/query-engine";
@@ -74,7 +74,7 @@ export class LlamaCloudRetriever extends BaseRetriever {
const pipelineId = this.pipelineId;
const { data: results } =
await runSearchApiV1PipelinesPipelineIdRetrievePost({
await PipelinesService.runSearchApiV1PipelinesPipelineIdRetrievePost({
throwOnError: true,
path: {
pipeline_id: pipelineId,
-1
View File
@@ -10,7 +10,6 @@ export default {
"./src/mdx-components.{ts,tsx}",
"./node_modules/fumadocs-ui/dist/**/*.js",
"./node_modules/fumadocs-openapi/dist/**/*.js",
"./node_modules/@llamaindex/chat-ui/**/*.{ts,tsx}",
],
presets: [createPreset()],
// eslint-disable-next-line @typescript-eslint/no-require-imports
-71
View File
@@ -1,71 +0,0 @@
import "dotenv/config";
import {
DefaultAzureCredential,
getBearerTokenProvider,
} from "@azure/identity";
import {
AzureCosmosDBNoSqlVectorStore,
AzureCosmosNoSqlDocumentStore,
AzureCosmosNoSqlIndexStore,
Document,
OpenAI,
OpenAIEmbedding,
Settings,
storageContextFromDefaults,
VectorStoreIndex,
} from "llamaindex";
/**
* This example demonstrates how to use Azure CosmosDB with LlamaIndex.
* It uses Azure CosmosDB as IndexStore, DocumentStore, and VectorStore.
*
* To run this example, create an .env file under /examples and set the following environment variables:
*
* AZURE_OPENAI_ENDPOINT="https://AOAI-ACCOUNT.openai.azure.com" // Sample Azure OpenAI endpoint.
* AZURE_DEPLOYMENT_NAME="gpt-4o" // Sample Azure OpenAI deployment name.
* EMBEDDING_MODEL="text-embedding-3-large" // Sample Azure OpenAI embedding model.
* AZURE_COSMOSDB_NOSQL_ACCOUNT_ENDPOINT = "https://DB-ACCOUNT.documents.azure.com:443/" // Sample CosmosDB account endpoint.
*
* This example uses managed identity to authenticate with Azure CosmosDB and Azure OpenAI. Make sure to assign the required roles to the managed identity.
* You can also use connectionString for Azure CosmosDB and Keys with Azure OpenAI for authentication.
*/
(async () => {
const credential = new DefaultAzureCredential();
const azureADTokenProvider = getBearerTokenProvider(
credential,
"https://cognitiveservices.azure.com/.default",
);
const azure = {
azureADTokenProvider,
deployment: process.env.AZURE_DEPLOYMENT_NAME,
};
Settings.llm = new OpenAI({ azure });
Settings.embedModel = new OpenAIEmbedding({
model: process.env.EMBEDDING_MODEL,
azure: {
...azure,
deployment: process.env.EMBEDDING_MODEL,
},
});
const docStore = AzureCosmosNoSqlDocumentStore.fromAadToken();
console.log({ docStore });
const indexStore = AzureCosmosNoSqlIndexStore.fromAadToken();
console.log({ indexStore });
const vectorStore = AzureCosmosDBNoSqlVectorStore.fromUriAndManagedIdentity();
console.log({ vectorStore });
const storageContext = await storageContextFromDefaults({
docStore,
indexStore,
vectorStore,
});
console.log({ storageContext });
const document = new Document({ text: "Test Text" });
const index = await VectorStoreIndex.fromDocuments([document], {
storageContext,
logProgress: true,
});
console.log({ index });
})();
+24 -51
View File
@@ -6,21 +6,17 @@ import {
} from "@llamaindex/readers/cosmosdb";
import * as dotenv from "dotenv";
import {
AzureCosmosDBNoSQLConfig,
AzureCosmosDBNoSqlVectorStore,
OpenAI,
OpenAIEmbedding,
Settings,
storageContextFromDefaults,
VectorStoreIndex,
} from "llamaindex";
import {
createStoresFromConnectionString,
createStoresFromManagedIdentity,
} from "./utils";
// Load environment variables from local .env file
dotenv.config();
const cosmosEndpoint = process.env.AZURE_COSMOSDB_NOSQL_ACCOUNT_ENDPOINT!;
const cosmosEndpoint = process.env.AZURE_COSMOSDB_NOSQL_ENDPOINT!;
const cosmosConnectionString =
process.env.AZURE_COSMOSDB_NOSQL_CONNECTION_STRING!;
const databaseName =
@@ -30,7 +26,7 @@ const collectionName =
const vectorCollectionName =
process.env.AZURE_COSMOSDB_VECTOR_CONTAINER_NAME || "vectorContainer";
// This example uses Azure OpenAI llm and embedding models
// This exampple uses Azure OpenAI llm and embedding models
const llmInit = {
azure: {
apiVersion: process.env.AZURE_OPENAI_LLM_API_VERSION,
@@ -50,48 +46,24 @@ const embedModelInit = {
Settings.llm = new OpenAI(llmInit);
Settings.embedModel = new OpenAIEmbedding(embedModelInit);
// Initialize the CosmosDB client
async function initializeCosmosClient() {
if (cosmosConnectionString) {
return new CosmosClient(cosmosConnectionString);
} else {
const credential = new DefaultAzureCredential();
return new CosmosClient({
endpoint: cosmosEndpoint,
aadCredentials: credential,
});
}
}
// Initialize CosmosDB to be used as a vectorStore, docStore, and indexStore
async function initializeStores() {
// Create a configuration object for the Azure CosmosDB NoSQL Vector Store
const dbConfig: AzureCosmosDBNoSQLConfig = {
databaseName,
containerName: vectorCollectionName,
flatMetadata: false,
};
if (cosmosConnectionString) {
return createStoresFromConnectionString(cosmosConnectionString, dbConfig);
} else {
// Use managed identity to authenticate with Azure CosmosDB
const credential = new DefaultAzureCredential();
return createStoresFromManagedIdentity(
cosmosEndpoint,
credential,
dbConfig,
);
}
}
async function loadVectorData() {
if (!cosmosConnectionString && !cosmosEndpoint) {
throw new Error(
"Azure CosmosDB connection string or endpoint must be set.",
);
}
const cosmosClient = await initializeCosmosClient();
let cosmosClient: CosmosClient;
// initialize the cosmos client
if (cosmosConnectionString) {
cosmosClient = new CosmosClient(cosmosConnectionString);
} else {
cosmosClient = new CosmosClient({
endpoint: cosmosEndpoint,
aadCredentials: new DefaultAzureCredential(),
});
}
const reader = new SimpleCosmosDBReader(cosmosClient);
// create a configuration object for the reader
const simpleCosmosReaderConfig: SimpleCosmosDBReaderLoaderConfig = {
@@ -104,15 +76,16 @@ async function loadVectorData() {
// load objects from cosmos and convert them into LlamaIndex Document objects
const documents = await reader.loadData(simpleCosmosReaderConfig);
// use Azure CosmosDB as a vectorStore, docStore, and indexStore
const { vectorStore, docStore, indexStore } = await initializeStores();
// Store the embeddings in the CosmosDB container
const storageContext = await storageContextFromDefaults({
vectorStore,
docStore,
indexStore,
// create Azure CosmosDB as a vector store
const vectorStore = new AzureCosmosDBNoSqlVectorStore({
client: cosmosClient,
databaseName,
containerName: vectorCollectionName,
flatMetadata: false,
});
// Store the embeddings in the CosmosDB container
const storageContext = await storageContextFromDefaults({ vectorStore });
await VectorStoreIndex.fromDocuments(documents, { storageContext });
console.log(
`Successfully created embeddings in the CosmosDB container ${vectorCollectionName}.`,
+4 -38
View File
@@ -3,21 +3,17 @@ import { DefaultAzureCredential } from "@azure/identity";
import * as dotenv from "dotenv";
import {
AzureCosmosDBNoSQLConfig,
AzureCosmosDBNoSqlVectorStore,
OpenAI,
OpenAIEmbedding,
Settings,
storageContextFromDefaults,
VectorStoreIndex,
} from "llamaindex";
import {
createStoresFromConnectionString,
createStoresFromManagedIdentity,
} from "./utils";
// Load environment variables from local .env file
dotenv.config();
const cosmosEndpoint = process.env.AZURE_COSMOSDB_NOSQL_ACCOUNT_ENDPOINT!;
const cosmosEndpoint = process.env.AZURE_COSMOSDB_NOSQL_ENDPOINT!;
const cosmosConnectionString =
process.env.AZURE_COSMOSDB_NOSQL_CONNECTION_STRING!;
const databaseName =
@@ -44,27 +40,6 @@ const embedModelInit = {
Settings.llm = new OpenAI(llmInit);
Settings.embedModel = new OpenAIEmbedding(embedModelInit);
async function initializeStores() {
// Create a configuration object for the Azure CosmosDB NoSQL Vector Store
const dbConfig: AzureCosmosDBNoSQLConfig = {
databaseName,
containerName,
flatMetadata: false,
};
if (cosmosConnectionString) {
return createStoresFromConnectionString(cosmosConnectionString, dbConfig);
} else {
// Use managed identity to authenticate with Azure CosmosDB
const credential = new DefaultAzureCredential();
return createStoresFromManagedIdentity(
cosmosEndpoint,
credential,
dbConfig,
);
}
}
async function query() {
if (!cosmosConnectionString && !cosmosEndpoint) {
throw new Error(
@@ -90,19 +65,10 @@ async function query() {
containerName,
flatMetadata: false,
};
// use Azure CosmosDB as a vectorStore, docStore, and indexStore
const { vectorStore, docStore, indexStore } = await initializeStores();
// Store the embeddings in the CosmosDB container
const storageContext = await storageContextFromDefaults({
vectorStore,
docStore,
indexStore,
});
const store = new AzureCosmosDBNoSqlVectorStore(dbConfig);
// create an index from the Azure CosmosDB NoSQL Vector Store
const index = await VectorStoreIndex.init({ storageContext });
const index = await VectorStoreIndex.fromVectorStore(store);
// create a retriever and a query engine from the index
const retriever = index.asRetriever({ similarityTopK: 20 });
-51
View File
@@ -1,51 +0,0 @@
import { TokenCredential } from "@azure/identity";
import {
AzureCosmosDBNoSQLConfig,
AzureCosmosDBNoSqlVectorStore,
AzureCosmosNoSqlDocumentStore,
AzureCosmosNoSqlIndexStore,
} from "llamaindex";
/**
* Util function to create AzureCosmosDB vectorStore, docStore, indexStore from connection string.
*/
export const createStoresFromConnectionString = (
connectionString: string,
dbConfig: AzureCosmosDBNoSQLConfig,
) => {
const vectorStore = AzureCosmosDBNoSqlVectorStore.fromConnectionString({
connectionString,
...dbConfig,
});
const docStore = AzureCosmosNoSqlDocumentStore.fromConnectionString({
connectionString,
});
const indexStore = AzureCosmosNoSqlIndexStore.fromConnectionString({
connectionString,
});
return { vectorStore, docStore, indexStore };
};
/**
* Util function to create AzureCosmosDB vectorStore, docStore, indexStore from connection string.
*/
export const createStoresFromManagedIdentity = (
endpoint: string,
credential: TokenCredential,
dbConfig: AzureCosmosDBNoSQLConfig,
) => {
const vectorStore = AzureCosmosDBNoSqlVectorStore.fromUriAndManagedIdentity({
endpoint,
credential,
...dbConfig,
});
const docStore = AzureCosmosNoSqlDocumentStore.fromAadToken({
endpoint,
credential,
});
const indexStore = AzureCosmosNoSqlIndexStore.fromAadToken({
endpoint,
credential,
});
return { vectorStore, docStore, indexStore };
};
+2 -2
View File
@@ -24,9 +24,9 @@
"postgres": "^3.4.4"
},
"devDependencies": {
"@types/node": "^22.9.0",
"@types/node": "^22.8.4",
"tsx": "^4.19.0",
"typescript": "^5.6.3"
"typescript": "^5.6.2"
},
"scripts": {
"lint": "eslint ."
+2 -2
View File
@@ -22,8 +22,8 @@
"llamaindex": "*"
},
"devDependencies": {
"@types/node": "^22.9.0",
"@types/node": "^22.8.4",
"tsx": "^4.19.0",
"typescript": "^5.6.3"
"typescript": "^5.6.2"
}
}
+5 -5
View File
@@ -19,22 +19,22 @@
},
"devDependencies": {
"@changesets/cli": "^2.27.5",
"eslint": "9.14.0",
"eslint": "9.13.0",
"eslint-config-next": "^15.0.2",
"eslint-config-prettier": "^9.1.0",
"eslint-config-turbo": "^2.2.3",
"eslint-plugin-react": "7.37.2",
"globals": "^15.12.0",
"globals": "^15.11.0",
"husky": "^9.1.6",
"lint-staged": "^15.2.10",
"madge": "^8.0.0",
"prettier": "^3.3.3",
"prettier-plugin-organize-imports": "^4.1.0",
"turbo": "^2.2.3",
"typescript": "^5.6.3",
"typescript-eslint": "^8.13.0"
"typescript": "^5.6.2",
"typescript-eslint": "^8.12.2"
},
"packageManager": "pnpm@9.12.3",
"packageManager": "pnpm@9.5.0",
"pnpm": {
"overrides": {
"trim": "1.0.1",
-9
View File
@@ -1,14 +1,5 @@
# @llamaindex/autotool
## 5.0.5
### Patch Changes
- Updated dependencies [14cc9eb]
- Updated dependencies [a6db5dd]
- Updated dependencies [396b1e1]
- llamaindex@0.8.5
## 5.0.4
### Patch Changes
@@ -1,15 +1,5 @@
# @llamaindex/autotool-01-node-example
## 0.0.48
### Patch Changes
- Updated dependencies [14cc9eb]
- Updated dependencies [a6db5dd]
- Updated dependencies [396b1e1]
- llamaindex@0.8.5
- @llamaindex/autotool@5.0.5
## 0.0.47
### Patch Changes
@@ -13,5 +13,5 @@
"scripts": {
"start": "node --import tsx --import @llamaindex/autotool/node ./src/index.ts"
},
"version": "0.0.48"
"version": "0.0.47"
}
@@ -1,15 +1,5 @@
# @llamaindex/autotool-02-next-example
## 0.1.92
### Patch Changes
- Updated dependencies [14cc9eb]
- Updated dependencies [a6db5dd]
- Updated dependencies [396b1e1]
- llamaindex@0.8.5
- @llamaindex/autotool@5.0.5
## 0.1.91
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/autotool-02-next-example",
"private": true,
"version": "0.1.92",
"version": "0.1.91",
"scripts": {
"dev": "next dev",
"build": "next build",
@@ -15,7 +15,7 @@
"dotenv": "^16.3.1",
"llamaindex": "workspace:*",
"lucide-react": "^0.436.0",
"next": "15.0.2",
"next": "14.3.0-canary.51",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-markdown": "^9.0.1",
@@ -24,7 +24,7 @@
"tailwind-merge": "^2.5.2"
},
"devDependencies": {
"@types/node": "^22.9.0",
"@types/node": "^22.8.4",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"@types/react-syntax-highlighter": "^15.5.11",
@@ -32,6 +32,6 @@
"cross-env": "^7.0.3",
"postcss": "^8.4.41",
"tailwindcss": "^3.4.10",
"typescript": "^5.6.3"
"typescript": "^5.6.2"
}
}
+8 -8
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/autotool",
"type": "module",
"version": "5.0.5",
"version": "5.0.4",
"description": "auto transpile your JS function to LLM Agent compatible",
"files": [
"dist",
@@ -47,7 +47,7 @@
"dependencies": {
"@swc/core": "^1.7.22",
"jotai": "2.8.4",
"typedoc": "^0.26.11",
"typedoc": "^0.26.6",
"unplugin": "^1.12.2"
},
"peerDependencies": {
@@ -69,14 +69,14 @@
"devDependencies": {
"@swc/types": "^0.1.12",
"@types/json-schema": "^7.0.15",
"@types/node": "^22.9.0",
"bunchee": "5.6.1",
"@types/node": "^22.8.4",
"bunchee": "5.5.1",
"llamaindex": "workspace:*",
"next": "15.0.2",
"rollup": "^4.24.4",
"next": "14.2.11",
"rollup": "^4.21.2",
"tsx": "^4.19.0",
"typescript": "^5.6.3",
"vitest": "^2.1.4",
"typescript": "^5.6.2",
"vitest": "^2.0.5",
"webpack": "^5.94.0"
}
}
-8
View File
@@ -1,13 +1,5 @@
# @llamaindex/cloud
## 2.0.2
### Patch Changes
- Updated dependencies [14cc9eb]
- @llamaindex/env@0.1.17
- @llamaindex/core@0.4.2
## 2.0.1
### Patch Changes
+3
View File
@@ -10,6 +10,9 @@ export default defineConfig({
format: "prettier",
lint: "eslint",
},
services: {
asClass: true,
},
types: {
enums: "javascript",
},
+4 -4
View File
@@ -1,10 +1,10 @@
{
"name": "@llamaindex/cloud",
"version": "2.0.2",
"version": "2.0.1",
"type": "module",
"license": "MIT",
"scripts": {
"generate": "./node_modules/.bin/openapi-ts",
"generate": "pnpx @hey-api/openapi-ts@0.53.11",
"build": "pnpm run generate && bunchee",
"dev": "bunchee --watch"
},
@@ -51,10 +51,10 @@
},
"devDependencies": {
"@hey-api/client-fetch": "^0.4.2",
"@hey-api/openapi-ts": "^0.54.3",
"@hey-api/openapi-ts": "^0.53.11",
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*",
"bunchee": "5.6.1"
"bunchee": "5.5.1"
},
"peerDependencies": {
"@llamaindex/core": "workspace:*",
+44 -38
View File
@@ -4,12 +4,7 @@ import { fs, getEnv, path } from "@llamaindex/env";
import {
type Body_upload_file_api_v1_parsing_upload_post,
type ParserLanguages,
getJobApiV1ParsingJobJobIdGet,
getJobImageResultApiV1ParsingJobJobIdResultImageNameGet,
getJobJsonResultApiV1ParsingJobJobIdResultJsonGet,
getJobResultApiV1ParsingJobJobIdResultMarkdownGet,
getJobTextResultApiV1ParsingJobJobIdResultTextGet,
uploadFileApiV1ParsingUploadPost,
ParsingService,
} from "./api";
import { sleep } from "./utils";
@@ -206,7 +201,7 @@ export class LlamaParseReader extends FileReader {
| undefined;
} as unknown as Body_upload_file_api_v1_parsing_upload_post;
const response = await uploadFileApiV1ParsingUploadPost({
const response = await ParsingService.uploadFileApiV1ParsingUploadPost({
client: this.#client,
throwOnError: true,
signal: AbortSignal.timeout(this.maxTimeout * 1000),
@@ -228,7 +223,7 @@ export class LlamaParseReader extends FileReader {
await sleep(this.checkInterval * 1000);
// Check the job status. If unsuccessful response, checks if maximum timeout has been reached. If reached, throws an error
const result = await getJobApiV1ParsingJobJobIdGet({
const result = await ParsingService.getJobApiV1ParsingJobJobIdGet({
client: this.#client,
throwOnError: true,
path: {
@@ -244,36 +239,45 @@ export class LlamaParseReader extends FileReader {
let result;
switch (resultType) {
case "json": {
result = await getJobJsonResultApiV1ParsingJobJobIdResultJsonGet({
client: this.#client,
throwOnError: true,
path: {
job_id: jobId,
},
signal,
});
result =
await ParsingService.getJobJsonResultApiV1ParsingJobJobIdResultJsonGet(
{
client: this.#client,
throwOnError: true,
path: {
job_id: jobId,
},
signal,
},
);
break;
}
case "markdown": {
result = await getJobResultApiV1ParsingJobJobIdResultMarkdownGet({
client: this.#client,
throwOnError: true,
path: {
job_id: jobId,
},
signal,
});
result =
await ParsingService.getJobResultApiV1ParsingJobJobIdResultMarkdownGet(
{
client: this.#client,
throwOnError: true,
path: {
job_id: jobId,
},
signal,
},
);
break;
}
case "text": {
result = await getJobTextResultApiV1ParsingJobJobIdResultTextGet({
client: this.#client,
throwOnError: true,
path: {
job_id: jobId,
},
signal,
});
result =
await ParsingService.getJobTextResultApiV1ParsingJobJobIdResultTextGet(
{
client: this.#client,
throwOnError: true,
path: {
job_id: jobId,
},
signal,
},
);
break;
}
}
@@ -455,13 +459,15 @@ export class LlamaParseReader extends FileReader {
jobId: string,
): Promise<void> {
const response =
await getJobImageResultApiV1ParsingJobJobIdResultImageNameGet({
client: this.#client,
path: {
job_id: jobId,
name: imageName,
await ParsingService.getJobImageResultApiV1ParsingJobJobIdResultImageNameGet(
{
client: this.#client,
path: {
job_id: jobId,
name: imageName,
},
},
});
);
if (response.error) {
throw new Error(`Failed to download image: ${response.error.detail}`);
}
-14
View File
@@ -1,19 +1,5 @@
# @llamaindex/community
## 0.0.60
### Patch Changes
- Updated dependencies [14cc9eb]
- @llamaindex/env@0.1.17
- @llamaindex/core@0.4.2
## 0.0.59
### Patch Changes
- 47a7c3e: feat: added support for Haiku 3.5 via Bedrock
## 0.0.58
### Patch Changes
+1 -1
View File
@@ -4,7 +4,7 @@
## Current Features:
- Bedrock support for the Anthropic Claude Models [usage](https://ts.llamaindex.ai/modules/llms/available_llms/bedrock) including the latest Sonnet 3.5 v2 and Haiku 3.5
- Bedrock support for the Anthropic Claude Models [usage](https://ts.llamaindex.ai/modules/llms/available_llms/bedrock) including the latest Sonnet 3.5 v2
- Bedrock support for the Meta LLama 2, 3, 3.1 and 3.2 Models [usage](https://ts.llamaindex.ai/modules/llms/available_llms/bedrock)
- Meta LLama3.1 405b and Llama3.2 tool call support
- Meta 3.2 11B and 90B vision support
+3 -3
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/community",
"description": "Community package for LlamaIndexTS",
"version": "0.0.60",
"version": "0.0.58",
"type": "module",
"types": "dist/type/index.d.ts",
"main": "dist/cjs/index.js",
@@ -42,8 +42,8 @@
"dev": "bunchee --watch"
},
"devDependencies": {
"@types/node": "^22.9.0",
"bunchee": "5.6.1"
"@types/node": "^22.8.4",
"bunchee": "5.5.1"
},
"dependencies": {
"@aws-sdk/client-bedrock-agent-runtime": "^3.642.0",
+1 -6
View File
@@ -66,7 +66,6 @@ export const BEDROCK_MODELS = {
ANTHROPIC_CLAUDE_3_OPUS: "anthropic.claude-3-opus-20240229-v1:0",
ANTHROPIC_CLAUDE_3_5_SONNET: "anthropic.claude-3-5-sonnet-20240620-v1:0",
ANTHROPIC_CLAUDE_3_5_SONNET_V2: "anthropic.claude-3-5-sonnet-20241022-v2:0",
ANTHROPIC_CLAUDE_3_5_HAIKU: "anthropic.claude-3-5-haiku-20241022-v1:0",
META_LLAMA2_13B_CHAT: "meta.llama2-13b-chat-v1",
META_LLAMA2_70B_CHAT: "meta.llama2-70b-chat-v1",
META_LLAMA3_8B_INSTRUCT: "meta.llama3-8b-instruct-v1:0",
@@ -170,7 +169,6 @@ const CHAT_ONLY_MODELS = {
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_OPUS]: 200000,
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET]: 200000,
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET_V2]: 200000,
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_HAIKU]: 200000,
[BEDROCK_MODELS.META_LLAMA2_13B_CHAT]: 2048,
[BEDROCK_MODELS.META_LLAMA2_70B_CHAT]: 4096,
[BEDROCK_MODELS.META_LLAMA3_8B_INSTRUCT]: 8192,
@@ -206,7 +204,6 @@ export const STREAMING_MODELS = new Set([
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_OPUS,
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET,
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET_V2,
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_HAIKU,
BEDROCK_MODELS.META_LLAMA2_13B_CHAT,
BEDROCK_MODELS.META_LLAMA2_70B_CHAT,
BEDROCK_MODELS.META_LLAMA3_8B_INSTRUCT,
@@ -229,7 +226,6 @@ export const TOOL_CALL_MODELS: BEDROCK_MODELS[] = [
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_OPUS,
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET,
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET_V2,
BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_HAIKU,
BEDROCK_MODELS.META_LLAMA3_1_405B_INSTRUCT,
BEDROCK_MODELS.META_LLAMA3_2_1B_INSTRUCT,
BEDROCK_MODELS.META_LLAMA3_2_3B_INSTRUCT,
@@ -263,8 +259,7 @@ export const BEDROCK_MODEL_MAX_TOKENS: Partial<Record<BEDROCK_MODELS, number>> =
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_HAIKU]: 4096,
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_OPUS]: 4096,
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET]: 4096,
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET_V2]: 8192,
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_HAIKU]: 8192,
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET_V2]: 4096,
[BEDROCK_MODELS.META_LLAMA2_13B_CHAT]: 2048,
[BEDROCK_MODELS.META_LLAMA2_70B_CHAT]: 2048,
[BEDROCK_MODELS.META_LLAMA3_8B_INSTRUCT]: 2048,
-7
View File
@@ -1,12 +1,5 @@
# @llamaindex/core
## 0.4.2
### Patch Changes
- Updated dependencies [14cc9eb]
- @llamaindex/env@0.1.17
## 0.4.1
### Patch Changes
+4 -4
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/core",
"type": "module",
"version": "0.4.2",
"version": "0.4.1",
"description": "LlamaIndex Core Module",
"exports": {
"./agent": {
@@ -349,13 +349,13 @@
"devDependencies": {
"@edge-runtime/vm": "^4.0.3",
"ajv": "^8.17.1",
"bunchee": "5.6.1",
"happy-dom": "^15.10.0",
"bunchee": "5.5.1",
"happy-dom": "^15.7.4",
"natural": "^8.0.1"
},
"dependencies": {
"@llamaindex/env": "workspace:*",
"@types/node": "^22.9.0",
"@types/node": "^22.8.4",
"magic-bytes.js": "^1.10.0",
"zod": "^3.23.8",
"zod-to-json-schema": "^3.23.3"
+1 -1
View File
@@ -7,6 +7,6 @@
},
"devDependencies": {
"@llamaindex/core": "workspace:*",
"vitest": "^2.1.4"
"vitest": "^2.0.5"
}
}
-6
View File
@@ -1,11 +1,5 @@
# @llamaindex/env
## 0.1.17
### Patch Changes
- 14cc9eb: chore: move multi-model into single sub module
## 0.1.16
### Patch Changes
-12
View File
@@ -1,12 +0,0 @@
{
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
"browser": "./dist/index.browser.js",
"edge-light": "./dist/index.edge-light.js",
"workerd": "./dist/index.workerd.js"
},
"private": true
}
+6 -33
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/env",
"description": "environment wrapper, supports all JS environment including node, deno, bun, edge runtime, and cloudflare worker",
"version": "0.1.17",
"version": "0.1.16",
"type": "module",
"types": "dist/index.d.ts",
"module": "dist/index.js",
@@ -28,7 +28,7 @@
"types": "./dist/index.d.ts",
"import": "./dist/index.js",
"require": "./dist/index.cjs",
"default": "./dist/index.js"
"default": "./dist/index.cjs"
},
"workerd": {
"types": "./dist/index.workerd.d.ts",
@@ -50,36 +50,9 @@
"types": "./dist/index.d.cts",
"default": "./dist/index.cjs"
}
},
"./multi-model": {
"workerd": {
"types": "./multi-model/dist/multi-model.workerd.d.ts",
"default": "./multi-model/dist/multi-model.workerd.js"
},
"edge-light": {
"types": "./multi-model/dist/multi-model.edge-light.d.ts",
"default": "./multi-model/dist/multi-model.edge-light.js"
},
"browser": {
"types": "./multi-model/dist/multi-model.browser.d.ts",
"default": "./multi-model/dist/multi-model.browser.js"
},
"import": {
"types": "./multi-model/dist/multi-model.d.ts",
"default": "./multi-model/dist/multi-model.js"
},
"require": {
"types": "./multi-model/dist/multi-model.d.cts",
"default": "./multi-model/dist/multi-model.cjs"
},
"default": {
"types": "./multi-model/dist/multi-model.d.ts",
"default": "./multi-model/dist/multi-model.js"
}
}
},
"files": [
"multi-model",
"dist",
"CHANGELOG.md",
"!**/*.tsbuildinfo"
@@ -95,13 +68,13 @@
"test": "vitest"
},
"devDependencies": {
"@types/node": "^22.9.0",
"@types/node": "^22.8.4",
"@types/readable-stream": "^4.0.15",
"@xenova/transformers": "^2.17.2",
"bunchee": "5.6.1",
"gpt-tokenizer": "^2.6.0",
"bunchee": "5.5.1",
"gpt-tokenizer": "^2.5.0",
"pathe": "^1.1.2",
"vitest": "^2.1.4"
"vitest": "^2.0.5"
},
"peerDependencies": {
"@aws-crypto/sha256-js": "^5.2.0",
+6
View File
@@ -6,6 +6,12 @@
import "./global-check.js";
export { consoleLogger, emptyLogger, type Logger } from "./logger/index.js";
export {
loadTransformers,
setTransformers,
type LoadTransformerEvent,
type OnLoad,
} from "./multi-model/index.browser.js";
export { Tokenizers, tokenizers, type Tokenizer } from "./tokenizers/js.js";
export { NotSupportCurrentRuntimeClass } from "./utils/shared.js";
export * from "./web-polyfill.js";
+6
View File
@@ -5,6 +5,12 @@
*/
import "./global-check.js";
export { consoleLogger, emptyLogger, type Logger } from "./logger/index.js";
export {
loadTransformers,
setTransformers,
type LoadTransformerEvent,
type OnLoad,
} from "./multi-model/index.non-nodejs.js";
export * from "./node-polyfill.js";
export { Tokenizers, tokenizers, type Tokenizer } from "./tokenizers/js.js";
export { NotSupportCurrentRuntimeClass } from "./utils/shared.js";
+6
View File
@@ -35,6 +35,12 @@ export function createSHA256(): SHA256 {
}
export { consoleLogger, emptyLogger, type Logger } from "./logger/index.js";
export {
loadTransformers,
setTransformers,
type LoadTransformerEvent,
type OnLoad,
} from "./multi-model/index.js";
export { Tokenizers, tokenizers, type Tokenizer } from "./tokenizers/node.js";
export {
AsyncLocalStorage,
+6
View File
@@ -16,4 +16,10 @@ export function getEnv(name: string): string | undefined {
}
export { consoleLogger, emptyLogger, type Logger } from "./logger/index.js";
export {
loadTransformers,
setTransformers,
type LoadTransformerEvent,
type OnLoad,
} from "./multi-model/index.non-nodejs.js";
export { Tokenizers, tokenizers, type Tokenizer } from "./tokenizers/js.js";
-6
View File
@@ -1,6 +0,0 @@
export {
loadTransformers,
setTransformers,
type LoadTransformerEvent,
type OnLoad,
} from "./internal/multi-model/browser.js";
-6
View File
@@ -1,6 +0,0 @@
export {
loadTransformers,
setTransformers,
type LoadTransformerEvent,
type OnLoad,
} from "./internal/multi-model/non-node.js";
-6
View File
@@ -1,6 +0,0 @@
export {
loadTransformers,
setTransformers,
type LoadTransformerEvent,
type OnLoad,
} from "./internal/multi-model/node.js";
-6
View File
@@ -1,6 +0,0 @@
export {
loadTransformers,
setTransformers,
type LoadTransformerEvent,
type OnLoad,
} from "./internal/multi-model/non-node.js";
-8
View File
@@ -1,8 +0,0 @@
{
"extends": ["//"],
"tasks": {
"build": {
"outputs": ["**/dist/**"]
}
}
}
-9
View File
@@ -1,14 +1,5 @@
# @llamaindex/experimental
## 0.0.117
### Patch Changes
- Updated dependencies [14cc9eb]
- Updated dependencies [a6db5dd]
- Updated dependencies [396b1e1]
- llamaindex@0.8.5
## 0.0.116
### Patch Changes
+4 -4
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/experimental",
"description": "Experimental package for LlamaIndexTS",
"version": "0.0.117",
"version": "0.0.116",
"type": "module",
"types": "dist/type/index.d.ts",
"main": "dist/cjs/index.js",
@@ -56,15 +56,15 @@
},
"devDependencies": {
"@aws-crypto/sha256-js": "^5.2.0",
"@swc/cli": "^0.5.0",
"@swc/cli": "^0.4.0",
"@swc/core": "^1.7.22",
"@types/jsonpath": "^0.2.4",
"concurrently": "^9.1.0",
"concurrently": "^8.2.2",
"pathe": "^1.1.2"
},
"dependencies": {
"@types/lodash": "^4.17.7",
"@types/node": "^22.9.0",
"@types/node": "^22.8.4",
"jsonpath": "^1.1.1",
"llamaindex": "workspace:*",
"lodash": "^4.17.21"
-23
View File
@@ -1,28 +1,5 @@
# llamaindex
## 0.8.5
### Patch Changes
- 14cc9eb: chore: move multi-model into single sub module
- a6db5dd: feat: add baseUrl and timeout option in cohere rerank
- 396b1e1: feat: add Azure Cosmos DB DocumentStore, IndexStore, KVStore, update vectorStore and examples
- Updated dependencies [14cc9eb]
- @llamaindex/env@0.1.17
- @llamaindex/clip@0.0.11
- @llamaindex/huggingface@0.0.11
- @llamaindex/cloud@2.0.2
- @llamaindex/core@0.4.2
- @llamaindex/node-parser@0.0.3
- @llamaindex/anthropic@0.0.11
- @llamaindex/deepinfra@0.0.11
- @llamaindex/groq@0.0.26
- @llamaindex/ollama@0.0.18
- @llamaindex/openai@0.1.27
- @llamaindex/portkey-ai@0.0.11
- @llamaindex/replicate@0.0.11
- @llamaindex/readers@1.0.3
## 0.8.4
### Patch Changes
@@ -1,14 +1,5 @@
# @llamaindex/cloudflare-worker-agent-test
## 0.0.101
### Patch Changes
- Updated dependencies [14cc9eb]
- Updated dependencies [a6db5dd]
- Updated dependencies [396b1e1]
- llamaindex@0.8.5
## 0.0.100
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloudflare-worker-agent-test",
"version": "0.0.101",
"version": "0.0.100",
"type": "module",
"private": true,
"scripts": {
@@ -14,10 +14,10 @@
"devDependencies": {
"@cloudflare/vitest-pool-workers": "^0.5.8",
"@cloudflare/workers-types": "^4.20240924.0",
"@vitest/runner": "2.1.4",
"@vitest/snapshot": "2.1.4",
"typescript": "^5.6.3",
"vitest": "2.1.4",
"@vitest/runner": "2.1.1",
"@vitest/snapshot": "2.1.1",
"typescript": "^5.6.2",
"vitest": "2.1.1",
"wrangler": "^3.78.8"
},
"dependencies": {
@@ -1,11 +1,5 @@
# @llamaindex/llama-parse-browser-test
## 0.0.22
### Patch Changes
- @llamaindex/cloud@2.0.2
## 0.0.21
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/llama-parse-browser-test",
"private": true,
"version": "0.0.22",
"version": "0.0.21",
"type": "module",
"scripts": {
"dev": "vite",
@@ -9,7 +9,7 @@
"preview": "vite preview"
},
"devDependencies": {
"typescript": "^5.6.3",
"typescript": "^5.5.3",
"vite": "^5.4.1",
"vite-plugin-wasm": "^3.3.0"
},
@@ -1,14 +1,5 @@
# @llamaindex/next-agent-test
## 0.1.101
### Patch Changes
- Updated dependencies [14cc9eb]
- Updated dependencies [a6db5dd]
- Updated dependencies [396b1e1]
- llamaindex@0.8.5
## 0.1.100
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-agent-test",
"version": "0.1.101",
"version": "0.1.100",
"private": true,
"scripts": {
"dev": "next dev",
@@ -10,18 +10,18 @@
"dependencies": {
"ai": "^3.3.21",
"llamaindex": "workspace:*",
"next": "15.0.2",
"next": "14.2.11",
"react": "18.3.1",
"react-dom": "18.3.1"
},
"devDependencies": {
"@types/node": "^22.9.0",
"@types/node": "^22.8.4",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"eslint": "9.14.0",
"eslint": "9.13.0",
"eslint-config-next": "15.0.2",
"postcss": "^8.4.41",
"tailwindcss": "^3.4.10",
"typescript": "^5.6.3"
"typescript": "^5.6.2"
}
}
@@ -1,14 +1,5 @@
# test-edge-runtime
## 0.1.100
### Patch Changes
- Updated dependencies [14cc9eb]
- Updated dependencies [a6db5dd]
- Updated dependencies [396b1e1]
- llamaindex@0.8.5
## 0.1.99
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/nextjs-edge-runtime-test",
"version": "0.1.100",
"version": "0.1.99",
"private": true,
"scripts": {
"dev": "next dev",
@@ -9,14 +9,14 @@
},
"dependencies": {
"llamaindex": "workspace:*",
"next": "15.0.2",
"next": "14.2.11",
"react": "^18.3.1",
"react-dom": "^18.3.1"
},
"devDependencies": {
"@types/node": "^22.9.0",
"@types/node": "^22.8.4",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"typescript": "^5.6.3"
"typescript": "^5.6.2"
}
}
@@ -1,14 +1,5 @@
# @llamaindex/next-node-runtime
## 0.0.82
### Patch Changes
- Updated dependencies [14cc9eb]
- Updated dependencies [a6db5dd]
- Updated dependencies [396b1e1]
- llamaindex@0.8.5
## 0.0.81
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-node-runtime-test",
"version": "0.0.82",
"version": "0.0.81",
"private": true,
"scripts": {
"dev": "next dev",
@@ -9,18 +9,18 @@
},
"dependencies": {
"llamaindex": "workspace:*",
"next": "15.0.2",
"next": "14.2.11",
"react": "18.3.1",
"react-dom": "18.3.1"
},
"devDependencies": {
"@types/node": "^22.9.0",
"@types/node": "^22.8.4",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"eslint": "9.14.0",
"eslint": "9.13.0",
"eslint-config-next": "15.0.2",
"postcss": "^8.4.41",
"tailwindcss": "^3.4.10",
"typescript": "^5.6.3"
"typescript": "^5.6.2"
}
}
@@ -1,14 +1,5 @@
# @llamaindex/waku-query-engine-test
## 0.0.101
### Patch Changes
- Updated dependencies [14cc9eb]
- Updated dependencies [a6db5dd]
- Updated dependencies [396b1e1]
- llamaindex@0.8.5
## 0.0.100
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/waku-query-engine-test",
"version": "0.0.101",
"version": "0.0.100",
"type": "module",
"private": true,
"scripts": {
@@ -16,10 +16,10 @@
"waku": "0.21.4"
},
"devDependencies": {
"@types/react": "18.3.12",
"@types/react": "18.3.11",
"@types/react-dom": "18.3.1",
"autoprefixer": "^10.4.20",
"tailwindcss": "^3.4.14",
"typescript": "5.6.3"
"typescript": "5.6.2"
}
}
@@ -1,5 +1,5 @@
import type { LoadTransformerEvent } from "@llamaindex/env/multi-model";
import { setTransformers } from "@llamaindex/env/multi-model";
import type { LoadTransformerEvent } from "@llamaindex/env";
import { setTransformers } from "@llamaindex/env";
import { ClipEmbedding, ImageNode, Settings } from "llamaindex";
import assert from "node:assert";
import { type Mock, test } from "node:test";
+2 -2
View File
@@ -9,8 +9,8 @@
"e2e:updatesnap": "UPDATE_SNAPSHOT=1 node --import tsx --test ./node/**/*.e2e.ts"
},
"devDependencies": {
"@faker-js/faker": "^9.2.0",
"@types/node": "^22.9.0",
"@faker-js/faker": "^9.0.1",
"@types/node": "^22.8.4",
"consola": "^3.2.3",
"dotenv": "^16.4.5",
"llamaindex": "workspace:*",
+6 -6
View File
@@ -1,6 +1,6 @@
{
"name": "llamaindex",
"version": "0.8.5",
"version": "0.8.4",
"license": "MIT",
"type": "module",
"keywords": [
@@ -49,7 +49,7 @@
"@pinecone-database/pinecone": "^3.0.2",
"@qdrant/js-client-rest": "^1.11.0",
"@types/lodash": "^4.17.7",
"@types/node": "^22.9.0",
"@types/node": "^22.8.4",
"@types/pg": "^8.11.8",
"@upstash/vector": "^1.1.5",
"@zilliz/milvus2-sdk-node": "^2.4.6",
@@ -58,7 +58,7 @@
"chromadb": "1.9.2",
"chromadb-default-embed": "^2.13.2",
"cohere-ai": "7.13.0",
"gpt-tokenizer": "^2.6.0",
"gpt-tokenizer": "^2.5.0",
"groq-sdk": "^0.6.1",
"js-tiktoken": "^1.0.14",
"lodash": "^4.17.21",
@@ -85,16 +85,16 @@
}
},
"devDependencies": {
"@swc/cli": "^0.5.0",
"@swc/cli": "^0.4.0",
"@swc/core": "^1.7.22",
"@vercel/postgres": "^0.10.0",
"@xenova/transformers": "^2.17.2",
"concurrently": "^9.1.0",
"concurrently": "^8.2.2",
"glob": "^11.0.0",
"pg": "^8.12.0",
"pgvector": "0.2.0",
"postgres": "^3.4.4",
"typescript": "^5.6.3"
"typescript": "^5.6.2"
},
"engines": {
"node": ">=20.0.0"
@@ -1,11 +1,7 @@
import {
addFilesToPipelineApiV1PipelinesPipelineIdFilesPut,
getPipelineFileStatusApiV1PipelinesPipelineIdFilesFileIdStatusGet,
listPipelineFilesApiV1PipelinesPipelineIdFilesGet,
listProjectsApiV1ProjectsGet,
readFileContentApiV1FilesIdContentGet,
searchPipelinesApiV1PipelinesGet,
uploadFileApiV1FilesPost,
FilesService,
PipelinesService,
ProjectsService,
} from "@llamaindex/cloud/api";
import { initService } from "./utils.js";
@@ -16,12 +12,14 @@ export class LLamaCloudFileService {
public static async getAllProjectsWithPipelines() {
initService();
try {
const { data: projects } = await listProjectsApiV1ProjectsGet({
throwOnError: true,
});
const { data: pipelines } = await searchPipelinesApiV1PipelinesGet({
throwOnError: true,
});
const { data: projects } =
await ProjectsService.listProjectsApiV1ProjectsGet({
throwOnError: true,
});
const { data: pipelines } =
await PipelinesService.searchPipelinesApiV1PipelinesGet({
throwOnError: true,
});
return projects.map((project) => ({
...project,
pipelines: pipelines.filter((p) => p.project_id === project.id),
@@ -43,7 +41,7 @@ export class LLamaCloudFileService {
customMetadata: Record<string, any> = {},
) {
initService();
const { data: file } = await uploadFileApiV1FilesPost({
const { data: file } = await FilesService.uploadFileApiV1FilesPost({
query: { project_id: projectId },
body: {
upload_file: uploadFile,
@@ -56,7 +54,7 @@ export class LLamaCloudFileService {
custom_metadata: { file_id: file.id, ...customMetadata },
},
];
await addFilesToPipelineApiV1PipelinesPipelineIdFilesPut({
await PipelinesService.addFilesToPipelineApiV1PipelinesPipelineIdFilesPut({
path: {
pipeline_id: pipelineId,
},
@@ -68,7 +66,7 @@ export class LLamaCloudFileService {
let attempt = 0;
while (attempt < maxAttempts) {
const { data: result } =
await getPipelineFileStatusApiV1PipelinesPipelineIdFilesFileIdStatusGet(
await PipelinesService.getPipelineFileStatusApiV1PipelinesPipelineIdFilesFileIdStatusGet(
{
path: {
pipeline_id: pipelineId,
@@ -98,7 +96,7 @@ export class LLamaCloudFileService {
public static async getFileUrl(pipelineId: string, filename: string) {
initService();
const { data: allPipelineFiles } =
await listPipelineFilesApiV1PipelinesPipelineIdFilesGet({
await PipelinesService.listPipelineFilesApiV1PipelinesPipelineIdFilesGet({
path: {
pipeline_id: pipelineId,
},
@@ -106,15 +104,16 @@ export class LLamaCloudFileService {
});
const file = allPipelineFiles.find((file) => file.name === filename);
if (!file?.file_id) return null;
const { data: fileContent } = await readFileContentApiV1FilesIdContentGet({
path: {
id: file.file_id,
},
query: {
project_id: file.project_id,
},
throwOnError: true,
});
const { data: fileContent } =
await FilesService.readFileContentApiV1FilesIdContentGet({
path: {
id: file.file_id,
},
query: {
project_id: file.project_id,
},
throwOnError: true,
});
return fileContent.url;
}
}
@@ -13,16 +13,7 @@ import {
initService,
} from "./utils.js";
import {
createBatchPipelineDocumentsApiV1PipelinesPipelineIdDocumentsPost,
deletePipelineDocumentApiV1PipelinesPipelineIdDocumentsDocumentIdDelete,
getPipelineDocumentStatusApiV1PipelinesPipelineIdDocumentsDocumentIdStatusGet,
getPipelineStatusApiV1PipelinesPipelineIdStatusGet,
type PipelineCreate,
searchPipelinesApiV1PipelinesGet,
upsertBatchPipelineDocumentsApiV1PipelinesPipelineIdDocumentsPut,
upsertPipelineApiV1PipelinesPut,
} from "@llamaindex/cloud/api";
import { PipelinesService, type PipelineCreate } from "@llamaindex/cloud/api";
import type { BaseRetriever } from "@llamaindex/core/retriever";
import { getEnv } from "@llamaindex/env";
import { Settings } from "../Settings.js";
@@ -47,12 +38,14 @@ export class LlamaCloudIndex {
while (true) {
const { data: pipelineStatus } =
await getPipelineStatusApiV1PipelinesPipelineIdStatusGet({
path: {
pipeline_id: pipelineId,
await PipelinesService.getPipelineStatusApiV1PipelinesPipelineIdStatusGet(
{
path: {
pipeline_id: pipelineId,
},
throwOnError: true,
},
throwOnError: true,
});
);
if (pipelineStatus.status === "SUCCESS") {
if (verbose) {
@@ -99,7 +92,7 @@ export class LlamaCloudIndex {
const {
data: { status },
} =
await getPipelineDocumentStatusApiV1PipelinesPipelineIdDocumentsDocumentIdStatusGet(
await PipelinesService.getPipelineDocumentStatusApiV1PipelinesPipelineIdDocumentsDocumentIdStatusGet(
{
path: { pipeline_id: pipelineId, document_id: doc },
throwOnError: true,
@@ -195,25 +188,29 @@ export class LlamaCloudIndex {
const projectId = await this.getProjectId();
const pipelineId = await this.getPipelineId();
await upsertBatchPipelineDocumentsApiV1PipelinesPipelineIdDocumentsPut({
path: {
pipeline_id: pipelineId,
await PipelinesService.upsertBatchPipelineDocumentsApiV1PipelinesPipelineIdDocumentsPut(
{
path: {
pipeline_id: pipelineId,
},
body: documents.map((doc) => ({
metadata: doc.metadata,
text: doc.text,
excluded_embed_metadata_keys: doc.excludedEmbedMetadataKeys,
excluded_llm_metadata_keys: doc.excludedEmbedMetadataKeys,
id: doc.id_,
})),
},
body: documents.map((doc) => ({
metadata: doc.metadata,
text: doc.text,
excluded_embed_metadata_keys: doc.excludedEmbedMetadataKeys,
excluded_llm_metadata_keys: doc.excludedEmbedMetadataKeys,
id: doc.id_,
})),
});
);
while (true) {
const { data: pipelineStatus } =
await getPipelineStatusApiV1PipelinesPipelineIdStatusGet({
path: { pipeline_id: pipelineId },
throwOnError: true,
});
await PipelinesService.getPipelineStatusApiV1PipelinesPipelineIdStatusGet(
{
path: { pipeline_id: pipelineId },
throwOnError: true,
},
);
if (pipelineStatus.status === "SUCCESS") {
console.info(
@@ -275,20 +272,22 @@ export class LlamaCloudIndex {
async insert(document: Document) {
const pipelineId = await this.getPipelineId();
await createBatchPipelineDocumentsApiV1PipelinesPipelineIdDocumentsPost({
path: {
pipeline_id: pipelineId,
},
body: [
{
metadata: document.metadata,
text: document.text,
excluded_embed_metadata_keys: document.excludedLlmMetadataKeys,
excluded_llm_metadata_keys: document.excludedEmbedMetadataKeys,
id: document.id_,
await PipelinesService.createBatchPipelineDocumentsApiV1PipelinesPipelineIdDocumentsPost(
{
path: {
pipeline_id: pipelineId,
},
],
});
body: [
{
metadata: document.metadata,
text: document.text,
excluded_embed_metadata_keys: document.excludedLlmMetadataKeys,
excluded_llm_metadata_keys: document.excludedEmbedMetadataKeys,
id: document.id_,
},
],
},
);
await this.waitForDocumentIngestion([document.id_]);
}
@@ -296,7 +295,7 @@ export class LlamaCloudIndex {
async delete(document: Document) {
const pipelineId = await this.getPipelineId();
await deletePipelineDocumentApiV1PipelinesPipelineIdDocumentsDocumentIdDelete(
await PipelinesService.deletePipelineDocumentApiV1PipelinesPipelineIdDocumentsDocumentIdDelete(
{
path: {
pipeline_id: pipelineId,
@@ -311,20 +310,22 @@ export class LlamaCloudIndex {
async refreshDoc(document: Document) {
const pipelineId = await this.getPipelineId();
await upsertBatchPipelineDocumentsApiV1PipelinesPipelineIdDocumentsPut({
path: {
pipeline_id: pipelineId,
},
body: [
{
metadata: document.metadata,
text: document.text,
excluded_embed_metadata_keys: document.excludedLlmMetadataKeys,
excluded_llm_metadata_keys: document.excludedEmbedMetadataKeys,
id: document.id_,
await PipelinesService.upsertBatchPipelineDocumentsApiV1PipelinesPipelineIdDocumentsPut(
{
path: {
pipeline_id: pipelineId,
},
],
});
body: [
{
metadata: document.metadata,
text: document.text,
excluded_embed_metadata_keys: document.excludedLlmMetadataKeys,
excluded_llm_metadata_keys: document.excludedEmbedMetadataKeys,
id: document.id_,
},
],
},
);
await this.waitForDocumentIngestion([document.id_]);
}
@@ -336,13 +337,14 @@ export class LlamaCloudIndex {
}): Promise<void> {
const projectId = await this.getProjectId();
const { data: pipelines } = await searchPipelinesApiV1PipelinesGet({
query: {
project_id: projectId,
pipeline_name: this.params.name,
},
throwOnError: true,
});
const { data: pipelines } =
await PipelinesService.searchPipelinesApiV1PipelinesGet({
query: {
project_id: projectId,
pipeline_name: this.params.name,
},
throwOnError: true,
});
if (pipelines.length === 0) {
// no pipeline found, create a new one
@@ -374,17 +376,18 @@ export class LlamaCloudIndex {
};
}
const { data: pipeline } = await upsertPipelineApiV1PipelinesPut({
query: {
project_id: projectId,
},
body: {
name: this.params.name,
embedding_config: embeddingConfig,
transform_config: transformConfig,
},
throwOnError: true,
});
const { data: pipeline } =
await PipelinesService.upsertPipelineApiV1PipelinesPut({
query: {
project_id: projectId,
},
body: {
name: this.params.name,
embedding_config: embeddingConfig,
transform_config: transformConfig,
},
throwOnError: true,
});
if (config?.verbose) {
console.log(
@@ -1,8 +1,8 @@
import {
type MetadataFilter,
type MetadataFilters,
PipelinesService,
type RetrievalParams,
runSearchApiV1PipelinesPipelineIdRetrievePost,
type TextNodeWithScore,
} from "@llamaindex/cloud/api";
import { DEFAULT_PROJECT_NAME } from "@llamaindex/core/global";
@@ -85,7 +85,7 @@ export class LlamaCloudRetriever extends BaseRetriever {
const filters = this.convertFilter(this.retrieveParams.filters);
const { data: results } =
await runSearchApiV1PipelinesPipelineIdRetrievePost({
await PipelinesService.runSearchApiV1PipelinesPipelineIdRetrievePost({
throwOnError: true,
path: {
pipeline_id: pipelineId,
+18 -15
View File
@@ -1,7 +1,7 @@
import {
client,
listProjectsApiV1ProjectsGet,
searchPipelinesApiV1PipelinesGet,
PipelinesService,
ProjectsService,
} from "@llamaindex/cloud/api";
import { DEFAULT_BASE_URL } from "@llamaindex/core/global";
import { getEnv } from "@llamaindex/env";
@@ -42,13 +42,15 @@ export async function getProjectId(
projectName: string,
organizationId?: string,
): Promise<string> {
const { data: projects } = await listProjectsApiV1ProjectsGet({
query: {
project_name: projectName,
organization_id: organizationId ?? null,
const { data: projects } = await ProjectsService.listProjectsApiV1ProjectsGet(
{
query: {
project_name: projectName,
organization_id: organizationId ?? null,
},
throwOnError: true,
},
throwOnError: true,
});
);
if (projects.length === 0) {
throw new Error(
@@ -74,13 +76,14 @@ export async function getPipelineId(
projectName: string,
organizationId?: string,
): Promise<string> {
const { data: pipelines } = await searchPipelinesApiV1PipelinesGet({
query: {
project_id: await getProjectId(projectName, organizationId),
pipeline_name: name,
},
throwOnError: true,
});
const { data: pipelines } =
await PipelinesService.searchPipelinesApiV1PipelinesGet({
query: {
project_id: await getProjectId(projectName, organizationId),
pipeline_name: name,
},
throwOnError: true,
});
if (pipelines.length === 0 || !pipelines[0]!.id) {
throw new Error(
@@ -10,16 +10,12 @@ type CohereRerankOptions = {
topN?: number;
model?: string;
apiKey: string | null;
baseUrl?: string;
timeout?: number;
};
export class CohereRerank implements BaseNodePostprocessor {
topN: number = 2;
model: string = "rerank-english-v2.0";
apiKey: string | null = null;
baseUrl: string | undefined;
timeout: number | undefined;
private client: CohereClient | null = null;
@@ -31,8 +27,6 @@ export class CohereRerank implements BaseNodePostprocessor {
topN = 2,
model = "rerank-english-v2.0",
apiKey = null,
baseUrl,
timeout,
}: CohereRerankOptions) {
if (apiKey === null) {
throw new Error("CohereRerank requires an API key");
@@ -41,19 +35,10 @@ export class CohereRerank implements BaseNodePostprocessor {
this.topN = topN;
this.model = model;
this.apiKey = apiKey;
this.baseUrl = baseUrl;
this.timeout = timeout;
this.client = new CohereClient(
this.baseUrl
? {
token: this.apiKey,
environment: this.baseUrl,
}
: {
token: this.apiKey,
},
);
this.client = new CohereClient({
token: this.apiKey,
});
}
/**
@@ -77,17 +62,12 @@ export class CohereRerank implements BaseNodePostprocessor {
throw new Error("CohereRerank requires a query");
}
const results = await this.client.rerank(
{
query: extractText(query),
model: this.model,
topN: this.topN,
documents: nodes.map((n) => n.node.getContent(MetadataMode.ALL)),
},
this.timeout !== undefined
? { timeoutInSeconds: this.timeout }
: undefined,
);
const results = await this.client.rerank({
query: extractText(query),
model: this.model,
topN: this.topN,
documents: nodes.map((n) => n.node.getContent(MetadataMode.ALL)),
});
const newNodes: NodeWithScore[] = [];
@@ -1,77 +0,0 @@
import {
AzureCosmosNoSqlKVStore,
type AadTokenOptions,
type AccountAndKeyOptions,
type ConnectionStringOptions,
} from "../kvStore/AzureCosmosNoSqlKVStore.js";
import { KVDocumentStore } from "./KVDocumentStore.js";
const DEFAULT_DATABASE = "DocumentStoreDB";
const DEFAULT_CONTAINER = "DocumentStoreContainer";
export interface AzureCosmosNoSqlDocumentStoreArgs {
azureCosmosNoSqlKVStore: AzureCosmosNoSqlKVStore;
namespace?: string;
}
export class AzureCosmosNoSqlDocumentStore extends KVDocumentStore {
constructor({
azureCosmosNoSqlKVStore,
namespace,
}: AzureCosmosNoSqlDocumentStoreArgs) {
super(azureCosmosNoSqlKVStore, namespace);
}
/**
* 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 AzureCosmosNoSqlDocumentStore
*/
static fromConnectionString(options: ConnectionStringOptions = {}) {
options.dbName = options.dbName || DEFAULT_DATABASE;
options.containerName = options.containerName || DEFAULT_CONTAINER;
const azureCosmosNoSqlKVStore =
AzureCosmosNoSqlKVStore.fromConnectionString(options);
const namespace = `${options.dbName}.${options.containerName}`;
return new AzureCosmosNoSqlDocumentStore({
azureCosmosNoSqlKVStore,
namespace,
});
}
/**
* 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 AzureCosmosNoSqlDocumentStore
*/
static fromAccountAndKey(options: AccountAndKeyOptions = {}) {
options.dbName = options.dbName || DEFAULT_DATABASE;
options.containerName = options.containerName || DEFAULT_CONTAINER;
const azureCosmosNoSqlKVStore =
AzureCosmosNoSqlKVStore.fromAccountAndKey(options);
const namespace = `${options.dbName}.${options.containerName}`;
return new AzureCosmosNoSqlDocumentStore({
azureCosmosNoSqlKVStore,
namespace,
});
}
/**
* 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 AzureCosmosNoSqlDocumentStore
*/
static fromAadToken(options: AadTokenOptions = {}) {
options.dbName = options.dbName || DEFAULT_DATABASE;
options.containerName = options.containerName || DEFAULT_CONTAINER;
const azureCosmosNoSqlKVStore =
AzureCosmosNoSqlKVStore.fromAadToken(options);
const namespace = `${options.dbName}.${options.containerName}`;
return new AzureCosmosNoSqlDocumentStore({
azureCosmosNoSqlKVStore,
namespace,
});
}
}
-3
View File
@@ -1,14 +1,11 @@
export * from "@llamaindex/core/storage/chat-store";
export * from "./docStore/AzureCosmosNoSqlDocumentStore.js";
export { PostgresDocumentStore } from "./docStore/PostgresDocumentStore.js";
export { SimpleDocumentStore } from "./docStore/SimpleDocumentStore.js";
export * from "./docStore/types.js";
export * from "./FileSystem.js";
export * from "./indexStore/AzureCosmosNoSqlIndexStore.js";
export { PostgresIndexStore } from "./indexStore/PostgresIndexStore.js";
export { SimpleIndexStore } from "./indexStore/SimpleIndexStore.js";
export * from "./indexStore/types.js";
export * from "./kvStore/AzureCosmosNoSqlKVStore.js";
export { PostgresKVStore } from "./kvStore/PostgresKVStore.js";
export { SimpleKVStore } from "./kvStore/SimpleKVStore.js";
export * from "./kvStore/types.js";
@@ -1,77 +0,0 @@
import {
AzureCosmosNoSqlKVStore,
type AadTokenOptions,
type AccountAndKeyOptions,
type ConnectionStringOptions,
} from "../kvStore/AzureCosmosNoSqlKVStore.js";
import { KVIndexStore } from "./KVIndexStore.js";
const DEFAULT_DATABASE = "IndexStoreDB";
const DEFAULT_CONTAINER = "IndexStoreContainer";
export interface AzureCosmosNoSqlIndexStoreArgs {
azureCosmosNoSqlKVStore: AzureCosmosNoSqlKVStore;
namespace?: string;
}
export class AzureCosmosNoSqlIndexStore extends KVIndexStore {
constructor({
azureCosmosNoSqlKVStore,
namespace,
}: AzureCosmosNoSqlIndexStoreArgs) {
super(azureCosmosNoSqlKVStore, namespace);
}
/**
* 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 AzureCosmosNoSqlIndexStore
*/
static fromConnectionString(options: ConnectionStringOptions = {}) {
options.dbName = options.dbName || DEFAULT_DATABASE;
options.containerName = options.containerName || DEFAULT_CONTAINER;
const azureCosmosNoSqlKVStore =
AzureCosmosNoSqlKVStore.fromConnectionString(options);
const namespace = `${options.dbName}.${options.containerName}`;
return new AzureCosmosNoSqlIndexStore({
azureCosmosNoSqlKVStore,
namespace,
});
}
/**
* 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 AzureCosmosNoSqlIndexStore
*/
static fromAccountAndKey(options: AccountAndKeyOptions = {}) {
options.dbName = options.dbName || DEFAULT_DATABASE;
options.containerName = options.containerName || DEFAULT_CONTAINER;
const azureCosmosNoSqlKVStore =
AzureCosmosNoSqlKVStore.fromAccountAndKey(options);
const namespace = `${options.dbName}.${options.containerName}`;
return new AzureCosmosNoSqlIndexStore({
azureCosmosNoSqlKVStore,
namespace,
});
}
/**
* 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 AzureCosmosNoSqlIndexStore
*/
static fromAadToken(options: AadTokenOptions = {}) {
options.dbName = options.dbName || DEFAULT_DATABASE;
options.containerName = options.containerName || DEFAULT_CONTAINER;
const azureCosmosNoSqlKVStore =
AzureCosmosNoSqlKVStore.fromAadToken(options);
const namespace = `${options.dbName}.${options.containerName}`;
return new AzureCosmosNoSqlIndexStore({
azureCosmosNoSqlKVStore,
namespace,
});
}
}
@@ -1,274 +0,0 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import { Container, CosmosClient, Database } from "@azure/cosmos";
import { DefaultAzureCredential, type TokenCredential } from "@azure/identity";
import { getEnv } from "@llamaindex/env";
import { BaseKVStore } from "./types.js";
const USER_AGENT_SUFFIX = "LlamaIndex-CDBNoSQL-KVStore-JavaScript";
const DEFAULT_CHAT_DATABASE = "KVStoreDB";
const DEFAULT_CHAT_CONTAINER = "KVStoreContainer";
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 CosmosDatabaseProperties {
throughput?: number;
}
export interface CosmosContainerProperties {
partitionKey: any;
[key: string]: any;
}
export interface ConnectionStringOptions extends AzureCosmosNoSqlKVStoreConfig {
connectionString?: string;
}
export interface AccountAndKeyOptions extends AzureCosmosNoSqlKVStoreConfig {
endpoint?: string;
key?: string;
}
export interface AadTokenOptions extends AzureCosmosNoSqlKVStoreConfig {
endpoint?: string;
credential?: TokenCredential;
}
export interface AzureCosmosNoSqlKVStoreConfig {
cosmosClient?: CosmosClient;
dbName?: string;
containerName?: string;
cosmosContainerProperties?: CosmosContainerProperties;
cosmosDatabaseProperties?: CosmosDatabaseProperties;
}
export class AzureCosmosNoSqlKVStore extends BaseKVStore {
private cosmosClient: CosmosClient;
private database!: Database;
private container!: Container;
private initPromise?: Promise<void>;
private dbName: string;
private containerName: string;
private cosmosContainerProperties: CosmosContainerProperties;
private cosmosDatabaseProperties: CosmosDatabaseProperties;
private initialize: () => Promise<void>;
constructor({
cosmosClient,
dbName = DEFAULT_CHAT_DATABASE,
containerName = DEFAULT_CHAT_CONTAINER,
cosmosContainerProperties = { partitionKey: "/id" },
cosmosDatabaseProperties = {},
}: AzureCosmosNoSqlKVStoreConfig) {
super();
if (!cosmosClient) {
throw new Error(
"CosmosClient is required for AzureCosmosDBNoSQLVectorStore initialization",
);
}
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 AzureCosmosDBNoSQLKVStore 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: this.cosmosContainerProperties?.partitionKey,
indexingPolicy: this.cosmosContainerProperties?.indexingPolicy,
defaultTtl: this.cosmosContainerProperties?.defaultTtl,
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 } & AzureCosmosNoSqlKVStoreConfig = {},
): AzureCosmosNoSqlKVStore {
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 AzureCosmosNoSqlKVStore({
...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;
} & AzureCosmosNoSqlKVStoreConfig = {},
): AzureCosmosNoSqlKVStore {
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 AzureCosmosNoSqlKVStore({
...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;
} & AzureCosmosNoSqlKVStoreConfig = {},
): AzureCosmosNoSqlKVStore {
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 AzureCosmosNoSqlKVStore({
...config,
cosmosClient,
});
}
async put(key: string, val: Record<string, any>): Promise<void> {
await this.initialize();
await this.container.items.upsert({
id: key,
messages: val,
});
}
async get(key: string): Promise<Record<string, any> | null> {
await this.initialize();
try {
const { resource } = await this.container.item(key).read();
return resource?.messages || null;
} catch (error) {
console.error(`Error retrieving item with key ${key}:`, error);
return null;
}
}
async getAll(): Promise<Record<string, Record<string, any>>> {
await this.initialize();
const querySpec = {
query: "SELECT * from c",
};
const { resources } = await this.container.items
.query(querySpec)
.fetchAll();
const output: Record<string, Record<string, any>> = resources.reduce(
(res, item) => {
res[item.id] = item.messages;
return res;
},
{},
);
return output;
}
async delete(key: string): Promise<boolean> {
await this.initialize();
try {
await this.container.item(key).delete();
return true;
} catch (error) {
console.error(`Error deleting item with key ${key}:`, error);
return false;
}
}
}
@@ -5,6 +5,7 @@ import {
VectorEmbeddingDistanceFunction,
VectorIndexType,
type ContainerRequest,
type CosmosClientOptions,
type DatabaseRequest,
type IndexingPolicy,
type VectorEmbeddingPolicy,
@@ -47,7 +48,10 @@ export interface AzureCosmosDBNoSQLInitOptions {
*/
export interface AzureCosmosDBNoSQLConfig
extends AzureCosmosDBNoSQLInitOptions {
client?: CosmosClient;
readonly client?: CosmosClient;
readonly connectionString?: string;
readonly endpoint?: string;
readonly credentials?: TokenCredential;
readonly databaseName?: string;
readonly containerName?: string;
readonly textKey?: string;
@@ -56,7 +60,7 @@ export interface AzureCosmosDBNoSQLConfig
readonly idKey?: string;
}
const USER_AGENT_SUFFIX = "LlamaIndex-CDBNoSQL-VectorStore-JavaScript";
const USER_AGENT_PREFIX = "LlamaIndex-CDBNoSQL-VectorStore-JavaScript";
const DEFAULT_VECTOR_EMBEDDING_POLICY = {
vectorEmbeddings: [
@@ -144,12 +148,40 @@ export class AzureCosmosDBNoSqlVectorStore extends BaseVectorStore {
constructor(dbConfig: AzureCosmosDBNoSQLConfig & VectorStoreBaseParams) {
super(dbConfig);
if (!dbConfig.client) {
const connectionString =
dbConfig.connectionString ??
getEnv("AZURE_COSMOSDB_NOSQL_CONNECTION_STRING");
const endpoint =
dbConfig.endpoint ?? getEnv("AZURE_COSMOSDB_NOSQL_ENDPOINT");
if (!dbConfig.client && !connectionString && !endpoint) {
throw new Error(
"CosmosClient is required for AzureCosmosDBNoSQLVectorStore initialization",
"CosmosDB client, connection string or endpoint must be set in the configuration.",
);
}
this.cosmosClient = dbConfig.client;
if (!dbConfig.client) {
if (connectionString) {
const { endpoint, key } = parseConnectionString(connectionString);
this.cosmosClient = new CosmosClient({
endpoint,
key,
userAgentSuffix: USER_AGENT_PREFIX,
} as CosmosClientOptions);
} else {
// Use managed identity
this.cosmosClient = new CosmosClient({
endpoint,
aadCredentials: dbConfig.credentials ?? new DefaultAzureCredential(),
userAgentSuffix: USER_AGENT_PREFIX,
} as CosmosClientOptions);
}
} else {
this.cosmosClient = dbConfig.client;
}
const client = this.cosmosClient;
const databaseName = dbConfig.databaseName ?? "vectorSearchDB";
const containerName = dbConfig.containerName ?? "vectorSearchContainer";
this.idKey = dbConfig.idKey ?? "id";
@@ -174,17 +206,12 @@ export class AzureCosmosDBNoSqlVectorStore extends BaseVectorStore {
// Deferring initialization to the first call to `initialize`
this.initialize = () => {
if (this.initPromise === undefined) {
this.initPromise = this.init(
this.cosmosClient,
databaseName,
containerName,
{
vectorEmbeddingPolicy,
indexingPolicy,
createContainerOptions: dbConfig.createContainerOptions,
createDatabaseOptions: dbConfig.createDatabaseOptions,
},
).catch((error) => {
this.initPromise = this.init(client, databaseName, containerName, {
vectorEmbeddingPolicy,
indexingPolicy,
createContainerOptions: dbConfig.createContainerOptions,
createDatabaseOptions: dbConfig.createDatabaseOptions,
}).catch((error) => {
console.error(
"Error during AzureCosmosDBNoSQLVectorStore initialization",
error,
@@ -195,84 +222,6 @@ export class AzureCosmosDBNoSqlVectorStore extends BaseVectorStore {
};
}
/**
* 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 AzureCosmosDBNoSqlVectorStore
*/
static fromConnectionString(
config: { connectionString?: string } & AzureCosmosDBNoSQLConfig &
VectorStoreBaseParams = {},
): AzureCosmosDBNoSqlVectorStore {
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 client = new CosmosClient({
endpoint,
key,
userAgentSuffix: USER_AGENT_SUFFIX,
});
return new AzureCosmosDBNoSqlVectorStore({ ...config, client });
}
/**
* 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 AzureCosmosDBNoSqlVectorStore
*/
static fromAccountAndKey(
config: { endpoint?: string; key?: string } & AzureCosmosDBNoSQLConfig &
VectorStoreBaseParams = {},
): AzureCosmosDBNoSqlVectorStore {
const cosmosEndpoint =
config.endpoint || (getEnv("AZURE_COSMOSDB_NOSQL_ENDPOINT") as string);
const cosmosKey =
config.key || (getEnv("AZURE_COSMOSDB_NOSQL_KEY") as string);
if (!cosmosEndpoint || !cosmosKey) {
throw new Error(
"Azure CosmosDB account endpoint and key must be provided",
);
}
const client = new CosmosClient({
endpoint: cosmosEndpoint,
key: cosmosKey,
userAgentSuffix: USER_AGENT_SUFFIX,
});
return new AzureCosmosDBNoSqlVectorStore({ ...config, client });
}
/**
* Static method for creating an instance using account endpoint and managed identity.
* 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 AzureCosmosDBNoSqlVectorStore
*/
static fromUriAndManagedIdentity(
config: {
endpoint?: string;
credential?: TokenCredential;
} & AzureCosmosDBNoSQLConfig &
VectorStoreBaseParams = {},
): AzureCosmosDBNoSqlVectorStore {
const cosmosEndpoint =
config.endpoint ||
(getEnv("AZURE_COSMOSDB_NOSQL_ACCOUNT_ENDPOINT") as string);
if (!cosmosEndpoint) {
throw new Error("Azure CosmosDB account endpoint must be provided");
}
const credentials = config.credential ?? new DefaultAzureCredential();
const client = new CosmosClient({
endpoint: cosmosEndpoint,
aadCredentials: credentials,
userAgentSuffix: USER_AGENT_SUFFIX,
});
return new AzureCosmosDBNoSqlVectorStore({ ...config, client });
}
/**
* Adds document to the CosmosDB container.
*
+3 -3
View File
@@ -7,10 +7,10 @@
"test": "vitest run"
},
"devDependencies": {
"@faker-js/faker": "^9.2.0",
"dotenv": "^16.4.5",
"@faker-js/faker": "^9.0.1",
"llamaindex": "workspace:*",
"msw": "^2.6.0",
"vitest": "^2.1.4"
"vitest": "^2.0.5",
"dotenv": "^16.4.5"
}
}
-8
View File
@@ -1,13 +1,5 @@
# @llamaindex/node-parser
## 0.0.3
### Patch Changes
- Updated dependencies [14cc9eb]
- @llamaindex/env@0.1.17
- @llamaindex/core@0.4.2
## 0.0.2
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/node-parser",
"version": "0.0.3",
"version": "0.0.2",
"description": "Node parser for LlamaIndex",
"type": "module",
"exports": {
@@ -42,8 +42,8 @@
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*",
"@types/html-to-text": "^9.0.4",
"@types/node": "^22.9.0",
"bunchee": "5.6.1",
"@types/node": "^22.8.4",
"bunchee": "5.5.1",
"tree-sitter": "^0.22.0",
"web-tree-sitter": "^0.24.3"
},
@@ -1,13 +1,5 @@
# @llamaindex/anthropic
## 0.0.11
### Patch Changes
- Updated dependencies [14cc9eb]
- @llamaindex/env@0.1.17
- @llamaindex/core@0.4.2
## 0.0.10
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/anthropic",
"description": "Anthropic Adapter for LlamaIndex",
"version": "0.0.11",
"version": "0.0.10",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
@@ -30,7 +30,7 @@
"dev": "bunchee --watch"
},
"devDependencies": {
"bunchee": "5.6.1"
"bunchee": "5.5.1"
},
"dependencies": {
"@anthropic-ai/sdk": "0.27.1",
-10
View File
@@ -1,15 +1,5 @@
# @llamaindex/clip
## 0.0.11
### Patch Changes
- 14cc9eb: chore: move multi-model into single sub module
- Updated dependencies [14cc9eb]
- @llamaindex/env@0.1.17
- @llamaindex/core@0.4.2
- @llamaindex/openai@0.1.27
## 0.0.10
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/clip",
"description": "Clip Embedding Adapter for LlamaIndex",
"version": "0.0.11",
"version": "0.0.10",
"type": "module",
"types": "dist/index.d.ts",
"main": "dist/index.cjs",
@@ -39,7 +39,7 @@
"dev": "bunchee --watch"
},
"devDependencies": {
"bunchee": "5.6.1"
"bunchee": "5.5.1"
},
"dependencies": {
"@llamaindex/core": "workspace:*",
+1 -4
View File
@@ -2,10 +2,7 @@ import { MultiModalEmbedding } from "@llamaindex/core/embeddings";
import type { ImageType } from "@llamaindex/core/schema";
// only import type, to avoid bundling error
import { Settings } from "@llamaindex/core/global";
import {
type LoadTransformerEvent,
loadTransformers,
} from "@llamaindex/env/multi-model";
import { type LoadTransformerEvent, loadTransformers } from "@llamaindex/env";
import type {
CLIPTextModelWithProjection,
CLIPVisionModelWithProjection,
@@ -1,14 +1,5 @@
# @llamaindex/deepinfra
## 0.0.11
### Patch Changes
- Updated dependencies [14cc9eb]
- @llamaindex/env@0.1.17
- @llamaindex/core@0.4.2
- @llamaindex/openai@0.1.27
## 0.0.10
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/deepinfra",
"description": "Deepinfra Adapter for LlamaIndex",
"version": "0.0.11",
"version": "0.0.10",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
@@ -30,7 +30,7 @@
"dev": "bunchee --watch"
},
"devDependencies": {
"bunchee": "5.6.1"
"bunchee": "5.5.1"
},
"dependencies": {
"@llamaindex/core": "workspace:*",
-8
View File
@@ -1,13 +1,5 @@
# @llamaindex/groq
## 0.0.26
### Patch Changes
- Updated dependencies [14cc9eb]
- @llamaindex/env@0.1.17
- @llamaindex/openai@0.1.27
## 0.0.25
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/groq",
"description": "Groq Adapter for LlamaIndex",
"version": "0.0.26",
"version": "0.0.25",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
@@ -30,7 +30,7 @@
"dev": "bunchee --watch"
},
"devDependencies": {
"bunchee": "5.6.1"
"bunchee": "5.5.1"
},
"dependencies": {
"@llamaindex/env": "workspace:*",
@@ -1,15 +1,5 @@
# @llamaindex/huggingface
## 0.0.11
### Patch Changes
- 14cc9eb: chore: move multi-model into single sub module
- Updated dependencies [14cc9eb]
- @llamaindex/env@0.1.17
- @llamaindex/core@0.4.2
- @llamaindex/openai@0.1.27
## 0.0.10
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/huggingface",
"description": "Huggingface Adapter for LlamaIndex",
"version": "0.0.11",
"version": "0.0.10",
"type": "module",
"types": "dist/index.d.ts",
"main": "dist/index.cjs",
@@ -39,7 +39,7 @@
"dev": "bunchee --watch"
},
"devDependencies": {
"bunchee": "5.6.1"
"bunchee": "5.5.1"
},
"dependencies": {
"@huggingface/inference": "^2.8.1",
@@ -1,9 +1,6 @@
import { BaseEmbedding } from "@llamaindex/core/embeddings";
import { Settings } from "@llamaindex/core/global";
import {
type LoadTransformerEvent,
loadTransformers,
} from "@llamaindex/env/multi-model";
import { type LoadTransformerEvent, loadTransformers } from "@llamaindex/env";
import type { pipeline } from "@xenova/transformers";
import { HuggingFaceEmbeddingModelType } from "./shared";

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