UNPKG

@voiceflow/base-types

Version:

Voiceflow base project types

125 lines 3.46 kB
import type { AIKnowledgeContextParams, AIModelParams } from '../../utils/ai'; export declare enum KnowledgeBaseDocumentType { PDF = "pdf", TEXT = "text", URL = "url", DOCX = "docx", TABLE = "table" } export declare enum KnowledgeBaseDocumentRefreshRate { DAILY = "daily", WEEKLY = "weekly", MONTHLY = "monthly", NEVER = "never" } export declare enum KnowledgeBaseBooleanOperators { AND = "and", OR = "or" } export declare enum IntegrationTypes { ZENDESK = "zendesk" } export interface KnowledgeBaseTagsFilterWithOperator { items: string[]; operator?: KnowledgeBaseBooleanOperators; } export interface KnowledgeBaseTagsFilter { include?: KnowledgeBaseTagsFilterWithOperator; exclude?: KnowledgeBaseTagsFilterWithOperator; includeAllTagged?: boolean; includeAllNonTagged?: boolean; } export interface KnowledgeBaseData { type: KnowledgeBaseDocumentType; name: string; } export interface KnowledgeBasePDF extends KnowledgeBaseData { type: KnowledgeBaseDocumentType.PDF; } export interface KnowledgeBaseDocx extends KnowledgeBaseData { type: KnowledgeBaseDocumentType.DOCX; } export interface KnowledgeBaseText extends KnowledgeBaseData { type: KnowledgeBaseDocumentType.TEXT; canEdit?: boolean; } export interface KnowledgeBaseURL extends KnowledgeBaseData { type: KnowledgeBaseDocumentType.URL; url: string; refreshRate?: KnowledgeBaseDocumentRefreshRate; lastSuccessUpdate?: string; accessTokenID?: number; integrationExternalID?: string; source?: IntegrationTypes; } export interface KnowledgeBaseTable extends KnowledgeBaseData { type: KnowledgeBaseDocumentType.TABLE; rowsCount: number; } export declare enum KnowledgeBaseDocumentStatus { ERROR = "ERROR", SUCCESS = "SUCCESS", PENDING = "PENDING", INITIALIZED = "INITIALIZED" } export interface KBTag { tagID: string; label: string; } export interface KnowledgeBaseDocument { data: KnowledgeBasePDF | KnowledgeBaseText | KnowledgeBaseURL | KnowledgeBaseDocx | KnowledgeBaseTable; status: { type: KnowledgeBaseDocumentStatus; data?: unknown; }; creatorID: number; updatedAt: Date; documentID: string; s3ObjectRef: string; version?: number; tags?: string[]; } export declare enum ChunkStrategyType { RECURSIVE_TEXT_SPLITTER = "recursive_text_splitter" } export interface RecursiveTextSplitter { type: ChunkStrategyType.RECURSIVE_TEXT_SPLITTER; size?: number; overlap?: number; } export interface EmbeddingModel { model: string; size: number; } export interface KnowledgeBaseSettings { chunkStrategy: RecursiveTextSplitter; summarization: AIModelParams & AIKnowledgeContextParams; search: { limit: number; metric: string; }; embeddingModel?: EmbeddingModel; } export interface FAQ { question: string; answer: string; } export interface KnowledgeBaseSetFaq { name: string; status: { type: KnowledgeBaseDocumentStatus; data?: unknown; }; creatorID: number; updatedAt: Date; faqSetID: string; version?: number; tags?: string[]; } export interface KnowledgeBase { settings?: KnowledgeBaseSettings; documents: Record<string, KnowledgeBaseDocument>; tags?: Record<string, KBTag>; faqSets?: Record<string, KnowledgeBaseSetFaq>; } //# sourceMappingURL=knowledgeBase.d.ts.map