diff --git a/packages/llamaindex/src/indices/vectorStore/index.ts b/packages/llamaindex/src/indices/vectorStore/index.ts
index 8b88bbe4115e56cce918aaf1be46b627ca682ad3..d0bb647ef17867d435c8171c479d85e50bf2b8c0 100644
--- a/packages/llamaindex/src/indices/vectorStore/index.ts
+++ b/packages/llamaindex/src/indices/vectorStore/index.ts
@@ -203,7 +203,10 @@ export class VectorStoreIndex extends BaseIndex<IndexDict> {
     } = {},
   ): Promise<VectorStoreIndex> {
     args.storageContext =
-      args.storageContext ?? (await storageContextFromDefaults({}));
+      args.storageContext ??
+      (await storageContextFromDefaults({
+        serviceContext: args.serviceContext,
+      }));
     args.vectorStores = args.vectorStores ?? args.storageContext.vectorStores;
     args.docStoreStrategy =
       args.docStoreStrategy ??
diff --git a/packages/llamaindex/src/storage/StorageContext.ts b/packages/llamaindex/src/storage/StorageContext.ts
index a3f8fdf53d3753e5e447a5be4d6c7a196f0d60f4..5b01c28903e1712e559916c62127fdc6979f6183 100644
--- a/packages/llamaindex/src/storage/StorageContext.ts
+++ b/packages/llamaindex/src/storage/StorageContext.ts
@@ -5,6 +5,7 @@ import {
 import { ModalityType, ObjectType } from "@llamaindex/core/schema";
 import { path } from "@llamaindex/env";
 import { getImageEmbedModel } from "../internal/settings/image-embed-model.js";
+import type { ServiceContext } from "../ServiceContext.js";
 import { SimpleVectorStore } from "../vector-store/SimpleVectorStore.js";
 import type { VectorStore, VectorStoreByType } from "../vector-store/types.js";
 import { SimpleDocumentStore } from "./docStore/SimpleDocumentStore.js";
@@ -25,6 +26,10 @@ type BuilderParams = {
   vectorStores: VectorStoreByType;
   storeImages: boolean;
   persistDir: string;
+  /**
+   * @deprecated Please use `Settings` instead
+   */
+  serviceContext?: ServiceContext | undefined;
 };
 
 export async function storageContextFromDefaults({
@@ -34,6 +39,7 @@ export async function storageContextFromDefaults({
   vectorStores,
   storeImages,
   persistDir,
+  serviceContext,
 }: Partial<BuilderParams>): Promise<StorageContext> {
   vectorStores = vectorStores ?? {};
   if (!persistDir) {
@@ -48,6 +54,7 @@ export async function storageContextFromDefaults({
       });
     }
   } else {
+    const embedModel = serviceContext?.embedModel;
     docStore =
       docStore ||
       (await SimpleDocumentStore.fromPersistDir(persistDir, DEFAULT_NAMESPACE));
@@ -55,7 +62,8 @@ export async function storageContextFromDefaults({
       indexStore || (await SimpleIndexStore.fromPersistDir(persistDir));
     if (!(ObjectType.TEXT in vectorStores)) {
       vectorStores[ModalityType.TEXT] =
-        vectorStore ?? (await SimpleVectorStore.fromPersistDir(persistDir));
+        vectorStore ??
+        (await SimpleVectorStore.fromPersistDir(persistDir, embedModel));
     }
     if (storeImages && !(ObjectType.IMAGE in vectorStores)) {
       vectorStores[ModalityType.IMAGE] = await SimpleVectorStore.fromPersistDir(