UNPKG

dtamind-components

Version:

Apps integration for Dtamind. Contain Nodes and Credentials.

397 lines (396 loc) 12.9 kB
import { BaseMessage } from '@langchain/core/messages'; import { BufferMemory, BufferWindowMemory, ConversationSummaryMemory, ConversationSummaryBufferMemory } from 'langchain/memory'; import { Moderation } from '../nodes/moderation/Moderation'; /** * Types */ export type NodeParamsType = 'asyncOptions' | 'asyncMultiOptions' | 'options' | 'multiOptions' | 'datagrid' | 'string' | 'number' | 'boolean' | 'password' | 'json' | 'code' | 'date' | 'file' | 'folder' | 'tabs'; export type CommonType = string | number | boolean | undefined | null; export type MessageType = 'apiMessage' | 'userMessage'; export type ImageDetail = 'auto' | 'low' | 'high'; /** * Others */ export interface ICommonObject { [key: string]: any | CommonType | ICommonObject | CommonType[] | ICommonObject[]; } export interface IVariable { name: string; value: string; type: string; } export type IDatabaseEntity = { [key: string]: any; }; export interface IAttachment { content: string; contentType: string; size?: number; filename?: string; } export interface INodeOptionsValue { label: string; name: string; description?: string; imageSrc?: string; } export interface INodeOutputsValue { label: string; name: string; baseClasses?: string[]; description?: string; hidden?: boolean; isAnchor?: boolean; } export interface INodeParams { label: string; name: string; type: NodeParamsType | string; default?: CommonType | ICommonObject | ICommonObject[]; description?: string; warning?: string; options?: Array<INodeOptionsValue>; datagrid?: Array<ICommonObject>; credentialNames?: Array<string>; optional?: boolean | INodeDisplay; step?: number; rows?: number; list?: boolean; acceptVariable?: boolean; acceptNodeOutputAsVariable?: boolean; placeholder?: string; fileType?: string; additionalParams?: boolean; loadMethod?: string; loadConfig?: boolean; hidden?: boolean; hideCodeExecute?: boolean; codeExample?: string; hint?: Record<string, string>; tabIdentifier?: string; tabs?: Array<INodeParams>; refresh?: boolean; freeSolo?: boolean; loadPreviousNodes?: boolean; array?: Array<INodeParams>; show?: INodeDisplay; hide?: INodeDisplay; generateDocStoreDescription?: boolean; generateInstruction?: boolean; } export interface INodeExecutionData { [key: string]: CommonType | CommonType[] | ICommonObject | ICommonObject[]; } export interface INodeDisplay { [key: string]: string[] | string | boolean | number | ICommonObject; } export interface INodeProperties { label: string; name: string; type: string; icon: string; version: number; category: string; baseClasses: string[]; tags?: string[]; description?: string; filePath?: string; badge?: string; deprecateMessage?: string; hideOutput?: boolean; hideInput?: boolean; author?: string; documentation?: string; color?: string; hint?: string; } export interface INode extends INodeProperties { credential?: INodeParams; inputs?: INodeParams[]; output?: INodeOutputsValue[]; loadMethods?: { [key: string]: (nodeData: INodeData, options?: ICommonObject) => Promise<INodeOptionsValue[]>; }; vectorStoreMethods?: { upsert: (nodeData: INodeData, options?: ICommonObject) => Promise<IndexingResult | void>; search: (nodeData: INodeData, options?: ICommonObject) => Promise<any>; delete: (nodeData: INodeData, ids: string[], options?: ICommonObject) => Promise<void>; }; init?(nodeData: INodeData, input: string, options?: ICommonObject): Promise<any>; run?(nodeData: INodeData, input: string, options?: ICommonObject): Promise<string | ICommonObject>; } export interface INodeData extends INodeProperties { id: string; inputs?: ICommonObject; outputs?: ICommonObject; credential?: string; instance?: any; loadMethod?: string; } export interface INodeCredential { label: string; name: string; description?: string; inputs?: INodeParams[]; } export interface IMessage { message: string; type: MessageType; role?: MessageType; content?: string; } export interface IUsedTool { tool: string; toolInput: object; toolOutput: string | object; sourceDocuments?: ICommonObject[]; error?: string; } export interface IMultiAgentNode { node: any; name: string; label: string; type: 'supervisor' | 'worker'; llm?: any; parentSupervisorName?: string; workers?: string[]; workerPrompt?: string; workerInputVariables?: string[]; recursionLimit?: number; moderations?: Moderation[]; multiModalMessageContent?: MessageContentImageUrl[]; checkpointMemory?: any; } type SeqAgentType = 'agent' | 'condition' | 'end' | 'start' | 'tool' | 'state' | 'llm' | 'utilities'; export type ConversationHistorySelection = 'user_question' | 'last_message' | 'all_messages' | 'empty'; export interface ISeqAgentNode { id: string; node: any; name: string; label: string; type: SeqAgentType; output: string; llm?: any; startLLM?: any; predecessorAgents?: ISeqAgentNode[]; recursionLimit?: number; moderations?: Moderation[]; multiModalMessageContent?: MessageContentImageUrl[]; checkpointMemory?: any; agentInterruptToolNode?: any; agentInterruptToolFunc?: any; } export interface ITeamState { messages: { value: (x: BaseMessage[], y: BaseMessage[]) => BaseMessage[]; default: () => BaseMessage[]; }; team_members: string[]; next: string; instructions: string; summarization?: string; } export interface ISeqAgentsState { messages: { value: (x: BaseMessage[], y: BaseMessage[]) => BaseMessage[]; default: () => BaseMessage[]; }; } export interface IAgentReasoning { agentName: string; messages: string[]; next?: string; instructions?: string; usedTools?: IUsedTool[]; sourceDocuments?: ICommonObject[]; state?: ICommonObject; nodeName?: string; } export interface IAction { id?: string; elements?: Array<{ type: string; label: string; }>; mapping?: { approve: string; reject: string; toolCalls: any[]; }; } export interface IFileUpload { data?: string; type: string; name: string; mime: string; } export interface IMultiModalOption { image?: Record<string, any>; audio?: Record<string, any>; } export type MessageContentText = { type: 'text'; text: string; }; export type MessageContentImageUrl = { type: 'image_url'; image_url: string | { url: string; detail?: ImageDetail; }; }; export interface IDocument<Metadata extends Record<string, any> = Record<string, any>> { pageContent: string; metadata: Metadata; } /** * Classes */ import { PromptTemplate as LangchainPromptTemplate, PromptTemplateInput } from '@langchain/core/prompts'; import { VectorStore } from '@langchain/core/vectorstores'; import { Document } from '@langchain/core/documents'; export declare class PromptTemplate extends LangchainPromptTemplate { promptValues: ICommonObject; constructor(input: PromptTemplateInput); } export interface PromptRetrieverInput { name: string; description: string; systemMessage: string; } export declare class PromptRetriever { name: string; description: string; systemMessage: string; constructor(fields: PromptRetrieverInput); } export interface VectorStoreRetrieverInput { name: string; description: string; vectorStore: VectorStore; } export declare class VectorStoreRetriever { name: string; description: string; vectorStore: VectorStore; constructor(fields: VectorStoreRetrieverInput); } /** * Implement abstract classes and interface for memory */ export interface MemoryMethods { getChatMessages(overrideSessionId?: string, returnBaseMessages?: boolean, prependMessages?: IMessage[]): Promise<IMessage[] | BaseMessage[]>; addChatMessages(msgArray: { text: string; type: MessageType; }[], overrideSessionId?: string): Promise<void>; clearChatMessages(overrideSessionId?: string): Promise<void>; } export declare abstract class DtamindMemory extends BufferMemory implements MemoryMethods { abstract getChatMessages(overrideSessionId?: string, returnBaseMessages?: boolean, prependMessages?: IMessage[]): Promise<IMessage[] | BaseMessage[]>; abstract addChatMessages(msgArray: { text: string; type: MessageType; }[], overrideSessionId?: string): Promise<void>; abstract clearChatMessages(overrideSessionId?: string): Promise<void>; } export declare abstract class DtamindWindowMemory extends BufferWindowMemory implements MemoryMethods { abstract getChatMessages(overrideSessionId?: string, returnBaseMessages?: boolean, prependMessages?: IMessage[]): Promise<IMessage[] | BaseMessage[]>; abstract addChatMessages(msgArray: { text: string; type: MessageType; }[], overrideSessionId?: string): Promise<void>; abstract clearChatMessages(overrideSessionId?: string): Promise<void>; } export declare abstract class DtamindSummaryMemory extends ConversationSummaryMemory implements MemoryMethods { abstract getChatMessages(overrideSessionId?: string, returnBaseMessages?: boolean, prependMessages?: IMessage[]): Promise<IMessage[] | BaseMessage[]>; abstract addChatMessages(msgArray: { text: string; type: MessageType; }[], overrideSessionId?: string): Promise<void>; abstract clearChatMessages(overrideSessionId?: string): Promise<void>; } export declare abstract class DtamindSummaryBufferMemory extends ConversationSummaryBufferMemory implements MemoryMethods { abstract getChatMessages(overrideSessionId?: string, returnBaseMessages?: boolean, prependMessages?: IMessage[]): Promise<IMessage[] | BaseMessage[]>; abstract addChatMessages(msgArray: { text: string; type: MessageType; }[], overrideSessionId?: string): Promise<void>; abstract clearChatMessages(overrideSessionId?: string): Promise<void>; } export type IndexingResult = { numAdded: number; numDeleted: number; numUpdated: number; numSkipped: number; totalKeys: number; addedDocs: Document[]; }; export interface IVisionChatModal { id: string; configuredModel: string; multiModalOption: IMultiModalOption; configuredMaxToken?: number; setVisionModel(): void; revertToOriginalModel(): void; setMultiModalOption(multiModalOption: IMultiModalOption): void; } export interface IStateWithMessages extends ICommonObject { messages: BaseMessage[]; [key: string]: any; } export * from './Interface.Evaluation'; export interface IServerSideEventStreamer { streamStartEvent(chatId: string, data: any): void; streamTokenEvent(chatId: string, data: string): void; streamCustomEvent(chatId: string, eventType: string, data: any): void; streamSourceDocumentsEvent(chatId: string, data: any): void; streamUsedToolsEvent(chatId: string, data: any): void; streamCalledToolsEvent(chatId: string, data: any): void; streamFileAnnotationsEvent(chatId: string, data: any): void; streamToolEvent(chatId: string, data: any): void; streamAgentReasoningEvent(chatId: string, data: any): void; streamAgentFlowExecutedDataEvent(chatId: string, data: any): void; streamAgentFlowEvent(chatId: string, data: any): void; streamNextAgentEvent(chatId: string, data: any): void; streamNextAgentFlowEvent(chatId: string, data: any): void; streamActionEvent(chatId: string, data: any): void; streamArtifactsEvent(chatId: string, data: any): void; streamAbortEvent(chatId: string): void; streamEndEvent(chatId: string): void; streamUsageMetadataEvent(chatId: string, data: any): void; } export declare enum FollowUpPromptProvider { ANTHROPIC = "chatAnthropic", AZURE_OPENAI = "azureChatOpenAI", GOOGLE_GENAI = "chatGoogleGenerativeAI", MISTRALAI = "chatMistralAI", OPENAI = "chatOpenAI", GROQ = "groqChat", OLLAMA = "ollama" } export type FollowUpPromptProviderConfig = { [key in FollowUpPromptProvider]: { credentialId: string; modelName: string; baseUrl: string; prompt: string; temperature: string; }; }; export type FollowUpPromptConfig = { status: boolean; selectedProvider: FollowUpPromptProvider; } & FollowUpPromptProviderConfig; export interface ICondition { type: string; value1: CommonType; operation: string; value2: CommonType; isFulfilled?: boolean; } export interface IHumanInput { type: 'proceed' | 'reject'; startNodeId: string; feedback?: string; }