fix: prefer using embedding model from vector store (#1708)

This commit is contained in:
Thuc Pham
2025-03-06 16:24:05 +07:00
committed by GitHub
parent 4b49428f57
commit bbc8c8787d
47 changed files with 518 additions and 63 deletions
+9
View File
@@ -0,0 +1,9 @@
---
"llamaindex": patch
"@llamaindex/deepseek": patch
"@llamaindex/fireworks": patch
"@llamaindex/together": patch
"@llamaindex/jinaai": patch
---
fix: prefer using embedding model from vector store
@@ -2,10 +2,11 @@
title: Jina AI
---
To use Jina AI embeddings, you need to import `JinaAIEmbedding` from `llamaindex`.
To use Jina AI embeddings, you need to import `JinaAIEmbedding` from `@llamaindex/jinaai`.
```ts
import { JinaAIEmbedding, Settings } from "llamaindex";
import { Settings } from "llamaindex";
import { JinaAIEmbedding } from "@llamaindex/jinaai";
Settings.embedModel = new JinaAIEmbedding();
@@ -2,10 +2,11 @@
title: Together
---
To use together embeddings, you need to import `TogetherEmbedding` from `llamaindex`.
To use together embeddings, you need to import `TogetherEmbedding` from `@llamaindex/together`.
```ts
import { TogetherEmbedding, Settings } from "llamaindex";
import { Settings } from "llamaindex";
import { TogetherEmbedding } from "@llamaindex/together";
Settings.embedModel = new TogetherEmbedding({
apiKey: "<YOUR_API_KEY>",
@@ -7,7 +7,8 @@ title: DeepSeek LLM
## Usage
```ts
import { DeepSeekLLM, Settings } from "llamaindex";
import { Settings } from "llamaindex";
import { DeepSeekLLM } from "@llamaindex/deepseek";
Settings.llm = new DeepSeekLLM({
apiKey: "<YOUR_API_KEY>",
@@ -18,7 +19,8 @@ Settings.llm = new DeepSeekLLM({
## Example
```ts
import { DeepSeekLLM, Document, VectorStoreIndex, Settings } from "llamaindex";
import { Document, VectorStoreIndex, Settings } from "llamaindex";
import { DeepSeekLLM } from "@llamaindex/deepseek";
const deepseekLlm = new DeepSeekLLM({
apiKey: "<YOUR_API_KEY>",
@@ -7,7 +7,8 @@ title: Fireworks LLM
## Usage
```ts
import { FireworksLLM, Settings } from "llamaindex";
import { Settings } from "llamaindex";
import { FireworksLLM } from "@llamaindex/fireworks";
Settings.llm = new FireworksLLM({
apiKey: "<YOUR_API_KEY>",
@@ -23,7 +23,8 @@ import { Tab, Tabs } from "fumadocs-ui/components/tabs";
## Usage
```ts
import { Settings, TogetherLLM } from "llamaindex";
import { Settings } from "llamaindex";
import { TogetherLLM } from "@llamaindex/together";
Settings.llm = new TogetherLLM({
apiKey: "<YOUR_API_KEY>",
+46
View File
@@ -0,0 +1,46 @@
import { DeepSeekLLM } from "@llamaindex/deepseek";
// process.env.DEEPSEEK_API_KEY is required
const deepseek = new DeepSeekLLM({
apiKey: process.env.DEEPSEEK_API_KEY,
model: "deepseek-coder", // or "deepseek-chat"
});
(async () => {
// Example of non-streaming chat
const response = await deepseek.chat({
messages: [
{
role: "system",
content: "You are an AI assistant",
},
{
role: "user",
content: "Tell me about San Francisco",
},
],
stream: false,
});
console.log("Response from DeepSeek AI:");
console.log(response);
// Example of streaming chat
const generator = await deepseek.chat({
messages: [
{
role: "system",
content: "You are an AI assistant",
},
{
role: "user",
content: "Write a short poem about San Francisco",
},
],
stream: true,
});
console.log("\nStreaming response from DeepSeek AI...");
for await (const message of generator) {
process.stdout.write(message.delta);
}
console.log("\n");
})();
+2 -6
View File
@@ -1,10 +1,6 @@
import { JinaAIEmbedding } from "@llamaindex/jinaai";
import { SimpleDirectoryReader } from "@llamaindex/readers/directory";
import {
ImageDocument,
JinaAIEmbedding,
similarity,
SimilarityType,
} from "llamaindex";
import { ImageDocument, similarity, SimilarityType } from "llamaindex";
import path from "path";
async function main() {
+4
View File
@@ -44,6 +44,10 @@
"@llamaindex/voyage-ai": "^1.0.3",
"@llamaindex/weaviate": "^0.0.11",
"@llamaindex/workflow": "^0.0.13",
"@llamaindex/deepseek": "^0.0.1",
"@llamaindex/fireworks": "^0.0.1",
"@llamaindex/together": "^0.0.1",
"@llamaindex/jinaai": "^0.0.1",
"@notionhq/client": "^2.2.15",
"@pinecone-database/pinecone": "^4.0.0",
"@vercel/postgres": "^0.10.0",
+33
View File
@@ -0,0 +1,33 @@
import {
GEMINI_EMBEDDING_MODEL,
GeminiEmbedding,
GeminiSession,
} from "@llamaindex/google";
import { QdrantVectorStore } from "@llamaindex/qdrant";
import {
Document,
storageContextFromDefaults,
VectorStoreIndex,
} from "llamaindex";
const embedding = new GeminiEmbedding({
model: GEMINI_EMBEDDING_MODEL.EMBEDDING_001,
session: new GeminiSession({
apiKey: process.env.GEMINI_API_KEY,
}),
});
async function main() {
const docs = [new Document({ text: "Lorem ipsum dolor sit amet" })];
const vectorStore = new QdrantVectorStore({
url: process.env.QDRANT_URL,
apiKey: process.env.QDRANT_API_KEY,
embeddingModel: embedding,
collectionName: "gemini_test",
});
const storageContext = await storageContextFromDefaults({ vectorStore });
await VectorStoreIndex.fromDocuments(docs, { storageContext });
console.log("Inizialized vector store successfully");
}
void main().catch((err) => console.error(err));
+27
View File
@@ -0,0 +1,27 @@
import { JinaAIEmbedding } from "@llamaindex/jinaai";
import { QdrantVectorStore } from "@llamaindex/qdrant";
import {
Document,
storageContextFromDefaults,
VectorStoreIndex,
} from "llamaindex";
const embedding = new JinaAIEmbedding({
apiKey: process.env.JINAAI_API_KEY,
model: "jina-embeddings-v3",
});
async function main() {
const docs = [new Document({ text: "Lorem ipsum dolor sit amet" })];
const vectorStore = new QdrantVectorStore({
url: process.env.QDRANT_URL,
apiKey: process.env.QDRANT_API_KEY,
embeddingModel: embedding,
collectionName: "jina_test",
});
const storageContext = await storageContextFromDefaults({ vectorStore });
await VectorStoreIndex.fromDocuments(docs, { storageContext });
console.log("Inizialized vector store successfully");
}
void main().catch((err) => console.error(err));
+2 -1
View File
@@ -1,5 +1,6 @@
import { FireworksEmbedding, FireworksLLM } from "@llamaindex/fireworks";
import { PDFReader } from "@llamaindex/readers/pdf";
import { FireworksEmbedding, FireworksLLM, VectorStoreIndex } from "llamaindex";
import { VectorStoreIndex } from "llamaindex";
import { Settings } from "llamaindex";
+1 -1
View File
@@ -1,4 +1,4 @@
import { TogetherEmbedding, TogetherLLM } from "llamaindex";
import { TogetherEmbedding, TogetherLLM } from "@llamaindex/together";
// process.env.TOGETHER_API_KEY is required
const together = new TogetherLLM({
+2 -7
View File
@@ -1,12 +1,7 @@
import fs from "node:fs/promises";
import {
Document,
Settings,
TogetherEmbedding,
TogetherLLM,
VectorStoreIndex,
} from "llamaindex";
import { TogetherEmbedding, TogetherLLM } from "@llamaindex/together";
import { Document, Settings, VectorStoreIndex } from "llamaindex";
// Update llm to use TogetherAI
Settings.llm = new TogetherLLM({
@@ -1 +0,0 @@
export * from "@llamaindex/openai";
@@ -1,5 +0,0 @@
export * from "@llamaindex/core/embeddings";
export { FireworksEmbedding } from "./fireworks.js";
export * from "./JinaAIEmbedding.js";
export * from "./OpenAIEmbedding.js";
export { TogetherEmbedding } from "./together.js";
+2 -2
View File
@@ -22,6 +22,7 @@ export {
export * from "@llamaindex/core/agent";
export * from "@llamaindex/core/chat-engine";
export * from "@llamaindex/core/data-structs";
export * from "@llamaindex/core/embeddings";
export {
CallbackManager,
DEFAULT_BASE_URL,
@@ -65,10 +66,10 @@ export * from "@llamaindex/core/storage/doc-store";
export * from "@llamaindex/core/storage/index-store";
export * from "@llamaindex/core/storage/kv-store";
export * from "@llamaindex/core/utils";
export * from "@llamaindex/openai";
export * from "@llamaindex/workflow/agent";
export * from "./agent/index.js";
export * from "./cloud/index.js";
export * from "./embeddings/index.js";
export * from "./engines/chat/index.js";
export * from "./engines/query/index.js";
export * from "./evaluation/index.js";
@@ -76,7 +77,6 @@ export * from "./extractors/index.js";
export * from "./indices/index.js";
export * from "./ingestion/index.js";
export { imageToDataUrl } from "./internal/utils.js";
export * from "./llm/index.js";
export * from "./node-parser.js";
export * from "./objects/index.js";
export * from "./OutputParser.js";
-3
View File
@@ -1,8 +1,5 @@
export * from "./index.edge.js";
// TODO: clean up, move to jinaai package
export { JinaAIEmbedding } from "./embeddings/JinaAIEmbedding.js";
// Don't export file-system stores for non-node.js runtime on top level,
// as we cannot guarantee that they will work in other environments
export * from "./storage/index.js";
@@ -175,7 +175,7 @@ export class VectorStoreIndex extends BaseIndex<IndexDict> {
for (const type in nodeMap) {
const nodes = nodeMap[type as ModalityType];
const embedModel =
this.embedModel ?? this.vectorStores[type as ModalityType]?.embedModel;
this.vectorStores[type as ModalityType]?.embedModel ?? this.embedModel;
if (embedModel && nodes) {
await embedModel(nodes, {
logProgress: options?.logProgress,
-4
View File
@@ -1,4 +0,0 @@
export { DeepSeekLLM } from "./deepseek.js";
export { FireworksLLM } from "./fireworks.js";
export * from "./openai.js";
export { TogetherLLM } from "./together.js";
-1
View File
@@ -1 +0,0 @@
export * from "@llamaindex/openai";
@@ -1,13 +1,11 @@
import { Document } from "@llamaindex/core/schema";
import { Settings } from "llamaindex";
import { OpenAIEmbedding } from "llamaindex/embeddings/index";
import { OpenAI, OpenAIEmbedding, Settings } from "llamaindex";
import {
KeywordExtractor,
QuestionsAnsweredExtractor,
SummaryExtractor,
TitleExtractor,
} from "llamaindex/extractors/index";
import { OpenAI } from "llamaindex/llm/openai";
import { SentenceSplitter } from "llamaindex/node-parser";
import { afterAll, beforeAll, describe, expect, test, vi } from "vitest";
import {
+1 -1
View File
@@ -1,7 +1,7 @@
import { describe, expect, test } from "vitest";
// from unittest.mock import patch
import { OpenAI } from "llamaindex/llm/index";
import { OpenAI } from "llamaindex";
import { LLMSingleSelector } from "llamaindex/selectors/index";
import { mocStructuredkLlmGeneration } from "./utility/mockOpenAI.js";
@@ -20,13 +20,13 @@ describe("SummaryIndex", () => {
let storageContext: StorageContext;
beforeAll(async () => {
storageContext = await storageContextFromDefaults({
persistDir: testDir,
});
const embedModel = new OpenAIEmbedding();
mockEmbeddingModel(embedModel);
Settings.embedModel = embedModel;
storageContext = await storageContextFromDefaults({
persistDir: testDir,
});
});
afterAll(() => {
@@ -9,7 +9,7 @@ import { DocStoreStrategy } from "llamaindex/ingestion/strategies/index";
import { mkdtemp, rm } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { afterAll, beforeAll, describe, expect, test, vi } from "vitest";
import { afterAll, beforeAll, describe, expect, it, test, vi } from "vitest";
const testDir = await mkdtemp(join(tmpdir(), "test-"));
@@ -24,6 +24,10 @@ describe("VectorStoreIndex", () => {
) => Promise<Array<number>>;
beforeAll(async () => {
const embedModel = new OpenAIEmbedding();
mockEmbeddingModel(embedModel);
Settings.embedModel = embedModel;
storageContext = await mockStorageContext(testDir);
testStrategy = async (
strategy: DocStoreStrategy,
@@ -41,10 +45,6 @@ describe("VectorStoreIndex", () => {
}
return entries;
};
const embedModel = new OpenAIEmbedding();
mockEmbeddingModel(embedModel);
Settings.embedModel = embedModel;
});
afterAll(() => {
@@ -65,3 +65,28 @@ describe("VectorStoreIndex", () => {
await rm(testDir, { recursive: true });
});
});
describe("[VectorStoreIndex] use embedding model", () => {
it("should use embedding model passed in options instead of Settings", async () => {
const documents = [new Document({ text: "This needs to be embedded" })];
// Create mock embedding models
const settingsEmbedModel = new OpenAIEmbedding();
const customEmbedModel = new OpenAIEmbedding();
// Mock the embedding models using the utility function
mockEmbeddingModel(settingsEmbedModel);
mockEmbeddingModel(customEmbedModel);
// Add spies to track calls
const settingsSpy = vi.spyOn(settingsEmbedModel, "getTextEmbeddings");
const customSpy = vi.spyOn(customEmbedModel, "getTextEmbeddings");
Settings.embedModel = settingsEmbedModel;
const storageContext = await mockStorageContext(testDir, customEmbedModel); // setup custom embedding model
await VectorStoreIndex.fromDocuments(documents, { storageContext });
expect(customSpy).toHaveBeenCalled();
expect(settingsSpy).not.toHaveBeenCalled();
});
});
@@ -1,8 +1,6 @@
import type { CallbackManager } from "@llamaindex/core/global";
import type { LLMChatParamsBase } from "llamaindex";
import { Settings } from "llamaindex";
import type { OpenAIEmbedding } from "llamaindex/embeddings/OpenAIEmbedding";
import { OpenAI } from "llamaindex/llm/openai";
import type { LLMChatParamsBase, OpenAIEmbedding } from "llamaindex";
import { OpenAI, Settings } from "llamaindex";
import { vi } from "vitest";
export const DEFAULT_LLM_TEXT_OUTPUT = "MOCK_TOKEN_1-MOCK_TOKEN_2";
@@ -1,14 +1,27 @@
import { OpenAIEmbedding, storageContextFromDefaults } from "llamaindex";
import {
BaseEmbedding,
OpenAIEmbedding,
storageContextFromDefaults,
} from "llamaindex";
import { mockEmbeddingModel } from "./mockOpenAI.js";
export async function mockStorageContext(testDir: string) {
export async function mockStorageContext(
testDir: string,
embeddingModel?: BaseEmbedding,
) {
const storageContext = await storageContextFromDefaults({
persistDir: testDir,
});
for (const store of Object.values(storageContext.vectorStores)) {
store.embedModel = new OpenAIEmbedding();
mockEmbeddingModel(store.embedModel as OpenAIEmbedding);
if (embeddingModel) {
// use embeddingModel if it is passed in
store.embedModel = embeddingModel;
} else {
// mock an embedding model for testing
store.embedModel = new OpenAIEmbedding();
mockEmbeddingModel(store.embedModel as OpenAIEmbedding);
}
}
return storageContext;
}
+39
View File
@@ -0,0 +1,39 @@
{
"name": "@llamaindex/deepseek",
"description": "DeepSeek Adapter for LlamaIndex",
"version": "0.0.1",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
"exports": {
".": {
"require": {
"types": "./dist/index.d.cts",
"default": "./dist/index.cjs"
},
"import": {
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
}
}
},
"files": [
"dist"
],
"repository": {
"type": "git",
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
"directory": "packages/providers/deepseek"
},
"scripts": {
"build": "bunchee",
"dev": "bunchee --watch"
},
"devDependencies": {
"bunchee": "6.3.4"
},
"dependencies": {
"@llamaindex/env": "workspace:*",
"@llamaindex/openai": "workspace:*"
}
}
+1
View File
@@ -0,0 +1 @@
export * from "./llm";
+19
View File
@@ -0,0 +1,19 @@
{
"extends": "../../../tsconfig.json",
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "bundler",
"outDir": "./lib",
"tsBuildInfoFile": "./lib/.tsbuildinfo"
},
"include": ["./src"],
"references": [
{
"path": "../openai/tsconfig.json"
},
{
"path": "../../env/tsconfig.json"
}
]
}
+39
View File
@@ -0,0 +1,39 @@
{
"name": "@llamaindex/fireworks",
"description": "Fireworks Adapter for LlamaIndex",
"version": "0.0.1",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
"exports": {
".": {
"require": {
"types": "./dist/index.d.cts",
"default": "./dist/index.cjs"
},
"import": {
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
}
}
},
"files": [
"dist"
],
"repository": {
"type": "git",
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
"directory": "packages/providers/fireworks"
},
"scripts": {
"build": "bunchee",
"dev": "bunchee --watch"
},
"devDependencies": {
"bunchee": "6.3.4"
},
"dependencies": {
"@llamaindex/env": "workspace:*",
"@llamaindex/openai": "workspace:*"
}
}
@@ -0,0 +1,2 @@
export * from "./embedding";
export * from "./llm";
@@ -0,0 +1,19 @@
{
"extends": "../../../tsconfig.json",
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "bundler",
"outDir": "./lib",
"tsBuildInfoFile": "./lib/.tsbuildinfo"
},
"include": ["./src"],
"references": [
{
"path": "../openai/tsconfig.json"
},
{
"path": "../../env/tsconfig.json"
}
]
}
+40
View File
@@ -0,0 +1,40 @@
{
"name": "@llamaindex/jinaai",
"description": "JinaAI Adapter for LlamaIndex",
"version": "0.0.1",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
"exports": {
".": {
"require": {
"types": "./dist/index.d.cts",
"default": "./dist/index.cjs"
},
"import": {
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
}
}
},
"files": [
"dist"
],
"repository": {
"type": "git",
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
"directory": "packages/providers/jinaai"
},
"scripts": {
"build": "bunchee",
"dev": "bunchee --watch"
},
"devDependencies": {
"bunchee": "6.3.4"
},
"dependencies": {
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*",
"@llamaindex/openai": "workspace:*"
}
}
@@ -1,7 +1,7 @@
import { MultiModalEmbedding } from "@llamaindex/core/embeddings";
import type { ImageType } from "@llamaindex/core/schema";
import { imageToDataUrl } from "@llamaindex/core/utils";
import { getEnv } from "@llamaindex/env";
import { imageToDataUrl } from "../internal/utils.js";
import type { ImageType } from "../Node.js";
function isLocal(url: ImageType): boolean {
if (url instanceof Blob) return true;
+1
View File
@@ -0,0 +1 @@
export * from "./embedding";
+19
View File
@@ -0,0 +1,19 @@
{
"extends": "../../../tsconfig.json",
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "bundler",
"outDir": "./lib",
"tsBuildInfoFile": "./lib/.tsbuildinfo"
},
"include": ["./src"],
"references": [
{
"path": "../openai/tsconfig.json"
},
{
"path": "../../env/tsconfig.json"
}
]
}
+39
View File
@@ -0,0 +1,39 @@
{
"name": "@llamaindex/together",
"description": "Together Adapter for LlamaIndex",
"version": "0.0.1",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
"exports": {
".": {
"require": {
"types": "./dist/index.d.cts",
"default": "./dist/index.cjs"
},
"import": {
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
}
}
},
"files": [
"dist"
],
"repository": {
"type": "git",
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
"directory": "packages/providers/together"
},
"scripts": {
"build": "bunchee",
"dev": "bunchee --watch"
},
"devDependencies": {
"bunchee": "6.3.4"
},
"dependencies": {
"@llamaindex/env": "workspace:*",
"@llamaindex/openai": "workspace:*"
}
}
+2
View File
@@ -0,0 +1,2 @@
export * from "./embedding";
export * from "./llm";
+19
View File
@@ -0,0 +1,19 @@
{
"extends": "../../../tsconfig.json",
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "bundler",
"outDir": "./lib",
"tsBuildInfoFile": "./lib/.tsbuildinfo"
},
"include": ["./src"],
"references": [
{
"path": "../../core/tsconfig.json"
},
{
"path": "../../env/tsconfig.json"
}
]
}
+67
View File
@@ -622,12 +622,18 @@ importers:
'@llamaindex/deepinfra':
specifier: ^0.0.42
version: link:../packages/providers/deepinfra
'@llamaindex/deepseek':
specifier: ^0.0.1
version: link:../packages/providers/deepseek
'@llamaindex/env':
specifier: ^0.1.29
version: link:../packages/env
'@llamaindex/firestore':
specifier: ^1.0.4
version: link:../packages/providers/storage/firestore
'@llamaindex/fireworks':
specifier: ^0.0.1
version: link:../packages/providers/fireworks
'@llamaindex/google':
specifier: ^0.0.13
version: link:../packages/providers/google
@@ -637,6 +643,9 @@ importers:
'@llamaindex/huggingface':
specifier: ^0.0.42
version: link:../packages/providers/huggingface
'@llamaindex/jinaai':
specifier: ^0.0.1
version: link:../packages/providers/jinaai
'@llamaindex/milvus':
specifier: ^0.1.6
version: link:../packages/providers/storage/milvus
@@ -676,6 +685,9 @@ importers:
'@llamaindex/replicate':
specifier: ^0.0.39
version: link:../packages/providers/replicate
'@llamaindex/together':
specifier: ^0.0.1
version: link:../packages/providers/together
'@llamaindex/upstash':
specifier: ^0.0.11
version: link:../packages/providers/storage/upstash
@@ -1218,6 +1230,32 @@ importers:
specifier: 6.3.4
version: 6.3.4(patch_hash=pavboztthlgni7m5gzw7643oru)(typescript@5.7.3)
packages/providers/deepseek:
dependencies:
'@llamaindex/env':
specifier: workspace:*
version: link:../../env
'@llamaindex/openai':
specifier: workspace:*
version: link:../openai
devDependencies:
bunchee:
specifier: 6.3.4
version: 6.3.4(patch_hash=pavboztthlgni7m5gzw7643oru)(typescript@5.7.3)
packages/providers/fireworks:
dependencies:
'@llamaindex/env':
specifier: workspace:*
version: link:../../env
'@llamaindex/openai':
specifier: workspace:*
version: link:../openai
devDependencies:
bunchee:
specifier: 6.3.4
version: 6.3.4(patch_hash=pavboztthlgni7m5gzw7643oru)(typescript@5.7.3)
packages/providers/google:
dependencies:
'@google-cloud/vertexai':
@@ -1275,6 +1313,22 @@ importers:
specifier: 6.3.4
version: 6.3.4(patch_hash=pavboztthlgni7m5gzw7643oru)(typescript@5.7.3)
packages/providers/jinaai:
dependencies:
'@llamaindex/core':
specifier: workspace:*
version: link:../../core
'@llamaindex/env':
specifier: workspace:*
version: link:../../env
'@llamaindex/openai':
specifier: workspace:*
version: link:../openai
devDependencies:
bunchee:
specifier: 6.3.4
version: 6.3.4(patch_hash=pavboztthlgni7m5gzw7643oru)(typescript@5.7.3)
packages/providers/mistral:
dependencies:
'@llamaindex/core':
@@ -1607,6 +1661,19 @@ importers:
specifier: 6.3.4
version: 6.3.4(patch_hash=pavboztthlgni7m5gzw7643oru)(typescript@5.7.3)
packages/providers/together:
dependencies:
'@llamaindex/env':
specifier: workspace:*
version: link:../../env
'@llamaindex/openai':
specifier: workspace:*
version: link:../openai
devDependencies:
bunchee:
specifier: 6.3.4
version: 6.3.4(patch_hash=pavboztthlgni7m5gzw7643oru)(typescript@5.7.3)
packages/providers/vercel:
dependencies:
'@llamaindex/core':
+12
View File
@@ -175,6 +175,18 @@
},
{
"path": "./packages/providers/voyage-ai/tsconfig.json"
},
{
"path": "./packages/providers/deepseek/tsconfig.json"
},
{
"path": "./packages/providers/fireworks/tsconfig.json"
},
{
"path": "./packages/providers/together/tsconfig.json"
},
{
"path": "./packages/providers/jinaai/tsconfig.json"
}
]
}