mirror of
https://github.com/run-llama/LlamaIndexTS.git
synced 2026-07-01 22:14:03 -04:00
Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fdad3d66ac | |||
| a6db5dd29b | |||
| 7b684c4480 | |||
| c66868a98a | |||
| 14cc9ebe59 | |||
| 396b1e1474 | |||
| 69f3095424 | |||
| dc8bd5ea92 | |||
| 4af9a77d8b | |||
| 9c1d094455 | |||
| 0a8e3fdbcd | |||
| 1c0e0e1e1d | |||
| 47a7c3ea15 | |||
| 898cff0d6a | |||
| 9df37edef4 |
@@ -1,5 +1,14 @@
|
||||
# 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,6 +25,7 @@ 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
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "docs",
|
||||
"version": "0.0.108",
|
||||
"version": "0.0.109",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"docusaurus": "docusaurus",
|
||||
@@ -15,29 +15,29 @@
|
||||
"typecheck": "tsc"
|
||||
},
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "3.5.2",
|
||||
"@docusaurus/remark-plugin-npm2yarn": "3.5.2",
|
||||
"@docusaurus/core": "3.6.0",
|
||||
"@docusaurus/remark-plugin-npm2yarn": "3.6.0",
|
||||
"@llamaindex/examples": "workspace:*",
|
||||
"@mdx-js/react": "3.0.1",
|
||||
"clsx": "2.1.1",
|
||||
"@mdx-js/react": "^3.1.0",
|
||||
"clsx": "^2.1.1",
|
||||
"llamaindex": "workspace:*",
|
||||
"postcss": "8.4.41",
|
||||
"prism-react-renderer": "2.4.0",
|
||||
"raw-loader": "4.0.2",
|
||||
"react": "18.3.1",
|
||||
"postcss": "^8.4.47",
|
||||
"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.5.2",
|
||||
"@docusaurus/preset-classic": "3.5.2",
|
||||
"@docusaurus/theme-classic": "3.5.2",
|
||||
"@docusaurus/types": "3.5.2",
|
||||
"@docusaurus/module-type-aliases": "3.6.0",
|
||||
"@docusaurus/preset-classic": "3.6.0",
|
||||
"@docusaurus/theme-classic": "3.6.0",
|
||||
"@docusaurus/types": "3.6.0",
|
||||
"@tsconfig/docusaurus": "2.0.3",
|
||||
"@types/node": "^22.8.4",
|
||||
"@types/node": "^22.9.0",
|
||||
"docusaurus-plugin-typedoc": "1.0.5",
|
||||
"typedoc": "0.26.6",
|
||||
"typedoc-plugin-markdown": "4.2.6",
|
||||
"typescript": "^5.6.2"
|
||||
"typedoc": "0.26.11",
|
||||
"typedoc-plugin-markdown": "4.2.10",
|
||||
"typescript": "^5.6.3"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
|
||||
@@ -1,5 +1,19 @@
|
||||
# @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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@llamaindex/doc",
|
||||
"version": "0.0.6",
|
||||
"version": "0.0.7",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "pnpm run build:docs && next build",
|
||||
@@ -12,6 +12,7 @@
|
||||
},
|
||||
"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:*",
|
||||
@@ -67,7 +68,7 @@
|
||||
"devDependencies": {
|
||||
"@next/env": "^15.0.2",
|
||||
"@types/mdx": "^2.0.13",
|
||||
"@types/node": "22.8.6",
|
||||
"@types/node": "22.9.0",
|
||||
"@types/react": "^18.3.12",
|
||||
"@types/react-dom": "^18.3.1",
|
||||
"autoprefixer": "^10.4.20",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { PipelinesService } from "@llamaindex/cloud/api";
|
||||
import { upsertBatchPipelineDocumentsApiV1PipelinesPipelineIdDocumentsPut } from "@llamaindex/cloud/api";
|
||||
import fg from "fast-glob";
|
||||
import {
|
||||
fileGenerator,
|
||||
@@ -30,9 +30,8 @@ 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) {
|
||||
@@ -83,28 +82,26 @@ export async function updateLlamaCloud(): Promise<void> {
|
||||
|
||||
console.log(`added ${records.length} records`);
|
||||
|
||||
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}`,
|
||||
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,
|
||||
},
|
||||
text: record.content,
|
||||
})),
|
||||
path: {
|
||||
pipeline_id: index,
|
||||
},
|
||||
);
|
||||
throwOnError: true,
|
||||
headers: {
|
||||
Authorization: `Bearer ${apiKey}`,
|
||||
},
|
||||
});
|
||||
|
||||
console.log("done");
|
||||
}
|
||||
|
||||
@@ -25,15 +25,16 @@ 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 RAG Web App using
|
||||
Build context-augmented web apps 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 library from our popular Python library
|
||||
llama-index for building LLM applications
|
||||
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.
|
||||
</p>
|
||||
<div className="text-center text-lg text-fd-muted-foreground mb-12">
|
||||
<span>Designed for building web applications under </span>
|
||||
<span>Designed for building web applications in </span>
|
||||
<TextEffect />
|
||||
</div>
|
||||
|
||||
@@ -58,8 +59,8 @@ export default function HomePage() {
|
||||
<Feature
|
||||
icon={Footprints}
|
||||
subheading="Progressive"
|
||||
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."
|
||||
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."
|
||||
>
|
||||
<Suspense
|
||||
fallback={
|
||||
@@ -113,9 +114,9 @@ const response = await agent.chat({
|
||||
</Feature>
|
||||
<Feature
|
||||
icon={Bot}
|
||||
subheading="Agent"
|
||||
heading="Build agent for RAG"
|
||||
description="Build agents for RAG using LlamaIndex.TS. Agents are the core building blocks of RAG applications."
|
||||
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."
|
||||
>
|
||||
<CodeBlock
|
||||
code={`import { FunctionTool } from "llamaindex";
|
||||
@@ -137,19 +138,19 @@ await agent.chat('...');`}
|
||||
<Feature
|
||||
icon={Blocks}
|
||||
subheading="Providers"
|
||||
heading="LLM / Data Loader / Vector Store"
|
||||
description="LlamaIndex.TS provides various providers to turn your data into valuable insights."
|
||||
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."
|
||||
>
|
||||
<div className="mt-8 flex flex-col gap-8">
|
||||
<div>
|
||||
<h3 className="text-lg font-semibold text-fd-muted-foreground mb-2">
|
||||
LLM
|
||||
LLMs
|
||||
</h3>
|
||||
<InfiniteLLMProviders />
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="text-lg font-semibold text-fd-muted-foreground mb-2">
|
||||
Vector Store
|
||||
Vector Stores
|
||||
</h3>
|
||||
<InfiniteVectorStoreProviders />
|
||||
</div>
|
||||
@@ -157,8 +158,8 @@ await agent.chat('...');`}
|
||||
</Feature>
|
||||
<Feature
|
||||
icon={Terminal}
|
||||
subheading="Create Llama CLI"
|
||||
heading="CLI for starting RAG app with one line"
|
||||
subheading="create-llama CLI"
|
||||
heading="Build a RAG app with a single command"
|
||||
description="A command line tool to generate LlamaIndex apps, the easiest way to get started with LlamaIndex."
|
||||
>
|
||||
<div className="my-6">
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
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 });
|
||||
}
|
||||
}
|
||||
@@ -7,9 +7,8 @@ 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.
|
||||
Made possible by you <Heart className="inline align-middle" />
|
||||
</h2>
|
||||
<p className="mb-4 text-fd-muted-foreground">
|
||||
LlamaIndex.TS is powered by the open source community.
|
||||
|
||||
@@ -53,9 +53,6 @@ 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>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
"use client";
|
||||
import { ChatSection } from "@llamaindex/chat-ui";
|
||||
import { useChat } from "ai/react";
|
||||
|
||||
export const ChatDemo = () => {
|
||||
const handler = useChat();
|
||||
return <ChatSection handler={handler} />;
|
||||
};
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
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"]
|
||||
"pages": ["workflow", "chat"]
|
||||
}
|
||||
|
||||
@@ -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 PipelinesService.runSearchApiV1PipelinesPipelineIdRetrievePost({
|
||||
await runSearchApiV1PipelinesPipelineIdRetrievePost({
|
||||
throwOnError: true,
|
||||
path: {
|
||||
pipeline_id: pipelineId,
|
||||
|
||||
@@ -10,6 +10,7 @@ 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
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
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 });
|
||||
})();
|
||||
@@ -6,17 +6,21 @@ import {
|
||||
} from "@llamaindex/readers/cosmosdb";
|
||||
import * as dotenv from "dotenv";
|
||||
import {
|
||||
AzureCosmosDBNoSqlVectorStore,
|
||||
AzureCosmosDBNoSQLConfig,
|
||||
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_ENDPOINT!;
|
||||
const cosmosEndpoint = process.env.AZURE_COSMOSDB_NOSQL_ACCOUNT_ENDPOINT!;
|
||||
const cosmosConnectionString =
|
||||
process.env.AZURE_COSMOSDB_NOSQL_CONNECTION_STRING!;
|
||||
const databaseName =
|
||||
@@ -26,7 +30,7 @@ const collectionName =
|
||||
const vectorCollectionName =
|
||||
process.env.AZURE_COSMOSDB_VECTOR_CONTAINER_NAME || "vectorContainer";
|
||||
|
||||
// This exampple uses Azure OpenAI llm and embedding models
|
||||
// This example uses Azure OpenAI llm and embedding models
|
||||
const llmInit = {
|
||||
azure: {
|
||||
apiVersion: process.env.AZURE_OPENAI_LLM_API_VERSION,
|
||||
@@ -46,24 +50,48 @@ 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.",
|
||||
);
|
||||
}
|
||||
|
||||
let cosmosClient: CosmosClient;
|
||||
// initialize the cosmos client
|
||||
if (cosmosConnectionString) {
|
||||
cosmosClient = new CosmosClient(cosmosConnectionString);
|
||||
} else {
|
||||
cosmosClient = new CosmosClient({
|
||||
endpoint: cosmosEndpoint,
|
||||
aadCredentials: new DefaultAzureCredential(),
|
||||
});
|
||||
}
|
||||
|
||||
const cosmosClient = await initializeCosmosClient();
|
||||
const reader = new SimpleCosmosDBReader(cosmosClient);
|
||||
// create a configuration object for the reader
|
||||
const simpleCosmosReaderConfig: SimpleCosmosDBReaderLoaderConfig = {
|
||||
@@ -76,16 +104,15 @@ async function loadVectorData() {
|
||||
|
||||
// load objects from cosmos and convert them into LlamaIndex Document objects
|
||||
const documents = await reader.loadData(simpleCosmosReaderConfig);
|
||||
// create Azure CosmosDB as a vector store
|
||||
const vectorStore = new AzureCosmosDBNoSqlVectorStore({
|
||||
client: cosmosClient,
|
||||
databaseName,
|
||||
containerName: vectorCollectionName,
|
||||
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 });
|
||||
const storageContext = await storageContextFromDefaults({
|
||||
vectorStore,
|
||||
docStore,
|
||||
indexStore,
|
||||
});
|
||||
await VectorStoreIndex.fromDocuments(documents, { storageContext });
|
||||
console.log(
|
||||
`Successfully created embeddings in the CosmosDB container ${vectorCollectionName}.`,
|
||||
|
||||
@@ -3,17 +3,21 @@ 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_ENDPOINT!;
|
||||
const cosmosEndpoint = process.env.AZURE_COSMOSDB_NOSQL_ACCOUNT_ENDPOINT!;
|
||||
const cosmosConnectionString =
|
||||
process.env.AZURE_COSMOSDB_NOSQL_CONNECTION_STRING!;
|
||||
const databaseName =
|
||||
@@ -40,6 +44,27 @@ 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(
|
||||
@@ -65,10 +90,19 @@ async function query() {
|
||||
containerName,
|
||||
flatMetadata: false,
|
||||
};
|
||||
const store = new AzureCosmosDBNoSqlVectorStore(dbConfig);
|
||||
|
||||
// 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 an index from the Azure CosmosDB NoSQL Vector Store
|
||||
const index = await VectorStoreIndex.fromVectorStore(store);
|
||||
const index = await VectorStoreIndex.init({ storageContext });
|
||||
|
||||
// create a retriever and a query engine from the index
|
||||
const retriever = index.asRetriever({ similarityTopK: 20 });
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
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 };
|
||||
};
|
||||
@@ -24,9 +24,9 @@
|
||||
"postgres": "^3.4.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.8.4",
|
||||
"@types/node": "^22.9.0",
|
||||
"tsx": "^4.19.0",
|
||||
"typescript": "^5.6.2"
|
||||
"typescript": "^5.6.3"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "eslint ."
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
"llamaindex": "*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.8.4",
|
||||
"@types/node": "^22.9.0",
|
||||
"tsx": "^4.19.0",
|
||||
"typescript": "^5.6.2"
|
||||
"typescript": "^5.6.3"
|
||||
}
|
||||
}
|
||||
|
||||
+5
-5
@@ -19,22 +19,22 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@changesets/cli": "^2.27.5",
|
||||
"eslint": "9.13.0",
|
||||
"eslint": "9.14.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.11.0",
|
||||
"globals": "^15.12.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.2",
|
||||
"typescript-eslint": "^8.12.2"
|
||||
"typescript": "^5.6.3",
|
||||
"typescript-eslint": "^8.13.0"
|
||||
},
|
||||
"packageManager": "pnpm@9.5.0",
|
||||
"packageManager": "pnpm@9.12.3",
|
||||
"pnpm": {
|
||||
"overrides": {
|
||||
"trim": "1.0.1",
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @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,5 +1,15 @@
|
||||
# @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.47"
|
||||
"version": "0.0.48"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @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.91",
|
||||
"version": "0.1.92",
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
"build": "next build",
|
||||
@@ -15,7 +15,7 @@
|
||||
"dotenv": "^16.3.1",
|
||||
"llamaindex": "workspace:*",
|
||||
"lucide-react": "^0.436.0",
|
||||
"next": "14.3.0-canary.51",
|
||||
"next": "15.0.2",
|
||||
"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.8.4",
|
||||
"@types/node": "^22.9.0",
|
||||
"@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.2"
|
||||
"typescript": "^5.6.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@llamaindex/autotool",
|
||||
"type": "module",
|
||||
"version": "5.0.4",
|
||||
"version": "5.0.5",
|
||||
"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.6",
|
||||
"typedoc": "^0.26.11",
|
||||
"unplugin": "^1.12.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
@@ -69,14 +69,14 @@
|
||||
"devDependencies": {
|
||||
"@swc/types": "^0.1.12",
|
||||
"@types/json-schema": "^7.0.15",
|
||||
"@types/node": "^22.8.4",
|
||||
"bunchee": "5.5.1",
|
||||
"@types/node": "^22.9.0",
|
||||
"bunchee": "5.6.1",
|
||||
"llamaindex": "workspace:*",
|
||||
"next": "14.2.11",
|
||||
"rollup": "^4.21.2",
|
||||
"next": "15.0.2",
|
||||
"rollup": "^4.24.4",
|
||||
"tsx": "^4.19.0",
|
||||
"typescript": "^5.6.2",
|
||||
"vitest": "^2.0.5",
|
||||
"typescript": "^5.6.3",
|
||||
"vitest": "^2.1.4",
|
||||
"webpack": "^5.94.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @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
|
||||
|
||||
@@ -10,9 +10,6 @@ export default defineConfig({
|
||||
format: "prettier",
|
||||
lint: "eslint",
|
||||
},
|
||||
services: {
|
||||
asClass: true,
|
||||
},
|
||||
types: {
|
||||
enums: "javascript",
|
||||
},
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"name": "@llamaindex/cloud",
|
||||
"version": "2.0.1",
|
||||
"version": "2.0.2",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"generate": "pnpx @hey-api/openapi-ts@0.53.11",
|
||||
"generate": "./node_modules/.bin/openapi-ts",
|
||||
"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.53.11",
|
||||
"@hey-api/openapi-ts": "^0.54.3",
|
||||
"@llamaindex/core": "workspace:*",
|
||||
"@llamaindex/env": "workspace:*",
|
||||
"bunchee": "5.5.1"
|
||||
"bunchee": "5.6.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@llamaindex/core": "workspace:*",
|
||||
|
||||
@@ -4,7 +4,12 @@ import { fs, getEnv, path } from "@llamaindex/env";
|
||||
import {
|
||||
type Body_upload_file_api_v1_parsing_upload_post,
|
||||
type ParserLanguages,
|
||||
ParsingService,
|
||||
getJobApiV1ParsingJobJobIdGet,
|
||||
getJobImageResultApiV1ParsingJobJobIdResultImageNameGet,
|
||||
getJobJsonResultApiV1ParsingJobJobIdResultJsonGet,
|
||||
getJobResultApiV1ParsingJobJobIdResultMarkdownGet,
|
||||
getJobTextResultApiV1ParsingJobJobIdResultTextGet,
|
||||
uploadFileApiV1ParsingUploadPost,
|
||||
} from "./api";
|
||||
import { sleep } from "./utils";
|
||||
|
||||
@@ -201,7 +206,7 @@ export class LlamaParseReader extends FileReader {
|
||||
| undefined;
|
||||
} as unknown as Body_upload_file_api_v1_parsing_upload_post;
|
||||
|
||||
const response = await ParsingService.uploadFileApiV1ParsingUploadPost({
|
||||
const response = await uploadFileApiV1ParsingUploadPost({
|
||||
client: this.#client,
|
||||
throwOnError: true,
|
||||
signal: AbortSignal.timeout(this.maxTimeout * 1000),
|
||||
@@ -223,7 +228,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 ParsingService.getJobApiV1ParsingJobJobIdGet({
|
||||
const result = await getJobApiV1ParsingJobJobIdGet({
|
||||
client: this.#client,
|
||||
throwOnError: true,
|
||||
path: {
|
||||
@@ -239,45 +244,36 @@ export class LlamaParseReader extends FileReader {
|
||||
let result;
|
||||
switch (resultType) {
|
||||
case "json": {
|
||||
result =
|
||||
await ParsingService.getJobJsonResultApiV1ParsingJobJobIdResultJsonGet(
|
||||
{
|
||||
client: this.#client,
|
||||
throwOnError: true,
|
||||
path: {
|
||||
job_id: jobId,
|
||||
},
|
||||
signal,
|
||||
},
|
||||
);
|
||||
result = await getJobJsonResultApiV1ParsingJobJobIdResultJsonGet({
|
||||
client: this.#client,
|
||||
throwOnError: true,
|
||||
path: {
|
||||
job_id: jobId,
|
||||
},
|
||||
signal,
|
||||
});
|
||||
break;
|
||||
}
|
||||
case "markdown": {
|
||||
result =
|
||||
await ParsingService.getJobResultApiV1ParsingJobJobIdResultMarkdownGet(
|
||||
{
|
||||
client: this.#client,
|
||||
throwOnError: true,
|
||||
path: {
|
||||
job_id: jobId,
|
||||
},
|
||||
signal,
|
||||
},
|
||||
);
|
||||
result = await getJobResultApiV1ParsingJobJobIdResultMarkdownGet({
|
||||
client: this.#client,
|
||||
throwOnError: true,
|
||||
path: {
|
||||
job_id: jobId,
|
||||
},
|
||||
signal,
|
||||
});
|
||||
break;
|
||||
}
|
||||
case "text": {
|
||||
result =
|
||||
await ParsingService.getJobTextResultApiV1ParsingJobJobIdResultTextGet(
|
||||
{
|
||||
client: this.#client,
|
||||
throwOnError: true,
|
||||
path: {
|
||||
job_id: jobId,
|
||||
},
|
||||
signal,
|
||||
},
|
||||
);
|
||||
result = await getJobTextResultApiV1ParsingJobJobIdResultTextGet({
|
||||
client: this.#client,
|
||||
throwOnError: true,
|
||||
path: {
|
||||
job_id: jobId,
|
||||
},
|
||||
signal,
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -459,15 +455,13 @@ export class LlamaParseReader extends FileReader {
|
||||
jobId: string,
|
||||
): Promise<void> {
|
||||
const response =
|
||||
await ParsingService.getJobImageResultApiV1ParsingJobJobIdResultImageNameGet(
|
||||
{
|
||||
client: this.#client,
|
||||
path: {
|
||||
job_id: jobId,
|
||||
name: imageName,
|
||||
},
|
||||
await getJobImageResultApiV1ParsingJobJobIdResultImageNameGet({
|
||||
client: this.#client,
|
||||
path: {
|
||||
job_id: jobId,
|
||||
name: imageName,
|
||||
},
|
||||
);
|
||||
});
|
||||
if (response.error) {
|
||||
throw new Error(`Failed to download image: ${response.error.detail}`);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,19 @@
|
||||
# @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
|
||||
|
||||
@@ -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
|
||||
- Bedrock support for the Anthropic Claude Models [usage](https://ts.llamaindex.ai/modules/llms/available_llms/bedrock) including the latest Sonnet 3.5 v2 and Haiku 3.5
|
||||
- Bedrock support for the Meta LLama 2, 3, 3.1 and 3.2 Models [usage](https://ts.llamaindex.ai/modules/llms/available_llms/bedrock)
|
||||
- Meta LLama3.1 405b and Llama3.2 tool call support
|
||||
- Meta 3.2 11B and 90B vision support
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@llamaindex/community",
|
||||
"description": "Community package for LlamaIndexTS",
|
||||
"version": "0.0.58",
|
||||
"version": "0.0.60",
|
||||
"type": "module",
|
||||
"types": "dist/type/index.d.ts",
|
||||
"main": "dist/cjs/index.js",
|
||||
@@ -42,8 +42,8 @@
|
||||
"dev": "bunchee --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.8.4",
|
||||
"bunchee": "5.5.1"
|
||||
"@types/node": "^22.9.0",
|
||||
"bunchee": "5.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-bedrock-agent-runtime": "^3.642.0",
|
||||
|
||||
@@ -66,6 +66,7 @@ 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",
|
||||
@@ -169,6 +170,7 @@ 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,
|
||||
@@ -204,6 +206,7 @@ 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,
|
||||
@@ -226,6 +229,7 @@ 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,
|
||||
@@ -259,7 +263,8 @@ 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]: 4096,
|
||||
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_SONNET_V2]: 8192,
|
||||
[BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_5_HAIKU]: 8192,
|
||||
[BEDROCK_MODELS.META_LLAMA2_13B_CHAT]: 2048,
|
||||
[BEDROCK_MODELS.META_LLAMA2_70B_CHAT]: 2048,
|
||||
[BEDROCK_MODELS.META_LLAMA3_8B_INSTRUCT]: 2048,
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# @llamaindex/core
|
||||
|
||||
## 0.4.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [14cc9eb]
|
||||
- @llamaindex/env@0.1.17
|
||||
|
||||
## 0.4.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@llamaindex/core",
|
||||
"type": "module",
|
||||
"version": "0.4.1",
|
||||
"version": "0.4.2",
|
||||
"description": "LlamaIndex Core Module",
|
||||
"exports": {
|
||||
"./agent": {
|
||||
@@ -349,13 +349,13 @@
|
||||
"devDependencies": {
|
||||
"@edge-runtime/vm": "^4.0.3",
|
||||
"ajv": "^8.17.1",
|
||||
"bunchee": "5.5.1",
|
||||
"happy-dom": "^15.7.4",
|
||||
"bunchee": "5.6.1",
|
||||
"happy-dom": "^15.10.0",
|
||||
"natural": "^8.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@llamaindex/env": "workspace:*",
|
||||
"@types/node": "^22.8.4",
|
||||
"@types/node": "^22.9.0",
|
||||
"magic-bytes.js": "^1.10.0",
|
||||
"zod": "^3.23.8",
|
||||
"zod-to-json-schema": "^3.23.3"
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@llamaindex/core": "workspace:*",
|
||||
"vitest": "^2.0.5"
|
||||
"vitest": "^2.1.4"
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+6
@@ -1,5 +1,11 @@
|
||||
# @llamaindex/env
|
||||
|
||||
## 0.1.17
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 14cc9eb: chore: move multi-model into single sub module
|
||||
|
||||
## 0.1.16
|
||||
|
||||
### Patch Changes
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"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
|
||||
}
|
||||
Vendored
+33
-6
@@ -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.16",
|
||||
"version": "0.1.17",
|
||||
"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.cjs"
|
||||
"default": "./dist/index.js"
|
||||
},
|
||||
"workerd": {
|
||||
"types": "./dist/index.workerd.d.ts",
|
||||
@@ -50,9 +50,36 @@
|
||||
"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"
|
||||
@@ -68,13 +95,13 @@
|
||||
"test": "vitest"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.8.4",
|
||||
"@types/node": "^22.9.0",
|
||||
"@types/readable-stream": "^4.0.15",
|
||||
"@xenova/transformers": "^2.17.2",
|
||||
"bunchee": "5.5.1",
|
||||
"gpt-tokenizer": "^2.5.0",
|
||||
"bunchee": "5.6.1",
|
||||
"gpt-tokenizer": "^2.6.0",
|
||||
"pathe": "^1.1.2",
|
||||
"vitest": "^2.0.5"
|
||||
"vitest": "^2.1.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@aws-crypto/sha256-js": "^5.2.0",
|
||||
|
||||
Vendored
-6
@@ -6,12 +6,6 @@
|
||||
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";
|
||||
|
||||
Vendored
-6
@@ -5,12 +5,6 @@
|
||||
*/
|
||||
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";
|
||||
|
||||
Vendored
-6
@@ -35,12 +35,6 @@ 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,
|
||||
|
||||
Vendored
-6
@@ -16,10 +16,4 @@ 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";
|
||||
|
||||
Vendored
+6
@@ -0,0 +1,6 @@
|
||||
export {
|
||||
loadTransformers,
|
||||
setTransformers,
|
||||
type LoadTransformerEvent,
|
||||
type OnLoad,
|
||||
} from "./internal/multi-model/browser.js";
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
export {
|
||||
loadTransformers,
|
||||
setTransformers,
|
||||
type LoadTransformerEvent,
|
||||
type OnLoad,
|
||||
} from "./internal/multi-model/non-node.js";
|
||||
Vendored
+6
@@ -0,0 +1,6 @@
|
||||
export {
|
||||
loadTransformers,
|
||||
setTransformers,
|
||||
type LoadTransformerEvent,
|
||||
type OnLoad,
|
||||
} from "./internal/multi-model/node.js";
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
export {
|
||||
loadTransformers,
|
||||
setTransformers,
|
||||
type LoadTransformerEvent,
|
||||
type OnLoad,
|
||||
} from "./internal/multi-model/non-node.js";
|
||||
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"extends": ["//"],
|
||||
"tasks": {
|
||||
"build": {
|
||||
"outputs": ["**/dist/**"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,14 @@
|
||||
# @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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@llamaindex/experimental",
|
||||
"description": "Experimental package for LlamaIndexTS",
|
||||
"version": "0.0.116",
|
||||
"version": "0.0.117",
|
||||
"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.4.0",
|
||||
"@swc/cli": "^0.5.0",
|
||||
"@swc/core": "^1.7.22",
|
||||
"@types/jsonpath": "^0.2.4",
|
||||
"concurrently": "^8.2.2",
|
||||
"concurrently": "^9.1.0",
|
||||
"pathe": "^1.1.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/lodash": "^4.17.7",
|
||||
"@types/node": "^22.8.4",
|
||||
"@types/node": "^22.9.0",
|
||||
"jsonpath": "^1.1.1",
|
||||
"llamaindex": "workspace:*",
|
||||
"lodash": "^4.17.21"
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
# 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,5 +1,14 @@
|
||||
# @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.100",
|
||||
"version": "0.0.101",
|
||||
"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.1",
|
||||
"@vitest/snapshot": "2.1.1",
|
||||
"typescript": "^5.6.2",
|
||||
"vitest": "2.1.1",
|
||||
"@vitest/runner": "2.1.4",
|
||||
"@vitest/snapshot": "2.1.4",
|
||||
"typescript": "^5.6.3",
|
||||
"vitest": "2.1.4",
|
||||
"wrangler": "^3.78.8"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
# @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.21",
|
||||
"version": "0.0.22",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
@@ -9,7 +9,7 @@
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"devDependencies": {
|
||||
"typescript": "^5.5.3",
|
||||
"typescript": "^5.6.3",
|
||||
"vite": "^5.4.1",
|
||||
"vite-plugin-wasm": "^3.3.0"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @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.100",
|
||||
"version": "0.1.101",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
@@ -10,18 +10,18 @@
|
||||
"dependencies": {
|
||||
"ai": "^3.3.21",
|
||||
"llamaindex": "workspace:*",
|
||||
"next": "14.2.11",
|
||||
"next": "15.0.2",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.8.4",
|
||||
"@types/node": "^22.9.0",
|
||||
"@types/react": "^18.3.12",
|
||||
"@types/react-dom": "^18.3.1",
|
||||
"eslint": "9.13.0",
|
||||
"eslint": "9.14.0",
|
||||
"eslint-config-next": "15.0.2",
|
||||
"postcss": "^8.4.41",
|
||||
"tailwindcss": "^3.4.10",
|
||||
"typescript": "^5.6.2"
|
||||
"typescript": "^5.6.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# 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.99",
|
||||
"version": "0.1.100",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
@@ -9,14 +9,14 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"llamaindex": "workspace:*",
|
||||
"next": "14.2.11",
|
||||
"next": "15.0.2",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.8.4",
|
||||
"@types/node": "^22.9.0",
|
||||
"@types/react": "^18.3.12",
|
||||
"@types/react-dom": "^18.3.1",
|
||||
"typescript": "^5.6.2"
|
||||
"typescript": "^5.6.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @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.81",
|
||||
"version": "0.0.82",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
@@ -9,18 +9,18 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"llamaindex": "workspace:*",
|
||||
"next": "14.2.11",
|
||||
"next": "15.0.2",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.8.4",
|
||||
"@types/node": "^22.9.0",
|
||||
"@types/react": "^18.3.12",
|
||||
"@types/react-dom": "^18.3.1",
|
||||
"eslint": "9.13.0",
|
||||
"eslint": "9.14.0",
|
||||
"eslint-config-next": "15.0.2",
|
||||
"postcss": "^8.4.41",
|
||||
"tailwindcss": "^3.4.10",
|
||||
"typescript": "^5.6.2"
|
||||
"typescript": "^5.6.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @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.100",
|
||||
"version": "0.0.101",
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
@@ -16,10 +16,10 @@
|
||||
"waku": "0.21.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "18.3.11",
|
||||
"@types/react": "18.3.12",
|
||||
"@types/react-dom": "18.3.1",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"tailwindcss": "^3.4.14",
|
||||
"typescript": "5.6.2"
|
||||
"typescript": "5.6.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { LoadTransformerEvent } from "@llamaindex/env";
|
||||
import { setTransformers } from "@llamaindex/env";
|
||||
import type { LoadTransformerEvent } from "@llamaindex/env/multi-model";
|
||||
import { setTransformers } from "@llamaindex/env/multi-model";
|
||||
import { ClipEmbedding, ImageNode, Settings } from "llamaindex";
|
||||
import assert from "node:assert";
|
||||
import { type Mock, test } from "node:test";
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
"e2e:updatesnap": "UPDATE_SNAPSHOT=1 node --import tsx --test ./node/**/*.e2e.ts"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@faker-js/faker": "^9.0.1",
|
||||
"@types/node": "^22.8.4",
|
||||
"@faker-js/faker": "^9.2.0",
|
||||
"@types/node": "^22.9.0",
|
||||
"consola": "^3.2.3",
|
||||
"dotenv": "^16.4.5",
|
||||
"llamaindex": "workspace:*",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "llamaindex",
|
||||
"version": "0.8.4",
|
||||
"version": "0.8.5",
|
||||
"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.8.4",
|
||||
"@types/node": "^22.9.0",
|
||||
"@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.5.0",
|
||||
"gpt-tokenizer": "^2.6.0",
|
||||
"groq-sdk": "^0.6.1",
|
||||
"js-tiktoken": "^1.0.14",
|
||||
"lodash": "^4.17.21",
|
||||
@@ -85,16 +85,16 @@
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"@swc/cli": "^0.4.0",
|
||||
"@swc/cli": "^0.5.0",
|
||||
"@swc/core": "^1.7.22",
|
||||
"@vercel/postgres": "^0.10.0",
|
||||
"@xenova/transformers": "^2.17.2",
|
||||
"concurrently": "^8.2.2",
|
||||
"concurrently": "^9.1.0",
|
||||
"glob": "^11.0.0",
|
||||
"pg": "^8.12.0",
|
||||
"pgvector": "0.2.0",
|
||||
"postgres": "^3.4.4",
|
||||
"typescript": "^5.6.2"
|
||||
"typescript": "^5.6.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=20.0.0"
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
import {
|
||||
FilesService,
|
||||
PipelinesService,
|
||||
ProjectsService,
|
||||
addFilesToPipelineApiV1PipelinesPipelineIdFilesPut,
|
||||
getPipelineFileStatusApiV1PipelinesPipelineIdFilesFileIdStatusGet,
|
||||
listPipelineFilesApiV1PipelinesPipelineIdFilesGet,
|
||||
listProjectsApiV1ProjectsGet,
|
||||
readFileContentApiV1FilesIdContentGet,
|
||||
searchPipelinesApiV1PipelinesGet,
|
||||
uploadFileApiV1FilesPost,
|
||||
} from "@llamaindex/cloud/api";
|
||||
import { initService } from "./utils.js";
|
||||
|
||||
@@ -12,14 +16,12 @@ export class LLamaCloudFileService {
|
||||
public static async getAllProjectsWithPipelines() {
|
||||
initService();
|
||||
try {
|
||||
const { data: projects } =
|
||||
await ProjectsService.listProjectsApiV1ProjectsGet({
|
||||
throwOnError: true,
|
||||
});
|
||||
const { data: pipelines } =
|
||||
await PipelinesService.searchPipelinesApiV1PipelinesGet({
|
||||
throwOnError: true,
|
||||
});
|
||||
const { data: projects } = await listProjectsApiV1ProjectsGet({
|
||||
throwOnError: true,
|
||||
});
|
||||
const { data: pipelines } = await searchPipelinesApiV1PipelinesGet({
|
||||
throwOnError: true,
|
||||
});
|
||||
return projects.map((project) => ({
|
||||
...project,
|
||||
pipelines: pipelines.filter((p) => p.project_id === project.id),
|
||||
@@ -41,7 +43,7 @@ export class LLamaCloudFileService {
|
||||
customMetadata: Record<string, any> = {},
|
||||
) {
|
||||
initService();
|
||||
const { data: file } = await FilesService.uploadFileApiV1FilesPost({
|
||||
const { data: file } = await uploadFileApiV1FilesPost({
|
||||
query: { project_id: projectId },
|
||||
body: {
|
||||
upload_file: uploadFile,
|
||||
@@ -54,7 +56,7 @@ export class LLamaCloudFileService {
|
||||
custom_metadata: { file_id: file.id, ...customMetadata },
|
||||
},
|
||||
];
|
||||
await PipelinesService.addFilesToPipelineApiV1PipelinesPipelineIdFilesPut({
|
||||
await addFilesToPipelineApiV1PipelinesPipelineIdFilesPut({
|
||||
path: {
|
||||
pipeline_id: pipelineId,
|
||||
},
|
||||
@@ -66,7 +68,7 @@ export class LLamaCloudFileService {
|
||||
let attempt = 0;
|
||||
while (attempt < maxAttempts) {
|
||||
const { data: result } =
|
||||
await PipelinesService.getPipelineFileStatusApiV1PipelinesPipelineIdFilesFileIdStatusGet(
|
||||
await getPipelineFileStatusApiV1PipelinesPipelineIdFilesFileIdStatusGet(
|
||||
{
|
||||
path: {
|
||||
pipeline_id: pipelineId,
|
||||
@@ -96,7 +98,7 @@ export class LLamaCloudFileService {
|
||||
public static async getFileUrl(pipelineId: string, filename: string) {
|
||||
initService();
|
||||
const { data: allPipelineFiles } =
|
||||
await PipelinesService.listPipelineFilesApiV1PipelinesPipelineIdFilesGet({
|
||||
await listPipelineFilesApiV1PipelinesPipelineIdFilesGet({
|
||||
path: {
|
||||
pipeline_id: pipelineId,
|
||||
},
|
||||
@@ -104,16 +106,15 @@ export class LLamaCloudFileService {
|
||||
});
|
||||
const file = allPipelineFiles.find((file) => file.name === filename);
|
||||
if (!file?.file_id) return null;
|
||||
const { data: fileContent } =
|
||||
await FilesService.readFileContentApiV1FilesIdContentGet({
|
||||
path: {
|
||||
id: file.file_id,
|
||||
},
|
||||
query: {
|
||||
project_id: file.project_id,
|
||||
},
|
||||
throwOnError: true,
|
||||
});
|
||||
const { data: fileContent } = await readFileContentApiV1FilesIdContentGet({
|
||||
path: {
|
||||
id: file.file_id,
|
||||
},
|
||||
query: {
|
||||
project_id: file.project_id,
|
||||
},
|
||||
throwOnError: true,
|
||||
});
|
||||
return fileContent.url;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,16 @@ import {
|
||||
initService,
|
||||
} from "./utils.js";
|
||||
|
||||
import { PipelinesService, type PipelineCreate } from "@llamaindex/cloud/api";
|
||||
import {
|
||||
createBatchPipelineDocumentsApiV1PipelinesPipelineIdDocumentsPost,
|
||||
deletePipelineDocumentApiV1PipelinesPipelineIdDocumentsDocumentIdDelete,
|
||||
getPipelineDocumentStatusApiV1PipelinesPipelineIdDocumentsDocumentIdStatusGet,
|
||||
getPipelineStatusApiV1PipelinesPipelineIdStatusGet,
|
||||
type PipelineCreate,
|
||||
searchPipelinesApiV1PipelinesGet,
|
||||
upsertBatchPipelineDocumentsApiV1PipelinesPipelineIdDocumentsPut,
|
||||
upsertPipelineApiV1PipelinesPut,
|
||||
} from "@llamaindex/cloud/api";
|
||||
import type { BaseRetriever } from "@llamaindex/core/retriever";
|
||||
import { getEnv } from "@llamaindex/env";
|
||||
import { Settings } from "../Settings.js";
|
||||
@@ -38,14 +47,12 @@ export class LlamaCloudIndex {
|
||||
|
||||
while (true) {
|
||||
const { data: pipelineStatus } =
|
||||
await PipelinesService.getPipelineStatusApiV1PipelinesPipelineIdStatusGet(
|
||||
{
|
||||
path: {
|
||||
pipeline_id: pipelineId,
|
||||
},
|
||||
throwOnError: true,
|
||||
await getPipelineStatusApiV1PipelinesPipelineIdStatusGet({
|
||||
path: {
|
||||
pipeline_id: pipelineId,
|
||||
},
|
||||
);
|
||||
throwOnError: true,
|
||||
});
|
||||
|
||||
if (pipelineStatus.status === "SUCCESS") {
|
||||
if (verbose) {
|
||||
@@ -92,7 +99,7 @@ export class LlamaCloudIndex {
|
||||
const {
|
||||
data: { status },
|
||||
} =
|
||||
await PipelinesService.getPipelineDocumentStatusApiV1PipelinesPipelineIdDocumentsDocumentIdStatusGet(
|
||||
await getPipelineDocumentStatusApiV1PipelinesPipelineIdDocumentsDocumentIdStatusGet(
|
||||
{
|
||||
path: { pipeline_id: pipelineId, document_id: doc },
|
||||
throwOnError: true,
|
||||
@@ -188,29 +195,25 @@ export class LlamaCloudIndex {
|
||||
const projectId = await this.getProjectId();
|
||||
const pipelineId = await this.getPipelineId();
|
||||
|
||||
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_,
|
||||
})),
|
||||
await 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_,
|
||||
})),
|
||||
});
|
||||
|
||||
while (true) {
|
||||
const { data: pipelineStatus } =
|
||||
await PipelinesService.getPipelineStatusApiV1PipelinesPipelineIdStatusGet(
|
||||
{
|
||||
path: { pipeline_id: pipelineId },
|
||||
throwOnError: true,
|
||||
},
|
||||
);
|
||||
await getPipelineStatusApiV1PipelinesPipelineIdStatusGet({
|
||||
path: { pipeline_id: pipelineId },
|
||||
throwOnError: true,
|
||||
});
|
||||
|
||||
if (pipelineStatus.status === "SUCCESS") {
|
||||
console.info(
|
||||
@@ -272,22 +275,20 @@ export class LlamaCloudIndex {
|
||||
async insert(document: Document) {
|
||||
const pipelineId = await this.getPipelineId();
|
||||
|
||||
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 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_]);
|
||||
}
|
||||
@@ -295,7 +296,7 @@ export class LlamaCloudIndex {
|
||||
async delete(document: Document) {
|
||||
const pipelineId = await this.getPipelineId();
|
||||
|
||||
await PipelinesService.deletePipelineDocumentApiV1PipelinesPipelineIdDocumentsDocumentIdDelete(
|
||||
await deletePipelineDocumentApiV1PipelinesPipelineIdDocumentsDocumentIdDelete(
|
||||
{
|
||||
path: {
|
||||
pipeline_id: pipelineId,
|
||||
@@ -310,22 +311,20 @@ export class LlamaCloudIndex {
|
||||
async refreshDoc(document: Document) {
|
||||
const pipelineId = await this.getPipelineId();
|
||||
|
||||
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 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_]);
|
||||
}
|
||||
@@ -337,14 +336,13 @@ export class LlamaCloudIndex {
|
||||
}): Promise<void> {
|
||||
const projectId = await this.getProjectId();
|
||||
|
||||
const { data: pipelines } =
|
||||
await PipelinesService.searchPipelinesApiV1PipelinesGet({
|
||||
query: {
|
||||
project_id: projectId,
|
||||
pipeline_name: this.params.name,
|
||||
},
|
||||
throwOnError: true,
|
||||
});
|
||||
const { data: pipelines } = await searchPipelinesApiV1PipelinesGet({
|
||||
query: {
|
||||
project_id: projectId,
|
||||
pipeline_name: this.params.name,
|
||||
},
|
||||
throwOnError: true,
|
||||
});
|
||||
|
||||
if (pipelines.length === 0) {
|
||||
// no pipeline found, create a new one
|
||||
@@ -376,18 +374,17 @@ export class LlamaCloudIndex {
|
||||
};
|
||||
}
|
||||
|
||||
const { data: pipeline } =
|
||||
await PipelinesService.upsertPipelineApiV1PipelinesPut({
|
||||
query: {
|
||||
project_id: projectId,
|
||||
},
|
||||
body: {
|
||||
name: this.params.name,
|
||||
embedding_config: embeddingConfig,
|
||||
transform_config: transformConfig,
|
||||
},
|
||||
throwOnError: true,
|
||||
});
|
||||
const { data: pipeline } = await 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 PipelinesService.runSearchApiV1PipelinesPipelineIdRetrievePost({
|
||||
await runSearchApiV1PipelinesPipelineIdRetrievePost({
|
||||
throwOnError: true,
|
||||
path: {
|
||||
pipeline_id: pipelineId,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {
|
||||
client,
|
||||
PipelinesService,
|
||||
ProjectsService,
|
||||
listProjectsApiV1ProjectsGet,
|
||||
searchPipelinesApiV1PipelinesGet,
|
||||
} from "@llamaindex/cloud/api";
|
||||
import { DEFAULT_BASE_URL } from "@llamaindex/core/global";
|
||||
import { getEnv } from "@llamaindex/env";
|
||||
@@ -42,15 +42,13 @@ export async function getProjectId(
|
||||
projectName: string,
|
||||
organizationId?: string,
|
||||
): Promise<string> {
|
||||
const { data: projects } = await ProjectsService.listProjectsApiV1ProjectsGet(
|
||||
{
|
||||
query: {
|
||||
project_name: projectName,
|
||||
organization_id: organizationId ?? null,
|
||||
},
|
||||
throwOnError: true,
|
||||
const { data: projects } = await listProjectsApiV1ProjectsGet({
|
||||
query: {
|
||||
project_name: projectName,
|
||||
organization_id: organizationId ?? null,
|
||||
},
|
||||
);
|
||||
throwOnError: true,
|
||||
});
|
||||
|
||||
if (projects.length === 0) {
|
||||
throw new Error(
|
||||
@@ -76,14 +74,13 @@ export async function getPipelineId(
|
||||
projectName: string,
|
||||
organizationId?: string,
|
||||
): Promise<string> {
|
||||
const { data: pipelines } =
|
||||
await PipelinesService.searchPipelinesApiV1PipelinesGet({
|
||||
query: {
|
||||
project_id: await getProjectId(projectName, organizationId),
|
||||
pipeline_name: name,
|
||||
},
|
||||
throwOnError: true,
|
||||
});
|
||||
const { data: pipelines } = await searchPipelinesApiV1PipelinesGet({
|
||||
query: {
|
||||
project_id: await getProjectId(projectName, organizationId),
|
||||
pipeline_name: name,
|
||||
},
|
||||
throwOnError: true,
|
||||
});
|
||||
|
||||
if (pipelines.length === 0 || !pipelines[0]!.id) {
|
||||
throw new Error(
|
||||
|
||||
@@ -10,12 +10,16 @@ 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;
|
||||
|
||||
@@ -27,6 +31,8 @@ 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");
|
||||
@@ -35,10 +41,19 @@ export class CohereRerank implements BaseNodePostprocessor {
|
||||
this.topN = topN;
|
||||
this.model = model;
|
||||
this.apiKey = apiKey;
|
||||
this.baseUrl = baseUrl;
|
||||
this.timeout = timeout;
|
||||
|
||||
this.client = new CohereClient({
|
||||
token: this.apiKey,
|
||||
});
|
||||
this.client = new CohereClient(
|
||||
this.baseUrl
|
||||
? {
|
||||
token: this.apiKey,
|
||||
environment: this.baseUrl,
|
||||
}
|
||||
: {
|
||||
token: this.apiKey,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -62,12 +77,17 @@ 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)),
|
||||
});
|
||||
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 newNodes: NodeWithScore[] = [];
|
||||
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
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,
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,14 @@
|
||||
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";
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
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,
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,274 @@
|
||||
/* 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,7 +5,6 @@ import {
|
||||
VectorEmbeddingDistanceFunction,
|
||||
VectorIndexType,
|
||||
type ContainerRequest,
|
||||
type CosmosClientOptions,
|
||||
type DatabaseRequest,
|
||||
type IndexingPolicy,
|
||||
type VectorEmbeddingPolicy,
|
||||
@@ -48,10 +47,7 @@ export interface AzureCosmosDBNoSQLInitOptions {
|
||||
*/
|
||||
export interface AzureCosmosDBNoSQLConfig
|
||||
extends AzureCosmosDBNoSQLInitOptions {
|
||||
readonly client?: CosmosClient;
|
||||
readonly connectionString?: string;
|
||||
readonly endpoint?: string;
|
||||
readonly credentials?: TokenCredential;
|
||||
client?: CosmosClient;
|
||||
readonly databaseName?: string;
|
||||
readonly containerName?: string;
|
||||
readonly textKey?: string;
|
||||
@@ -60,7 +56,7 @@ export interface AzureCosmosDBNoSQLConfig
|
||||
readonly idKey?: string;
|
||||
}
|
||||
|
||||
const USER_AGENT_PREFIX = "LlamaIndex-CDBNoSQL-VectorStore-JavaScript";
|
||||
const USER_AGENT_SUFFIX = "LlamaIndex-CDBNoSQL-VectorStore-JavaScript";
|
||||
|
||||
const DEFAULT_VECTOR_EMBEDDING_POLICY = {
|
||||
vectorEmbeddings: [
|
||||
@@ -148,40 +144,12 @@ export class AzureCosmosDBNoSqlVectorStore extends BaseVectorStore {
|
||||
|
||||
constructor(dbConfig: AzureCosmosDBNoSQLConfig & VectorStoreBaseParams) {
|
||||
super(dbConfig);
|
||||
const connectionString =
|
||||
dbConfig.connectionString ??
|
||||
getEnv("AZURE_COSMOSDB_NOSQL_CONNECTION_STRING");
|
||||
|
||||
const endpoint =
|
||||
dbConfig.endpoint ?? getEnv("AZURE_COSMOSDB_NOSQL_ENDPOINT");
|
||||
|
||||
if (!dbConfig.client && !connectionString && !endpoint) {
|
||||
if (!dbConfig.client) {
|
||||
throw new Error(
|
||||
"CosmosDB client, connection string or endpoint must be set in the configuration.",
|
||||
"CosmosClient is required for AzureCosmosDBNoSQLVectorStore initialization",
|
||||
);
|
||||
}
|
||||
|
||||
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;
|
||||
this.cosmosClient = dbConfig.client;
|
||||
const databaseName = dbConfig.databaseName ?? "vectorSearchDB";
|
||||
const containerName = dbConfig.containerName ?? "vectorSearchContainer";
|
||||
this.idKey = dbConfig.idKey ?? "id";
|
||||
@@ -206,12 +174,17 @@ export class AzureCosmosDBNoSqlVectorStore extends BaseVectorStore {
|
||||
// Deferring initialization to the first call to `initialize`
|
||||
this.initialize = () => {
|
||||
if (this.initPromise === undefined) {
|
||||
this.initPromise = this.init(client, databaseName, containerName, {
|
||||
vectorEmbeddingPolicy,
|
||||
indexingPolicy,
|
||||
createContainerOptions: dbConfig.createContainerOptions,
|
||||
createDatabaseOptions: dbConfig.createDatabaseOptions,
|
||||
}).catch((error) => {
|
||||
this.initPromise = this.init(
|
||||
this.cosmosClient,
|
||||
databaseName,
|
||||
containerName,
|
||||
{
|
||||
vectorEmbeddingPolicy,
|
||||
indexingPolicy,
|
||||
createContainerOptions: dbConfig.createContainerOptions,
|
||||
createDatabaseOptions: dbConfig.createDatabaseOptions,
|
||||
},
|
||||
).catch((error) => {
|
||||
console.error(
|
||||
"Error during AzureCosmosDBNoSQLVectorStore initialization",
|
||||
error,
|
||||
@@ -222,6 +195,84 @@ 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.
|
||||
*
|
||||
|
||||
@@ -7,10 +7,10 @@
|
||||
"test": "vitest run"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@faker-js/faker": "^9.0.1",
|
||||
"@faker-js/faker": "^9.2.0",
|
||||
"dotenv": "^16.4.5",
|
||||
"llamaindex": "workspace:*",
|
||||
"msw": "^2.6.0",
|
||||
"vitest": "^2.0.5",
|
||||
"dotenv": "^16.4.5"
|
||||
"vitest": "^2.1.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@llamaindex/node-parser",
|
||||
"version": "0.0.2",
|
||||
"version": "0.0.3",
|
||||
"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.8.4",
|
||||
"bunchee": "5.5.1",
|
||||
"@types/node": "^22.9.0",
|
||||
"bunchee": "5.6.1",
|
||||
"tree-sitter": "^0.22.0",
|
||||
"web-tree-sitter": "^0.24.3"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@llamaindex/anthropic",
|
||||
"description": "Anthropic Adapter for LlamaIndex",
|
||||
"version": "0.0.10",
|
||||
"version": "0.0.11",
|
||||
"type": "module",
|
||||
"main": "./dist/index.cjs",
|
||||
"module": "./dist/index.js",
|
||||
@@ -30,7 +30,7 @@
|
||||
"dev": "bunchee --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"bunchee": "5.5.1"
|
||||
"bunchee": "5.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@anthropic-ai/sdk": "0.27.1",
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@llamaindex/clip",
|
||||
"description": "Clip Embedding Adapter for LlamaIndex",
|
||||
"version": "0.0.10",
|
||||
"version": "0.0.11",
|
||||
"type": "module",
|
||||
"types": "dist/index.d.ts",
|
||||
"main": "dist/index.cjs",
|
||||
@@ -39,7 +39,7 @@
|
||||
"dev": "bunchee --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"bunchee": "5.5.1"
|
||||
"bunchee": "5.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@llamaindex/core": "workspace:*",
|
||||
|
||||
@@ -2,7 +2,10 @@ 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";
|
||||
import {
|
||||
type LoadTransformerEvent,
|
||||
loadTransformers,
|
||||
} from "@llamaindex/env/multi-model";
|
||||
import type {
|
||||
CLIPTextModelWithProjection,
|
||||
CLIPVisionModelWithProjection,
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@llamaindex/deepinfra",
|
||||
"description": "Deepinfra Adapter for LlamaIndex",
|
||||
"version": "0.0.10",
|
||||
"version": "0.0.11",
|
||||
"type": "module",
|
||||
"main": "./dist/index.cjs",
|
||||
"module": "./dist/index.js",
|
||||
@@ -30,7 +30,7 @@
|
||||
"dev": "bunchee --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"bunchee": "5.5.1"
|
||||
"bunchee": "5.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@llamaindex/core": "workspace:*",
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@llamaindex/groq",
|
||||
"description": "Groq Adapter for LlamaIndex",
|
||||
"version": "0.0.25",
|
||||
"version": "0.0.26",
|
||||
"type": "module",
|
||||
"main": "./dist/index.cjs",
|
||||
"module": "./dist/index.js",
|
||||
@@ -30,7 +30,7 @@
|
||||
"dev": "bunchee --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"bunchee": "5.5.1"
|
||||
"bunchee": "5.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@llamaindex/env": "workspace:*",
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@llamaindex/huggingface",
|
||||
"description": "Huggingface Adapter for LlamaIndex",
|
||||
"version": "0.0.10",
|
||||
"version": "0.0.11",
|
||||
"type": "module",
|
||||
"types": "dist/index.d.ts",
|
||||
"main": "dist/index.cjs",
|
||||
@@ -39,7 +39,7 @@
|
||||
"dev": "bunchee --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"bunchee": "5.5.1"
|
||||
"bunchee": "5.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@huggingface/inference": "^2.8.1",
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import { BaseEmbedding } from "@llamaindex/core/embeddings";
|
||||
import { Settings } from "@llamaindex/core/global";
|
||||
import { type LoadTransformerEvent, loadTransformers } from "@llamaindex/env";
|
||||
import {
|
||||
type LoadTransformerEvent,
|
||||
loadTransformers,
|
||||
} from "@llamaindex/env/multi-model";
|
||||
import type { pipeline } from "@xenova/transformers";
|
||||
import { HuggingFaceEmbeddingModelType } from "./shared";
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
type LLMChatParamsStreaming,
|
||||
type LLMMetadata,
|
||||
} from "@llamaindex/core/llms";
|
||||
import { loadTransformers } from "@llamaindex/env";
|
||||
import { loadTransformers } from "@llamaindex/env/multi-model";
|
||||
import type {
|
||||
PreTrainedModel,
|
||||
PreTrainedTokenizer,
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @llamaindex/ollama
|
||||
|
||||
## 0.0.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [14cc9eb]
|
||||
- @llamaindex/env@0.1.17
|
||||
- @llamaindex/core@0.4.2
|
||||
|
||||
## 0.0.17
|
||||
|
||||
### Patch Changes
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user