Skip to content

FluxbaseAdminAI

Admin AI manager for managing AI chatbots and providers Provides create, update, delete, sync, and monitoring operations

new FluxbaseAdminAI(fetch): FluxbaseAdminAI

ParameterType
fetchFluxbaseFetch

FluxbaseAdminAI

addDocument(knowledgeBaseId, request): Promise<{ data: AddDocumentResponse | null; error: Error | null; }>

Add a document to a knowledge base

Document will be chunked and embedded asynchronously.

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID
requestAddDocumentRequestDocument content and metadata

Promise<{ data: AddDocumentResponse | null; error: Error | null; }>

Promise resolving to { data, error } tuple with document ID

const { data, error } = await client.admin.ai.addDocument('kb-uuid', {
title: 'Getting Started Guide',
content: 'This is the content of the document...',
metadata: { category: 'guides' },
})
if (data) {
console.log('Document ID:', data.document_id)
}

clearEmbeddingProvider(id): Promise<{ data: { use_for_embeddings: boolean; } | null; error: Error | null; }>

Clear explicit embedding provider preference (revert to default)

ParameterTypeDescription
idstringProvider ID to clear

Promise<{ data: { use_for_embeddings: boolean; } | null; error: Error | null; }>

Promise resolving to { data, error } tuple

const { data, error } = await client.admin.ai.clearEmbeddingProvider('uuid')

createKnowledgeBase(request): Promise<{ data: KnowledgeBase | null; error: Error | null; }>

Create a new knowledge base

ParameterTypeDescription
requestCreateKnowledgeBaseRequestKnowledge base configuration

Promise<{ data: KnowledgeBase | null; error: Error | null; }>

Promise resolving to { data, error } tuple with created knowledge base

const { data, error } = await client.admin.ai.createKnowledgeBase({
name: 'product-docs',
description: 'Product documentation',
chunk_size: 512,
chunk_overlap: 50,
})

createProvider(request): Promise<{ data: AIProvider | null; error: Error | null; }>

Create a new AI provider

ParameterTypeDescription
requestCreateAIProviderRequestProvider configuration

Promise<{ data: AIProvider | null; error: Error | null; }>

Promise resolving to { data, error } tuple with created provider

const { data, error } = await client.admin.ai.createProvider({
name: 'openai-main',
display_name: 'OpenAI (Main)',
provider_type: 'openai',
is_default: true,
config: {
api_key: 'sk-...',
model: 'gpt-4-turbo',
}
})

createTableExportSync(knowledgeBaseId, config): Promise<{ data: TableExportSyncConfig | null; error: Error | null; }>

Create a table export preset

Saves a table export configuration for easy re-export. Use triggerTableExportSync to re-export when the schema changes.

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID
configCreateTableExportSyncConfigExport preset configuration

Promise<{ data: TableExportSyncConfig | null; error: Error | null; }>

Promise resolving to { data, error } tuple with created preset

const { data, error } = await client.admin.ai.createTableExportSync('kb-uuid', {
schema_name: 'public',
table_name: 'products',
columns: ['id', 'name', 'description', 'price'],
include_foreign_keys: true,
export_now: true, // Trigger initial export
})

deleteChatbot(id): Promise<{ data: null; error: Error | null; }>

Delete a chatbot

ParameterTypeDescription
idstringChatbot ID

Promise<{ data: null; error: Error | null; }>

Promise resolving to { data, error } tuple

const { data, error } = await client.admin.ai.deleteChatbot('uuid')

deleteDocument(knowledgeBaseId, documentId): Promise<{ data: null; error: Error | null; }>

Delete a document from a knowledge base

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID
documentIdstringDocument ID

Promise<{ data: null; error: Error | null; }>

Promise resolving to { data, error } tuple

const { data, error } = await client.admin.ai.deleteDocument('kb-uuid', 'doc-uuid')

deleteDocumentsByFilter(knowledgeBaseId, filter): Promise<{ data: DeleteDocumentsByFilterResponse | null; error: Error | null; }>

Delete documents from a knowledge base by filter

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID
filterDeleteDocumentsByFilterRequestFilter criteria for deletion

Promise<{ data: DeleteDocumentsByFilterResponse | null; error: Error | null; }>

Promise resolving to { data, error } tuple with deletion count

// Delete by tags
const { data, error } = await client.admin.ai.deleteDocumentsByFilter('kb-uuid', {
tags: ['deprecated', 'archive'],
})
// Delete by metadata
const { data, error } = await client.admin.ai.deleteDocumentsByFilter('kb-uuid', {
metadata: { source: 'legacy-system' },
})
if (data) {
console.log(`Deleted ${data.deleted_count} documents`)
}

deleteKnowledgeBase(id): Promise<{ data: null; error: Error | null; }>

Delete a knowledge base

ParameterTypeDescription
idstringKnowledge base ID

Promise<{ data: null; error: Error | null; }>

Promise resolving to { data, error } tuple

const { data, error } = await client.admin.ai.deleteKnowledgeBase('uuid')

deleteProvider(id): Promise<{ data: null; error: Error | null; }>

Delete a provider

ParameterTypeDescription
idstringProvider ID

Promise<{ data: null; error: Error | null; }>

Promise resolving to { data, error } tuple

const { data, error } = await client.admin.ai.deleteProvider('uuid')

deleteTableExportSync(knowledgeBaseId, syncId): Promise<{ data: null; error: Error | null; }>

Delete a table export sync configuration

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID
syncIdstringSync config ID

Promise<{ data: null; error: Error | null; }>

Promise resolving to { data, error } tuple

const { data, error } = await client.admin.ai.deleteTableExportSync('kb-uuid', 'sync-id')

exportTable(knowledgeBaseId, options): Promise<{ data: ExportTableResult | null; error: Error | null; }>

Export a database table to a knowledge base

The table schema will be exported as a markdown document and indexed. Optionally filter which columns to export for security or relevance.

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID
optionsExportTableOptionsExport options including column selection

Promise<{ data: ExportTableResult | null; error: Error | null; }>

Promise resolving to { data, error } tuple with export result

// Export all columns
const { data, error } = await client.admin.ai.exportTable('kb-uuid', {
schema: 'public',
table: 'users',
include_foreign_keys: true,
})
// Export specific columns (recommended for sensitive data)
const { data, error } = await client.admin.ai.exportTable('kb-uuid', {
schema: 'public',
table: 'users',
columns: ['id', 'name', 'email', 'created_at'],
})

getCapabilities(): Promise<{ data: KnowledgeBaseCapabilities | null; error: Error | null; }>

Get knowledge base system capabilities

Returns information about OCR support, supported file types, etc.

Promise<{ data: KnowledgeBaseCapabilities | null; error: Error | null; }>

Promise resolving to { data, error } tuple with capabilities

const { data, error } = await client.admin.ai.getCapabilities()
if (data) {
console.log('OCR available:', data.ocr_available)
console.log('Supported types:', data.supported_file_types)
}

getChatbot(id): Promise<{ data: AIChatbot | null; error: Error | null; }>

Get details of a specific chatbot

ParameterTypeDescription
idstringChatbot ID

Promise<{ data: AIChatbot | null; error: Error | null; }>

Promise resolving to { data, error } tuple with chatbot details

const { data, error } = await client.admin.ai.getChatbot('uuid')
if (data) {
console.log('Chatbot:', data.name)
}

getDocument(knowledgeBaseId, documentId): Promise<{ data: KnowledgeBaseDocument | null; error: Error | null; }>

Get a specific document

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID
documentIdstringDocument ID

Promise<{ data: KnowledgeBaseDocument | null; error: Error | null; }>

Promise resolving to { data, error } tuple with document details

const { data, error } = await client.admin.ai.getDocument('kb-uuid', 'doc-uuid')

getEntityRelationships(knowledgeBaseId, entityId): Promise<{ data: EntityRelationship[] | null; error: Error | null; }>

Get relationships for a specific entity

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID
entityIdstringEntity ID

Promise<{ data: EntityRelationship[] | null; error: Error | null; }>

Promise resolving to { data, error } tuple with entity relationships

const { data, error } = await client.admin.ai.getEntityRelationships('kb-uuid', 'entity-uuid')
if (data) {
console.log('Relationships:', data.map(r => `${r.relationship_type} -> ${r.target_entity?.name}`))
}

getKnowledgeBase(id): Promise<{ data: KnowledgeBase | null; error: Error | null; }>

Get a specific knowledge base

ParameterTypeDescription
idstringKnowledge base ID

Promise<{ data: KnowledgeBase | null; error: Error | null; }>

Promise resolving to { data, error } tuple with knowledge base details

const { data, error } = await client.admin.ai.getKnowledgeBase('uuid')
if (data) {
console.log('Knowledge base:', data.name)
}

getKnowledgeGraph(knowledgeBaseId): Promise<{ data: KnowledgeGraphData | null; error: Error | null; }>

Get the knowledge graph for a knowledge base

Returns all entities and relationships for visualization.

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID

Promise<{ data: KnowledgeGraphData | null; error: Error | null; }>

Promise resolving to { data, error } tuple with graph data

const { data, error } = await client.admin.ai.getKnowledgeGraph('kb-uuid')
if (data) {
console.log('Graph:', data.entity_count, 'entities,', data.relationship_count, 'relationships')
// Use with visualization libraries like D3.js, Cytoscape.js, etc.
}

getProvider(id): Promise<{ data: AIProvider | null; error: Error | null; }>

Get details of a specific provider

ParameterTypeDescription
idstringProvider ID

Promise<{ data: AIProvider | null; error: Error | null; }>

Promise resolving to { data, error } tuple with provider details

const { data, error } = await client.admin.ai.getProvider('uuid')
if (data) {
console.log('Provider:', data.display_name)
}

getTableDetails(schema, table): Promise<{ data: TableDetails | null; error: Error | null; }>

Get detailed table information including columns

Use this to discover available columns before exporting.

ParameterTypeDescription
schemastringSchema name (e.g., ‘public’)
tablestringTable name

Promise<{ data: TableDetails | null; error: Error | null; }>

Promise resolving to { data, error } tuple with table details

const { data, error } = await client.admin.ai.getTableDetails('public', 'users')
if (data) {
console.log('Columns:', data.columns.map(c => c.name))
console.log('Primary key:', data.primary_key)
}

linkKnowledgeBase(chatbotId, request): Promise<{ data: ChatbotKnowledgeBaseLink | null; error: Error | null; }>

Link a knowledge base to a chatbot

ParameterTypeDescription
chatbotIdstringChatbot ID
requestLinkKnowledgeBaseRequestLink configuration

Promise<{ data: ChatbotKnowledgeBaseLink | null; error: Error | null; }>

Promise resolving to { data, error } tuple with link details

const { data, error } = await client.admin.ai.linkKnowledgeBase('chatbot-uuid', {
knowledge_base_id: 'kb-uuid',
priority: 1,
max_chunks: 5,
similarity_threshold: 0.7,
})

listChatbotKnowledgeBases(chatbotId): Promise<{ data: ChatbotKnowledgeBaseLink[] | null; error: Error | null; }>

List knowledge bases linked to a chatbot

ParameterTypeDescription
chatbotIdstringChatbot ID

Promise<{ data: ChatbotKnowledgeBaseLink[] | null; error: Error | null; }>

Promise resolving to { data, error } tuple with linked knowledge bases

const { data, error } = await client.admin.ai.listChatbotKnowledgeBases('chatbot-uuid')
if (data) {
console.log('Linked KBs:', data.map(l => l.knowledge_base_id))
}

listChatbots(namespace?): Promise<{ data: AIChatbotSummary[] | null; error: Error | null; }>

List all chatbots (admin view)

ParameterTypeDescription
namespace?stringOptional namespace filter

Promise<{ data: AIChatbotSummary[] | null; error: Error | null; }>

Promise resolving to { data, error } tuple with array of chatbot summaries

const { data, error } = await client.admin.ai.listChatbots()
if (data) {
console.log('Chatbots:', data.map(c => c.name))
}

listChatbotsUsingKB(knowledgeBaseId): Promise<{ data: AIChatbotSummary[] | null; error: Error | null; }>

List all chatbots that use a specific knowledge base

Reverse lookup to find which chatbots are linked to a knowledge base.

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID

Promise<{ data: AIChatbotSummary[] | null; error: Error | null; }>

Promise resolving to { data, error } tuple with array of chatbot summaries

const { data, error } = await client.admin.ai.listChatbotsUsingKB('kb-uuid')
if (data) {
console.log('Used by chatbots:', data.map(c => c.name))
}

listDocuments(knowledgeBaseId): Promise<{ data: KnowledgeBaseDocument[] | null; error: Error | null; }>

List documents in a knowledge base

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID

Promise<{ data: KnowledgeBaseDocument[] | null; error: Error | null; }>

Promise resolving to { data, error } tuple with array of documents

const { data, error } = await client.admin.ai.listDocuments('kb-uuid')
if (data) {
console.log('Documents:', data.map(d => d.title))
}

listEntities(knowledgeBaseId, entityType?): Promise<{ data: Entity[] | null; error: Error | null; }>

List entities in a knowledge base

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID
entityType?stringOptional entity type filter

Promise<{ data: Entity[] | null; error: Error | null; }>

Promise resolving to { data, error } tuple with array of entities

// List all entities
const { data, error } = await client.admin.ai.listEntities('kb-uuid')
// Filter by type
const { data, error } = await client.admin.ai.listEntities('kb-uuid', 'person')
if (data) {
console.log('Entities:', data.map(e => e.name))
}

listKnowledgeBases(): Promise<{ data: KnowledgeBaseSummary[] | null; error: Error | null; }>

List all knowledge bases

Promise<{ data: KnowledgeBaseSummary[] | null; error: Error | null; }>

Promise resolving to { data, error } tuple with array of knowledge base summaries

const { data, error } = await client.admin.ai.listKnowledgeBases()
if (data) {
console.log('Knowledge bases:', data.map(kb => kb.name))
}

listProviders(): Promise<{ data: AIProvider[] | null; error: Error | null; }>

List all AI providers

Promise<{ data: AIProvider[] | null; error: Error | null; }>

Promise resolving to { data, error } tuple with array of providers

const { data, error } = await client.admin.ai.listProviders()
if (data) {
console.log('Providers:', data.map(p => p.name))
}

listTableExportSyncs(knowledgeBaseId): Promise<{ data: TableExportSyncConfig[] | null; error: Error | null; }>

List table export presets for a knowledge base

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID

Promise<{ data: TableExportSyncConfig[] | null; error: Error | null; }>

Promise resolving to { data, error } tuple with array of presets

const { data, error } = await client.admin.ai.listTableExportSyncs('kb-uuid')
if (data) {
data.forEach(config => {
console.log(`${config.schema_name}.${config.table_name}`)
})
}

searchEntities(knowledgeBaseId, query, types?): Promise<{ data: Entity[] | null; error: Error | null; }>

Search for entities in a knowledge base

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID
querystringSearch query
types?string[]Optional entity type filters

Promise<{ data: Entity[] | null; error: Error | null; }>

Promise resolving to { data, error } tuple with matching entities

// Search all entity types
const { data, error } = await client.admin.ai.searchEntities('kb-uuid', 'John')
// Search specific types
const { data, error } = await client.admin.ai.searchEntities('kb-uuid', 'Apple', ['organization', 'product'])
if (data) {
console.log('Found entities:', data.map(e => `${e.name} (${e.entity_type})`))
}

searchKnowledgeBase(knowledgeBaseId, query, options?): Promise<{ data: SearchKnowledgeBaseResponse | null; error: Error | null; }>

Search a knowledge base

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID
querystringSearch query
options?{ max_chunks?: number; threshold?: number; }Search options
options.max_chunks?number-
options.threshold?number-

Promise<{ data: SearchKnowledgeBaseResponse | null; error: Error | null; }>

Promise resolving to { data, error } tuple with search results

const { data, error } = await client.admin.ai.searchKnowledgeBase('kb-uuid', 'how to reset password', {
max_chunks: 5,
threshold: 0.7,
})
if (data) {
console.log('Results:', data.results.map(r => r.content))
}

setDefaultProvider(id): Promise<{ data: AIProvider | null; error: Error | null; }>

Set a provider as the default

ParameterTypeDescription
idstringProvider ID

Promise<{ data: AIProvider | null; error: Error | null; }>

Promise resolving to { data, error } tuple with updated provider

const { data, error } = await client.admin.ai.setDefaultProvider('uuid')

setEmbeddingProvider(id): Promise<{ data: { id: string; use_for_embeddings: boolean; } | null; error: Error | null; }>

Set a provider as the embedding provider

ParameterTypeDescription
idstringProvider ID

Promise<{ data: { id: string; use_for_embeddings: boolean; } | null; error: Error | null; }>

Promise resolving to { data, error } tuple

const { data, error } = await client.admin.ai.setEmbeddingProvider('uuid')

sync(options?): Promise<{ data: SyncChatbotsResult | null; error: Error | null; }>

Sync chatbots from filesystem or API payload

Can sync from:

  1. Filesystem (if no chatbots provided) - loads from configured chatbots directory
  2. API payload (if chatbots array provided) - syncs provided chatbot specifications

Requires service_role or admin authentication.

ParameterTypeDescription
options?SyncChatbotsOptionsSync options including namespace and optional chatbots array

Promise<{ data: SyncChatbotsResult | null; error: Error | null; }>

Promise resolving to { data, error } tuple with sync results

// Sync from filesystem
const { data, error } = await client.admin.ai.sync()
// Sync with provided chatbot code
const { data, error } = await client.admin.ai.sync({
namespace: 'default',
chatbots: [{
name: 'sql-assistant',
code: myChatbotCode,
}],
options: {
delete_missing: false, // Don't remove chatbots not in this sync
dry_run: false, // Preview changes without applying
}
})
if (data) {
console.log(`Synced: ${data.summary.created} created, ${data.summary.updated} updated`)
}

toggleChatbot(id, enabled): Promise<{ data: AIChatbot | null; error: Error | null; }>

Enable or disable a chatbot

ParameterTypeDescription
idstringChatbot ID
enabledbooleanWhether to enable or disable

Promise<{ data: AIChatbot | null; error: Error | null; }>

Promise resolving to { data, error } tuple with updated chatbot

const { data, error } = await client.admin.ai.toggleChatbot('uuid', true)

triggerTableExportSync(knowledgeBaseId, syncId): Promise<{ data: ExportTableResult | null; error: Error | null; }>

Manually trigger a table export sync

Immediately re-exports the table to the knowledge base, regardless of the sync mode.

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID
syncIdstringSync config ID

Promise<{ data: ExportTableResult | null; error: Error | null; }>

Promise resolving to { data, error } tuple with export result

const { data, error } = await client.admin.ai.triggerTableExportSync('kb-uuid', 'sync-id')
if (data) {
console.log('Exported document:', data.document_id)
}

unlinkKnowledgeBase(chatbotId, knowledgeBaseId): Promise<{ data: null; error: Error | null; }>

Unlink a knowledge base from a chatbot

ParameterTypeDescription
chatbotIdstringChatbot ID
knowledgeBaseIdstringKnowledge base ID

Promise<{ data: null; error: Error | null; }>

Promise resolving to { data, error } tuple

const { data, error } = await client.admin.ai.unlinkKnowledgeBase('chatbot-uuid', 'kb-uuid')

updateChatbotKnowledgeBase(chatbotId, knowledgeBaseId, updates): Promise<{ data: ChatbotKnowledgeBaseLink | null; error: Error | null; }>

Update a chatbot-knowledge base link

ParameterTypeDescription
chatbotIdstringChatbot ID
knowledgeBaseIdstringKnowledge base ID
updatesUpdateChatbotKnowledgeBaseRequestFields to update

Promise<{ data: ChatbotKnowledgeBaseLink | null; error: Error | null; }>

Promise resolving to { data, error } tuple with updated link

const { data, error } = await client.admin.ai.updateChatbotKnowledgeBase(
'chatbot-uuid',
'kb-uuid',
{ max_chunks: 10, enabled: true }
)

updateDocument(knowledgeBaseId, documentId, updates): Promise<{ data: KnowledgeBaseDocument | null; error: Error | null; }>

Update a document in a knowledge base

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID
documentIdstringDocument ID
updatesUpdateDocumentRequestFields to update

Promise<{ data: KnowledgeBaseDocument | null; error: Error | null; }>

Promise resolving to { data, error } tuple with updated document

const { data, error } = await client.admin.ai.updateDocument('kb-uuid', 'doc-uuid', {
title: 'Updated Title',
tags: ['updated', 'tag'],
metadata: { category: 'updated' },
})

updateKnowledgeBase(id, updates): Promise<{ data: KnowledgeBase | null; error: Error | null; }>

Update an existing knowledge base

ParameterTypeDescription
idstringKnowledge base ID
updatesUpdateKnowledgeBaseRequestFields to update

Promise<{ data: KnowledgeBase | null; error: Error | null; }>

Promise resolving to { data, error } tuple with updated knowledge base

const { data, error } = await client.admin.ai.updateKnowledgeBase('uuid', {
description: 'Updated description',
enabled: true,
})

updateProvider(id, updates): Promise<{ data: AIProvider | null; error: Error | null; }>

Update an existing AI provider

ParameterTypeDescription
idstringProvider ID
updatesUpdateAIProviderRequestFields to update

Promise<{ data: AIProvider | null; error: Error | null; }>

Promise resolving to { data, error } tuple with updated provider

const { data, error } = await client.admin.ai.updateProvider('uuid', {
display_name: 'Updated Name',
config: {
api_key: 'new-key',
model: 'gpt-4-turbo',
},
enabled: true,
})

updateTableExportSync(knowledgeBaseId, syncId, updates): Promise<{ data: TableExportSyncConfig | null; error: Error | null; }>

Update a table export preset

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID
syncIdstringPreset ID
updatesUpdateTableExportSyncConfigFields to update

Promise<{ data: TableExportSyncConfig | null; error: Error | null; }>

Promise resolving to { data, error } tuple with updated preset

const { data, error } = await client.admin.ai.updateTableExportSync('kb-uuid', 'sync-id', {
columns: ['id', 'name', 'email', 'updated_at'],
})

uploadDocument(knowledgeBaseId, file, title?): Promise<{ data: UploadDocumentResponse | null; error: Error | null; }>

Upload a document file to a knowledge base

Supported file types: PDF, TXT, MD, HTML, CSV, DOCX, XLSX, RTF, EPUB, JSON Maximum file size: 50MB

ParameterTypeDescription
knowledgeBaseIdstringKnowledge base ID
fileBlob | FileFile to upload (File or Blob)
title?stringOptional document title (defaults to filename without extension)

Promise<{ data: UploadDocumentResponse | null; error: Error | null; }>

Promise resolving to { data, error } tuple with upload result

// Browser
const fileInput = document.getElementById('file') as HTMLInputElement
const file = fileInput.files?.[0]
if (file) {
const { data, error } = await client.admin.ai.uploadDocument('kb-uuid', file)
if (data) {
console.log('Document ID:', data.document_id)
console.log('Extracted length:', data.extracted_length)
}
}
// Node.js (with node-fetch or similar)
import { Blob } from 'buffer'
const content = await fs.readFile('document.pdf')
const blob = new Blob([content], { type: 'application/pdf' })
const { data, error } = await client.admin.ai.uploadDocument('kb-uuid', blob, 'My Document')