From 0c3250e8c26b2c77962394c69dc884ae8d23a605 Mon Sep 17 00:00:00 2001 From: Oleg Ivaniv Date: Fri, 22 Mar 2024 06:53:10 +0100 Subject: [PATCH] fix(Anthropic Chat Model Node): Fix detection of chat models in docker build & add support Claude Haiku Signed-off-by: Oleg Ivaniv --- .../llms/LMChatAnthropic/LmChatAnthropic.node.ts | 4 ++++ packages/@n8n/nodes-langchain/utils/helpers.ts | 11 ++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/@n8n/nodes-langchain/nodes/llms/LMChatAnthropic/LmChatAnthropic.node.ts b/packages/@n8n/nodes-langchain/nodes/llms/LMChatAnthropic/LmChatAnthropic.node.ts index d6824831fa873..1140c8aa8f5d2 100644 --- a/packages/@n8n/nodes-langchain/nodes/llms/LMChatAnthropic/LmChatAnthropic.node.ts +++ b/packages/@n8n/nodes-langchain/nodes/llms/LMChatAnthropic/LmChatAnthropic.node.ts @@ -26,6 +26,10 @@ const modelField: INodeProperties = { name: 'Claude 3 Sonnet(20240229)', value: 'claude-3-sonnet-20240229', }, + { + name: 'Claude 3 Haiku(20240307)', + value: 'claude-3-haiku-20240307', + }, { name: 'LEGACY: Claude 2', value: 'claude-2', diff --git a/packages/@n8n/nodes-langchain/utils/helpers.ts b/packages/@n8n/nodes-langchain/utils/helpers.ts index 7a91f90a98ef9..2ae4754e767cf 100644 --- a/packages/@n8n/nodes-langchain/utils/helpers.ts +++ b/packages/@n8n/nodes-langchain/utils/helpers.ts @@ -1,9 +1,10 @@ import { NodeConnectionType, NodeOperationError, jsonStringify } from 'n8n-workflow'; import type { EventNamesAiNodesType, IDataObject, IExecuteFunctions } from 'n8n-workflow'; -import { BaseChatModel } from '@langchain/core/language_models/chat_models'; +import type { BaseChatModel } from '@langchain/core/language_models/chat_models'; import type { BaseOutputParser } from '@langchain/core/output_parsers'; import type { BaseMessage } from '@langchain/core/messages'; import { DynamicTool, type Tool } from '@langchain/core/tools'; +import type { BaseLLM } from '@langchain/core/language_models/llms'; export function getMetadataFiltersValues( ctx: IExecuteFunctions, @@ -20,10 +21,10 @@ export function getMetadataFiltersValues( return undefined; } -// TODO: Remove this function once langchain package is updated to 0.1.x -// eslint-disable-next-line @typescript-eslint/no-duplicate-type-constituents -export function isChatInstance(model: any): model is BaseChatModel { - return model instanceof BaseChatModel; +export function isChatInstance(model: unknown): model is BaseChatModel { + const namespace = (model as BaseLLM | BaseChatModel).lc_namespace; + + return namespace.includes('chat_models'); } export async function getOptionalOutputParsers(