dtamind-components
Version:
DTAmindai Components
397 lines (396 loc) • 12.9 kB
TypeScript
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 FlowiseMemory 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 FlowiseWindowMemory 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 FlowiseSummaryMemory 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 FlowiseSummaryBufferMemory 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;
}