mirror of
https://github.com/n8n-io/n8n.git
synced 2024-11-15 09:04:07 -08:00
0f7ae3f50a
Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> Co-authored-by: Michael Kret <michael.k@radency.com>
72 lines
1.7 KiB
TypeScript
72 lines
1.7 KiB
TypeScript
import type { SummarizationChainParams } from 'langchain/chains';
|
|
import { PromptTemplate } from '@langchain/core/prompts';
|
|
interface ChainTypeOptions {
|
|
combineMapPrompt?: string;
|
|
prompt?: string;
|
|
refinePrompt?: string;
|
|
refineQuestionPrompt?: string;
|
|
}
|
|
|
|
export function getChainPromptsArgs(
|
|
type: 'stuff' | 'map_reduce' | 'refine',
|
|
options: ChainTypeOptions,
|
|
) {
|
|
const chainArgs: SummarizationChainParams = {
|
|
type,
|
|
};
|
|
// Map reduce prompt override
|
|
if (type === 'map_reduce') {
|
|
const mapReduceArgs = chainArgs as SummarizationChainParams & {
|
|
type: 'map_reduce';
|
|
};
|
|
if (options.combineMapPrompt) {
|
|
mapReduceArgs.combineMapPrompt = new PromptTemplate({
|
|
template: options.combineMapPrompt,
|
|
inputVariables: ['text'],
|
|
});
|
|
}
|
|
if (options.prompt) {
|
|
mapReduceArgs.combinePrompt = new PromptTemplate({
|
|
template: options.prompt,
|
|
inputVariables: ['text'],
|
|
});
|
|
}
|
|
}
|
|
|
|
// Stuff prompt override
|
|
if (type === 'stuff') {
|
|
const stuffArgs = chainArgs as SummarizationChainParams & {
|
|
type: 'stuff';
|
|
};
|
|
if (options.prompt) {
|
|
stuffArgs.prompt = new PromptTemplate({
|
|
template: options.prompt,
|
|
inputVariables: ['text'],
|
|
});
|
|
}
|
|
}
|
|
|
|
// Refine prompt override
|
|
if (type === 'refine') {
|
|
const refineArgs = chainArgs as SummarizationChainParams & {
|
|
type: 'refine';
|
|
};
|
|
|
|
if (options.refinePrompt) {
|
|
refineArgs.refinePrompt = new PromptTemplate({
|
|
template: options.refinePrompt,
|
|
inputVariables: ['existing_answer', 'text'],
|
|
});
|
|
}
|
|
|
|
if (options.refineQuestionPrompt) {
|
|
refineArgs.questionPrompt = new PromptTemplate({
|
|
template: options.refineQuestionPrompt,
|
|
inputVariables: ['text'],
|
|
});
|
|
}
|
|
}
|
|
|
|
return chainArgs;
|
|
}
|