UNPKG

@n8n/n8n-nodes-langchain

Version:

![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

31 lines 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.processItem = processItem; const messages_1 = require("@langchain/core/messages"); const prompts_1 = require("@langchain/core/prompts"); const n8n_workflow_1 = require("n8n-workflow"); const tracing_1 = require("../../../utils/tracing"); const constants_1 = require("./constants"); async function processItem(ctx, itemIndex, llm, parser) { const input = ctx.getNodeParameter('text', itemIndex); if (!input?.trim()) { throw new n8n_workflow_1.NodeOperationError(ctx.getNode(), `Text for item ${itemIndex} is not defined`, { itemIndex, }); } const inputPrompt = new messages_1.HumanMessage(input); const options = ctx.getNodeParameter('options', itemIndex, {}); const escapedTemplate = (options.systemPromptTemplate ?? constants_1.SYSTEM_PROMPT_TEMPLATE).replace(/[{}]/g, (match) => match + match); const systemPromptTemplate = prompts_1.SystemMessagePromptTemplate.fromTemplate(`${escapedTemplate} {format_instructions}`); const messages = [ await systemPromptTemplate.format({ format_instructions: parser.getFormatInstructions(), }), inputPrompt, ]; const prompt = prompts_1.ChatPromptTemplate.fromMessages(messages); const chain = prompt.pipe(llm).pipe(parser).withConfig((0, tracing_1.getTracingConfig)(ctx)); return await chain.invoke(messages); } //# sourceMappingURL=processItem.js.map