|
|
|
|
|
|
|
|
|
export type NodeParamsType = 'options' | 'string' | 'number' | 'boolean' | 'password' | 'json' | 'code' | 'date' | 'file' | 'folder' |
|
|
|
export type CommonType = string | number | boolean | undefined | null |
|
|
|
export type MessageType = 'apiMessage' | 'userMessage' |
|
|
|
|
|
|
|
|
|
|
|
export interface ICommonObject { |
|
[key: string]: any | CommonType | ICommonObject | CommonType[] | ICommonObject[] |
|
} |
|
|
|
export interface IAttachment { |
|
content: string |
|
contentType: string |
|
size?: number |
|
filename?: string |
|
} |
|
|
|
export interface INodeOptionsValue { |
|
label: string |
|
name: string |
|
description?: string |
|
} |
|
|
|
export interface INodeOutputsValue { |
|
label: string |
|
name: string |
|
baseClasses: string[] |
|
description?: string |
|
} |
|
|
|
export interface INodeParams { |
|
label: string |
|
name: string |
|
type: NodeParamsType | string |
|
default?: CommonType | ICommonObject | ICommonObject[] |
|
description?: string |
|
options?: Array<INodeOptionsValue> |
|
optional?: boolean | INodeDisplay |
|
rows?: number |
|
list?: boolean |
|
acceptVariable?: boolean |
|
placeholder?: string |
|
fileType?: string |
|
additionalParams?: boolean |
|
} |
|
|
|
export interface INodeExecutionData { |
|
[key: string]: CommonType | CommonType[] | ICommonObject | ICommonObject[] |
|
} |
|
|
|
export interface INodeDisplay { |
|
[key: string]: string[] | string |
|
} |
|
|
|
export interface INodeProperties { |
|
label: string |
|
name: string |
|
type: string |
|
icon: string |
|
category: string |
|
baseClasses: string[] |
|
description?: string |
|
filePath?: string |
|
} |
|
|
|
export interface INode extends INodeProperties { |
|
inputs?: INodeParams[] |
|
output?: INodeOutputsValue[] |
|
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 |
|
instance?: any |
|
} |
|
|
|
export interface IMessage { |
|
message: string |
|
type: MessageType |
|
} |
|
|
|
|
|
|
|
|
|
|
|
import { PromptTemplate as LangchainPromptTemplate, PromptTemplateInput } from 'langchain/prompts' |
|
import { VectorStore } from 'langchain/vectorstores/base' |
|
|
|
export class PromptTemplate extends LangchainPromptTemplate { |
|
promptValues: ICommonObject |
|
|
|
constructor(input: PromptTemplateInput) { |
|
super(input) |
|
} |
|
} |
|
|
|
export interface PromptRetrieverInput { |
|
name: string |
|
description: string |
|
systemMessage: string |
|
} |
|
|
|
const fixedTemplate = `Here is a question: |
|
{input} |
|
` |
|
export class PromptRetriever { |
|
name: string |
|
description: string |
|
systemMessage: string |
|
|
|
constructor(fields: PromptRetrieverInput) { |
|
this.name = fields.name |
|
this.description = fields.description |
|
this.systemMessage = `${fields.systemMessage}\n${fixedTemplate}` |
|
} |
|
} |
|
|
|
export interface VectorStoreRetrieverInput { |
|
name: string |
|
description: string |
|
vectorStore: VectorStore |
|
} |
|
|
|
export class VectorStoreRetriever { |
|
name: string |
|
description: string |
|
vectorStore: VectorStore |
|
|
|
constructor(fields: VectorStoreRetrieverInput) { |
|
this.name = fields.name |
|
this.description = fields.description |
|
this.vectorStore = fields.vectorStore |
|
} |
|
} |
|
|