UNPKG

@n8n/n8n-nodes-langchain

Version:
40 lines 1.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.normalizeEmptyToolCallContent = normalizeEmptyToolCallContent; exports.wrapChatModelMessageInput = wrapChatModelMessageInput; const messages_1 = require("@langchain/core/messages"); const wrappedChatModelMessageInput = Symbol('wrappedChatModelMessageInput'); function normalizeEmptyToolCallContent(messages) { return messages.map((message) => { if (messages_1.AIMessage.isInstance(message) && Array.isArray(message.content) && message.content.length === 0 && message.tool_calls?.length) { return new messages_1.AIMessage({ id: message.id, name: message.name, content: '', additional_kwargs: message.additional_kwargs, response_metadata: message.response_metadata, tool_calls: message.tool_calls, invalid_tool_calls: message.invalid_tool_calls, usage_metadata: message.usage_metadata, }); } return message; }); } function wrapChatModelMessageInput(model, wrapMessages = normalizeEmptyToolCallContent) { const patchableModel = model; if (patchableModel[wrappedChatModelMessageInput]) return model; const originalGenerate = patchableModel._generate.bind(model); const originalStreamResponseChunks = patchableModel._streamResponseChunks.bind(model); patchableModel._generate = async (messages, options, runManager) => await originalGenerate(wrapMessages(messages), options, runManager); patchableModel._streamResponseChunks = async function* (messages, options, runManager) { yield* originalStreamResponseChunks(wrapMessages(messages), options, runManager); }; patchableModel[wrappedChatModelMessageInput] = true; return model; } //# sourceMappingURL=chatModelMessageWrapper.js.map