MCPcopy Index your code
hub / github.com/simstudioai/sim / getKnowledgeBaseById

Function getKnowledgeBaseById

apps/sim/lib/knowledge/service.ts:443–486  ·  view source on GitHub ↗
(
  knowledgeBaseId: string
)

Source from the content-addressed store, hash-verified

441 * Get a single knowledge base by ID
442 */
443export async function getKnowledgeBaseById(
444 knowledgeBaseId: string
445): Promise<KnowledgeBaseWithCounts | null> {
446 const result = await db
447 .select({
448 id: knowledgeBase.id,
449 userId: knowledgeBase.userId,
450 name: knowledgeBase.name,
451 description: knowledgeBase.description,
452 tokenCount: sql<number>`COALESCE(SUM(${document.tokenCount}), 0)`.mapWith(Number),
453 embeddingModel: knowledgeBase.embeddingModel,
454 embeddingDimension: knowledgeBase.embeddingDimension,
455 chunkingConfig: knowledgeBase.chunkingConfig,
456 createdAt: knowledgeBase.createdAt,
457 updatedAt: knowledgeBase.updatedAt,
458 deletedAt: knowledgeBase.deletedAt,
459 workspaceId: knowledgeBase.workspaceId,
460 docCount: count(document.id),
461 })
462 .from(knowledgeBase)
463 .leftJoin(
464 document,
465 and(
466 eq(document.knowledgeBaseId, knowledgeBase.id),
467 eq(document.userExcluded, false),
468 isNull(document.archivedAt),
469 isNull(document.deletedAt)
470 )
471 )
472 .where(and(eq(knowledgeBase.id, knowledgeBaseId), isNull(knowledgeBase.deletedAt)))
473 .groupBy(knowledgeBase.id)
474 .limit(1)
475
476 if (result.length === 0) {
477 return null
478 }
479
480 return {
481 ...result[0],
482 chunkingConfig: result[0].chunkingConfig as ChunkingConfig,
483 docCount: Number(result[0].docCount),
484 connectorTypes: [],
485 }
486}
487
488/**
489 * Delete a knowledge base (soft delete)

Callers 4

resolveResourceFunction · 0.90
executeFunction · 0.90
route.tsFile · 0.90
resolveKnowledgeBaseFunction · 0.90

Calls 1

eqFunction · 0.50

Tested by

no test coverage detected