diff --git a/src/lib/components/workspace/Knowledge/KnowledgeBase.svelte b/src/lib/components/workspace/Knowledge/KnowledgeBase.svelte
index 7b318703b..f4c90d057 100644
--- a/src/lib/components/workspace/Knowledge/KnowledgeBase.svelte
+++ b/src/lib/components/workspace/Knowledge/KnowledgeBase.svelte
@@ -45,6 +45,7 @@
 	import ChevronLeft from '$lib/components/icons/ChevronLeft.svelte';
 	import LockClosed from '$lib/components/icons/LockClosed.svelte';
 	import AccessControlModal from '../common/AccessControlModal.svelte';
+    import RagConfigModal from '../common/RagConfigModal.svelte';
 
 	let largeScreen = true;
 
@@ -69,7 +70,8 @@
 	let showAddTextContentModal = false;
 	let showSyncConfirmModal = false;
 	let showAccessControlModal = false;
-
+	let showRagConfigModal = false;
+	
 	let inputFiles = null;
 
 	let filteredItems = [];
@@ -118,7 +120,7 @@
 		return file;
 	};
 
-	const uploadFileHandler = async (file) => {
+	const uploadFileHandler = async (file, knowledgeId) => {
 		console.log(file);
 
 		const tempItemId = uuidv4();
@@ -158,7 +160,7 @@
 		knowledge.files = [...(knowledge.files ?? []), fileItem];
 
 		try {
-			const uploadedFile = await uploadFile(localStorage.token, file).catch((e) => {
+			const uploadedFile = await uploadFile(localStorage.token, file, knowledgeId).catch((e) => {
 				toast.error(`${e}`);
 				return null;
 			});
@@ -249,7 +251,7 @@
 					const file = await entry.getFile();
 					const fileWithPath = new File([file], entryPath, { type: file.type });
 
-					await uploadFileHandler(fileWithPath);
+					await uploadFileHandler(fileWithPath, id);
 					uploadedFiles++;
 					updateProgress();
 				} else if (entry.kind === 'directory') {
@@ -311,7 +313,7 @@
 							const relativePath = file.webkitRelativePath || file.name;
 							const fileWithPath = new File([file], relativePath, { type: file.type });
 
-							await uploadFileHandler(fileWithPath);
+							await uploadFileHandler(fileWithPath, id);
 							uploadedFiles++;
 							updateProgress();
 						}
@@ -509,7 +511,7 @@
 
 				if (inputFiles && inputFiles.length > 0) {
 					for (const file of inputFiles) {
-						await uploadFileHandler(file);
+						await uploadFileHandler(file, id);
 					}
 				} else {
 					toast.error($i18n.t(`File not found.`));
@@ -628,7 +630,7 @@
 	bind:show={showAddTextContentModal}
 	on:submit={(e) => {
 		const file = createFileFromText(e.detail.name, e.detail.content);
-		uploadFileHandler(file);
+		uploadFileHandler(file, id);
 	}}
 />
 
@@ -641,7 +643,7 @@
 	on:change={async () => {
 		if (inputFiles && inputFiles.length > 0) {
 			for (const file of inputFiles) {
-				await uploadFileHandler(file);
+				await uploadFileHandler(file, id);
 			}
 
 			inputFiles = null;
@@ -667,6 +669,16 @@
 			}}
 			accessRoles={['read', 'write']}
 		/>
+		{#if knowledge.rag_config.DEFAULT_RAG_SETTINGS == false}
+			<RagConfigModal
+				bind:show={showRagConfigModal}
+				RAGConfig={knowledge.rag_config}
+				knowledgeId={knowledge.id}
+				on:update={(e) => {
+					knowledge.rag_config = e.detail; // sync updated config
+				  }}
+			/>
+		{/if}
 		<div class="w-full mb-2.5">
 			<div class=" flex w-full">
 				<div class="flex-1">
@@ -698,6 +710,33 @@
 								</div>
 							</button>
 						</div>
+
+						{#if knowledge.rag_config.DEFAULT_RAG_SETTINGS == false}
+							<button
+								class="bg-gray-50 hover:bg-gray-100 text-black dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-white transition px-2 py-1 rounded-full flex gap-1 items-center"
+								style="width: 150px;"
+								type="button"
+								on:click={() => {
+									showRagConfigModal = true;
+								}}
+							>
+								<svg
+									xmlns="http://www.w3.org/2000/svg"
+									viewBox="0 0 16 16"
+									fill="currentColor"
+									class="w-4 h-4"
+								>
+									<path
+										fill-rule="evenodd"
+										d="M6.955 1.45A.5.5 0 0 1 7.452 1h1.096a.5.5 0 0 1 .497.45l.17 1.699c.484.12.94.312 1.356.562l1.321-1.081a.5.5 0 0 1 .67.033l.774.775a.5.5 0 0 1 .034.67l-1.08 1.32c.25.417.44.873.561 1.357l1.699.17a.5.5 0 0 1 .45.497v1.096a.5.5 0 0 1-.45.497l-1.699.17c-.12.484-.312.94-.562 1.356l1.082 1.322a.5.5 0 0 1-.034.67l-.774.774a.5.5 0 0 1-.67.033l-1.322-1.08c-.416.25-.872.44-1.356.561l-.17 1.699a.5.5 0 0 1-.497.45H7.452a.5.5 0 0 1-.497-.45l-.17-1.699a4.973 4.973 0 0 1-1.356-.562L4.108 13.37a.5.5 0 0 1-.67-.033l-.774-.775a.5.5 0 0 1-.034-.67l1.08-1.32a4.971 4.971 0 0 1-.561-1.357l-1.699-.17A.5.5 0 0 1 1 8.548V7.452a.5.5 0 0 1 .45-.497l1.699-.17c.12-.484.312-.94.562-1.356L2.629 4.107a.5.5 0 0 1 .034-.67l.774-.774a.5.5 0 0 1 .67-.033L5.43 3.71a4.97 4.97 0 0 1 1.356-.561l.17-1.699ZM6 8c0 .538.212 1.026.558 1.385l.057.057a2 2 0 0 0 2.828-2.828l-.058-.056A2 2 0 0 0 6 8Z"
+										clip-rule="evenodd"
+									/>
+								</svg>
+								<div class="text-sm font-medium shrink-0">
+									{$i18n.t('RAG Config')}
+								</div>
+							</button>
+						{/if}
 					</div>
 
 					<div class="flex w-full px-1">