From 86ed32ea104dcd9b46f152bf3cc2d92e48583db4 Mon Sep 17 00:00:00 2001 From: Waleed Date: Sat, 4 Oct 2025 14:59:21 -0700 Subject: [PATCH] feat(kb): added json/yaml parser+chunker, added dedicated csv chunker (#1539) * feat(kb): added json/yaml parser+chunker, added dedicated csv chunker * ack PR comments * improved kb upload --- .github/workflows/docs-embeddings.yml | 2 +- .../edit-chunk-modal/edit-chunk-modal.tsx | 2 +- .../components/upload-modal/upload-modal.tsx | 6 +- .../components/create-modal/create-modal.tsx | 6 +- .../knowledge/hooks/use-knowledge-upload.ts | 502 +++++++++++++----- .../documents => chunkers}/docs-chunker.ts | 237 +-------- apps/sim/lib/chunkers/index.ts | 5 + apps/sim/lib/chunkers/json-yaml-chunker.ts | 317 +++++++++++ .../lib/chunkers/structured-data-chunker.ts | 220 ++++++++ .../chunker.ts => chunkers/text-chunker.ts} | 26 +- apps/sim/lib/chunkers/types.ts | 53 ++ apps/sim/lib/embeddings/utils.ts | 8 +- apps/sim/lib/env.ts | 3 - apps/sim/lib/file-parsers/csv-parser.ts | 210 +++++--- apps/sim/lib/file-parsers/index.ts | 30 +- apps/sim/lib/file-parsers/json-parser.ts | 74 +++ apps/sim/lib/file-parsers/xlsx-parser.ts | 156 +++++- apps/sim/lib/file-parsers/yaml-parser.ts | 75 +++ .../knowledge/documents/document-processor.ts | 73 ++- apps/sim/lib/knowledge/documents/service.ts | 54 +- apps/sim/lib/uploads/validation.ts | 6 + apps/sim/package.json | 1 + apps/sim/scripts/chunk-docs.ts | 98 ---- apps/sim/scripts/process-docs-embeddings.ts | 215 -------- apps/sim/scripts/process-docs.ts | 256 +++++++++ apps/sim/tools/mistral/parser.ts | 13 - bun.lock | 3 + 27 files changed, 1794 insertions(+), 857 deletions(-) rename apps/sim/lib/{knowledge/documents => chunkers}/docs-chunker.ts (65%) create mode 100644 apps/sim/lib/chunkers/index.ts create mode 100644 apps/sim/lib/chunkers/json-yaml-chunker.ts create mode 100644 apps/sim/lib/chunkers/structured-data-chunker.ts rename apps/sim/lib/{knowledge/documents/chunker.ts => chunkers/text-chunker.ts} (94%) create mode 100644 apps/sim/lib/chunkers/types.ts create mode 100644 apps/sim/lib/file-parsers/json-parser.ts create mode 100644 apps/sim/lib/file-parsers/yaml-parser.ts delete mode 100644 apps/sim/scripts/chunk-docs.ts delete mode 100644 apps/sim/scripts/process-docs-embeddings.ts create mode 100644 apps/sim/scripts/process-docs.ts diff --git a/.github/workflows/docs-embeddings.yml b/.github/workflows/docs-embeddings.yml index d61d866165..c42b3d96eb 100644 --- a/.github/workflows/docs-embeddings.yml +++ b/.github/workflows/docs-embeddings.yml @@ -32,4 +32,4 @@ jobs: env: DATABASE_URL: ${{ github.ref == 'refs/heads/main' && secrets.DATABASE_URL || secrets.STAGING_DATABASE_URL }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - run: bun run scripts/process-docs-embeddings.ts --clear + run: bun run scripts/process-docs.ts --clear diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/components/edit-chunk-modal/edit-chunk-modal.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/components/edit-chunk-modal/edit-chunk-modal.tsx index eb25aa562f..6d0723571e 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/components/edit-chunk-modal/edit-chunk-modal.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/components/edit-chunk-modal/edit-chunk-modal.tsx @@ -312,7 +312,7 @@ export function EditChunkModal({