{"version":3,"file":"load.cjs","names":["DEFAULT_PROMPT","StuffDocumentsChain","LLMChain","MapReduceDocumentsChain","REFINE_PROMPT","RefineDocumentsChain"],"sources":["../../../src/chains/summarization/load.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { LLMChain } from \"../llm_chain.js\";\nimport {\n  StuffDocumentsChain,\n  MapReduceDocumentsChain,\n  RefineDocumentsChain,\n  MapReduceDocumentsChainInput,\n} from \"../combine_docs_chain.js\";\nimport { DEFAULT_PROMPT } from \"./stuff_prompts.js\";\nimport { REFINE_PROMPT } from \"./refine_prompts.js\";\n\n/**\n * Type for the base parameters that can be used to configure a\n * summarization chain.\n */\ntype BaseParams = {\n  verbose?: boolean;\n};\n\n/** @interface */\nexport type SummarizationChainParams = BaseParams &\n  (\n    | {\n        type?: \"stuff\";\n        prompt?: BasePromptTemplate;\n      }\n    | ({\n        type?: \"map_reduce\";\n        combineMapPrompt?: BasePromptTemplate;\n        combinePrompt?: BasePromptTemplate;\n        combineLLM?: BaseLanguageModelInterface;\n      } & Pick<MapReduceDocumentsChainInput, \"returnIntermediateSteps\">)\n    | {\n        type?: \"refine\";\n        refinePrompt?: BasePromptTemplate;\n        refineLLM?: BaseLanguageModelInterface;\n        questionPrompt?: BasePromptTemplate;\n      }\n  );\n\nexport const loadSummarizationChain = (\n  llm: BaseLanguageModelInterface,\n  params: SummarizationChainParams = { type: \"map_reduce\" }\n) => {\n  const { verbose } = params;\n  if (params.type === \"stuff\") {\n    const { prompt = DEFAULT_PROMPT } = params;\n    const llmChain = new LLMChain({ prompt, llm, verbose });\n    const chain = new StuffDocumentsChain({\n      llmChain,\n      documentVariableName: \"text\",\n      verbose,\n    });\n    return chain;\n  }\n  if (params.type === \"map_reduce\") {\n    const {\n      combineMapPrompt = DEFAULT_PROMPT,\n      combinePrompt = DEFAULT_PROMPT,\n      combineLLM,\n      returnIntermediateSteps,\n    } = params;\n    const llmChain = new LLMChain({ prompt: combineMapPrompt, llm, verbose });\n    const combineLLMChain = new LLMChain({\n      prompt: combinePrompt,\n      llm: combineLLM ?? llm,\n      verbose,\n    });\n    const combineDocumentChain = new StuffDocumentsChain({\n      llmChain: combineLLMChain,\n      documentVariableName: \"text\",\n      verbose,\n    });\n    const chain = new MapReduceDocumentsChain({\n      llmChain,\n      combineDocumentChain,\n      documentVariableName: \"text\",\n      returnIntermediateSteps,\n      verbose,\n    });\n    return chain;\n  }\n  if (params.type === \"refine\") {\n    const {\n      refinePrompt = REFINE_PROMPT,\n      refineLLM,\n      questionPrompt = DEFAULT_PROMPT,\n    } = params;\n    const llmChain = new LLMChain({ prompt: questionPrompt, llm, verbose });\n    const refineLLMChain = new LLMChain({\n      prompt: refinePrompt,\n      llm: refineLLM ?? llm,\n      verbose,\n    });\n    const chain = new RefineDocumentsChain({\n      llmChain,\n      refineLLMChain,\n      documentVariableName: \"text\",\n      verbose,\n    });\n    return chain;\n  }\n  throw new Error(`Invalid _type: ${params.type}`);\n};\n"],"mappings":";;;;;AAyCA,MAAa,0BACX,KACA,SAAmC,EAAE,MAAM,cAAc,KACtD;CACH,MAAM,EAAE,YAAY;AACpB,KAAI,OAAO,SAAS,SAAS;EAC3B,MAAM,EAAE,SAASA,sBAAAA,mBAAmB;AAOpC,SALc,IAAIC,2BAAAA,oBAAoB;GACpC,UAFe,IAAIC,kBAAAA,SAAS;IAAE;IAAQ;IAAK;IAAS,CAAC;GAGrD,sBAAsB;GACtB;GACD,CAAC;;AAGJ,KAAI,OAAO,SAAS,cAAc;EAChC,MAAM,EACJ,mBAAmBF,sBAAAA,gBACnB,gBAAgBA,sBAAAA,gBAChB,YACA,4BACE;AAmBJ,SAPc,IAAIG,2BAAAA,wBAAwB;GACxC,UAZe,IAAID,kBAAAA,SAAS;IAAE,QAAQ;IAAkB;IAAK;IAAS,CAAC;GAavE,sBAP2B,IAAID,2BAAAA,oBAAoB;IACnD,UANsB,IAAIC,kBAAAA,SAAS;KACnC,QAAQ;KACR,KAAK,cAAc;KACnB;KACD,CAAC;IAGA,sBAAsB;IACtB;IACD,CAAC;GAIA,sBAAsB;GACtB;GACA;GACD,CAAC;;AAGJ,KAAI,OAAO,SAAS,UAAU;EAC5B,MAAM,EACJ,eAAeE,uBAAAA,eACf,WACA,iBAAiBJ,sBAAAA,mBACf;AAaJ,SANc,IAAIK,2BAAAA,qBAAqB;GACrC,UAPe,IAAIH,kBAAAA,SAAS;IAAE,QAAQ;IAAgB;IAAK;IAAS,CAAC;GAQrE,gBAPqB,IAAIA,kBAAAA,SAAS;IAClC,QAAQ;IACR,KAAK,aAAa;IAClB;IACD,CAAC;GAIA,sBAAsB;GACtB;GACD,CAAC;;AAGJ,OAAM,IAAI,MAAM,kBAAkB,OAAO,OAAO"}