Skip to content

Commit b9fc3c2

Browse files
committed
fix(kb): persist chunking config correctly
1 parent 282ec8c commit b9fc3c2

File tree

4 files changed

+60
-3
lines changed

4 files changed

+60
-3
lines changed

apps/sim/app/workspace/[workspaceId]/knowledge/components/base-card/base-card.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ interface BaseCardProps {
2020
createdAt?: string
2121
updatedAt?: string
2222
connectorTypes?: string[]
23+
chunkingConfig?: { maxSize: number; minSize: number; overlap: number }
2324
onUpdate?: (id: string, name: string, description: string) => Promise<void>
2425
onDelete?: (id: string) => Promise<void>
2526
}
@@ -78,6 +79,7 @@ export function BaseCard({
7879
description,
7980
updatedAt,
8081
connectorTypes = [],
82+
chunkingConfig,
8183
onUpdate,
8284
onDelete,
8385
}: BaseCardProps) {
@@ -256,6 +258,7 @@ export function BaseCard({
256258
knowledgeBaseId={id}
257259
initialName={title}
258260
initialDescription={description === 'No description provided' ? '' : description}
261+
chunkingConfig={chunkingConfig}
259262
onSave={handleSave}
260263
/>
261264
)}

apps/sim/app/workspace/[workspaceId]/knowledge/components/create-base-modal/create-base-modal.tsx

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -358,25 +358,31 @@ export const CreateBaseModal = memo(function CreateBaseModal({
358358
<Label htmlFor='minChunkSize'>Min Chunk Size (characters)</Label>
359359
<Input
360360
id='minChunkSize'
361+
type='number'
362+
min={1}
363+
max={2000}
364+
step={1}
361365
placeholder='100'
362366
{...register('minChunkSize', { valueAsNumber: true })}
363367
className={cn(errors.minChunkSize && 'border-[var(--text-error)]')}
364368
autoComplete='off'
365369
data-form-type='other'
366-
name='min-chunk-size'
367370
/>
368371
</div>
369372

370373
<div className='flex flex-col gap-2'>
371374
<Label htmlFor='maxChunkSize'>Max Chunk Size (tokens)</Label>
372375
<Input
373376
id='maxChunkSize'
377+
type='number'
378+
min={100}
379+
max={4000}
380+
step={1}
374381
placeholder='1024'
375382
{...register('maxChunkSize', { valueAsNumber: true })}
376383
className={cn(errors.maxChunkSize && 'border-[var(--text-error)]')}
377384
autoComplete='off'
378385
data-form-type='other'
379-
name='max-chunk-size'
380386
/>
381387
</div>
382388
</div>
@@ -385,12 +391,15 @@ export const CreateBaseModal = memo(function CreateBaseModal({
385391
<Label htmlFor='overlapSize'>Overlap (tokens)</Label>
386392
<Input
387393
id='overlapSize'
394+
type='number'
395+
min={0}
396+
max={500}
397+
step={1}
388398
placeholder='200'
389399
{...register('overlapSize', { valueAsNumber: true })}
390400
className={cn(errors.overlapSize && 'border-[var(--text-error)]')}
391401
autoComplete='off'
392402
data-form-type='other'
393-
name='overlap-size'
394403
/>
395404
<p className='text-[var(--text-muted)] text-xs'>
396405
1 token ≈ 4 characters. Max chunk size and overlap are in tokens.

apps/sim/app/workspace/[workspaceId]/knowledge/components/edit-knowledge-base-modal/edit-knowledge-base-modal.tsx

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
Textarea,
1818
} from '@/components/emcn'
1919
import { cn } from '@/lib/core/utils/cn'
20+
import type { ChunkingConfig } from '@/lib/knowledge/types'
2021

2122
const logger = createLogger('EditKnowledgeBaseModal')
2223

@@ -26,6 +27,7 @@ interface EditKnowledgeBaseModalProps {
2627
knowledgeBaseId: string
2728
initialName: string
2829
initialDescription: string
30+
chunkingConfig?: ChunkingConfig
2931
onSave: (id: string, name: string, description: string) => Promise<void>
3032
}
3133

@@ -49,6 +51,7 @@ export const EditKnowledgeBaseModal = memo(function EditKnowledgeBaseModal({
4951
knowledgeBaseId,
5052
initialName,
5153
initialDescription,
54+
chunkingConfig,
5255
onSave,
5356
}: EditKnowledgeBaseModalProps) {
5457
const [isSubmitting, setIsSubmitting] = useState(false)
@@ -137,6 +140,47 @@ export const EditKnowledgeBaseModal = memo(function EditKnowledgeBaseModal({
137140
</p>
138141
)}
139142
</div>
143+
144+
{chunkingConfig && (
145+
<div className='flex flex-col gap-2'>
146+
<Label>Chunking Configuration</Label>
147+
<div className='grid grid-cols-3 gap-2'>
148+
<div className='rounded-sm border border-[var(--border-1)] bg-[var(--surface-2)] px-2.5 py-2'>
149+
<p className='text-[var(--text-tertiary)] text-[11px] leading-tight'>
150+
Max Size
151+
</p>
152+
<p className='font-medium text-[var(--text-primary)] text-sm'>
153+
{chunkingConfig.maxSize.toLocaleString()}
154+
<span className='ml-0.5 font-normal text-[var(--text-tertiary)] text-[11px]'>
155+
tokens
156+
</span>
157+
</p>
158+
</div>
159+
<div className='rounded-sm border border-[var(--border-1)] bg-[var(--surface-2)] px-2.5 py-2'>
160+
<p className='text-[var(--text-tertiary)] text-[11px] leading-tight'>
161+
Min Size
162+
</p>
163+
<p className='font-medium text-[var(--text-primary)] text-sm'>
164+
{chunkingConfig.minSize.toLocaleString()}
165+
<span className='ml-0.5 font-normal text-[var(--text-tertiary)] text-[11px]'>
166+
chars
167+
</span>
168+
</p>
169+
</div>
170+
<div className='rounded-sm border border-[var(--border-1)] bg-[var(--surface-2)] px-2.5 py-2'>
171+
<p className='text-[var(--text-tertiary)] text-[11px] leading-tight'>
172+
Overlap
173+
</p>
174+
<p className='font-medium text-[var(--text-primary)] text-sm'>
175+
{chunkingConfig.overlap.toLocaleString()}
176+
<span className='ml-0.5 font-normal text-[var(--text-tertiary)] text-[11px]'>
177+
tokens
178+
</span>
179+
</p>
180+
</div>
181+
</div>
182+
</div>
183+
)}
140184
</div>
141185
</ModalBody>
142186

apps/sim/app/workspace/[workspaceId]/knowledge/knowledge.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,7 @@ export function Knowledge() {
602602
knowledgeBaseId={activeKnowledgeBase.id}
603603
initialName={activeKnowledgeBase.name}
604604
initialDescription={activeKnowledgeBase.description || ''}
605+
chunkingConfig={activeKnowledgeBase.chunkingConfig}
605606
onSave={handleUpdateKnowledgeBase}
606607
/>
607608
)}

0 commit comments

Comments
 (0)