@n8n/n8n-nodes-langchain
Version:

96 lines (90 loc) • 3.2 kB
text/typescript
/**
* Basic LLM Chain Node - Version 1.9
* A simple chain to prompt a large language model
*/
export interface LcChainLlmV19Params {
/**
* Source for Prompt (User Message)
* @builderHint Use 'auto' when following a chat trigger, 'define' when custom prompt needed
* @default auto
*/
promptType?: 'auto' | 'define' | Expression<string>;
/**
* Prompt (User Message)
* @builderHint Use expressions to include dynamic data from previous nodes (e.g., "={{ $json.input }}"). Static text prompts ignore incoming data.
* @displayOptions.show { promptType: ["define"] }
*/
text: string | Expression<string> | PlaceholderValue;
/**
* Require Specific Output Format
* @default false
*/
hasOutputParser?: boolean;
/**
* Enable Fallback Model
* @default false
*/
needsFallback?: boolean;
messages?: {
/** Prompt
*/
messageValues?: Array<{
/** Type Name or ID
* @default SystemMessagePromptTemplate
*/
type?: 'AIMessagePromptTemplate' | 'SystemMessagePromptTemplate' | 'HumanMessagePromptTemplate' | Expression<string>;
/** Message Type
* @displayOptions.show { type: ["HumanMessagePromptTemplate"] }
* @default text
*/
messageType?: 'text' | 'imageBinary' | 'imageUrl' | Expression<string>;
/** The name of the field in the chain's input that contains the binary image file to be processed
* @displayOptions.show { messageType: ["imageBinary"] }
* @default data
*/
binaryImageDataKey?: string | Expression<string> | PlaceholderValue;
/** URL to the image to be processed
* @displayOptions.show { messageType: ["imageUrl"] }
*/
imageUrl?: string | Expression<string> | PlaceholderValue;
/** Control how the model processes the image and generates its textual understanding
* @displayOptions.show { type: ["HumanMessagePromptTemplate"], messageType: ["imageBinary", "imageUrl"] }
* @default auto
*/
imageDetail?: 'auto' | 'low' | 'high' | Expression<string>;
/** Message
* @displayOptions.hide { messageType: ["imageBinary", "imageUrl"] }
*/
message?: string | Expression<string> | PlaceholderValue;
}>;
};
/**
* Batch processing options for rate limiting
* @default {}
*/
batching?: {
/** How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering.
* @default 5
*/
batchSize?: number | Expression<number>;
/** Delay in milliseconds between batches. This is useful for rate limiting.
* @default 0
*/
delayBetweenBatches?: number | Expression<number>;
};
}
export interface LcChainLlmV19SubnodeConfig {
model: LanguageModelInstance | LanguageModelInstance[];
/**
* @displayOptions.show { hasOutputParser: [true] }
*/
outputParser?: OutputParserInstance;
}
interface LcChainLlmV19NodeBase {
type: '@n8n/n8n-nodes-langchain.chainLlm';
version: 1.9;
}
export type LcChainLlmV19ParamsNode = LcChainLlmV19NodeBase & {
config: NodeConfig<LcChainLlmV19Params> & { subnodes: LcChainLlmV19SubnodeConfig };
};
export type LcChainLlmV19Node = LcChainLlmV19ParamsNode;