@n8n/n8n-nodes-langchain 2.42.4 → 2.43.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/node-definitions/.nodes-hash +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/agent/v1.ts +4 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/agent/v11.ts +4 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/agent/v12.ts +4 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/agent/v13.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/agent/v14.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/agent/v15.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/agent/v16.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/agent/v17.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/agent/v18.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/agent/v19.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/agent/v2.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/agent/v21.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/agent/v22.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/agent/v3.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/agent/v31.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_image/operation_analyze.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_image/operation_generate.ts +16 -15
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_video/operation_image_to_video.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v11/resource_image/operation_analyze.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v11/resource_image/operation_generate.ts +16 -15
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v11/resource_video/operation_image_to_video.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainLlm/v1.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainLlm/v11.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainLlm/v12.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainLlm/v13.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainLlm/v14.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainLlm/v15.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainLlm/v16.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainLlm/v17.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainLlm/v18.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainLlm/v19.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainRetrievalQa/v1.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainRetrievalQa/v1.ts +2 -17
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainRetrievalQa/v11.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainRetrievalQa/v11.ts +2 -17
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainRetrievalQa/v12.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainRetrievalQa/v12.ts +2 -17
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainRetrievalQa/v13.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainRetrievalQa/v13.ts +2 -17
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainRetrievalQa/v14.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainRetrievalQa/v14.ts +2 -17
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainRetrievalQa/v15.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainRetrievalQa/v15.ts +2 -17
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainRetrievalQa/v16.ts +2 -4
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainRetrievalQa/v17.ts +2 -4
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainSummarization/v1.ts +1 -5
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainSummarization/v2.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainSummarization/v2.ts +0 -16
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chainSummarization/v21.ts +0 -3
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chat/v1.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chat/v1.ts +19 -69
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chat/v11.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chat/v11.ts +19 -69
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chat/v12.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chat/v12.ts +19 -69
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chat/v13.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chat/v13.ts +19 -69
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chatTrigger/v12.ts +13 -12
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chatTrigger/v13.ts +13 -12
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chatTrigger/v14.ts +13 -12
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chatTrigger/v15.ts +13 -12
- package/dist/node-definitions/nodes/n8n-nodes-langchain/documentDefaultDataLoader/v1.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/documentDefaultDataLoader/v11.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/embeddingsOpenAi/v1.ts +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/embeddingsOpenAi/v11.ts +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/embeddingsOpenAi/v12.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/embeddingsOpenAi/v12.ts +1 -5
- package/dist/node-definitions/nodes/n8n-nodes-langchain/googleGemini/v1/resource_text/operation_message.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/googleGemini/v1/resource_text/operation_message.ts +0 -4
- package/dist/node-definitions/nodes/n8n-nodes-langchain/googleGemini/v11/resource_text/operation_message.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/googleGemini/v11/resource_text/operation_message.ts +0 -4
- package/dist/node-definitions/nodes/n8n-nodes-langchain/googleGemini/v12/resource_text/operation_message.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/googleGemini/v12/resource_text/operation_message.ts +0 -4
- package/dist/node-definitions/nodes/n8n-nodes-langchain/guardrails/v1.ts +1 -6
- package/dist/node-definitions/nodes/n8n-nodes-langchain/guardrails/v2.ts +1 -6
- package/dist/node-definitions/nodes/n8n-nodes-langchain/informationExtractor/v1.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/informationExtractor/v1.ts +0 -13
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAnthropic/v1.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAnthropic/v1.ts +0 -19
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAnthropic/v11.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAnthropic/v11.ts +0 -19
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAnthropic/v12.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAnthropic/v12.ts +0 -19
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAnthropic/v13.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAnthropic/v13.ts +0 -19
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAnthropic/v14.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAnthropic/v14.ts +0 -19
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAnthropic/v15.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAnthropic/v15.ts +11 -19
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAnthropic/v16.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAnthropic/v16.ts +11 -19
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAzureOpenAi/index.ts +3 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAzureOpenAi/v1.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAzureOpenAi/v1.ts +4 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAzureOpenAi/v11.schema.js +28 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAzureOpenAi/v11.ts +83 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatOpenAi/v1.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatOpenAi/v1.ts +1 -88
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatOpenAi/v11.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatOpenAi/v11.ts +1 -92
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatOpenAi/v12.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatOpenAi/v12.ts +0 -91
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatOpenAi/v13.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatOpenAi/v13.ts +0 -8
- package/dist/node-definitions/nodes/n8n-nodes-langchain/mcpTrigger/v1.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/mcpTrigger/v1.ts +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/mcpTrigger/v11.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/mcpTrigger/v11.ts +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/minimax/v1/resource_video/operation_image_to_video.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/minimax/v1/resource_video/operation_text_to_video.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/minimax/v11/resource_video/operation_image_to_video.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/minimax/v11/resource_video/operation_text_to_video.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/minimax/v12/resource_video/operation_image_to_video.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/minimax/v12/resource_video/operation_text_to_video.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v1/resource_assistant/operation_create.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v1/resource_assistant/operation_message.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v1/resource_assistant/operation_message.ts +0 -4
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v1/resource_assistant/operation_update.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v1/resource_image/operation_generate.ts +16 -15
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v1/resource_text/operation_message.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v1/resource_text/operation_message.ts +0 -4
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v11/resource_assistant/operation_create.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v11/resource_assistant/operation_message.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v11/resource_assistant/operation_message.ts +0 -4
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v11/resource_assistant/operation_update.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v11/resource_image/operation_generate.ts +16 -15
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v11/resource_text/operation_message.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v11/resource_text/operation_message.ts +0 -4
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v12/resource_assistant/operation_create.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v12/resource_assistant/operation_message.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v12/resource_assistant/operation_message.ts +0 -4
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v12/resource_assistant/operation_update.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v12/resource_image/operation_generate.ts +16 -15
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v12/resource_text/operation_message.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v12/resource_text/operation_message.ts +0 -4
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v13/resource_assistant/operation_create.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v13/resource_assistant/operation_update.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v13/resource_image/operation_generate.ts +16 -15
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v13/resource_text/operation_message.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v13/resource_text/operation_message.ts +0 -4
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v14/resource_assistant/operation_create.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v14/resource_assistant/operation_update.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v14/resource_image/operation_generate.ts +16 -15
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v14/resource_text/operation_message.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v14/resource_text/operation_message.ts +0 -4
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v15/resource_assistant/operation_create.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v15/resource_assistant/operation_update.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v15/resource_image/operation_generate.ts +16 -15
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v16/resource_assistant/operation_create.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v16/resource_assistant/operation_update.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v16/resource_image/operation_generate.ts +16 -15
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v17/resource_assistant/operation_create.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v17/resource_assistant/operation_update.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v17/resource_image/operation_generate.ts +16 -15
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v18/resource_assistant/operation_create.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v18/resource_assistant/operation_message.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v18/resource_assistant/operation_message.ts +0 -4
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v18/resource_assistant/operation_update.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v18/resource_image/operation_generate.ts +16 -15
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v2/resource_image/operation_generate.ts +16 -15
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v2/resource_text/operation_response.ts +2 -10
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v21/resource_image/operation_generate.ts +16 -15
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v21/resource_text/operation_response.ts +2 -10
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v22/resource_image/operation_generate.ts +16 -15
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v22/resource_text/operation_response.ts +2 -10
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v23/resource_image/operation_generate.ts +16 -15
- package/dist/node-definitions/nodes/n8n-nodes-langchain/openAi/v23/resource_text/operation_response.ts +2 -10
- package/dist/node-definitions/nodes/n8n-nodes-langchain/retrieverWorkflow/v1.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/sentimentAnalysis/v1.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/sentimentAnalysis/v1.ts +0 -13
- package/dist/node-definitions/nodes/n8n-nodes-langchain/textClassifier/v1.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/textClassifier/v1.ts +0 -13
- package/dist/node-definitions/nodes/n8n-nodes-langchain/toolWorkflow/v1.ts +2 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/toolWorkflow/v11.ts +2 -1
- package/dist/nodes/agents/Agent/V1/AgentV1.node.js +0 -11
- package/dist/nodes/agents/Agent/V1/AgentV1.node.js.map +1 -1
- package/dist/nodes/agents/Agent/V2/AgentV2.node.js +0 -6
- package/dist/nodes/agents/Agent/V2/AgentV2.node.js.map +1 -1
- package/dist/nodes/agents/Agent/V3/AgentV3.node.js +0 -6
- package/dist/nodes/agents/Agent/V3/AgentV3.node.js.map +1 -1
- package/dist/nodes/agents/OpenAiAssistant/OpenAiAssistant.node.js +2 -2
- package/dist/nodes/agents/OpenAiAssistant/OpenAiAssistant.node.js.map +1 -1
- package/dist/nodes/embeddings/EmbeddingsOpenAI/EmbeddingsOpenAi.node.js +1 -1
- package/dist/nodes/embeddings/EmbeddingsOpenAI/EmbeddingsOpenAi.node.js.map +1 -1
- package/dist/nodes/llms/LMChatOpenAi/LmChatOpenAi.node.js +3 -13
- package/dist/nodes/llms/LMChatOpenAi/LmChatOpenAi.node.js.map +1 -1
- package/dist/nodes/llms/LMOpenAi/LmOpenAi.node.js +1 -1
- package/dist/nodes/llms/LMOpenAi/LmOpenAi.node.js.map +1 -1
- package/dist/nodes/llms/LMOpenHuggingFaceInference/LmOpenHuggingFaceInference.node.js.map +1 -1
- package/dist/nodes/llms/LmChatAzureOpenAi/LmChatAzureOpenAi.node.js +34 -15
- package/dist/nodes/llms/LmChatAzureOpenAi/LmChatAzureOpenAi.node.js.map +1 -1
- package/dist/nodes/llms/LmChatAzureOpenAi/credentials/api-key.js +2 -1
- package/dist/nodes/llms/LmChatAzureOpenAi/credentials/api-key.js.map +1 -1
- package/dist/nodes/llms/LmChatAzureOpenAi/credentials/normalizeEndpoint.d.ts +1 -0
- package/dist/nodes/llms/LmChatAzureOpenAi/credentials/normalizeEndpoint.js +7 -0
- package/dist/nodes/llms/LmChatAzureOpenAi/credentials/normalizeEndpoint.js.map +1 -0
- package/dist/nodes/llms/LmChatAzureOpenAi/credentials/oauth2.js +6 -2
- package/dist/nodes/llms/LmChatAzureOpenAi/credentials/oauth2.js.map +1 -1
- package/dist/nodes/llms/LmChatAzureOpenAi/credentials/requireFoundryEndpoint.js +4 -2
- package/dist/nodes/llms/LmChatAzureOpenAi/credentials/requireFoundryEndpoint.js.map +1 -1
- package/dist/nodes/llms/LmChatAzureOpenAi/error-handling.d.ts +1 -0
- package/dist/nodes/llms/LmChatAzureOpenAi/error-handling.js +48 -0
- package/dist/nodes/llms/LmChatAzureOpenAi/error-handling.js.map +1 -0
- package/dist/nodes/llms/LmChatAzureOpenAi/methods/searchModels.js +12 -2
- package/dist/nodes/llms/LmChatAzureOpenAi/methods/searchModels.js.map +1 -1
- package/dist/nodes/llms/LmChatAzureOpenAi/properties.js +58 -0
- package/dist/nodes/llms/LmChatAzureOpenAi/properties.js.map +1 -1
- package/dist/nodes/llms/LmChatAzureOpenAi/types.d.ts +1 -0
- package/dist/nodes/llms/LmChatAzureOpenAi/types.js.map +1 -1
- package/dist/nodes/llms/shared/extra-body.d.ts +6 -0
- package/dist/nodes/llms/shared/extra-body.js +34 -0
- package/dist/nodes/llms/shared/extra-body.js.map +1 -0
- package/dist/nodes/vendors/OpenAi/v1/actions/assistant/create.operation.js +2 -2
- package/dist/nodes/vendors/OpenAi/v1/actions/assistant/create.operation.js.map +1 -1
- package/dist/nodes/vendors/OpenAi/v1/actions/assistant/update.operation.js +2 -2
- package/dist/nodes/vendors/OpenAi/v1/actions/assistant/update.operation.js.map +1 -1
- package/dist/typecheck.tsbuildinfo +1 -1
- package/dist/types/nodes.json +9 -9
- package/package.json +12 -12
package/dist/types/nodes.json
CHANGED
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
{"displayName":"Moonshot Kimi","name":"moonshot","group":["transform"],"version":1,"subtitle":"={{ $parameter[\"operation\"] + \": \" + $parameter[\"resource\"] }}","description":"Message Kimi and analyze images with Moonshot models","defaults":{"name":"Moonshot Kimi"},"usableAsTool":true,"codex":{"alias":["kimi","moonshot","LangChain","image","vision"],"categories":["AI"],"subcategories":{"AI":["Agents","Miscellaneous","Root Nodes"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.moonshot/"}]}},"inputs":"={{\n\t\t(() => {\n\t\t\tconst resource = $parameter.resource;\n\t\t\tconst operation = $parameter.operation;\n\t\t\tif (resource === 'text' && operation === 'message') {\n\t\t\t\treturn [{ type: 'main' }, { type: 'ai_tool', displayName: 'Tools' }];\n\t\t\t}\n\n\t\t\treturn ['main'];\n\t\t})()\n\t}}","outputs":["main"],"credentials":[{"name":"moonshotApi","required":true}],"properties":[{"displayName":"Resource","name":"resource","type":"options","noDataExpression":true,"options":[{"name":"Image","value":"image"},{"name":"Text","value":"text"}],"default":"text"},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Analyze Image","value":"analyze","action":"Analyze image","description":"Analyze an image and answer questions about it"}],"default":"analyze","displayOptions":{"show":{"resource":["image"]}}},{"displayName":"Model","name":"modelId","type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"modelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. kimi-k2.6"}],"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Text Input","name":"text","type":"string","placeholder":"e.g. What's in this image?","default":"What's in this image?","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Input Data Field Name(s)","name":"binaryPropertyName","type":"string","default":"data","placeholder":"e.g. data","hint":"The name of the input field containing the binary file data to be processed","description":"Name of the binary field(s) which contains the image(s), separate multiple field names with commas","typeOptions":{"binaryDataProperty":true},"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Simplify Output","name":"simplify","type":"boolean","default":true,"description":"Whether to return a simplified version of the response instead of the raw data","displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Maximum Number of Tokens","description":"Fewer tokens will result in shorter, less detailed image description","name":"maxTokens","type":"number","default":1024,"typeOptions":{"minValue":1}}],"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Message a Model","value":"message","action":"Message a model","description":"Send a message and get a response from a Moonshot Kimi model"}],"default":"message","displayOptions":{"show":{"resource":["text"]}}},{"displayName":"Model","name":"modelId","type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"modelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. kimi-k2.6"}],"displayOptions":{"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Messages","name":"messages","type":"fixedCollection","typeOptions":{"sortable":true,"multipleValues":true},"placeholder":"Add Message","default":{"values":[{"content":"","role":"user"}]},"options":[{"displayName":"Values","name":"values","values":[{"displayName":"Prompt","name":"content","type":"string","description":"The content of the message to be sent","default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2}},{"displayName":"Role","name":"role","type":"options","description":"Role in shaping the model's response, it tells the model how it should behave and interact with the user","options":[{"name":"User","value":"user","description":"Send a message as a user and get a response from the model"},{"name":"Assistant","value":"assistant","description":"Tell the model to adopt a specific tone or personality"}],"default":"user"}]}],"displayOptions":{"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Add Attachments","name":"addAttachments","type":"boolean","default":false,"description":"Whether to add image attachments to the message","displayOptions":{"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Attachment Input Data Field Name(s)","name":"binaryPropertyName","type":"string","default":"data","placeholder":"e.g. data","description":"Name of the binary field(s) which contains the image(s) to attach, separate multiple field names with commas","typeOptions":{"binaryDataProperty":true},"displayOptions":{"show":{"addAttachments":[true],"operation":["message"],"resource":["text"]}}},{"displayName":"Simplify Output","name":"simplify","type":"boolean","default":true,"description":"Whether to return a simplified version of the response instead of the raw data","displayOptions":{"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Frequency Penalty","name":"frequencyPenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim","type":"number"},{"displayName":"Include Merged Response","name":"includeMergedResponse","type":"boolean","default":false,"description":"Whether to include a single output string merging all text parts of the response"},{"displayName":"Maximum Number of Tokens","name":"maxTokens","default":1024,"description":"The maximum number of tokens to generate in the completion","type":"number","typeOptions":{"minValue":1,"numberPrecision":0}},{"displayName":"Max Tool Calls Iterations","name":"maxToolsIterations","type":"number","default":15,"description":"The maximum number of tool iteration cycles the LLM will run before stopping. A single iteration can contain multiple tool calls. Set to 0 for no limit.","typeOptions":{"minValue":0,"numberPrecision":0}},{"displayName":"Output Randomness (Temperature)","name":"temperature","default":0.7,"description":"Controls the randomness of the output. Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.","type":"number","typeOptions":{"minValue":0,"maxValue":1,"numberPrecision":1}},{"displayName":"Output Randomness (Top P)","name":"topP","default":1,"description":"The maximum cumulative probability of tokens to consider when sampling","type":"number","typeOptions":{"minValue":0,"maxValue":1,"numberPrecision":1}},{"displayName":"Presence Penalty","name":"presencePenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics","type":"number"},{"displayName":"Response Format","name":"responseFormat","default":"text","type":"options","options":[{"name":"Text","value":"text","description":"Regular text response"},{"name":"JSON","value":"json_object","description":"Enables JSON mode, which should guarantee the message the model generates is valid JSON"}]},{"displayName":"System Message","name":"system","type":"string","default":"","placeholder":"e.g. You are a helpful assistant"},{"displayName":"Thinking Mode","name":"thinkingMode","type":"boolean","default":false,"description":"Whether to enable thinking mode for deep reasoning. The model will include reasoning steps in the response. Cannot be used together with Web Search."},{"displayName":"Web Search","name":"webSearch","type":"boolean","default":false,"description":"Whether to enable built-in web search. The model will search the web for relevant information. Cannot be used together with Thinking Mode."}],"displayOptions":{"show":{"operation":["message"],"resource":["text"]}}}],"iconUrl":{"light":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vendors/Moonshot/moonshot.svg","dark":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vendors/Moonshot/moonshot.dark.svg"}},
|
|
7
7
|
{"displayName":"Ollama","name":"ollama","group":["transform"],"version":1,"subtitle":"={{ $parameter[\"operation\"] + \": \" + $parameter[\"resource\"] }}","description":"Message local models and analyze images with Ollama","defaults":{"name":"Ollama"},"usableAsTool":true,"codex":{"alias":["LangChain","image","vision","AI","local"],"categories":["AI"],"subcategories":{"AI":["Agents","Miscellaneous","Root Nodes"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.ollama/"}]}},"inputs":"={{\n\t\t(() => {\n\t\t\tconst resource = $parameter.resource;\n\t \tconst operation = $parameter.operation;\n\t\t\tif (resource === 'text' && operation === 'message') {\n\t\t\t\treturn [{ type: 'main' }, { type: 'ai_tool', displayName: 'Tools' }];\n\t\t\t}\n\n\t\t\treturn ['main'];\n\t\t})()\n\t}}","outputs":["main"],"credentials":[{"name":"ollamaApi","required":true}],"properties":[{"displayName":"Resource","name":"resource","type":"options","noDataExpression":true,"options":[{"name":"Image","value":"image"},{"name":"Text","value":"text"}],"default":"text"},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Analyze Image","value":"analyze","action":"Analyze image","description":"Take in images and answer questions about them"}],"default":"analyze","displayOptions":{"show":{"resource":["image"]}}},{"displayName":"Model","name":"modelId","type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"modelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. llava, llama3.2-vision"}],"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Text Input","name":"text","type":"string","placeholder":"e.g. What's in this image?","default":"What's in this image?","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Input Type","name":"inputType","type":"options","default":"binary","options":[{"name":"Binary File(s)","value":"binary"},{"name":"Image URL(s)","value":"url"}],"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Input Data Field Name(s)","name":"binaryPropertyName","type":"string","default":"data","placeholder":"e.g. data","hint":"The name of the input field containing the binary file data to be processed","description":"Name of the binary field(s) which contains the image(s), separate multiple field names with commas","displayOptions":{"show":{"inputType":["binary"],"operation":["analyze"],"resource":["image"]}}},{"displayName":"URL(s)","name":"imageUrls","type":"string","placeholder":"e.g. https://example.com/image.png","description":"URL(s) of the image(s) to analyze, multiple URLs can be added separated by comma","default":"","displayOptions":{"show":{"inputType":["url"],"operation":["analyze"],"resource":["image"]}}},{"displayName":"Simplify Output","name":"simplify","type":"boolean","default":true,"description":"Whether to simplify the response or not","displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"System Message","name":"system","type":"string","default":"","placeholder":"e.g. You are a helpful assistant.","description":"System message to set the context for the conversation","typeOptions":{"rows":2}},{"displayName":"Temperature","name":"temperature","type":"number","default":0.8,"typeOptions":{"minValue":0,"maxValue":2,"numberPrecision":2},"description":"Controls randomness in responses. Lower values make output more focused."},{"displayName":"Thinking","name":"think","type":"boolean","default":true,"description":"Whether to enable (default) thinking mode for supported models. When enabled, the model's thinking process is separated from the output. When disabled, the model outputs content directly (only for supported models)."},{"displayName":"Output Randomness (Top P)","name":"top_p","default":0.7,"description":"The maximum cumulative probability of tokens to consider when sampling","type":"number","typeOptions":{"minValue":0,"maxValue":1,"numberPrecision":1}},{"displayName":"Top K","name":"top_k","type":"number","default":40,"typeOptions":{"minValue":1},"description":"Controls diversity by limiting the number of top tokens to consider"},{"displayName":"Max Tokens","name":"num_predict","type":"number","default":1024,"typeOptions":{"minValue":1,"numberPrecision":0},"description":"Maximum number of tokens to generate in the completion"},{"displayName":"Frequency Penalty","name":"frequency_penalty","type":"number","default":0,"typeOptions":{"minValue":0,"numberPrecision":2},"description":"Adjusts the penalty for tokens that have already appeared in the generated text. Higher values discourage repetition."},{"displayName":"Presence Penalty","name":"presence_penalty","type":"number","default":0,"typeOptions":{"numberPrecision":2},"description":"Adjusts the penalty for tokens based on their presence in the generated text so far. Positive values penalize tokens that have already appeared, encouraging diversity."},{"displayName":"Repetition Penalty","name":"repeat_penalty","type":"number","default":1.1,"typeOptions":{"minValue":0,"numberPrecision":2},"description":"Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient."},{"displayName":"Context Length","name":"num_ctx","type":"number","default":4096,"typeOptions":{"minValue":1,"numberPrecision":0},"description":"Sets the size of the context window used to generate the next token"},{"displayName":"Repeat Last N","name":"repeat_last_n","type":"number","default":64,"typeOptions":{"minValue":-1,"numberPrecision":0},"description":"Sets how far back for the model to look back to prevent repetition. (0 = disabled, -1 = num_ctx)."},{"displayName":"Min P","name":"min_p","type":"number","default":0,"typeOptions":{"minValue":0,"maxValue":1,"numberPrecision":3},"description":"Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token."},{"displayName":"Seed","name":"seed","type":"number","default":0,"typeOptions":{"minValue":0,"numberPrecision":0},"description":"Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt."},{"displayName":"Stop Sequences","name":"stop","type":"string","default":"","description":"Sets the stop sequences to use. When this pattern is encountered the LLM will stop generating text and return. Separate multiple patterns with commas"},{"displayName":"Keep Alive","name":"keep_alive","type":"string","default":"5m","description":"Specifies the duration to keep the loaded model in memory after use. Format: 1h30m (1 hour 30 minutes)."},{"displayName":"Low VRAM Mode","name":"low_vram","type":"boolean","default":false,"description":"Whether to activate low VRAM mode, which reduces memory usage at the cost of slower generation speed. Useful for GPUs with limited memory."},{"displayName":"Main GPU ID","name":"main_gpu","type":"number","default":0,"typeOptions":{"minValue":0,"numberPrecision":0},"description":"Specifies the ID of the GPU to use for the main computation. Only change this if you have multiple GPUs."},{"displayName":"Context Batch Size","name":"num_batch","type":"number","default":512,"typeOptions":{"minValue":1,"numberPrecision":0},"description":"Sets the batch size for prompt processing. Larger batch sizes may improve generation speed but increase memory usage."},{"displayName":"Number of GPUs","name":"num_gpu","type":"number","default":-1,"typeOptions":{"minValue":-1,"numberPrecision":0},"description":"Specifies the number of GPUs to use for parallel processing. Set to -1 for auto-detection."},{"displayName":"Number of CPU Threads","name":"num_thread","type":"number","default":0,"typeOptions":{"minValue":0,"numberPrecision":0},"description":"Specifies the number of CPU threads to use for processing. Set to 0 for auto-detection."},{"displayName":"Penalize Newlines","name":"penalize_newline","type":"boolean","default":true,"description":"Whether the model will be less likely to generate newline characters, encouraging longer continuous sequences of text"},{"displayName":"Use Memory Locking","name":"use_mlock","type":"boolean","default":false,"description":"Whether to lock the model in memory to prevent swapping. This can improve performance but requires sufficient available memory."},{"displayName":"Use Memory Mapping","name":"use_mmap","type":"boolean","default":true,"description":"Whether to use memory mapping for loading the model. This can reduce memory usage but may impact performance."},{"displayName":"Load Vocabulary Only","name":"vocab_only","type":"boolean","default":false,"description":"Whether to only load the model vocabulary without the weights. Useful for quickly testing tokenization."},{"displayName":"Output Format","name":"format","type":"options","options":[{"name":"Default","value":""},{"name":"JSON","value":"json"}],"default":"","description":"Specifies the format of the API response"}],"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Message a Model","value":"message","action":"Message a model","description":"Send a message to Ollama model"}],"default":"message","displayOptions":{"show":{"resource":["text"]}}},{"displayName":"Model","name":"modelId","type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"modelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. llava, llama3.2-vision"}],"displayOptions":{"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Messages","name":"messages","type":"fixedCollection","typeOptions":{"sortable":true,"multipleValues":true},"placeholder":"Add Message","default":{"values":[{"content":"","role":"user"}]},"options":[{"displayName":"Values","name":"values","values":[{"displayName":"Content","name":"content","type":"string","description":"The content of the message to be sent","default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2}},{"displayName":"Role","name":"role","type":"options","description":"The role of this message in the conversation","options":[{"name":"User","value":"user","description":"Message from the user"},{"name":"Assistant","value":"assistant","description":"Response from the assistant (for conversation history)"}],"default":"user"}]}],"displayOptions":{"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Simplify Output","name":"simplify","type":"boolean","default":true,"description":"Whether to simplify the response or not","displayOptions":{"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"System Message","name":"system","type":"string","default":"","placeholder":"e.g. You are a helpful assistant.","description":"System message to set the context for the conversation","typeOptions":{"rows":2}},{"displayName":"Temperature","name":"temperature","type":"number","default":0.8,"typeOptions":{"minValue":0,"maxValue":2,"numberPrecision":2},"description":"Controls randomness in responses. Lower values make output more focused."},{"displayName":"Thinking","name":"think","type":"boolean","default":true,"description":"Whether to enable (default) thinking mode for supported models. When enabled, the model's thinking process is separated from the output. When disabled, the model outputs content directly (only for supported models)."},{"displayName":"Output Randomness (Top P)","name":"top_p","default":0.7,"description":"The maximum cumulative probability of tokens to consider when sampling","type":"number","typeOptions":{"minValue":0,"maxValue":1,"numberPrecision":1}},{"displayName":"Top K","name":"top_k","type":"number","default":40,"typeOptions":{"minValue":1},"description":"Controls diversity by limiting the number of top tokens to consider"},{"displayName":"Max Tokens","name":"num_predict","type":"number","default":1024,"typeOptions":{"minValue":1,"numberPrecision":0},"description":"Maximum number of tokens to generate in the completion"},{"displayName":"Frequency Penalty","name":"frequency_penalty","type":"number","default":0,"typeOptions":{"minValue":0,"numberPrecision":2},"description":"Adjusts the penalty for tokens that have already appeared in the generated text. Higher values discourage repetition."},{"displayName":"Presence Penalty","name":"presence_penalty","type":"number","default":0,"typeOptions":{"numberPrecision":2},"description":"Adjusts the penalty for tokens based on their presence in the generated text so far. Positive values penalize tokens that have already appeared, encouraging diversity."},{"displayName":"Repetition Penalty","name":"repeat_penalty","type":"number","default":1.1,"typeOptions":{"minValue":0,"numberPrecision":2},"description":"Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient."},{"displayName":"Context Length","name":"num_ctx","type":"number","default":4096,"typeOptions":{"minValue":1,"numberPrecision":0},"description":"Sets the size of the context window used to generate the next token"},{"displayName":"Repeat Last N","name":"repeat_last_n","type":"number","default":64,"typeOptions":{"minValue":-1,"numberPrecision":0},"description":"Sets how far back for the model to look back to prevent repetition. (0 = disabled, -1 = num_ctx)."},{"displayName":"Min P","name":"min_p","type":"number","default":0,"typeOptions":{"minValue":0,"maxValue":1,"numberPrecision":3},"description":"Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token."},{"displayName":"Seed","name":"seed","type":"number","default":0,"typeOptions":{"minValue":0,"numberPrecision":0},"description":"Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt."},{"displayName":"Stop Sequences","name":"stop","type":"string","default":"","description":"Sets the stop sequences to use. When this pattern is encountered the LLM will stop generating text and return. Separate multiple patterns with commas"},{"displayName":"Keep Alive","name":"keep_alive","type":"string","default":"5m","description":"Specifies the duration to keep the loaded model in memory after use. Format: 1h30m (1 hour 30 minutes)."},{"displayName":"Low VRAM Mode","name":"low_vram","type":"boolean","default":false,"description":"Whether to activate low VRAM mode, which reduces memory usage at the cost of slower generation speed. Useful for GPUs with limited memory."},{"displayName":"Main GPU ID","name":"main_gpu","type":"number","default":0,"typeOptions":{"minValue":0,"numberPrecision":0},"description":"Specifies the ID of the GPU to use for the main computation. Only change this if you have multiple GPUs."},{"displayName":"Context Batch Size","name":"num_batch","type":"number","default":512,"typeOptions":{"minValue":1,"numberPrecision":0},"description":"Sets the batch size for prompt processing. Larger batch sizes may improve generation speed but increase memory usage."},{"displayName":"Number of GPUs","name":"num_gpu","type":"number","default":-1,"typeOptions":{"minValue":-1,"numberPrecision":0},"description":"Specifies the number of GPUs to use for parallel processing. Set to -1 for auto-detection."},{"displayName":"Number of CPU Threads","name":"num_thread","type":"number","default":0,"typeOptions":{"minValue":0,"numberPrecision":0},"description":"Specifies the number of CPU threads to use for processing. Set to 0 for auto-detection."},{"displayName":"Penalize Newlines","name":"penalize_newline","type":"boolean","default":true,"description":"Whether the model will be less likely to generate newline characters, encouraging longer continuous sequences of text"},{"displayName":"Use Memory Locking","name":"use_mlock","type":"boolean","default":false,"description":"Whether to lock the model in memory to prevent swapping. This can improve performance but requires sufficient available memory."},{"displayName":"Use Memory Mapping","name":"use_mmap","type":"boolean","default":true,"description":"Whether to use memory mapping for loading the model. This can reduce memory usage but may impact performance."},{"displayName":"Load Vocabulary Only","name":"vocab_only","type":"boolean","default":false,"description":"Whether to only load the model vocabulary without the weights. Useful for quickly testing tokenization."},{"displayName":"Output Format","name":"format","type":"options","options":[{"name":"Default","value":""},{"name":"JSON","value":"json"}],"default":"","description":"Specifies the format of the API response"}],"displayOptions":{"show":{"operation":["message"],"resource":["text"]}}}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vendors/Ollama/ollama.svg"},
|
|
8
8
|
{"displayName":"OpenAI","name":"openAi","group":["transform"],"defaultVersion":2.3,"subtitle":"={{((resource, operation) => {\n if (operation === 'deleteAssistant') {\n return 'Delete Assistant';\n }\n if (operation === 'deleteFile') {\n return 'Delete File';\n }\n if (operation === 'classify') {\n return 'Classify Text';\n }\n if (operation === 'message' && resource === 'text') {\n return 'Message Model';\n }\n const capitalize = (str) => {\n const chars = str.split('');\n chars[0] = chars[0].toUpperCase();\n return chars.join('');\n };\n if (['transcribe', 'translate'].includes(operation)) {\n resource = 'recording';\n }\n if (operation === 'list') {\n resource = resource + 's';\n }\n return `${capitalize(operation)} ${capitalize(resource)}`;\n})($parameter.resource, $parameter.operation)}}","description":"Message an assistant or GPT, analyze images, generate audio, etc.","codex":{"alias":["LangChain","ChatGPT","Sora","DallE","whisper","audio","transcribe","tts","assistant"],"categories":["AI"],"subcategories":{"AI":["Agents","Miscellaneous","Root Nodes"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.openai/"}]}},"builderHint":{"searchHint":"For text generation, reasoning and tools, use AI Agent with OpenAI Chat Model. This OpenAI node is for specialized operations: image generation (DALL-E), audio (Whisper, TTS), and video generation (Sora).","relatedNodes":[{"nodeType":"@n8n/n8n-nodes-langchain.agent","relationHint":"Prefer for most LLM tasks"},{"nodeType":"@n8n/n8n-nodes-langchain.lmChatOpenAi","relationHint":"Prefer for most LLM tasks"}]},"version":[2,2.1,2.2,2.3],"defaults":{"name":"OpenAI"},"inputs":"={{((resource, operation, hideTools, memory) => {\n if (resource === 'assistant' && operation === 'message') {\n const inputs = [\n { type: 'main' },\n { type: 'ai_tool', displayName: 'Tools' },\n ];\n if (memory !== 'threadId') {\n inputs.push({ type: 'ai_memory', displayName: 'Memory', maxConnections: 1 });\n }\n return inputs;\n }\n if (resource === 'text' && (operation === 'message' || operation === 'response')) {\n if (hideTools === 'hide') {\n return ['main'];\n }\n return [{ type: 'main' }, { type: 'ai_tool', displayName: 'Tools' }];\n }\n return ['main'];\n})($parameter.resource, $parameter.operation, $parameter.hideTools, $parameter.memory ?? undefined)}}","outputs":["main"],"credentials":[{"name":"openAiApi","required":true}],"properties":[{"displayName":"Resource","name":"resource","type":"options","noDataExpression":true,"options":[{"name":"Text","value":"text","builderHint":{"propertyHint":"For text generation, reasoning and tools, use AI Agent with OpenAI Chat Model instead of this resource."}},{"name":"Image","value":"image"},{"name":"Audio","value":"audio"},{"name":"File","value":"file"},{"name":"Conversation","value":"conversation"},{"name":"Video","value":"video"}],"default":"text"},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Generate Audio","value":"generate","action":"Generate audio","description":"Creates audio from a text prompt"},{"name":"Transcribe a Recording","value":"transcribe","action":"Transcribe a recording","description":"Transcribes audio into text"},{"name":"Translate a Recording","value":"translate","action":"Translate a recording","description":"Translates audio into text in English"}],"default":"generate","displayOptions":{"show":{"resource":["audio"]}}},{"displayName":"OpenAI API limits the size of the audio file to 25 MB","name":"fileSizeLimitNotice","type":"notice","default":" ","displayOptions":{"show":{"resource":["audio"],"operation":["translate","transcribe"]}}},{"displayName":"Model","name":"model","type":"options","default":"tts-1","options":[{"name":"TTS-1","value":"tts-1"},{"name":"TTS-1-HD","value":"tts-1-hd"}],"displayOptions":{"show":{"operation":["generate"],"resource":["audio"]}}},{"displayName":"Text Input","name":"input","type":"string","placeholder":"e.g. The quick brown fox jumped over the lazy dog","description":"The text to generate audio for. The maximum length is 4096 characters.","default":"","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["generate"],"resource":["audio"]}}},{"displayName":"Voice","name":"voice","type":"options","default":"alloy","description":"The voice to use when generating the audio","options":[{"name":"Alloy","value":"alloy"},{"name":"Echo","value":"echo"},{"name":"Fable","value":"fable"},{"name":"Nova","value":"nova"},{"name":"Onyx","value":"onyx"},{"name":"Shimmer","value":"shimmer"}],"displayOptions":{"show":{"operation":["generate"],"resource":["audio"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Response Format","name":"response_format","type":"options","default":"mp3","options":[{"name":"MP3","value":"mp3"},{"name":"OPUS","value":"opus"},{"name":"AAC","value":"aac"},{"name":"FLAC","value":"flac"}]},{"displayName":"Audio Speed","name":"speed","type":"number","default":1,"typeOptions":{"minValue":0.25,"maxValue":4,"numberPrecision":1}},{"displayName":"Put Output in Field","name":"binaryPropertyOutput","type":"string","default":"data","hint":"The name of the output field to put the binary file data in"}],"displayOptions":{"show":{"operation":["generate"],"resource":["audio"]}}},{"displayName":"Input Data Field Name","name":"binaryPropertyName","type":"string","default":"data","placeholder":"e.g. data","hint":"The name of the input field containing the binary file data to be processed","description":"Name of the binary property which contains the audio file in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm","displayOptions":{"show":{"operation":["transcribe"],"resource":["audio"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Language of the Audio File","name":"language","type":"string","description":"The language of the input audio. Supplying the input language in <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes\" target=\"_blank\">ISO-639-1</a> format will improve accuracy and latency.","default":""},{"displayName":"Output Randomness (Temperature)","name":"temperature","type":"number","default":0,"typeOptions":{"minValue":0,"maxValue":1,"numberPrecision":1}}],"displayOptions":{"show":{"operation":["transcribe"],"resource":["audio"]}}},{"displayName":"Input Data Field Name","name":"binaryPropertyName","type":"string","default":"data","hint":"The name of the input field containing the binary file data to be processed","placeholder":"e.g. data","description":"Name of the binary property which contains the audio file in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm","displayOptions":{"show":{"operation":["translate"],"resource":["audio"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Output Randomness (Temperature)","name":"temperature","type":"number","default":0,"typeOptions":{"minValue":0,"maxValue":1,"numberPrecision":1}}],"displayOptions":{"show":{"operation":["translate"],"resource":["audio"]}}},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Delete a File","value":"deleteFile","action":"Delete a file","description":"Delete a file from the server"},{"name":"List Files","value":"list","action":"List files","description":"Returns a list of files that belong to the user's organization"},{"name":"Upload a File","value":"upload","action":"Upload a file","description":"Upload a file that can be used across various endpoints"}],"default":"upload","displayOptions":{"show":{"resource":["file"]}}},{"displayName":"Input Data Field Name","name":"binaryPropertyName","type":"string","default":"data","hint":"The name of the input field containing the binary file data to be processed","placeholder":"e.g. data","description":"Name of the binary property which contains the file. The size of individual files can be a maximum of 512 MB or 2 million tokens for Assistants.","displayOptions":{"show":{"operation":["upload"],"resource":["file"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Purpose","name":"purpose","type":"options","default":"user_data","description":"The intended purpose of the uploaded file, the 'Fine-tuning' only supports .jsonl files","options":[{"name":"Assistants","value":"assistants"},{"name":"Fine-Tune","value":"fine-tune"},{"name":"Vision","value":"vision"},{"name":"User Data","value":"user_data"}]}],"displayOptions":{"show":{"operation":["upload"],"resource":["file"]}}},{"displayName":"File","name":"fileId","type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"fileSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","validation":[{"type":"regex","properties":{"regex":"file-[a-zA-Z0-9]","errorMessage":"Not a valid File ID"}}],"placeholder":"e.g. file-1234567890"}],"displayOptions":{"show":{"operation":["deleteFile"],"resource":["file"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Purpose","name":"purpose","type":"options","default":"any","description":"Only return files with the given purpose","options":[{"name":"Any [Default]","value":"any"},{"name":"Assistants","value":"assistants"},{"name":"Fine-Tune","value":"fine-tune"},{"name":"Vision","value":"vision"},{"name":"User Data","value":"user_data"}]}],"displayOptions":{"show":{"operation":["list"],"resource":["file"]}}},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Analyze Image","value":"analyze","action":"Analyze image","description":"Take in images and answer questions about them"},{"name":"Generate an Image","value":"generate","action":"Generate an image","description":"Creates an image from a text prompt"},{"name":"Edit Image","value":"edit","action":"Edit image","description":"Edit an image"}],"default":"generate","displayOptions":{"show":{"resource":["image"]}}},{"displayName":"Model","name":"model","type":"options","default":"dall-e-3","description":"The model to use for image generation","options":[{"name":"DALL·E 2","value":"dall-e-2"},{"name":"DALL·E 3","value":"dall-e-3"},{"name":"GPT Image 1","value":"gpt-image-1"}],"displayOptions":{"show":{"@version":[{"_cnd":{"lt":2.2}}],"operation":["generate"],"resource":["image"]}}},{"displayName":"Model","name":"modelId","builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"type":"resourceLocator","default":{"mode":"list","value":"gpt-image-1-mini"},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"imageGenerateModelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. gpt-4"}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":2.2}}],"operation":["generate"],"resource":["image"]}}},{"displayName":"Prompt","name":"prompt","type":"string","placeholder":"e.g. A cute cat eating a dinosaur","description":"A text description of the desired image(s). The maximum length is 1000 characters for dall-e-2 and 4000 characters for dall-e-3.","default":"","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["generate"],"resource":["image"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"displayOptions":{"show":{"@version":[{"_cnd":{"lt":2.2}}],"operation":["generate"],"resource":["image"]}},"options":[{"displayName":"Number of Images","name":"n","default":1,"description":"Number of images to generate","type":"number","typeOptions":{"minValue":1,"maxValue":10},"displayOptions":{"show":{"/model":["dall-e-2"]}}},{"displayName":"Quality","name":"dalleQuality","type":"options","description":"The quality of the image that will be generated, HD creates images with finer details and greater consistency across the image","options":[{"name":"HD","value":"hd"},{"name":"Standard","value":"standard"}],"displayOptions":{"show":{"/model":["dall-e-3"]}},"default":"standard"},{"displayName":"Quality","name":"quality","type":"options","description":"The quality of the image that will be generated, High creates images with finer details and greater consistency across the image","options":[{"name":"High","value":"high"},{"name":"Medium","value":"medium"},{"name":"Low","value":"low"}],"displayOptions":{"show":{"/model":[{"_cnd":{"includes":"gpt-image"}}]}},"default":"medium"},{"displayName":"Resolution","name":"size","type":"options","options":[{"name":"256x256","value":"256x256"},{"name":"512x512","value":"512x512"},{"name":"1024x1024","value":"1024x1024"}],"displayOptions":{"show":{"/model":["dall-e-2"]}},"default":"1024x1024"},{"displayName":"Resolution","name":"size","type":"options","options":[{"name":"1024x1024","value":"1024x1024"},{"name":"1792x1024","value":"1792x1024"},{"name":"1024x1792","value":"1024x1792"}],"displayOptions":{"show":{"/model":["dall-e-3"]}},"default":"1024x1024"},{"displayName":"Resolution","name":"size","type":"options","options":[{"name":"1024x1024","value":"1024x1024"},{"name":"1024x1536","value":"1024x1536"},{"name":"1536x1024","value":"1536x1024"}],"displayOptions":{"show":{"/model":[{"_cnd":{"includes":"gpt-image"}}]}},"default":"1024x1024"},{"displayName":"Style","name":"style","type":"options","options":[{"name":"Natural","value":"natural","description":"Produce more natural looking images"},{"name":"Vivid","value":"vivid","description":"Lean towards generating hyper-real and dramatic images"}],"displayOptions":{"show":{"/model":["dall-e-3"]}},"default":"vivid"},{"displayName":"Respond with Image URL(s)","name":"returnImageUrls","type":"boolean","default":false,"description":"Whether to return image URL(s) instead of binary file(s)","displayOptions":{"hide":{"/model":[{"_cnd":{"includes":"gpt-image"}}]}}},{"displayName":"Put Output in Field","name":"binaryPropertyOutput","type":"string","default":"data","hint":"The name of the output field to put the binary file data in","displayOptions":{"show":{"returnImageUrls":[false]}}}]},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"displayOptions":{"show":{"@version":[{"_cnd":{"gte":2.2}}],"operation":["generate"],"resource":["image"]}},"options":[{"displayName":"Number of Images","name":"n","default":1,"description":"Number of images to generate","type":"number","typeOptions":{"minValue":1,"maxValue":10},"displayOptions":{"show":{"/modelId":["dall-e-2"]}}},{"displayName":"Quality","name":"dalleQuality","type":"options","description":"The quality of the image that will be generated, HD creates images with finer details and greater consistency across the image","options":[{"name":"HD","value":"hd"},{"name":"Standard","value":"standard"}],"displayOptions":{"show":{"/modelId":["dall-e-3"]}},"default":"standard"},{"displayName":"Quality","name":"quality","type":"options","description":"The quality of the image that will be generated, High creates images with finer details and greater consistency across the image","options":[{"name":"High","value":"high"},{"name":"Medium","value":"medium"},{"name":"Low","value":"low"}],"displayOptions":{"show":{"/modelId":[{"_cnd":{"includes":"gpt-image"}}]}},"default":"medium"},{"displayName":"Resolution","name":"size","type":"options","options":[{"name":"256x256","value":"256x256"},{"name":"512x512","value":"512x512"},{"name":"1024x1024","value":"1024x1024"}],"displayOptions":{"show":{"/modelId":["dall-e-2"]}},"default":"1024x1024"},{"displayName":"Resolution","name":"size","type":"options","options":[{"name":"1024x1024","value":"1024x1024"},{"name":"1792x1024","value":"1792x1024"},{"name":"1024x1792","value":"1024x1792"}],"displayOptions":{"show":{"/modelId":["dall-e-3"]}},"default":"1024x1024"},{"displayName":"Resolution","name":"size","type":"options","options":[{"name":"1024x1024","value":"1024x1024"},{"name":"1024x1536","value":"1024x1536"},{"name":"1536x1024","value":"1536x1024"}],"displayOptions":{"show":{"/modelId":[{"_cnd":{"includes":"gpt-image"}}]}},"default":"1024x1024"},{"displayName":"Style","name":"style","type":"options","options":[{"name":"Natural","value":"natural","description":"Produce more natural looking images"},{"name":"Vivid","value":"vivid","description":"Lean towards generating hyper-real and dramatic images"}],"displayOptions":{"show":{"/modelId":["dall-e-3"]}},"default":"vivid"},{"displayName":"Respond with Image URL(s)","name":"returnImageUrls","type":"boolean","default":false,"description":"Whether to return image URL(s) instead of binary file(s)","displayOptions":{"hide":{"/modelId":[{"_cnd":{"includes":"gpt-image"}}]}}},{"displayName":"Put Output in Field","name":"binaryPropertyOutput","type":"string","default":"data","hint":"The name of the output field to put the binary file data in","displayOptions":{"show":{"returnImageUrls":[false]}}}]},{"displayName":"Model","name":"modelId","builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"imageModelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. gpt-4"}],"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Text Input","name":"text","type":"string","placeholder":"e.g. What's in this image?","default":"What's in this image?","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Input Type","name":"inputType","type":"options","default":"url","options":[{"name":"Image URL(s)","value":"url"},{"name":"Binary File(s)","value":"base64"}],"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"URL(s)","name":"imageUrls","type":"string","placeholder":"e.g. https://example.com/image.jpeg","description":"URL(s) of the image(s) to analyze, multiple URLs can be added separated by comma","default":"","displayOptions":{"show":{"inputType":["url"],"operation":["analyze"],"resource":["image"]}}},{"displayName":"Input Data Field Name","name":"binaryPropertyName","type":"string","default":"data","placeholder":"e.g. data","hint":"The name of the input field containing the binary file data to be processed","description":"Name of the binary property which contains the image(s)","displayOptions":{"show":{"inputType":["base64"],"operation":["analyze"],"resource":["image"]}}},{"displayName":"Simplify Output","name":"simplify","type":"boolean","default":true,"description":"Whether to simplify the response or not","displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Detail","name":"detail","type":"options","default":"auto","options":[{"name":"Auto","value":"auto","description":"Model will look at the image input size and decide if it should use the low or high setting"},{"name":"Low","value":"low","description":"Return faster responses and consume fewer tokens"},{"name":"High","value":"high","description":"Return more detailed responses, consumes more tokens"}]},{"displayName":"Length of Description (Max Tokens)","description":"Fewer tokens will result in shorter, less detailed image description","name":"maxTokens","type":"number","default":300,"typeOptions":{"minValue":1}}],"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Model","name":"model","type":"options","default":"gpt-image-1","description":"The model to use for image generation","options":[{"name":"DALL·E 2","value":"dall-e-2"},{"name":"GPT Image 1","value":"gpt-image-1"}],"displayOptions":{"show":{"@version":[{"_cnd":{"lt":2.3}}],"operation":["edit"],"resource":["image"]}}},{"displayName":"Model","name":"modelId","builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"type":"resourceLocator","default":{"mode":"list","value":"gpt-image-1"},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"imageGenerateModelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. gpt-4"}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":2.3}}],"operation":["edit"],"resource":["image"]}}},{"displayName":"Prompt","name":"prompt","type":"string","required":true,"default":"","description":"A text description of the desired image(s). Maximum 1000 characters for dall-e-2, 32000 characters for gpt-image-1.","placeholder":"A beautiful sunset over mountains","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["edit"],"resource":["image"]}}},{"displayName":"Images","name":"images","type":"fixedCollection","placeholder":"Add Image","typeOptions":{"multipleValues":true,"multipleValueButtonText":"Add Image"},"default":{"values":[{"binaryPropertyName":"data"}]},"description":"Add one or more binary fields to include images with your prompt. Each image should be a png, webp, or jpg file less than 50MB. You can provide up to 16 images.","displayOptions":{"show":{"/model":["gpt-image-1"],"operation":["edit"],"resource":["image"]}},"options":[{"displayName":"Image","name":"values","values":[{"displayName":"Binary Field Name","name":"binaryPropertyName","type":"string","default":"data","placeholder":"e.g. data","description":"The name of the binary field containing the image data"}]}]},{"displayName":"Images","name":"images","type":"fixedCollection","placeholder":"Add Image","typeOptions":{"multipleValues":true,"multipleValueButtonText":"Add Image"},"default":{"values":[{"binaryPropertyName":"data"}]},"description":"Add one or more binary fields to include images with your prompt. Each image should be a png, webp, or jpg file less than 50MB. You can provide up to 16 images.","displayOptions":{"show":{"/modelId":[{"_cnd":{"includes":"gpt-image"}}],"operation":["edit"],"resource":["image"]}},"options":[{"displayName":"Image","name":"values","values":[{"displayName":"Binary Field Name","name":"binaryPropertyName","type":"string","default":"data","placeholder":"e.g. data","description":"The name of the binary field containing the image data"}]}]},{"displayName":"Binary Field Name","name":"binaryPropertyName","type":"string","default":"data","placeholder":"e.g. data","hint":"The name of the input field containing the binary file data to be processed","description":"Name of the binary property which contains the image. It should be a square png file less than 4MB.","displayOptions":{"show":{"/model":["dall-e-2"],"operation":["edit"],"resource":["image"]}}},{"displayName":"Binary Field Name","name":"binaryPropertyName","type":"string","default":"data","placeholder":"e.g. data","hint":"The name of the input field containing the binary file data to be processed","description":"Name of the binary property which contains the image. It should be a square png file less than 4MB.","displayOptions":{"show":{"/modelId":[{"_cnd":{"includes":"dall-e"}}],"operation":["edit"],"resource":["image"]}}},{"displayName":"Number of Images","name":"n","type":"number","default":1,"description":"The number of images to generate. Must be between 1 and 10.","typeOptions":{"minValue":1,"maxValue":10},"displayOptions":{"show":{"operation":["edit"],"resource":["image"]}}},{"displayName":"Size","name":"size","type":"options","default":"1024x1024","description":"The size of the generated images","options":[{"name":"256x256","value":"256x256"},{"name":"512x512","value":"512x512"},{"name":"1024x1024","value":"1024x1024"},{"name":"1024x1536 (Portrait)","value":"1024x1536"},{"name":"1536x1024 (Landscape)","value":"1536x1024"},{"name":"Auto","value":"auto"}],"displayOptions":{"show":{"operation":["edit"],"resource":["image"]}}},{"displayName":"Quality","name":"quality","type":"options","default":"auto","description":"The quality of the image that will be generated","options":[{"name":"Auto","value":"auto"},{"name":"High","value":"high"},{"name":"Medium","value":"medium"},{"name":"Low","value":"low"},{"name":"Standard","value":"standard"}],"displayOptions":{"show":{"/model":["gpt-image-1"],"operation":["edit"],"resource":["image"]}}},{"displayName":"Quality","name":"quality","type":"options","default":"auto","description":"The quality of the image that will be generated","options":[{"name":"Auto","value":"auto"},{"name":"High","value":"high"},{"name":"Medium","value":"medium"},{"name":"Low","value":"low"},{"name":"Standard","value":"standard"}],"displayOptions":{"show":{"/modelId":[{"_cnd":{"includes":"gpt-image"}}],"operation":["edit"],"resource":["image"]}}},{"displayName":"Response Format","name":"responseFormat","type":"options","default":"url","description":"The format in which the generated images are returned. URLs are only valid for 60 minutes after generation.","options":[{"name":"URL","value":"url"},{"name":"Base64 JSON","value":"b64_json"}],"displayOptions":{"show":{"/model":["dall-e-2"],"operation":["edit"],"resource":["image"]}}},{"displayName":"Response Format","name":"responseFormat","type":"options","default":"url","description":"The format in which the generated images are returned. URLs are only valid for 60 minutes after generation.","options":[{"name":"URL","value":"url"},{"name":"Base64 JSON","value":"b64_json"}],"displayOptions":{"show":{"/modelId":[{"_cnd":{"includes":"dall-e"}}],"operation":["edit"],"resource":["image"]}}},{"displayName":"Output Format","name":"outputFormat","type":"options","default":"png","description":"The format in which the generated images are returned. Only supported for gpt-image-1.","options":[{"name":"PNG","value":"png"},{"name":"JPEG","value":"jpeg"},{"name":"WebP","value":"webp"}],"displayOptions":{"show":{"/model":["gpt-image-1"],"operation":["edit"],"resource":["image"]}}},{"displayName":"Output Format","name":"outputFormat","type":"options","default":"png","description":"The format in which the generated images are returned. Only supported for gpt-image-1.","options":[{"name":"PNG","value":"png"},{"name":"JPEG","value":"jpeg"},{"name":"WebP","value":"webp"}],"displayOptions":{"show":{"/modelId":[{"_cnd":{"includes":"gpt-image"}}],"operation":["edit"],"resource":["image"]}}},{"displayName":"Output Compression","name":"outputCompression","type":"number","default":100,"description":"The compression level (0-100%) for the generated images. Only supported for gpt-image-1 with webp or jpeg output formats.","typeOptions":{"minValue":0,"maxValue":100},"displayOptions":{"show":{"/model":["gpt-image-1"],"outputFormat":["webp","jpeg"],"operation":["edit"],"resource":["image"]}}},{"displayName":"Output Compression","name":"outputCompression","type":"number","default":100,"description":"The compression level (0-100%) for the generated images. Only supported for gpt-image-1 with webp or jpeg output formats.","typeOptions":{"minValue":0,"maxValue":100},"displayOptions":{"show":{"/modelId":[{"_cnd":{"includes":"gpt-image"}}],"outputFormat":["webp","jpeg"],"operation":["edit"],"resource":["image"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"displayOptions":{"show":{"@version":[{"_cnd":{"lt":2.3}}],"operation":["edit"],"resource":["image"]}},"options":[{"displayName":"User","name":"user","type":"string","default":"","description":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse","placeholder":"user-12345"},{"displayName":"Background","name":"background","type":"options","default":"auto","description":"Allows to set transparency for the background of the generated image(s). Only supported for gpt-image-1.","options":[{"name":"Auto","value":"auto"},{"name":"Transparent","value":"transparent"},{"name":"Opaque","value":"opaque"}],"displayOptions":{"show":{"/model":["gpt-image-1"]}}},{"displayName":"Input Fidelity","name":"inputFidelity","type":"options","default":"low","description":"Control how much effort the model will exert to match the style and features of input images. Only supported for gpt-image-1.","options":[{"name":"Low","value":"low"},{"name":"High","value":"high"}],"displayOptions":{"show":{"/model":["gpt-image-1"]}}},{"displayName":"Image Mask","name":"imageMask","type":"string","default":"data","hint":"The name of the input field containing the binary file data to be processed","description":"Name of the binary property which contains the image. An additional image whose fully transparent areas (e.g. where alpha is zero) indicate where image should be edited. If there are multiple images provided, the mask will be applied on the first image. Must be a valid PNG file, less than 4MB, and have the same dimensions as image."}]},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"displayOptions":{"show":{"@version":[{"_cnd":{"gte":2.3}}],"operation":["edit"],"resource":["image"]}},"options":[{"displayName":"User","name":"user","type":"string","default":"","description":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse","placeholder":"user-12345"},{"displayName":"Background","name":"background","type":"options","default":"auto","description":"Allows to set transparency for the background of the generated image(s). Only supported for gpt-image-1.","options":[{"name":"Auto","value":"auto"},{"name":"Transparent","value":"transparent"},{"name":"Opaque","value":"opaque"}],"displayOptions":{"show":{"/modelId":[{"_cnd":{"includes":"gpt-image"}}]}}},{"displayName":"Input Fidelity","name":"inputFidelity","type":"options","default":"low","description":"Control how much effort the model will exert to match the style and features of input images. Only supported for gpt-image-1.","options":[{"name":"Low","value":"low"},{"name":"High","value":"high"}],"displayOptions":{"show":{"/modelId":[{"_cnd":{"includes":"gpt-image"}}]}}},{"displayName":"Image Mask","name":"imageMask","type":"string","default":"data","hint":"The name of the input field containing the binary file data to be processed","description":"Name of the binary property which contains the image. An additional image whose fully transparent areas (e.g. where alpha is zero) indicate where image should be edited. If there are multiple images provided, the mask will be applied on the first image. Must be a valid PNG file, less than 4MB, and have the same dimensions as image."}]},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Message a Model","value":"response","action":"Message a model","description":"Generate a model response with GPT 3, 4, 5, etc. using Responses API","builderHint":{"propertyHint":"Use operation: 'response' for text generation. Do NOT use 'message' — that v1 value is invalid on v2 and fails validation."}},{"name":"Classify Text for Violations","value":"classify","action":"Classify text for violations","description":"Check whether content complies with usage policies"}],"default":"response","displayOptions":{"show":{"resource":["text"]}}},{"displayName":"Text Input","name":"input","type":"string","placeholder":"e.g. Sample text goes here","description":"The input text to classify if it is violates the moderation policy","default":"","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["classify"],"resource":["text"]}}},{"displayName":"Simplify Output","name":"simplify","type":"boolean","default":false,"description":"Whether to return a simplified version of the response instead of the raw data","displayOptions":{"show":{"operation":["classify"],"resource":["text"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Use Stable Model","name":"useStableModel","type":"boolean","default":false,"description":"Whether to use the stable version of the model instead of the latest version, accuracy may be slightly lower"}],"displayOptions":{"show":{"@version":[{"_cnd":{"lt":2.1}}],"operation":["classify"],"resource":["text"]}}},{"displayName":"Model","name":"modelId","builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"modelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. gpt-4"}],"displayOptions":{"show":{"operation":["response"],"resource":["text"]}}},{"displayName":"Messages","name":"responses","type":"fixedCollection","typeOptions":{"sortable":true,"multipleValues":true},"placeholder":"Add Message","default":{"values":[{"type":"text"}]},"options":[{"displayName":"Message","name":"values","values":[{"displayName":"Type","name":"type","type":"options","default":"text","options":[{"name":"Text","value":"text"},{"name":"Image","value":"image"},{"name":"File","value":"file"}]},{"displayName":"Role","name":"role","type":"options","description":"Role in shaping the model's response, it tells the model how it should behave and interact with the user","options":[{"name":"User","value":"user","description":"Send a message as a user and get a response from the model"},{"name":"Assistant","value":"assistant","description":"Tell the model to adopt a specific tone or personality"},{"name":"System","value":"system","description":"Usually used to set the model's behavior or context for the next user message"}],"default":"user"},{"displayName":"Prompt","name":"content","type":"string","description":"The content of the message to be send","default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["text"]}}},{"displayName":"Image Type","name":"imageType","type":"options","default":"url","options":[{"name":"Image URL","value":"url"},{"name":"File ID","value":"fileId"},{"name":"File Data","value":"base64"}],"displayOptions":{"show":{"type":["image"]}}},{"displayName":"Image URL","name":"imageUrl","type":"string","default":"","placeholder":"e.g. https://example.com/image.jpeg","description":"URL of the image to be sent","displayOptions":{"show":{"type":["image"],"imageType":["url"]}}},{"displayName":"Image Data","name":"binaryPropertyName","type":"string","default":"data","placeholder":"e.g. data","hint":"The name of the input field containing the binary file data to be processed","description":"Name of the binary property which contains the image(s)","displayOptions":{"show":{"type":["image"],"imageType":["base64"]}}},{"displayName":"File ID","name":"fileId","type":"string","default":"","description":"ID of the file to be sent","displayOptions":{"show":{"type":["image"],"imageType":["fileId"]}}},{"displayName":"Detail","name":"imageDetail","type":"options","default":"auto","description":"The detail level of the image to be sent to the model","options":[{"name":"Auto","value":"auto"},{"name":"Low","value":"low"},{"name":"High","value":"high"}],"displayOptions":{"show":{"type":["image"]}}},{"displayName":"File Type","name":"fileType","type":"options","default":"url","options":[{"name":"File URL","value":"url"},{"name":"File ID","value":"fileId"},{"name":"File Data","value":"base64"}],"displayOptions":{"show":{"type":["file"]}}},{"displayName":"File URL","name":"fileUrl","type":"string","default":"","placeholder":"e.g. https://example.com/file.pdf","description":"URL of the file to be sent. Accepts base64 encoded files as well.","displayOptions":{"show":{"type":["file"],"fileType":["url"]}}},{"displayName":"File ID","name":"fileId","type":"string","default":"","description":"ID of the file to be sent","displayOptions":{"show":{"type":["file"],"fileType":["fileId"]}}},{"displayName":"File Data","name":"binaryPropertyName","type":"string","default":"data","placeholder":"e.g. data","hint":"The name of the input field containing the binary file data to be processed","description":"Name of the binary property which contains the file","displayOptions":{"show":{"type":["file"],"fileType":["base64"]}}},{"displayName":"File Name","name":"fileName","type":"string","default":"","required":true,"displayOptions":{"show":{"type":["file"],"fileType":["base64"]}}}]}],"displayOptions":{"show":{"operation":["response"],"resource":["text"]}}},{"displayName":"Simplify Output","name":"simplify","type":"boolean","default":true,"description":"Whether to return a simplified version of the response instead of the raw data","displayOptions":{"show":{"operation":["response"],"resource":["text"]}}},{"displayName":"Hide Tools","name":"hideTools","type":"hidden","default":"hide","displayOptions":{"show":{"modelId":["gpt-3.5-turbo-16k-0613","dall-e-3","text-embedding-3-large","dall-e-2","whisper-1","tts-1-hd-1106","tts-1-hd","gpt-4-0314","text-embedding-3-small","gpt-4-32k-0314","gpt-3.5-turbo-0301","gpt-4-vision-preview","gpt-3.5-turbo-16k","gpt-3.5-turbo-instruct-0914","tts-1","davinci-002","gpt-3.5-turbo-instruct","babbage-002","tts-1-1106","text-embedding-ada-002"],"operation":["response"],"resource":["text"]}}},{"displayName":"Connect your own custom n8n tools to this node on the canvas","name":"noticeTools","type":"notice","default":"","displayOptions":{"hide":{"hideTools":["hide"]},"show":{"operation":["response"],"resource":["text"]}}},{"displayName":"Built-in Tools","name":"builtInTools","placeholder":"Add Built-in Tool","type":"collection","default":{},"options":[{"displayName":"Web Search","name":"webSearch","type":"collection","default":{"searchContextSize":"medium"},"options":[{"displayName":"Search Context Size","description":"High level guidance for the amount of context window space to use for the search","name":"searchContextSize","type":"options","default":"medium","options":[{"name":"Low","value":"low"},{"name":"Medium","value":"medium"},{"name":"High","value":"high"}]},{"displayName":"Web Search Allowed Domains","name":"allowedDomains","type":"string","default":"","description":"Comma-separated list of domains to search. Only domains in this list will be searched.","placeholder":"e.g. google.com, wikipedia.org"},{"displayName":"Country","name":"country","type":"string","default":"","placeholder":"e.g. US, GB"},{"displayName":"City","name":"city","type":"string","default":"","placeholder":"e.g. New York, London"},{"displayName":"Region","name":"region","type":"string","default":"","placeholder":"e.g. New York, London"}]},{"displayName":"File Search","name":"fileSearch","type":"collection","default":{"vectorStoreIds":"[]"},"options":[{"displayName":"Vector Store IDs","name":"vectorStoreIds","description":"The vector store IDs to use for the file search. Vector stores are managed via OpenAI Dashboard.","type":"json","default":"[]","required":true},{"displayName":"Filters","name":"filters","type":"json","default":"{}"},{"displayName":"Max Results","name":"maxResults","type":"number","default":1,"typeOptions":{"minValue":1,"maxValue":50}}]},{"displayName":"Code Interpreter","name":"codeInterpreter","type":"boolean","default":true,"description":"Whether to allow the model to execute code in a sandboxed environment"}],"displayOptions":{"show":{"operation":["response"],"resource":["text"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Conversation ID","name":"conversationId","default":"","description":"The conversation that this response belongs to. Input items and output items from this response are automatically added to this conversation after this response completes.","type":"string"},{"displayName":"Include Additional Data","name":"include","default":[],"type":"multiOptions","description":"Specify additional output data to include in the model response","options":[{"name":"Code Interpreter Call Outputs","value":"code_interpreter_call.outputs"},{"name":"Computer Call Output Image URL","value":"computer_call_output.output.image_url"},{"name":"File Search Call Results","value":"file_search_call.results"},{"name":"Message Input Image URL","value":"message.input_image.image_url"},{"name":"Message Output Text Logprobs","value":"message.output_text.logprobs"},{"name":"Reasoning Encrypted Content","value":"reasoning.encrypted_content"},{"name":"Web Search Tool Call Sources","value":"web_search_call.action.sources"}]},{"displayName":"Instructions","name":"instructions","type":"string","default":"","description":"Instructions for the model to follow","typeOptions":{"rows":2}},{"displayName":"Maximum Number of Tokens","name":"maxTokens","default":16,"description":"The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768).","type":"number","typeOptions":{"maxValue":32768}},{"displayName":"Max Tool Calls Iterations","name":"maxToolsIterations","type":"number","default":15,"description":"The maximum number of tool iteration cycles the LLM will run before stopping. A single iteration can contain multiple tool calls. Set to 0 for no limit."},{"displayName":"Max Built-in Tool Calls","name":"maxToolCalls","type":"number","default":15,"description":"The maximum number of total calls to built-in tools that can be processed in a response. This maximum number applies across all built-in tool calls, not per individual tool. Any further attempts to call a tool by the model will be ignored."},{"displayName":"Metadata","name":"metadata","type":"json","description":"Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.","default":"{}"},{"displayName":"Parallel Tool Calls","name":"parallelToolCalls","type":"boolean","default":false,"description":"Whether to allow parallel tool calls. If true, the model can call multiple tools at once."},{"displayName":"Previous Response ID","name":"previousResponseId","type":"string","default":"","description":"The ID of the previous response to continue from. Cannot be used in conjunction with Conversation ID."},{"displayName":"Prompt","name":"promptConfig","type":"fixedCollection","description":"Configure the reusable prompt template configured via OpenAI Dashboard. <a href=\"https://platform.openai.com/docs/guides/prompt-engineering#reusable-prompts\">Learn more</a>.","default":{"promptOptions":[{"promptId":""}]},"options":[{"displayName":"Prompt","name":"promptOptions","values":[{"displayName":"Prompt ID","name":"promptId","type":"string","default":"","description":"The unique identifier of the prompt template to use"},{"displayName":"Version","name":"version","type":"string","default":"","description":"Optional version of the prompt template"},{"displayName":"Variables","name":"variables","type":"json","default":"{}","description":"Variables to be substituted into the prompt template"}]}]},{"displayName":"Prompt Cache Key","name":"promptCacheKey","type":"string","default":"","description":"Used by OpenAI to cache responses for similar requests to optimize your cache hit rates"},{"displayName":"Reasoning","name":"reasoning","type":"fixedCollection","default":{"reasoningOptions":[{"effort":"medium","summary":"none"}]},"options":[{"displayName":"Reasoning","name":"reasoningOptions","values":[{"displayName":"Effort","name":"effort","type":"options","default":"medium","options":[{"name":"Low","value":"low"},{"name":"Medium","value":"medium"},{"name":"High","value":"high"}]},{"displayName":"Summary","name":"summary","type":"options","default":"auto","description":"A summary of the reasoning performed by the model. This can be useful for debugging and understanding the model's reasoning process.","options":[{"name":"None","value":"none"},{"name":"Auto","value":"auto"},{"name":"Concise","value":"concise"},{"name":"Detailed","value":"detailed"}]}]}]},{"displayName":"Safety Identifier","name":"safetyIdentifier","type":"string","default":"","description":"A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. The IDs should be a string that uniquely identifies each user."},{"displayName":"Service Tier","name":"serviceTier","type":"options","default":"auto","description":"The service tier to use for the request","options":[{"name":"Auto","value":"auto"},{"name":"Flex","value":"flex"},{"name":"Default","value":"default"},{"name":"Priority","value":"priority"}]},{"displayName":"Store","name":"store","type":"boolean","default":true,"description":"Whether to store the generated model response for later retrieval via API"},{"displayName":"Output Format","name":"textFormat","type":"fixedCollection","default":{"textOptions":[{"type":"text"}]},"options":[{"displayName":"Text","name":"textOptions","values":[{"displayName":"Type","name":"type","type":"options","default":"","options":[{"name":"Text","value":"text"},{"name":"JSON Schema (recommended)","value":"json_schema"},{"name":"JSON Object","value":"json_object"}]},{"displayName":"Verbosity","name":"verbosity","type":"options","default":"medium","options":[{"name":"Low","value":"low"},{"name":"Medium","value":"medium"},{"name":"High","value":"high"}]},{"displayName":"Name","name":"name","type":"string","default":"my_schema","description":"The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.","displayOptions":{"show":{"type":["json_schema"]}}},{"displayName":"All properties in the schema must be set to \"required\", when using \"strict\" mode.","name":"requiredNotice","type":"notice","default":"","displayOptions":{"show":{"strict":[true]}}},{"displayName":"Schema","name":"schema","type":"json","default":"{\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false,\n \"required\": [\"message\"]\n}","description":"The schema of the response format","displayOptions":{"show":{"type":["json_schema"]}}},{"displayName":"Description","name":"description","type":"string","default":"","description":"The description of the response format","displayOptions":{"show":{"type":["json_schema"]}}},{"displayName":"Strict","name":"strict","type":"boolean","default":false,"description":"Whether to require that the AI will always generate responses that match the provided JSON Schema","displayOptions":{"show":{"type":["json_schema"]}}}]}]},{"displayName":"Top Logprobs","name":"topLogprobs","type":"number","default":0,"description":"An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability","typeOptions":{"minValue":0,"maxValue":20}},{"displayName":"Output Randomness (Temperature)","name":"temperature","type":"number","default":1,"description":"What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. We generally recommend altering this or top_p but not both","typeOptions":{"minValue":0,"maxValue":2,"numberPrecision":1}},{"displayName":"Output Randomness (Top P)","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"An alternative to sampling with temperature, controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Truncation","name":"truncation","type":"boolean","default":false,"description":"Whether to truncate the input to the model's context window size. When disabled will throw a 400 error instead."},{"displayName":"Background Mode","name":"backgroundMode","type":"fixedCollection","default":{"values":[{"backgroundMode":true}]},"options":[{"displayName":"Bakground","name":"values","values":[{"displayName":"Background Mode","name":"enabled","type":"boolean","default":false,"description":"Whether to run the model in background mode. If true, the model will run in background mode."},{"displayName":"Timeout","name":"timeout","type":"number","default":300,"description":"The timeout for the background mode in seconds. If 0, the timeout is infinite.","typeOptions":{"minValue":0,"maxValue":3600}}]}]}],"displayOptions":{"show":{"operation":["response"],"resource":["text"]}}},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Create","value":"create","action":"Create a conversation","description":"Create a conversation"},{"name":"Get","value":"get","action":"Get a conversation","description":"Get a conversation"},{"name":"Remove","value":"remove","action":"Remove a conversation","description":"Remove a conversation"},{"name":"Update","value":"update","action":"Update a conversation","description":"Update a conversation"}],"default":"create","displayOptions":{"show":{"resource":["conversation"]}}},{"displayName":"Messages","name":"messages","type":"fixedCollection","typeOptions":{"sortable":true,"multipleValues":true},"placeholder":"Add Message","default":{"values":[{"type":"text"}]},"options":[{"displayName":"Message","name":"values","values":[{"displayName":"Role","name":"role","type":"options","description":"Role in shaping the model's response, it tells the model how it should behave and interact with the user","options":[{"name":"User","value":"user","description":"Send a message as a user and get a response from the model"},{"name":"Assistant","value":"assistant","description":"Tell the model to adopt a specific tone or personality"},{"name":"System","value":"system","description":"Usually used to set the model's behavior or context for the next user message"}],"default":"user"},{"displayName":"Prompt","name":"content","type":"string","description":"The content of the message to be send","default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2},"displayOptions":{}}]}],"displayOptions":{"show":{"operation":["create"],"resource":["conversation"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Metadata","name":"metadata","type":"json","description":"Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.","default":"{}"}],"displayOptions":{"show":{"operation":["create"],"resource":["conversation"]}}},{"displayName":"Conversation ID","name":"conversationId","type":"string","default":"","placeholder":"conv_1234567890","description":"The ID of the conversation to delete","required":true,"displayOptions":{"show":{"operation":["remove"],"resource":["conversation"]}}},{"displayName":"Conversation ID","name":"conversationId","type":"string","default":"","placeholder":"conv_1234567890","description":"The ID of the conversation to update","required":true,"displayOptions":{"show":{"operation":["update"],"resource":["conversation"]}}},{"displayName":"Metadata","name":"metadata","type":"json","description":"Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.","default":"{}","required":true,"displayOptions":{"show":{"operation":["update"],"resource":["conversation"]}}},{"displayName":"Conversation ID","name":"conversationId","type":"string","default":"","placeholder":"conv_1234567890","description":"The ID of the conversation to retrieve","required":true,"displayOptions":{"show":{"operation":["get"],"resource":["conversation"]}}},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Generate","value":"generate","action":"Generate a video","description":"Creates a video from a text prompt"}],"default":"generate","displayOptions":{"show":{"resource":["video"]}}},{"displayName":"Model","name":"modelId","builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"videoModelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. gpt-4"}],"displayOptions":{"show":{"operation":["generate"],"resource":["video"]}}},{"displayName":"Prompt","name":"prompt","type":"string","default":"A video of a cat playing with a ball","description":"The prompt to generate a video from","required":true,"typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["generate"],"resource":["video"]}}},{"displayName":"Seconds","name":"seconds","type":"number","default":4,"description":"Clip duration in seconds","required":true,"displayOptions":{"show":{"operation":["generate"],"resource":["video"]}}},{"displayName":"Size","name":"size","type":"options","default":"1280x720","description":"Output resolution formatted as width x height. 1024x1792 and 1792x1024 are only supported by Sora 2 Pro.","options":[{"name":"720x1280","value":"720x1280"},{"name":"1280x720","value":"1280x720"},{"name":"1024x1792","value":"1024x1792"},{"name":"1792x1024","value":"1792x1024"}],"displayOptions":{"show":{"operation":["generate"],"resource":["video"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Reference","description":"Optional image reference that guides generation","name":"binaryPropertyNameReference","type":"string","default":"data","placeholder":"e.g. data"},{"displayName":"Wait Timeout","name":"waitTime","type":"number","default":300,"description":"Time to wait for the video to be generated in seconds","typeOptions":{"minValue":5,"maxValue":7200}},{"displayName":"Output Field Name","name":"fileName","type":"string","default":"data","hint":"The name of the output field to put the binary file data in"}],"displayOptions":{"show":{"operation":["generate"],"resource":["video"]}}}],"iconUrl":{"light":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vendors/OpenAi/openAi.svg","dark":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vendors/OpenAi/openAi.dark.svg"}},
|
|
9
|
-
{"displayName":"OpenAI","name":"openAi","group":["transform"],"defaultVersion":2.3,"subtitle":"={{((resource, operation) => {\n if (operation === 'deleteAssistant') {\n return 'Delete Assistant';\n }\n if (operation === 'deleteFile') {\n return 'Delete File';\n }\n if (operation === 'classify') {\n return 'Classify Text';\n }\n if (operation === 'message' && resource === 'text') {\n return 'Message Model';\n }\n const capitalize = (str) => {\n const chars = str.split('');\n chars[0] = chars[0].toUpperCase();\n return chars.join('');\n };\n if (['transcribe', 'translate'].includes(operation)) {\n resource = 'recording';\n }\n if (operation === 'list') {\n resource = resource + 's';\n }\n return `${capitalize(operation)} ${capitalize(resource)}`;\n})($parameter.resource, $parameter.operation)}}","description":"Message an assistant or GPT, analyze images, generate audio, etc.","codex":{"alias":["LangChain","ChatGPT","Sora","DallE","whisper","audio","transcribe","tts","assistant"],"categories":["AI"],"subcategories":{"AI":["Agents","Miscellaneous","Root Nodes"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.openai/"}]}},"builderHint":{"searchHint":"For text generation, reasoning and tools, use AI Agent with OpenAI Chat Model. This OpenAI node is for specialized operations: image generation (DALL-E), audio (Whisper, TTS), and video generation (Sora).","relatedNodes":[{"nodeType":"@n8n/n8n-nodes-langchain.agent","relationHint":"Prefer for most LLM tasks"},{"nodeType":"@n8n/n8n-nodes-langchain.lmChatOpenAi","relationHint":"Prefer for most LLM tasks"}]},"version":[1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8],"defaults":{"name":"OpenAI"},"inputs":"={{((resource, operation, hideTools, memory) => {\n if (resource === 'assistant' && operation === 'message') {\n const inputs = [\n { type: 'main' },\n { type: 'ai_tool', displayName: 'Tools' },\n ];\n if (memory !== 'threadId') {\n inputs.push({ type: 'ai_memory', displayName: 'Memory', maxConnections: 1 });\n }\n return inputs;\n }\n if (resource === 'text' && (operation === 'message' || operation === 'response')) {\n if (hideTools === 'hide') {\n return ['main'];\n }\n return [{ type: 'main' }, { type: 'ai_tool', displayName: 'Tools' }];\n }\n return ['main'];\n})($parameter.resource, $parameter.operation, $parameter.hideTools, $parameter.memory ?? undefined)}}","outputs":["main"],"credentials":[{"name":"openAiApi","required":true}],"properties":[{"displayName":"Resource","name":"resource","type":"options","noDataExpression":true,"options":[{"name":"Assistant","value":"assistant"},{"name":"Text","value":"text"},{"name":"Image","value":"image"},{"name":"Audio","value":"audio"},{"name":"File","value":"file"}],"default":"text"},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Create an Assistant","value":"create","action":"Create an assistant","description":"Create a new assistant"},{"name":"Delete an Assistant","value":"deleteAssistant","action":"Delete an assistant","description":"Delete an assistant from the account"},{"name":"List Assistants","value":"list","action":"List assistants","description":"List assistants in the organization"},{"name":"Message an Assistant","value":"message","action":"Message an assistant","description":"Send messages to an assistant"},{"name":"Update an Assistant","value":"update","action":"Update an assistant","description":"Update an existing assistant"}],"default":"message","displayOptions":{"show":{"resource":["assistant"]}}},{"displayName":"Model","name":"modelId","builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"modelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. gpt-4"}],"displayOptions":{"show":{"operation":["create"],"resource":["assistant"]}}},{"displayName":"Name","name":"name","type":"string","default":"","description":"The name of the assistant. The maximum length is 256 characters.","placeholder":"e.g. My Assistant","required":true,"displayOptions":{"show":{"operation":["create"],"resource":["assistant"]}}},{"displayName":"Description","name":"description","type":"string","default":"","description":"The description of the assistant. The maximum length is 512 characters.","placeholder":"e.g. My personal assistant","displayOptions":{"show":{"operation":["create"],"resource":["assistant"]}}},{"displayName":"Instructions","name":"instructions","type":"string","description":"The system instructions that the assistant uses. The maximum length is 32768 characters.","default":"","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["create"],"resource":["assistant"]}}},{"displayName":"Code Interpreter","name":"codeInterpreter","type":"boolean","default":false,"description":"Whether to enable the code interpreter that allows the assistants to write and run Python code in a sandboxed execution environment, find more <a href=\"https://platform.openai.com/docs/assistants/tools/code-interpreter\" target=\"_blank\">here</a>","displayOptions":{"show":{"operation":["create"],"resource":["assistant"]}}},{"displayName":"Knowledge Retrieval","name":"knowledgeRetrieval","type":"boolean","default":false,"description":"Whether to augments the assistant with knowledge from outside its model, such as proprietary product information or documents, find more <a href=\"https://platform.openai.com/docs/assistants/tools/knowledge-retrieval\" target=\"_blank\">here</a>","displayOptions":{"show":{"operation":["create"],"resource":["assistant"]}}},{"displayName":"Files","name":"file_ids","type":"multiOptions","description":"The files to be used by the assistant, there can be a maximum of 20 files attached to the assistant. You can use expression to pass file IDs as an array or comma-separated string.","typeOptions":{"loadOptionsMethod":"getFiles"},"default":[],"hint":"Add more files by using the 'Upload a File' operation","displayOptions":{"show":{"codeInterpreter":[true],"operation":["create"],"resource":["assistant"]},"hide":{"knowledgeRetrieval":[true]}}},{"displayName":"Files","name":"file_ids","type":"multiOptions","description":"The files to be used by the assistant, there can be a maximum of 20 files attached to the assistant","typeOptions":{"loadOptionsMethod":"getFiles"},"default":[],"hint":"Add more files by using the 'Upload a File' operation","displayOptions":{"show":{"knowledgeRetrieval":[true],"operation":["create"],"resource":["assistant"]},"hide":{"codeInterpreter":[true]}}},{"displayName":"Files","name":"file_ids","type":"multiOptions","description":"The files to be used by the assistant, there can be a maximum of 20 files attached to the assistant","typeOptions":{"loadOptionsMethod":"getFiles"},"default":[],"hint":"Add more files by using the 'Upload a File' operation","displayOptions":{"show":{"knowledgeRetrieval":[true],"codeInterpreter":[true],"operation":["create"],"resource":["assistant"]}}},{"displayName":"Add custom n8n tools when you <i>message</i> your assistant (rather than when creating it)","name":"noticeTools","type":"notice","default":"","displayOptions":{"show":{"operation":["create"],"resource":["assistant"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Output Randomness (Temperature)","name":"temperature","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Output Randomness (Top P)","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"An alternative to sampling with temperature, controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Fail if Assistant Already Exists","name":"failIfExists","type":"boolean","default":false,"description":"Whether to fail an operation if the assistant with the same name already exists"}],"displayOptions":{"show":{"operation":["create"],"resource":["assistant"]}}},{"displayName":"Assistant","name":"assistantId","type":"resourceLocator","description":"Assistant to respond to the message. You can add, modify or remove assistants in the <a href=\"https://platform.openai.com/playground?mode=assistant\" target=\"_blank\">playground</a>.","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"assistantSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. asst_abc123"}],"displayOptions":{"show":{"operation":["deleteAssistant"],"resource":["assistant"]}}},{"displayName":"Assistant","name":"assistantId","type":"resourceLocator","description":"Assistant to respond to the message. You can add, modify or remove assistants in the <a href=\"https://platform.openai.com/playground?mode=assistant\" target=\"_blank\">playground</a>.","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"assistantSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. asst_abc123"}],"displayOptions":{"show":{"operation":["message"],"resource":["assistant"]}}},{"displayName":"Source for Prompt (User Message)","name":"prompt","type":"options","options":[{"name":"Connected Chat Trigger Node","value":"auto","description":"Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"},{"name":"Connected Guardrails Node","value":"guardrails","description":"Looks for an input field called 'guardrailsInput' that is coming from a directly connected Guardrails Node"},{"name":"Define below","value":"define","description":"Use an expression to reference data in previous nodes or enter static text"}],"default":"auto","displayOptions":{"show":{"operation":["message"],"resource":["assistant"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2},"displayOptions":{"show":{"prompt":["define"],"operation":["message"],"resource":["assistant"]}}},{"displayName":"Memory","name":"memory","type":"options","options":[{"name":"Use memory connector","value":"connector","description":"Connect one of the supported memory nodes"},{"name":"Use thread ID","value":"threadId","description":"Specify the ID of the thread to continue"}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.6}}],"operation":["message"],"resource":["assistant"]}},"default":"connector"},{"displayName":"Thread ID","name":"threadId","type":"string","default":"","placeholder":"","description":"The ID of the thread to continue, a new thread will be created if not specified","hint":"If the thread ID is empty or undefined a new thread will be created and included in the response","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.6}}],"memory":["threadId"],"operation":["message"],"resource":["assistant"]}}},{"displayName":"Connect your own custom n8n tools to this node on the canvas","name":"noticeTools","type":"notice","default":"","displayOptions":{"show":{"operation":["message"],"resource":["assistant"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Base URL","name":"baseURL","default":"https://api.openai.com/v1","description":"Override the default base URL for the API","type":"string","displayOptions":{"hide":{"@version":[{"_cnd":{"gte":1.8}}]}}},{"displayName":"Max Retries","name":"maxRetries","default":2,"description":"Maximum number of retries to attempt","type":"number"},{"displayName":"Timeout","name":"timeout","default":10000,"description":"Maximum amount of time a request is allowed to take in milliseconds","type":"number"},{"displayName":"Preserve Original Tools","name":"preserveOriginalTools","type":"boolean","default":true,"description":"Whether to preserve the original tools of the assistant after the execution of this node, otherwise the tools will be replaced with the connected tools, if any, default is true","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}]}}}],"displayOptions":{"show":{"operation":["message"],"resource":["assistant"]}}},{"displayName":"Simplify Output","name":"simplify","type":"boolean","default":true,"description":"Whether to return a simplified version of the response instead of the raw data","displayOptions":{"show":{"operation":["list"],"resource":["assistant"]}}},{"displayName":"Assistant","name":"assistantId","type":"resourceLocator","description":"Assistant to respond to the message. You can add, modify or remove assistants in the <a href=\"https://platform.openai.com/playground?mode=assistant\" target=\"_blank\">playground</a>.","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"assistantSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. asst_abc123"}],"displayOptions":{"show":{"operation":["update"],"resource":["assistant"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Code Interpreter","name":"codeInterpreter","type":"boolean","default":false,"description":"Whether to enable the code interpreter that allows the assistants to write and run Python code in a sandboxed execution environment, find more <a href=\"https://platform.openai.com/docs/assistants/tools/code-interpreter\" target=\"_blank\">here</a>"},{"displayName":"Description","name":"description","type":"string","default":"","description":"The description of the assistant. The maximum length is 512 characters.","placeholder":"e.g. My personal assistant"},{"displayName":"Files","name":"file_ids","type":"multiOptions","description":"The files to be used by the assistant, there can be a maximum of 20 files attached to the assistant. You can use expression to pass file IDs as an array or comma-separated string.","typeOptions":{"loadOptionsMethod":"getFiles"},"default":[],"hint":"Add more files by using the 'Upload a File' operation, any existing files not selected here will be removed."},{"displayName":"Instructions","name":"instructions","type":"string","description":"The system instructions that the assistant uses. The maximum length is 32768 characters.","default":"","typeOptions":{"rows":2}},{"displayName":"Knowledge Retrieval","name":"knowledgeRetrieval","type":"boolean","default":false,"description":"Whether to augments the assistant with knowledge from outside its model, such as proprietary product information or documents, find more <a href=\"https://platform.openai.com/docs/assistants/tools/knowledge-retrieval\" target=\"_blank\">here</a>"},{"displayName":"Model","name":"modelId","builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"type":"resourceLocator","default":{"mode":"list","value":""},"required":false,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"modelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. gpt-4"}]},{"displayName":"Name","name":"name","type":"string","default":"","description":"The name of the assistant. The maximum length is 256 characters.","placeholder":"e.g. My Assistant"},{"displayName":"Remove All Custom Tools (Functions)","name":"removeCustomTools","type":"boolean","default":false,"description":"Whether to remove all custom tools (functions) from the assistant"},{"displayName":"Output Randomness (Temperature)","name":"temperature","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Output Randomness (Top P)","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"An alternative to sampling with temperature, controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"}],"displayOptions":{"show":{"operation":["update"],"resource":["assistant"]}}},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Generate Audio","value":"generate","action":"Generate audio","description":"Creates audio from a text prompt"},{"name":"Transcribe a Recording","value":"transcribe","action":"Transcribe a recording","description":"Transcribes audio into text"},{"name":"Translate a Recording","value":"translate","action":"Translate a recording","description":"Translates audio into text in English"}],"default":"generate","displayOptions":{"show":{"resource":["audio"]}}},{"displayName":"OpenAI API limits the size of the audio file to 25 MB","name":"fileSizeLimitNotice","type":"notice","default":" ","displayOptions":{"show":{"resource":["audio"],"operation":["translate","transcribe"]}}},{"displayName":"Model","name":"model","type":"options","default":"tts-1","options":[{"name":"TTS-1","value":"tts-1"},{"name":"TTS-1-HD","value":"tts-1-hd"}],"displayOptions":{"show":{"operation":["generate"],"resource":["audio"]}}},{"displayName":"Text Input","name":"input","type":"string","placeholder":"e.g. The quick brown fox jumped over the lazy dog","description":"The text to generate audio for. The maximum length is 4096 characters.","default":"","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["generate"],"resource":["audio"]}}},{"displayName":"Voice","name":"voice","type":"options","default":"alloy","description":"The voice to use when generating the audio","options":[{"name":"Alloy","value":"alloy"},{"name":"Echo","value":"echo"},{"name":"Fable","value":"fable"},{"name":"Nova","value":"nova"},{"name":"Onyx","value":"onyx"},{"name":"Shimmer","value":"shimmer"}],"displayOptions":{"show":{"operation":["generate"],"resource":["audio"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Response Format","name":"response_format","type":"options","default":"mp3","options":[{"name":"MP3","value":"mp3"},{"name":"OPUS","value":"opus"},{"name":"AAC","value":"aac"},{"name":"FLAC","value":"flac"}]},{"displayName":"Audio Speed","name":"speed","type":"number","default":1,"typeOptions":{"minValue":0.25,"maxValue":4,"numberPrecision":1}},{"displayName":"Put Output in Field","name":"binaryPropertyOutput","type":"string","default":"data","hint":"The name of the output field to put the binary file data in"}],"displayOptions":{"show":{"operation":["generate"],"resource":["audio"]}}},{"displayName":"Input Data Field Name","name":"binaryPropertyName","type":"string","default":"data","placeholder":"e.g. data","hint":"The name of the input field containing the binary file data to be processed","description":"Name of the binary property which contains the audio file in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm","displayOptions":{"show":{"operation":["transcribe"],"resource":["audio"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Language of the Audio File","name":"language","type":"string","description":"The language of the input audio. Supplying the input language in <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes\" target=\"_blank\">ISO-639-1</a> format will improve accuracy and latency.","default":""},{"displayName":"Output Randomness (Temperature)","name":"temperature","type":"number","default":0,"typeOptions":{"minValue":0,"maxValue":1,"numberPrecision":1}}],"displayOptions":{"show":{"operation":["transcribe"],"resource":["audio"]}}},{"displayName":"Input Data Field Name","name":"binaryPropertyName","type":"string","default":"data","hint":"The name of the input field containing the binary file data to be processed","placeholder":"e.g. data","description":"Name of the binary property which contains the audio file in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm","displayOptions":{"show":{"operation":["translate"],"resource":["audio"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Output Randomness (Temperature)","name":"temperature","type":"number","default":0,"typeOptions":{"minValue":0,"maxValue":1,"numberPrecision":1}}],"displayOptions":{"show":{"operation":["translate"],"resource":["audio"]}}},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Delete a File","value":"deleteFile","action":"Delete a file","description":"Delete a file from the server"},{"name":"List Files","value":"list","action":"List files","description":"Returns a list of files that belong to the user's organization"},{"name":"Upload a File","value":"upload","action":"Upload a file","description":"Upload a file that can be used across various endpoints"}],"default":"upload","displayOptions":{"show":{"resource":["file"]}}},{"displayName":"Input Data Field Name","name":"binaryPropertyName","type":"string","default":"data","hint":"The name of the input field containing the binary file data to be processed","placeholder":"e.g. data","description":"Name of the binary property which contains the file. The size of individual files can be a maximum of 512 MB or 2 million tokens for Assistants.","displayOptions":{"show":{"operation":["upload"],"resource":["file"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Purpose","name":"purpose","type":"options","default":"assistants","description":"The intended purpose of the uploaded file, the 'Fine-tuning' only supports .jsonl files","options":[{"name":"Assistants","value":"assistants"},{"name":"Fine-Tune","value":"fine-tune"}]}],"displayOptions":{"show":{"operation":["upload"],"resource":["file"]}}},{"displayName":"File","name":"fileId","type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"fileSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","validation":[{"type":"regex","properties":{"regex":"file-[a-zA-Z0-9]","errorMessage":"Not a valid File ID"}}],"placeholder":"e.g. file-1234567890"}],"displayOptions":{"show":{"operation":["deleteFile"],"resource":["file"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Purpose","name":"purpose","type":"options","default":"any","description":"Only return files with the given purpose","options":[{"name":"Any [Default]","value":"any"},{"name":"Assistants","value":"assistants"},{"name":"Fine-Tune","value":"fine-tune"}]}],"displayOptions":{"show":{"operation":["list"],"resource":["file"]}}},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Analyze Image","value":"analyze","action":"Analyze image","description":"Take in images and answer questions about them"},{"name":"Generate an Image","value":"generate","action":"Generate an image","description":"Creates an image from a text prompt"}],"default":"generate","displayOptions":{"show":{"resource":["image"]}}},{"displayName":"Model","name":"model","type":"options","default":"dall-e-3","description":"The model to use for image generation","options":[{"name":"DALL·E 2","value":"dall-e-2"},{"name":"DALL·E 3","value":"dall-e-3"},{"name":"GPT Image 1","value":"gpt-image-1"}],"displayOptions":{"show":{"operation":["generate"],"resource":["image"]}}},{"displayName":"Prompt","name":"prompt","type":"string","placeholder":"e.g. A cute cat eating a dinosaur","description":"A text description of the desired image(s). The maximum length is 1000 characters for dall-e-2 and 4000 characters for dall-e-3.","default":"","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["generate"],"resource":["image"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Number of Images","name":"n","default":1,"description":"Number of images to generate","type":"number","typeOptions":{"minValue":1,"maxValue":10},"displayOptions":{"show":{"/model":["dall-e-2"]}}},{"displayName":"Quality","name":"dalleQuality","type":"options","description":"The quality of the image that will be generated, HD creates images with finer details and greater consistency across the image","options":[{"name":"HD","value":"hd"},{"name":"Standard","value":"standard"}],"displayOptions":{"show":{"/model":["dall-e-3"]}},"default":"standard"},{"displayName":"Quality","name":"quality","type":"options","description":"The quality of the image that will be generated, High creates images with finer details and greater consistency across the image","options":[{"name":"High","value":"high"},{"name":"Medium","value":"medium"},{"name":"Low","value":"low"}],"displayOptions":{"show":{"/model":["gpt-image-1"]}},"default":"medium"},{"displayName":"Resolution","name":"size","type":"options","options":[{"name":"256x256","value":"256x256"},{"name":"512x512","value":"512x512"},{"name":"1024x1024","value":"1024x1024"}],"displayOptions":{"show":{"/model":["dall-e-2"]}},"default":"1024x1024"},{"displayName":"Resolution","name":"size","type":"options","options":[{"name":"1024x1024","value":"1024x1024"},{"name":"1792x1024","value":"1792x1024"},{"name":"1024x1792","value":"1024x1792"}],"displayOptions":{"show":{"/model":["dall-e-3"]}},"default":"1024x1024"},{"displayName":"Resolution","name":"size","type":"options","options":[{"name":"1024x1024","value":"1024x1024"},{"name":"1024x1536","value":"1024x1536"},{"name":"1536x1024","value":"1536x1024"}],"displayOptions":{"show":{"/model":["gpt-image-1"]}},"default":"1024x1024"},{"displayName":"Style","name":"style","type":"options","options":[{"name":"Natural","value":"natural","description":"Produce more natural looking images"},{"name":"Vivid","value":"vivid","description":"Lean towards generating hyper-real and dramatic images"}],"displayOptions":{"show":{"/model":["dall-e-3"]}},"default":"vivid"},{"displayName":"Respond with Image URL(s)","name":"returnImageUrls","type":"boolean","default":false,"description":"Whether to return image URL(s) instead of binary file(s)","displayOptions":{"hide":{"/model":["gpt-image-1"]}}},{"displayName":"Put Output in Field","name":"binaryPropertyOutput","type":"string","default":"data","hint":"The name of the output field to put the binary file data in","displayOptions":{"show":{"returnImageUrls":[false]}}}],"displayOptions":{"show":{"operation":["generate"],"resource":["image"]}}},{"displayName":"Model","name":"modelId","builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"imageModelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. gpt-4"}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.4}}],"operation":["analyze"],"resource":["image"]}}},{"displayName":"Text Input","name":"text","type":"string","placeholder":"e.g. What's in this image?","default":"What's in this image?","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Input Type","name":"inputType","type":"options","default":"url","options":[{"name":"Image URL(s)","value":"url"},{"name":"Binary File(s)","value":"base64"}],"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"URL(s)","name":"imageUrls","type":"string","placeholder":"e.g. https://example.com/image.jpeg","description":"URL(s) of the image(s) to analyze, multiple URLs can be added separated by comma","default":"","displayOptions":{"show":{"inputType":["url"],"operation":["analyze"],"resource":["image"]}}},{"displayName":"Input Data Field Name","name":"binaryPropertyName","type":"string","default":"data","placeholder":"e.g. data","hint":"The name of the input field containing the binary file data to be processed","description":"Name of the binary property which contains the image(s)","displayOptions":{"show":{"inputType":["base64"],"operation":["analyze"],"resource":["image"]}}},{"displayName":"Simplify Output","name":"simplify","type":"boolean","default":true,"description":"Whether to simplify the response or not","displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Detail","name":"detail","type":"options","default":"auto","options":[{"name":"Auto","value":"auto","description":"Model will look at the image input size and decide if it should use the low or high setting"},{"name":"Low","value":"low","description":"Return faster responses and consume fewer tokens"},{"name":"High","value":"high","description":"Return more detailed responses, consumes more tokens"}]},{"displayName":"Length of Description (Max Tokens)","description":"Fewer tokens will result in shorter, less detailed image description","name":"maxTokens","type":"number","default":300,"typeOptions":{"minValue":1}}],"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Message a Model","value":"message","action":"Message a model","description":"Create a completion with GPT 3, 4, etc."},{"name":"Classify Text for Violations","value":"classify","action":"Classify text for violations","description":"Check whether content complies with usage policies"}],"default":"message","displayOptions":{"show":{"resource":["text"]}}},{"displayName":"Text Input","name":"input","type":"string","placeholder":"e.g. Sample text goes here","description":"The input text to classify if it is violates the moderation policy","default":"","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["classify"],"resource":["text"]}}},{"displayName":"Simplify Output","name":"simplify","type":"boolean","default":false,"description":"Whether to return a simplified version of the response instead of the raw data","displayOptions":{"show":{"operation":["classify"],"resource":["text"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Use Stable Model","name":"useStableModel","type":"boolean","default":false,"description":"Whether to use the stable version of the model instead of the latest version, accuracy may be slightly lower"}],"displayOptions":{"show":{"operation":["classify"],"resource":["text"]}}},{"displayName":"Model","name":"modelId","builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"modelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. gpt-4"}],"displayOptions":{"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Messages","name":"messages","type":"fixedCollection","typeOptions":{"sortable":true,"multipleValues":true},"placeholder":"Add Message","default":{"values":[{"content":""}]},"options":[{"displayName":"Values","name":"values","values":[{"displayName":"Prompt","name":"content","type":"string","description":"The content of the message to be send","default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2}},{"displayName":"Role","name":"role","type":"options","description":"Role in shaping the model's response, it tells the model how it should behave and interact with the user","options":[{"name":"User","value":"user","description":"Send a message as a user and get a response from the model"},{"name":"Assistant","value":"assistant","description":"Tell the model to adopt a specific tone or personality"},{"name":"System","value":"system","description":"Usually used to set the model's behavior or context for the next user message"}],"default":"user"}]}],"displayOptions":{"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Simplify Output","name":"simplify","type":"boolean","default":true,"description":"Whether to return a simplified version of the response instead of the raw data","displayOptions":{"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Output Content as JSON","name":"jsonOutput","type":"boolean","description":"Whether to attempt to return the response in JSON format. Compatible with GPT-4 Turbo and all GPT-3.5 Turbo models newer than gpt-3.5-turbo-1106.","default":false,"displayOptions":{"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Hide Tools","name":"hideTools","type":"hidden","default":"hide","displayOptions":{"show":{"modelId":["gpt-3.5-turbo-16k-0613","dall-e-3","text-embedding-3-large","dall-e-2","whisper-1","tts-1-hd-1106","tts-1-hd","gpt-4-0314","text-embedding-3-small","gpt-4-32k-0314","gpt-3.5-turbo-0301","gpt-4-vision-preview","gpt-3.5-turbo-16k","gpt-3.5-turbo-instruct-0914","tts-1","davinci-002","gpt-3.5-turbo-instruct","babbage-002","tts-1-1106","text-embedding-ada-002"],"@version":[{"_cnd":{"gte":1.2}}],"operation":["message"],"resource":["text"]}}},{"displayName":"Connect your own custom n8n tools to this node on the canvas","name":"noticeTools","type":"notice","default":"","displayOptions":{"hide":{"hideTools":["hide"]},"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Frequency Penalty","name":"frequency_penalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim","type":"number"},{"displayName":"Maximum Number of Tokens","name":"maxTokens","default":16,"description":"The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768).","type":"number","typeOptions":{"maxValue":32768}},{"displayName":"Number of Completions","name":"n","default":1,"description":"How many completions to generate for each prompt. Note: Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for max_tokens and stop.","type":"number"},{"displayName":"Presence Penalty","name":"presence_penalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics","type":"number"},{"displayName":"Output Randomness (Temperature)","name":"temperature","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Output Randomness (Top P)","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"An alternative to sampling with temperature, controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Reasoning Effort","name":"reasoning_effort","default":"medium","description":"Controls the amount of reasoning tokens to use. A value of \"low\" will favor speed and economical token usage, \"high\" will favor more complete reasoning at the cost of more tokens generated and slower responses.","type":"options","options":[{"name":"Low","value":"low","description":"Favors speed and economical token usage"},{"name":"Medium","value":"medium","description":"Balance between speed and reasoning accuracy"},{"name":"High","value":"high","description":"Favors more complete reasoning at the cost of more tokens generated and slower responses"}],"displayOptions":{"show":{"/modelId":[{"_cnd":{"regex":"(^o1([-\\d]+)?$)|(^o[3-9].*)|(^gpt-5.*)"}}]}}},{"displayName":"Max Tool Calls Iterations","name":"maxToolsIterations","type":"number","default":15,"description":"The maximum number of tool iteration cycles the LLM will run before stopping. A single iteration can contain multiple tool calls. Set to 0 for no limit.","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.5}}]}}}],"displayOptions":{"show":{"operation":["message"],"resource":["text"]}}}],"iconUrl":{"light":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vendors/OpenAi/openAi.svg","dark":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vendors/OpenAi/openAi.dark.svg"}},
|
|
9
|
+
{"displayName":"OpenAI","name":"openAi","group":["transform"],"defaultVersion":2.3,"subtitle":"={{((resource, operation) => {\n if (operation === 'deleteAssistant') {\n return 'Delete Assistant';\n }\n if (operation === 'deleteFile') {\n return 'Delete File';\n }\n if (operation === 'classify') {\n return 'Classify Text';\n }\n if (operation === 'message' && resource === 'text') {\n return 'Message Model';\n }\n const capitalize = (str) => {\n const chars = str.split('');\n chars[0] = chars[0].toUpperCase();\n return chars.join('');\n };\n if (['transcribe', 'translate'].includes(operation)) {\n resource = 'recording';\n }\n if (operation === 'list') {\n resource = resource + 's';\n }\n return `${capitalize(operation)} ${capitalize(resource)}`;\n})($parameter.resource, $parameter.operation)}}","description":"Message an assistant or GPT, analyze images, generate audio, etc.","codex":{"alias":["LangChain","ChatGPT","Sora","DallE","whisper","audio","transcribe","tts","assistant"],"categories":["AI"],"subcategories":{"AI":["Agents","Miscellaneous","Root Nodes"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.openai/"}]}},"builderHint":{"searchHint":"For text generation, reasoning and tools, use AI Agent with OpenAI Chat Model. This OpenAI node is for specialized operations: image generation (DALL-E), audio (Whisper, TTS), and video generation (Sora).","relatedNodes":[{"nodeType":"@n8n/n8n-nodes-langchain.agent","relationHint":"Prefer for most LLM tasks"},{"nodeType":"@n8n/n8n-nodes-langchain.lmChatOpenAi","relationHint":"Prefer for most LLM tasks"}]},"version":[1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8],"defaults":{"name":"OpenAI"},"inputs":"={{((resource, operation, hideTools, memory) => {\n if (resource === 'assistant' && operation === 'message') {\n const inputs = [\n { type: 'main' },\n { type: 'ai_tool', displayName: 'Tools' },\n ];\n if (memory !== 'threadId') {\n inputs.push({ type: 'ai_memory', displayName: 'Memory', maxConnections: 1 });\n }\n return inputs;\n }\n if (resource === 'text' && (operation === 'message' || operation === 'response')) {\n if (hideTools === 'hide') {\n return ['main'];\n }\n return [{ type: 'main' }, { type: 'ai_tool', displayName: 'Tools' }];\n }\n return ['main'];\n})($parameter.resource, $parameter.operation, $parameter.hideTools, $parameter.memory ?? undefined)}}","outputs":["main"],"credentials":[{"name":"openAiApi","required":true}],"properties":[{"displayName":"Resource","name":"resource","type":"options","noDataExpression":true,"options":[{"name":"Assistant","value":"assistant"},{"name":"Text","value":"text"},{"name":"Image","value":"image"},{"name":"Audio","value":"audio"},{"name":"File","value":"file"}],"default":"text"},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Create an Assistant","value":"create","action":"Create an assistant","description":"Create a new assistant"},{"name":"Delete an Assistant","value":"deleteAssistant","action":"Delete an assistant","description":"Delete an assistant from the account"},{"name":"List Assistants","value":"list","action":"List assistants","description":"List assistants in the organization"},{"name":"Message an Assistant","value":"message","action":"Message an assistant","description":"Send messages to an assistant"},{"name":"Update an Assistant","value":"update","action":"Update an assistant","description":"Update an existing assistant"}],"default":"message","displayOptions":{"show":{"resource":["assistant"]}}},{"displayName":"Model","name":"modelId","builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"modelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. gpt-4"}],"displayOptions":{"show":{"operation":["create"],"resource":["assistant"]}}},{"displayName":"Name","name":"name","type":"string","default":"","description":"The name of the assistant. The maximum length is 256 characters.","placeholder":"e.g. My Assistant","required":true,"displayOptions":{"show":{"operation":["create"],"resource":["assistant"]}}},{"displayName":"Description","name":"description","type":"string","default":"","description":"The description of the assistant. The maximum length is 512 characters.","placeholder":"e.g. My personal assistant","displayOptions":{"show":{"operation":["create"],"resource":["assistant"]}}},{"displayName":"Instructions","name":"instructions","type":"string","description":"The system instructions that the assistant uses. The maximum length is 32768 characters.","default":"","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["create"],"resource":["assistant"]}}},{"displayName":"Code Interpreter","name":"codeInterpreter","type":"boolean","default":false,"description":"Whether to enable the code interpreter that allows the assistants to write and run Python code in a sandboxed execution environment, find more <a href=\"https://developers.openai.com/api/docs/guides/tools-code-interpreter\" target=\"_blank\">here</a>","displayOptions":{"show":{"operation":["create"],"resource":["assistant"]}}},{"displayName":"Knowledge Retrieval","name":"knowledgeRetrieval","type":"boolean","default":false,"description":"Whether to augments the assistant with knowledge from outside its model, such as proprietary product information or documents, find more <a href=\"https://developers.openai.com/api/docs/guides/tools-file-search\" target=\"_blank\">here</a>","displayOptions":{"show":{"operation":["create"],"resource":["assistant"]}}},{"displayName":"Files","name":"file_ids","type":"multiOptions","description":"The files to be used by the assistant, there can be a maximum of 20 files attached to the assistant. You can use expression to pass file IDs as an array or comma-separated string.","typeOptions":{"loadOptionsMethod":"getFiles"},"default":[],"hint":"Add more files by using the 'Upload a File' operation","displayOptions":{"show":{"codeInterpreter":[true],"operation":["create"],"resource":["assistant"]},"hide":{"knowledgeRetrieval":[true]}}},{"displayName":"Files","name":"file_ids","type":"multiOptions","description":"The files to be used by the assistant, there can be a maximum of 20 files attached to the assistant","typeOptions":{"loadOptionsMethod":"getFiles"},"default":[],"hint":"Add more files by using the 'Upload a File' operation","displayOptions":{"show":{"knowledgeRetrieval":[true],"operation":["create"],"resource":["assistant"]},"hide":{"codeInterpreter":[true]}}},{"displayName":"Files","name":"file_ids","type":"multiOptions","description":"The files to be used by the assistant, there can be a maximum of 20 files attached to the assistant","typeOptions":{"loadOptionsMethod":"getFiles"},"default":[],"hint":"Add more files by using the 'Upload a File' operation","displayOptions":{"show":{"knowledgeRetrieval":[true],"codeInterpreter":[true],"operation":["create"],"resource":["assistant"]}}},{"displayName":"Add custom n8n tools when you <i>message</i> your assistant (rather than when creating it)","name":"noticeTools","type":"notice","default":"","displayOptions":{"show":{"operation":["create"],"resource":["assistant"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Output Randomness (Temperature)","name":"temperature","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Output Randomness (Top P)","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"An alternative to sampling with temperature, controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Fail if Assistant Already Exists","name":"failIfExists","type":"boolean","default":false,"description":"Whether to fail an operation if the assistant with the same name already exists"}],"displayOptions":{"show":{"operation":["create"],"resource":["assistant"]}}},{"displayName":"Assistant","name":"assistantId","type":"resourceLocator","description":"Assistant to respond to the message. You can add, modify or remove assistants in the <a href=\"https://platform.openai.com/playground?mode=assistant\" target=\"_blank\">playground</a>.","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"assistantSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. asst_abc123"}],"displayOptions":{"show":{"operation":["deleteAssistant"],"resource":["assistant"]}}},{"displayName":"Assistant","name":"assistantId","type":"resourceLocator","description":"Assistant to respond to the message. You can add, modify or remove assistants in the <a href=\"https://platform.openai.com/playground?mode=assistant\" target=\"_blank\">playground</a>.","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"assistantSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. asst_abc123"}],"displayOptions":{"show":{"operation":["message"],"resource":["assistant"]}}},{"displayName":"Source for Prompt (User Message)","name":"prompt","type":"options","options":[{"name":"Connected Chat Trigger Node","value":"auto","description":"Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"},{"name":"Connected Guardrails Node","value":"guardrails","description":"Looks for an input field called 'guardrailsInput' that is coming from a directly connected Guardrails Node"},{"name":"Define below","value":"define","description":"Use an expression to reference data in previous nodes or enter static text"}],"default":"auto","displayOptions":{"show":{"operation":["message"],"resource":["assistant"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2},"displayOptions":{"show":{"prompt":["define"],"operation":["message"],"resource":["assistant"]}}},{"displayName":"Memory","name":"memory","type":"options","options":[{"name":"Use memory connector","value":"connector","description":"Connect one of the supported memory nodes"},{"name":"Use thread ID","value":"threadId","description":"Specify the ID of the thread to continue"}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.6}}],"operation":["message"],"resource":["assistant"]}},"default":"connector"},{"displayName":"Thread ID","name":"threadId","type":"string","default":"","placeholder":"","description":"The ID of the thread to continue, a new thread will be created if not specified","hint":"If the thread ID is empty or undefined a new thread will be created and included in the response","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.6}}],"memory":["threadId"],"operation":["message"],"resource":["assistant"]}}},{"displayName":"Connect your own custom n8n tools to this node on the canvas","name":"noticeTools","type":"notice","default":"","displayOptions":{"show":{"operation":["message"],"resource":["assistant"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Base URL","name":"baseURL","default":"https://api.openai.com/v1","description":"Override the default base URL for the API","type":"string","displayOptions":{"hide":{"@version":[{"_cnd":{"gte":1.8}}]}}},{"displayName":"Max Retries","name":"maxRetries","default":2,"description":"Maximum number of retries to attempt","type":"number"},{"displayName":"Timeout","name":"timeout","default":10000,"description":"Maximum amount of time a request is allowed to take in milliseconds","type":"number"},{"displayName":"Preserve Original Tools","name":"preserveOriginalTools","type":"boolean","default":true,"description":"Whether to preserve the original tools of the assistant after the execution of this node, otherwise the tools will be replaced with the connected tools, if any, default is true","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}]}}}],"displayOptions":{"show":{"operation":["message"],"resource":["assistant"]}}},{"displayName":"Simplify Output","name":"simplify","type":"boolean","default":true,"description":"Whether to return a simplified version of the response instead of the raw data","displayOptions":{"show":{"operation":["list"],"resource":["assistant"]}}},{"displayName":"Assistant","name":"assistantId","type":"resourceLocator","description":"Assistant to respond to the message. You can add, modify or remove assistants in the <a href=\"https://platform.openai.com/playground?mode=assistant\" target=\"_blank\">playground</a>.","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"assistantSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. asst_abc123"}],"displayOptions":{"show":{"operation":["update"],"resource":["assistant"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Code Interpreter","name":"codeInterpreter","type":"boolean","default":false,"description":"Whether to enable the code interpreter that allows the assistants to write and run Python code in a sandboxed execution environment, find more <a href=\"https://developers.openai.com/api/docs/guides/tools-code-interpreter\" target=\"_blank\">here</a>"},{"displayName":"Description","name":"description","type":"string","default":"","description":"The description of the assistant. The maximum length is 512 characters.","placeholder":"e.g. My personal assistant"},{"displayName":"Files","name":"file_ids","type":"multiOptions","description":"The files to be used by the assistant, there can be a maximum of 20 files attached to the assistant. You can use expression to pass file IDs as an array or comma-separated string.","typeOptions":{"loadOptionsMethod":"getFiles"},"default":[],"hint":"Add more files by using the 'Upload a File' operation, any existing files not selected here will be removed."},{"displayName":"Instructions","name":"instructions","type":"string","description":"The system instructions that the assistant uses. The maximum length is 32768 characters.","default":"","typeOptions":{"rows":2}},{"displayName":"Knowledge Retrieval","name":"knowledgeRetrieval","type":"boolean","default":false,"description":"Whether to augments the assistant with knowledge from outside its model, such as proprietary product information or documents, find more <a href=\"https://developers.openai.com/api/docs/guides/tools-file-search\" target=\"_blank\">here</a>"},{"displayName":"Model","name":"modelId","builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"type":"resourceLocator","default":{"mode":"list","value":""},"required":false,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"modelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. gpt-4"}]},{"displayName":"Name","name":"name","type":"string","default":"","description":"The name of the assistant. The maximum length is 256 characters.","placeholder":"e.g. My Assistant"},{"displayName":"Remove All Custom Tools (Functions)","name":"removeCustomTools","type":"boolean","default":false,"description":"Whether to remove all custom tools (functions) from the assistant"},{"displayName":"Output Randomness (Temperature)","name":"temperature","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Output Randomness (Top P)","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"An alternative to sampling with temperature, controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"}],"displayOptions":{"show":{"operation":["update"],"resource":["assistant"]}}},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Generate Audio","value":"generate","action":"Generate audio","description":"Creates audio from a text prompt"},{"name":"Transcribe a Recording","value":"transcribe","action":"Transcribe a recording","description":"Transcribes audio into text"},{"name":"Translate a Recording","value":"translate","action":"Translate a recording","description":"Translates audio into text in English"}],"default":"generate","displayOptions":{"show":{"resource":["audio"]}}},{"displayName":"OpenAI API limits the size of the audio file to 25 MB","name":"fileSizeLimitNotice","type":"notice","default":" ","displayOptions":{"show":{"resource":["audio"],"operation":["translate","transcribe"]}}},{"displayName":"Model","name":"model","type":"options","default":"tts-1","options":[{"name":"TTS-1","value":"tts-1"},{"name":"TTS-1-HD","value":"tts-1-hd"}],"displayOptions":{"show":{"operation":["generate"],"resource":["audio"]}}},{"displayName":"Text Input","name":"input","type":"string","placeholder":"e.g. The quick brown fox jumped over the lazy dog","description":"The text to generate audio for. The maximum length is 4096 characters.","default":"","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["generate"],"resource":["audio"]}}},{"displayName":"Voice","name":"voice","type":"options","default":"alloy","description":"The voice to use when generating the audio","options":[{"name":"Alloy","value":"alloy"},{"name":"Echo","value":"echo"},{"name":"Fable","value":"fable"},{"name":"Nova","value":"nova"},{"name":"Onyx","value":"onyx"},{"name":"Shimmer","value":"shimmer"}],"displayOptions":{"show":{"operation":["generate"],"resource":["audio"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Response Format","name":"response_format","type":"options","default":"mp3","options":[{"name":"MP3","value":"mp3"},{"name":"OPUS","value":"opus"},{"name":"AAC","value":"aac"},{"name":"FLAC","value":"flac"}]},{"displayName":"Audio Speed","name":"speed","type":"number","default":1,"typeOptions":{"minValue":0.25,"maxValue":4,"numberPrecision":1}},{"displayName":"Put Output in Field","name":"binaryPropertyOutput","type":"string","default":"data","hint":"The name of the output field to put the binary file data in"}],"displayOptions":{"show":{"operation":["generate"],"resource":["audio"]}}},{"displayName":"Input Data Field Name","name":"binaryPropertyName","type":"string","default":"data","placeholder":"e.g. data","hint":"The name of the input field containing the binary file data to be processed","description":"Name of the binary property which contains the audio file in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm","displayOptions":{"show":{"operation":["transcribe"],"resource":["audio"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Language of the Audio File","name":"language","type":"string","description":"The language of the input audio. Supplying the input language in <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes\" target=\"_blank\">ISO-639-1</a> format will improve accuracy and latency.","default":""},{"displayName":"Output Randomness (Temperature)","name":"temperature","type":"number","default":0,"typeOptions":{"minValue":0,"maxValue":1,"numberPrecision":1}}],"displayOptions":{"show":{"operation":["transcribe"],"resource":["audio"]}}},{"displayName":"Input Data Field Name","name":"binaryPropertyName","type":"string","default":"data","hint":"The name of the input field containing the binary file data to be processed","placeholder":"e.g. data","description":"Name of the binary property which contains the audio file in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm","displayOptions":{"show":{"operation":["translate"],"resource":["audio"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Output Randomness (Temperature)","name":"temperature","type":"number","default":0,"typeOptions":{"minValue":0,"maxValue":1,"numberPrecision":1}}],"displayOptions":{"show":{"operation":["translate"],"resource":["audio"]}}},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Delete a File","value":"deleteFile","action":"Delete a file","description":"Delete a file from the server"},{"name":"List Files","value":"list","action":"List files","description":"Returns a list of files that belong to the user's organization"},{"name":"Upload a File","value":"upload","action":"Upload a file","description":"Upload a file that can be used across various endpoints"}],"default":"upload","displayOptions":{"show":{"resource":["file"]}}},{"displayName":"Input Data Field Name","name":"binaryPropertyName","type":"string","default":"data","hint":"The name of the input field containing the binary file data to be processed","placeholder":"e.g. data","description":"Name of the binary property which contains the file. The size of individual files can be a maximum of 512 MB or 2 million tokens for Assistants.","displayOptions":{"show":{"operation":["upload"],"resource":["file"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Purpose","name":"purpose","type":"options","default":"assistants","description":"The intended purpose of the uploaded file, the 'Fine-tuning' only supports .jsonl files","options":[{"name":"Assistants","value":"assistants"},{"name":"Fine-Tune","value":"fine-tune"}]}],"displayOptions":{"show":{"operation":["upload"],"resource":["file"]}}},{"displayName":"File","name":"fileId","type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"fileSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","validation":[{"type":"regex","properties":{"regex":"file-[a-zA-Z0-9]","errorMessage":"Not a valid File ID"}}],"placeholder":"e.g. file-1234567890"}],"displayOptions":{"show":{"operation":["deleteFile"],"resource":["file"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Purpose","name":"purpose","type":"options","default":"any","description":"Only return files with the given purpose","options":[{"name":"Any [Default]","value":"any"},{"name":"Assistants","value":"assistants"},{"name":"Fine-Tune","value":"fine-tune"}]}],"displayOptions":{"show":{"operation":["list"],"resource":["file"]}}},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Analyze Image","value":"analyze","action":"Analyze image","description":"Take in images and answer questions about them"},{"name":"Generate an Image","value":"generate","action":"Generate an image","description":"Creates an image from a text prompt"}],"default":"generate","displayOptions":{"show":{"resource":["image"]}}},{"displayName":"Model","name":"model","type":"options","default":"dall-e-3","description":"The model to use for image generation","options":[{"name":"DALL·E 2","value":"dall-e-2"},{"name":"DALL·E 3","value":"dall-e-3"},{"name":"GPT Image 1","value":"gpt-image-1"}],"displayOptions":{"show":{"operation":["generate"],"resource":["image"]}}},{"displayName":"Prompt","name":"prompt","type":"string","placeholder":"e.g. A cute cat eating a dinosaur","description":"A text description of the desired image(s). The maximum length is 1000 characters for dall-e-2 and 4000 characters for dall-e-3.","default":"","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["generate"],"resource":["image"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Number of Images","name":"n","default":1,"description":"Number of images to generate","type":"number","typeOptions":{"minValue":1,"maxValue":10},"displayOptions":{"show":{"/model":["dall-e-2"]}}},{"displayName":"Quality","name":"dalleQuality","type":"options","description":"The quality of the image that will be generated, HD creates images with finer details and greater consistency across the image","options":[{"name":"HD","value":"hd"},{"name":"Standard","value":"standard"}],"displayOptions":{"show":{"/model":["dall-e-3"]}},"default":"standard"},{"displayName":"Quality","name":"quality","type":"options","description":"The quality of the image that will be generated, High creates images with finer details and greater consistency across the image","options":[{"name":"High","value":"high"},{"name":"Medium","value":"medium"},{"name":"Low","value":"low"}],"displayOptions":{"show":{"/model":["gpt-image-1"]}},"default":"medium"},{"displayName":"Resolution","name":"size","type":"options","options":[{"name":"256x256","value":"256x256"},{"name":"512x512","value":"512x512"},{"name":"1024x1024","value":"1024x1024"}],"displayOptions":{"show":{"/model":["dall-e-2"]}},"default":"1024x1024"},{"displayName":"Resolution","name":"size","type":"options","options":[{"name":"1024x1024","value":"1024x1024"},{"name":"1792x1024","value":"1792x1024"},{"name":"1024x1792","value":"1024x1792"}],"displayOptions":{"show":{"/model":["dall-e-3"]}},"default":"1024x1024"},{"displayName":"Resolution","name":"size","type":"options","options":[{"name":"1024x1024","value":"1024x1024"},{"name":"1024x1536","value":"1024x1536"},{"name":"1536x1024","value":"1536x1024"}],"displayOptions":{"show":{"/model":["gpt-image-1"]}},"default":"1024x1024"},{"displayName":"Style","name":"style","type":"options","options":[{"name":"Natural","value":"natural","description":"Produce more natural looking images"},{"name":"Vivid","value":"vivid","description":"Lean towards generating hyper-real and dramatic images"}],"displayOptions":{"show":{"/model":["dall-e-3"]}},"default":"vivid"},{"displayName":"Respond with Image URL(s)","name":"returnImageUrls","type":"boolean","default":false,"description":"Whether to return image URL(s) instead of binary file(s)","displayOptions":{"hide":{"/model":["gpt-image-1"]}}},{"displayName":"Put Output in Field","name":"binaryPropertyOutput","type":"string","default":"data","hint":"The name of the output field to put the binary file data in","displayOptions":{"show":{"returnImageUrls":[false]}}}],"displayOptions":{"show":{"operation":["generate"],"resource":["image"]}}},{"displayName":"Model","name":"modelId","builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"imageModelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. gpt-4"}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.4}}],"operation":["analyze"],"resource":["image"]}}},{"displayName":"Text Input","name":"text","type":"string","placeholder":"e.g. What's in this image?","default":"What's in this image?","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Input Type","name":"inputType","type":"options","default":"url","options":[{"name":"Image URL(s)","value":"url"},{"name":"Binary File(s)","value":"base64"}],"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"URL(s)","name":"imageUrls","type":"string","placeholder":"e.g. https://example.com/image.jpeg","description":"URL(s) of the image(s) to analyze, multiple URLs can be added separated by comma","default":"","displayOptions":{"show":{"inputType":["url"],"operation":["analyze"],"resource":["image"]}}},{"displayName":"Input Data Field Name","name":"binaryPropertyName","type":"string","default":"data","placeholder":"e.g. data","hint":"The name of the input field containing the binary file data to be processed","description":"Name of the binary property which contains the image(s)","displayOptions":{"show":{"inputType":["base64"],"operation":["analyze"],"resource":["image"]}}},{"displayName":"Simplify Output","name":"simplify","type":"boolean","default":true,"description":"Whether to simplify the response or not","displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Detail","name":"detail","type":"options","default":"auto","options":[{"name":"Auto","value":"auto","description":"Model will look at the image input size and decide if it should use the low or high setting"},{"name":"Low","value":"low","description":"Return faster responses and consume fewer tokens"},{"name":"High","value":"high","description":"Return more detailed responses, consumes more tokens"}]},{"displayName":"Length of Description (Max Tokens)","description":"Fewer tokens will result in shorter, less detailed image description","name":"maxTokens","type":"number","default":300,"typeOptions":{"minValue":1}}],"displayOptions":{"show":{"operation":["analyze"],"resource":["image"]}}},{"displayName":"Operation","name":"operation","type":"options","noDataExpression":true,"options":[{"name":"Message a Model","value":"message","action":"Message a model","description":"Create a completion with GPT 3, 4, etc."},{"name":"Classify Text for Violations","value":"classify","action":"Classify text for violations","description":"Check whether content complies with usage policies"}],"default":"message","displayOptions":{"show":{"resource":["text"]}}},{"displayName":"Text Input","name":"input","type":"string","placeholder":"e.g. Sample text goes here","description":"The input text to classify if it is violates the moderation policy","default":"","typeOptions":{"rows":2},"displayOptions":{"show":{"operation":["classify"],"resource":["text"]}}},{"displayName":"Simplify Output","name":"simplify","type":"boolean","default":false,"description":"Whether to return a simplified version of the response instead of the raw data","displayOptions":{"show":{"operation":["classify"],"resource":["text"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Use Stable Model","name":"useStableModel","type":"boolean","default":false,"description":"Whether to use the stable version of the model instead of the latest version, accuracy may be slightly lower"}],"displayOptions":{"show":{"operation":["classify"],"resource":["text"]}}},{"displayName":"Model","name":"modelId","builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"modelSearch","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"e.g. gpt-4"}],"displayOptions":{"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Messages","name":"messages","type":"fixedCollection","typeOptions":{"sortable":true,"multipleValues":true},"placeholder":"Add Message","default":{"values":[{"content":""}]},"options":[{"displayName":"Values","name":"values","values":[{"displayName":"Prompt","name":"content","type":"string","description":"The content of the message to be send","default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2}},{"displayName":"Role","name":"role","type":"options","description":"Role in shaping the model's response, it tells the model how it should behave and interact with the user","options":[{"name":"User","value":"user","description":"Send a message as a user and get a response from the model"},{"name":"Assistant","value":"assistant","description":"Tell the model to adopt a specific tone or personality"},{"name":"System","value":"system","description":"Usually used to set the model's behavior or context for the next user message"}],"default":"user"}]}],"displayOptions":{"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Simplify Output","name":"simplify","type":"boolean","default":true,"description":"Whether to return a simplified version of the response instead of the raw data","displayOptions":{"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Output Content as JSON","name":"jsonOutput","type":"boolean","description":"Whether to attempt to return the response in JSON format. Compatible with GPT-4 Turbo and all GPT-3.5 Turbo models newer than gpt-3.5-turbo-1106.","default":false,"displayOptions":{"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Hide Tools","name":"hideTools","type":"hidden","default":"hide","displayOptions":{"show":{"modelId":["gpt-3.5-turbo-16k-0613","dall-e-3","text-embedding-3-large","dall-e-2","whisper-1","tts-1-hd-1106","tts-1-hd","gpt-4-0314","text-embedding-3-small","gpt-4-32k-0314","gpt-3.5-turbo-0301","gpt-4-vision-preview","gpt-3.5-turbo-16k","gpt-3.5-turbo-instruct-0914","tts-1","davinci-002","gpt-3.5-turbo-instruct","babbage-002","tts-1-1106","text-embedding-ada-002"],"@version":[{"_cnd":{"gte":1.2}}],"operation":["message"],"resource":["text"]}}},{"displayName":"Connect your own custom n8n tools to this node on the canvas","name":"noticeTools","type":"notice","default":"","displayOptions":{"hide":{"hideTools":["hide"]},"show":{"operation":["message"],"resource":["text"]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","type":"collection","default":{},"options":[{"displayName":"Frequency Penalty","name":"frequency_penalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim","type":"number"},{"displayName":"Maximum Number of Tokens","name":"maxTokens","default":16,"description":"The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768).","type":"number","typeOptions":{"maxValue":32768}},{"displayName":"Number of Completions","name":"n","default":1,"description":"How many completions to generate for each prompt. Note: Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for max_tokens and stop.","type":"number"},{"displayName":"Presence Penalty","name":"presence_penalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics","type":"number"},{"displayName":"Output Randomness (Temperature)","name":"temperature","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Output Randomness (Top P)","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"An alternative to sampling with temperature, controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Reasoning Effort","name":"reasoning_effort","default":"medium","description":"Controls the amount of reasoning tokens to use. A value of \"low\" will favor speed and economical token usage, \"high\" will favor more complete reasoning at the cost of more tokens generated and slower responses.","type":"options","options":[{"name":"Low","value":"low","description":"Favors speed and economical token usage"},{"name":"Medium","value":"medium","description":"Balance between speed and reasoning accuracy"},{"name":"High","value":"high","description":"Favors more complete reasoning at the cost of more tokens generated and slower responses"}],"displayOptions":{"show":{"/modelId":[{"_cnd":{"regex":"(^o1([-\\d]+)?$)|(^o[3-9].*)|(^gpt-5.*)"}}]}}},{"displayName":"Max Tool Calls Iterations","name":"maxToolsIterations","type":"number","default":15,"description":"The maximum number of tool iteration cycles the LLM will run before stopping. A single iteration can contain multiple tool calls. Set to 0 for no limit.","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.5}}]}}}],"displayOptions":{"show":{"operation":["message"],"resource":["text"]}}}],"iconUrl":{"light":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vendors/OpenAi/openAi.svg","dark":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vendors/OpenAi/openAi.dark.svg"}},
|
|
10
10
|
{"displayName":"Microsoft Agent 365 Trigger","name":"microsoftAgent365Trigger","group":["trigger"],"description":"Trigger for Microsoft Agent 365","codex":{"categories":["Core Nodes"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.microsoftAgent365Trigger/"}]}},"version":[1,1.1],"defaults":{"name":"Microsoft Agent 365"},"inputs":"={{\n\t\t\t\t((hasOutputParser, needsFallback) => {\n\t\t\t\t\tfunction getInputs(hasMainInput, hasOutputParser, needsFallback) {\n const getInputData = (inputs) => {\n return inputs.map(({ type, filter, displayName, required }) => {\n const input = {\n type,\n displayName,\n required,\n maxConnections: ['ai_languageModel', 'ai_memory', 'ai_outputParser'].includes(type)\n ? 1\n : undefined,\n };\n if (filter) {\n input.filter = filter;\n }\n return input;\n });\n };\n let specialInputs = [\n {\n type: 'ai_languageModel',\n displayName: 'Chat Model',\n required: true,\n filter: {\n excludedNodes: [\n '@n8n/n8n-nodes-langchain.lmCohere',\n '@n8n/n8n-nodes-langchain.lmOllama',\n 'n8n/n8n-nodes-langchain.lmOpenAi',\n '@n8n/n8n-nodes-langchain.lmOpenHuggingFaceInference',\n ],\n },\n },\n {\n type: 'ai_languageModel',\n displayName: 'Fallback Model',\n required: true,\n filter: {\n excludedNodes: [\n '@n8n/n8n-nodes-langchain.lmCohere',\n '@n8n/n8n-nodes-langchain.lmOllama',\n 'n8n/n8n-nodes-langchain.lmOpenAi',\n '@n8n/n8n-nodes-langchain.lmOpenHuggingFaceInference',\n ],\n },\n },\n {\n displayName: 'Memory',\n type: 'ai_memory',\n },\n {\n displayName: 'Tool',\n type: 'ai_tool',\n },\n {\n displayName: 'Output Parser',\n type: 'ai_outputParser',\n },\n ];\n if (hasOutputParser === false) {\n specialInputs = specialInputs.filter((input) => input.type !== 'ai_outputParser');\n }\n if (needsFallback === false) {\n specialInputs = specialInputs.filter((input) => input.displayName !== 'Fallback Model');\n }\n const mainInputs = hasMainInput ? ['main'] : [];\n return [...mainInputs, ...getInputData(specialInputs)];\n};\n\t\t\t\t\treturn getInputs(false, hasOutputParser, needsFallback);\n\t\t\t\t})($parameter.hasOutputParser === undefined || $parameter.hasOutputParser === true, $parameter.needsFallback !== undefined && $parameter.needsFallback === true)\n\t\t\t}}","outputs":["main"],"triggerPanel":false,"webhooks":[{"name":"default","httpMethod":"POST","responseMode":"onReceived","path":"webhook","ndvHideMethod":true},{"name":"default","httpMethod":"HEAD","responseMode":"onReceived","path":"webhook","ndvHideUrl":true,"ndvHideMethod":true}],"credentials":[{"name":"microsoftAgent365Api","required":true}],"properties":[{"displayName":"This is an early preview for building Agents with Microsoft Agent 365 and n8n. You need to be part of the <a href=\"https://adoption.microsoft.com/copilot/frontier-program/\" target=\"_blank\">Frontier preview program</a> to get early access to Microsoft Agent 365. <a href=\"https://github.com/microsoft/Agent365-Samples/tree/main/nodejs/n8n/sample-agent\" target=\"_blank\">Learn more</a>","name":"previewNotice","type":"notice","default":""},{"displayName":"System Prompt","name":"systemPrompt","type":"string","placeholder":"e.g. You are a friendly assistant that helps people find a weather forecast for a given time and place.","default":"","typeOptions":{"rows":4}},{"displayName":"Connect an <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_outputParser'>output parser</a> on the canvas to specify the output format you require","name":"notice","type":"notice","default":"","displayOptions":{"show":{"hasOutputParser":[true]}}},{"displayName":"Enable Fallback Model","name":"needsFallback","type":"boolean","default":false,"noDataExpression":true,"displayOptions":{"show":{"@version":[{"_cnd":{"gte":2.1}}]}}},{"displayName":"Connect an additional language model on the canvas to use it as a fallback if the main model fails","name":"fallbackNotice","type":"notice","default":"","displayOptions":{"show":{"needsFallback":[true]}}},{"displayName":"Enable Microsoft Work IQ Tools for A365","name":"useMcpTools","type":"boolean","default":false,"description":"Whether to allow the agent to use Microsoft MCP tools like Calendar, Email, and OneDrive to assist in completing tasks. Requires appropriate permissions in your Microsoft account."},{"displayName":"Tools to Include","name":"include","type":"options","default":"all","displayOptions":{"show":{"useMcpTools":[true]}},"options":[{"name":"All","value":"all"},{"name":"Selected","value":"selected"}]},{"displayName":"Tools to Include","name":"includeTools","type":"multiOptions","default":[],"noDataExpression":true,"options":[{"name":"Admin 365","value":"mcp_Admin365_GraphTools"},{"name":"Admin Tools","value":"mcp_AdminTools"},{"name":"Calendar","value":"mcp_CalendarTools"},{"name":"DA Search","value":"mcp_DASearch"},{"name":"Excel","value":"mcp_ExcelServer"},{"name":"Knowledge","value":"mcp_KnowledgeTools"},{"name":"M365 Copilot","value":"mcp_M365Copilot"},{"name":"Mail","value":"mcp_MailTools"},{"name":"OneDrive","value":"mcp_OneDriveRemoteServer"},{"name":"OneDrive & SharePoint","value":"mcp_ODSPRemoteServer"},{"name":"Planner","value":"mcp_PlannerServer"},{"name":"SharePoint","value":"mcp_SharePointRemoteServer"},{"name":"SharePoint Lists","value":"mcp_SharePointListsTools"},{"name":"Task Personalization","value":"mcp_TaskPersonalizationServer"},{"name":"Teams","value":"mcp_TeamsServer"},{"name":"Teams Canary","value":"mcp_TeamsCanaryServer"},{"name":"Teams V1","value":"mcp_TeamsServerV1"},{"name":"Web Search","value":"mcp_WebSearchTools"},{"name":"Windows 365 Computer Use","value":"mcp_W365ComputerUse"},{"name":"Word","value":"mcp_WordServer"}],"displayOptions":{"show":{"useMcpTools":[true],"include":["selected"]}}},{"displayName":"Require Specific Output Format","name":"hasOutputParser","type":"boolean","default":false,"noDataExpression":true},{"displayName":"Options","name":"options","type":"collection","default":{},"placeholder":"Add Option","options":[{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Welcome Message","name":"welcomeMessage","type":"string","placeholder":"e.g. Hello! I'm here to help you!","default":"Hello! I'm here to help you!"}]}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vendors/Microsoft/Agent365.svg"},
|
|
11
|
-
{"displayName":"AI Agent","name":"agent","icon":"node:ai-agent","iconColor":"black","group":["transform"],"description":"Generates an action plan and executes it. Can use external tools.","codex":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"categories":["AI"],"subcategories":{"AI":["Agents","Root Nodes"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]}},"defaultVersion":3.1,"builderHint":{"searchHint":"Wire model/memory/tools/outputParser via the SDK `subnodes` config object using factory functions (`languageModel()`, `memory()`, `tool()`, `outputParser()`). Inside subnodes, reference upstream data with `nodeJson(triggerNode, 'path')`, not `$json` — subnodes do not share the main predecessor's item context.","relatedNodes":[{"nodeType":"n8n-nodes-base.aggregate","relationHint":"Use to combine multiple items together before the agent"},{"nodeType":"@n8n/n8n-nodes-langchain.outputParserStructured","relationHint":"Attach for structured output; reference fields as $json.output.fieldName for use in subsequent nodes (conditions, storing data)"},{"nodeType":"@n8n/n8n-nodes-langchain.agentTool","relationHint":"For multi-agent systems using orchestrator pattern"},{"nodeType":"@n8n/n8n-nodes-langchain.memoryBufferWindow","relationHint":"Required for conversational workflows - connect memory to every agent that needs to recall previous messages in the conversation"}],"extraTypeDefContent":[{"content":"<patterns>\n<pattern title=\"Agent with model, memory, structured output parser\">\nconst chatTrigger = trigger({\n type: '@n8n/n8n-nodes-langchain.chatTrigger',\n version: 1.3,\n config: {\n name: 'Chat Trigger',\n parameters: { public: false },\n output: [{ sessionId: 'chat-session-id', chatInput: 'Hello' }]\n }\n});\n\nconst model = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n version: 1.3,\n config: {\n name: 'OpenAI Chat Model',\n parameters: { model: { __rl: true, mode: 'list', value: 'gpt-5.4' } },\n credentials: { openAiApi: { id: 'credId', name: 'OpenAI account' } }\n }\n});\n\nconst parser = outputParser({\n type: '@n8n/n8n-nodes-langchain.outputParserStructured',\n version: 1.3,\n config: {\n name: 'Output Parser',\n parameters: {\n schemaType: 'fromJson',\n jsonSchemaExample: '{ \"score\": 75, \"tier\": \"hot\" }'\n }\n }\n});\n\nconst memoryNode = memory({\n type: '@n8n/n8n-nodes-langchain.memoryBufferWindow',\n version: 1.3,\n config: {\n name: 'Conversation Memory',\n parameters: {\n sessionIdType: 'customKey',\n sessionKey: nodeJson(chatTrigger, 'sessionId'),\n contextWindowLength: 10\n }\n }\n});\n\nconst agent = node({\n type: '@n8n/n8n-nodes-langchain.agent',\n version: 3.1,\n config: {\n name: 'AI Agent',\n parameters: {\n promptType: 'define',\n text: expr('{{ $json.prompt }}'),\n hasOutputParser: true,\n options: { systemMessage: 'You are an expert...' }\n },\n subnodes: { model, memory: memoryNode, outputParser: parser }\n }\n});\n</pattern>\n\n<pattern title=\"Agent with a fallback model (primary + backup provider)\">\n// Give ONE agent a backup model with a FLAT model array: the first entry is the\n// primary, the second fills the agent's Fallback Model input. The agent retries\n// on the second model when the first call fails.\n// Do NOT build a second agent or an error-output branch for this — one agent.\n// A NESTED array (model: [[a, b]]) means something else: both models on the SAME\n// input, which is not a fallback.\n\nconst primaryModel = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatAnthropic',\n version: 1.6,\n config: {\n name: 'Claude (Primary)',\n parameters: { model: { __rl: true, mode: 'list', value: 'claude-sonnet-4-5' } }\n }\n});\n\nconst fallbackModel = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n version: 1.3,\n config: {\n name: 'OpenAI (Fallback)',\n parameters: { model: { __rl: true, mode: 'list', value: 'gpt-5.4' } }\n }\n});\n\nconst agentWithFallback = node({\n type: '@n8n/n8n-nodes-langchain.agent',\n version: 3.1,\n config: {\n name: 'AI Agent',\n parameters: {\n promptType: 'define',\n text: expr('{{ $json.prompt }}'),\n options: { systemMessage: 'You are an expert...' },\n // REQUIRED with a second model: the agent only declares its Fallback Model\n // input when this is on. Without it the second model is wired to an input\n // that does not exist and never runs.\n needsFallback: true\n },\n subnodes: { model: [primaryModel, fallbackModel] }\n }\n});\n</pattern>\n</patterns>"}],"inputs":{"ai_languageModel":{"required":true},"ai_memory":{"required":false},"ai_tool":{"required":false},"ai_outputParser":{"required":false,"displayOptions":{"show":{"hasOutputParser":[true]}}}}},"version":[3,3.1],"defaults":{"name":"AI Agent","color":"#404040"},"inputs":"={{\n\t\t\t\t((hasOutputParser, needsFallback) => {\n\t\t\t\t\tfunction getInputs(hasMainInput, hasOutputParser, needsFallback) {\n const getInputData = (inputs) => {\n return inputs.map(({ type, filter, displayName, required }) => {\n const input = {\n type,\n displayName,\n required,\n maxConnections: ['ai_languageModel', 'ai_memory', 'ai_outputParser'].includes(type)\n ? 1\n : undefined,\n };\n if (filter) {\n input.filter = filter;\n }\n return input;\n });\n };\n let specialInputs = [\n {\n type: 'ai_languageModel',\n displayName: 'Chat Model',\n required: true,\n filter: {\n excludedNodes: [\n '@n8n/n8n-nodes-langchain.lmCohere',\n '@n8n/n8n-nodes-langchain.lmOllama',\n 'n8n/n8n-nodes-langchain.lmOpenAi',\n '@n8n/n8n-nodes-langchain.lmOpenHuggingFaceInference',\n ],\n },\n },\n {\n type: 'ai_languageModel',\n displayName: 'Fallback Model',\n required: true,\n filter: {\n excludedNodes: [\n '@n8n/n8n-nodes-langchain.lmCohere',\n '@n8n/n8n-nodes-langchain.lmOllama',\n 'n8n/n8n-nodes-langchain.lmOpenAi',\n '@n8n/n8n-nodes-langchain.lmOpenHuggingFaceInference',\n ],\n },\n },\n {\n displayName: 'Memory',\n type: 'ai_memory',\n },\n {\n displayName: 'Tool',\n type: 'ai_tool',\n },\n {\n displayName: 'Output Parser',\n type: 'ai_outputParser',\n },\n ];\n if (hasOutputParser === false) {\n specialInputs = specialInputs.filter((input) => input.type !== 'ai_outputParser');\n }\n if (needsFallback === false) {\n specialInputs = specialInputs.filter((input) => input.displayName !== 'Fallback Model');\n }\n const mainInputs = hasMainInput ? ['main'] : [];\n return [...mainInputs, ...getInputData(specialInputs)];\n};\n\t\t\t\t\treturn getInputs(true, hasOutputParser, needsFallback);\n\t\t\t\t})($parameter.hasOutputParser === undefined || $parameter.hasOutputParser === true, $parameter.needsFallback !== undefined && $parameter.needsFallback === true)\n\t\t\t}}","outputs":["main"],"properties":[{"displayName":"Tip: Get a feel for agents with our quick <a href=\"https://docs.n8n.io/advanced-ai/intro-tutorial/\" target=\"_blank\">tutorial</a> or see an <a href=\"/workflows/templates/1954\" target=\"_blank\">example</a> of how this node works","name":"aiAgentStarterCallout","type":"callout","default":""},{"displayName":"Source for Prompt (User Message)","name":"promptType","type":"options","options":[{"name":"Connected Chat Trigger Node","value":"auto","description":"Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"},{"name":"Connected Guardrails Node","value":"guardrails","description":"Looks for an input field called 'guardrailsInput' that is coming from a directly connected Guardrails Node"},{"name":"Define below","value":"define","description":"Use an expression to reference data in previous nodes or enter static text"}],"default":"auto","displayOptions":{"show":{"@version":[{"_cnd":{"lt":3.1}}]}}},{"displayName":"Source for Prompt (User Message)","name":"promptType","type":"options","options":[{"name":"Connected Chat Trigger Node","value":"auto","description":"Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"},{"name":"Define below","value":"define","description":"Use an expression to reference data in previous nodes or enter static text"}],"default":"auto","builderHint":{"propertyHint":"Use 'auto' when following a chat trigger, 'define' when custom prompt needed"},"displayOptions":{"show":{"@version":[{"_cnd":{"gte":3.1}}]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.guardrailsInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["guardrails"]}},"displayOptions":{"show":{"promptType":["guardrails"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.chatInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["auto"]}},"displayOptions":{"show":{"promptType":["auto"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2},"builderHint":{"placeholderSupported":false,"propertyHint":"Use expressions to include dynamic data from previous nodes (e.g., expr('{{ $json.input }}')). Static text prompts ignore incoming data."},"displayOptions":{"show":{"promptType":["define"]}}},{"displayName":"Require Specific Output Format","name":"hasOutputParser","type":"boolean","default":false,"noDataExpression":true,"builderHint":{"propertyHint":"Set to `true` when you need structured JSON output. The agent then requires an `outputParser` entry in its `subnodes` config (typically an `outputParserStructured` node defined via the `outputParser({...})` SDK factory). With `hasOutputParser: false` the agent returns a plain string in `$json.output`."}},{"displayName":"Connect an <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_outputParser'>output parser</a> on the canvas to specify the output format you require","name":"notice","type":"notice","default":"","displayOptions":{"show":{"hasOutputParser":[true]}}},{"displayName":"Enable Fallback Model","name":"needsFallback","type":"boolean","default":false,"noDataExpression":true},{"displayName":"Connect an additional language model on the canvas to use it as a fallback if the main model fails","name":"fallbackNotice","type":"notice","default":"","displayOptions":{"show":{"needsFallback":[true]}}},{"displayName":"Options","name":"options","type":"collection","default":{},"placeholder":"Add Option","options":[{"displayName":"System Message","name":"systemMessage","type":"string","default":"You are a helpful assistant","description":"The message that will be sent to the agent before the conversation starts","builderHint":{"propertyHint":"Must include: agent's purpose, exact names of connected tools, and response instructions"},"typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Automatically Passthrough Binary Images","name":"passthroughBinaryImages","type":"boolean","default":true,"description":"Whether or not binary images should be automatically passed through to the agent as image type messages"},{"displayName":"Automatically Passthrough Binary PDFs","name":"passthroughBinaryPdfs","type":"boolean","default":false,"description":"Whether or not binary PDF documents should be automatically passed through to the agent. Useful for models that natively support PDF input (e.g. Google Gemini)."},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]},{"displayName":"Auto-save highlighted data","name":"autoSaveHighlightedData","type":"boolean","default":true,"description":"Whether to automatically save <a href=\"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executiondata/\" target=\"_blank\">highlighted data</a>. This data can then be used to filter executions in the Executions view. Available on Pro and Enterprise plans in n8n Cloud, and on Enterprise or registered Community Edition for self-hosted. Defaults to true."},{"displayName":"Enable Streaming","name":"enableStreaming","type":"boolean","default":true,"description":"Whether this agent will stream the response in real-time as it generates text"},{"displayName":"Batch Processing","name":"batching","type":"collection","placeholder":"Add Batch Processing Option","description":"Batch processing options for rate limiting","default":{},"options":[{"displayName":"Batch Size","name":"batchSize","default":1,"type":"number","description":"How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."},{"displayName":"Delay Between Batches","name":"delayBetweenBatches","default":0,"type":"number","description":"Delay in milliseconds between batches. This is useful for rate limiting."}]},{"displayName":"Max Tokens To Read From Memory","name":"maxTokensFromMemory","type":"hidden","default":0,"description":"The maximum number of tokens to read from the chat memory history. Set to 0 to read all history."},{"displayName":"Force Tool Call on First Iteration","name":"forceToolCallOnFirstIteration","type":"boolean","default":false,"description":"Whether the model must call at least one tool on its first response of each run. Later responses are unrestricted so the agent can answer. Useful for smaller models that otherwise skip tool calls; the model must support forced tool choice."}]}],"hints":[{"message":"You are using streaming responses. Make sure to set the response mode to \"Streaming Response\" on the connected trigger node.","type":"warning","location":"outputPane","whenToDisplay":"afterExecution","displayCondition":"={{ $parameter[\"enableStreaming\"] === true }}"}]},
|
|
12
|
-
{"displayName":"AI Agent","name":"agent","icon":"node:ai-agent","iconColor":"black","group":["transform"],"description":"Generates an action plan and executes it. Can use external tools.","codex":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"categories":["AI"],"subcategories":{"AI":["Agents","Root Nodes"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]}},"defaultVersion":3.1,"builderHint":{"searchHint":"Wire model/memory/tools/outputParser via the SDK `subnodes` config object using factory functions (`languageModel()`, `memory()`, `tool()`, `outputParser()`). Inside subnodes, reference upstream data with `nodeJson(triggerNode, 'path')`, not `$json` — subnodes do not share the main predecessor's item context.","relatedNodes":[{"nodeType":"n8n-nodes-base.aggregate","relationHint":"Use to combine multiple items together before the agent"},{"nodeType":"@n8n/n8n-nodes-langchain.outputParserStructured","relationHint":"Attach for structured output; reference fields as $json.output.fieldName for use in subsequent nodes (conditions, storing data)"},{"nodeType":"@n8n/n8n-nodes-langchain.agentTool","relationHint":"For multi-agent systems using orchestrator pattern"},{"nodeType":"@n8n/n8n-nodes-langchain.memoryBufferWindow","relationHint":"Required for conversational workflows - connect memory to every agent that needs to recall previous messages in the conversation"}],"extraTypeDefContent":[{"content":"<patterns>\n<pattern title=\"Agent with model, memory, structured output parser\">\nconst chatTrigger = trigger({\n type: '@n8n/n8n-nodes-langchain.chatTrigger',\n version: 1.3,\n config: {\n name: 'Chat Trigger',\n parameters: { public: false },\n output: [{ sessionId: 'chat-session-id', chatInput: 'Hello' }]\n }\n});\n\nconst model = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n version: 1.3,\n config: {\n name: 'OpenAI Chat Model',\n parameters: { model: { __rl: true, mode: 'list', value: 'gpt-5.4' } },\n credentials: { openAiApi: { id: 'credId', name: 'OpenAI account' } }\n }\n});\n\nconst parser = outputParser({\n type: '@n8n/n8n-nodes-langchain.outputParserStructured',\n version: 1.3,\n config: {\n name: 'Output Parser',\n parameters: {\n schemaType: 'fromJson',\n jsonSchemaExample: '{ \"score\": 75, \"tier\": \"hot\" }'\n }\n }\n});\n\nconst memoryNode = memory({\n type: '@n8n/n8n-nodes-langchain.memoryBufferWindow',\n version: 1.3,\n config: {\n name: 'Conversation Memory',\n parameters: {\n sessionIdType: 'customKey',\n sessionKey: nodeJson(chatTrigger, 'sessionId'),\n contextWindowLength: 10\n }\n }\n});\n\nconst agent = node({\n type: '@n8n/n8n-nodes-langchain.agent',\n version: 3.1,\n config: {\n name: 'AI Agent',\n parameters: {\n promptType: 'define',\n text: expr('{{ $json.prompt }}'),\n hasOutputParser: true,\n options: { systemMessage: 'You are an expert...' }\n },\n subnodes: { model, memory: memoryNode, outputParser: parser }\n }\n});\n</pattern>\n\n<pattern title=\"Agent with a fallback model (primary + backup provider)\">\n// Give ONE agent a backup model with a FLAT model array: the first entry is the\n// primary, the second fills the agent's Fallback Model input. The agent retries\n// on the second model when the first call fails.\n// Do NOT build a second agent or an error-output branch for this — one agent.\n// A NESTED array (model: [[a, b]]) means something else: both models on the SAME\n// input, which is not a fallback.\n\nconst primaryModel = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatAnthropic',\n version: 1.6,\n config: {\n name: 'Claude (Primary)',\n parameters: { model: { __rl: true, mode: 'list', value: 'claude-sonnet-4-5' } }\n }\n});\n\nconst fallbackModel = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n version: 1.3,\n config: {\n name: 'OpenAI (Fallback)',\n parameters: { model: { __rl: true, mode: 'list', value: 'gpt-5.4' } }\n }\n});\n\nconst agentWithFallback = node({\n type: '@n8n/n8n-nodes-langchain.agent',\n version: 3.1,\n config: {\n name: 'AI Agent',\n parameters: {\n promptType: 'define',\n text: expr('{{ $json.prompt }}'),\n options: { systemMessage: 'You are an expert...' },\n // REQUIRED with a second model: the agent only declares its Fallback Model\n // input when this is on. Without it the second model is wired to an input\n // that does not exist and never runs.\n needsFallback: true\n },\n subnodes: { model: [primaryModel, fallbackModel] }\n }\n});\n</pattern>\n</patterns>"}],"inputs":{"ai_languageModel":{"required":true},"ai_memory":{"required":false},"ai_tool":{"required":false},"ai_outputParser":{"required":false,"displayOptions":{"show":{"hasOutputParser":[true]}}}}},"version":[2,2.1,2.2],"defaults":{"name":"AI Agent","color":"#404040"},"inputs":"={{\n\t\t\t\t((hasOutputParser, needsFallback) => {\n\t\t\t\t\tfunction getInputs(hasMainInput, hasOutputParser, needsFallback) {\n const getInputData = (inputs) => {\n return inputs.map(({ type, filter, displayName, required }) => {\n const input = {\n type,\n displayName,\n required,\n maxConnections: ['ai_languageModel', 'ai_memory', 'ai_outputParser'].includes(type)\n ? 1\n : undefined,\n };\n if (filter) {\n input.filter = filter;\n }\n return input;\n });\n };\n let specialInputs = [\n {\n type: 'ai_languageModel',\n displayName: 'Chat Model',\n required: true,\n filter: {\n excludedNodes: [\n '@n8n/n8n-nodes-langchain.lmCohere',\n '@n8n/n8n-nodes-langchain.lmOllama',\n 'n8n/n8n-nodes-langchain.lmOpenAi',\n '@n8n/n8n-nodes-langchain.lmOpenHuggingFaceInference',\n ],\n },\n },\n {\n type: 'ai_languageModel',\n displayName: 'Fallback Model',\n required: true,\n filter: {\n excludedNodes: [\n '@n8n/n8n-nodes-langchain.lmCohere',\n '@n8n/n8n-nodes-langchain.lmOllama',\n 'n8n/n8n-nodes-langchain.lmOpenAi',\n '@n8n/n8n-nodes-langchain.lmOpenHuggingFaceInference',\n ],\n },\n },\n {\n displayName: 'Memory',\n type: 'ai_memory',\n },\n {\n displayName: 'Tool',\n type: 'ai_tool',\n },\n {\n displayName: 'Output Parser',\n type: 'ai_outputParser',\n },\n ];\n if (hasOutputParser === false) {\n specialInputs = specialInputs.filter((input) => input.type !== 'ai_outputParser');\n }\n if (needsFallback === false) {\n specialInputs = specialInputs.filter((input) => input.displayName !== 'Fallback Model');\n }\n const mainInputs = hasMainInput ? ['main'] : [];\n return [...mainInputs, ...getInputData(specialInputs)];\n};\n\t\t\t\t\treturn getInputs(true, hasOutputParser, needsFallback);\n\t\t\t\t})($parameter.hasOutputParser === undefined || $parameter.hasOutputParser === true, $parameter.needsFallback !== undefined && $parameter.needsFallback === true)\n\t\t\t}}","outputs":["main"],"properties":[{"displayName":"Tip: Get a feel for agents with our quick <a href=\"https://docs.n8n.io/advanced-ai/intro-tutorial/\" target=\"_blank\">tutorial</a> or see an <a href=\"/workflows/templates/1954\" target=\"_blank\">example</a> of how this node works","name":"aiAgentStarterCallout","type":"callout","default":""},{"displayName":"Source for Prompt (User Message)","name":"promptType","type":"options","options":[{"name":"Connected Chat Trigger Node","value":"auto","description":"Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"},{"name":"Connected Guardrails Node","value":"guardrails","description":"Looks for an input field called 'guardrailsInput' that is coming from a directly connected Guardrails Node"},{"name":"Define below","value":"define","description":"Use an expression to reference data in previous nodes or enter static text"}],"default":"auto"},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.guardrailsInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["guardrails"]}},"displayOptions":{"show":{"promptType":["guardrails"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.chatInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["auto"]}},"displayOptions":{"show":{"promptType":["auto"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2},"builderHint":{"placeholderSupported":false,"propertyHint":"Use expressions to include dynamic data from previous nodes (e.g., expr('{{ $json.input }}')). Static text prompts ignore incoming data."},"displayOptions":{"show":{"promptType":["define"]}}},{"displayName":"Require Specific Output Format","name":"hasOutputParser","type":"boolean","default":false,"noDataExpression":true},{"displayName":"Connect an <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_outputParser'>output parser</a> on the canvas to specify the output format you require","name":"notice","type":"notice","default":"","displayOptions":{"show":{"hasOutputParser":[true]}}},{"displayName":"Enable Fallback Model","name":"needsFallback","type":"boolean","default":false,"noDataExpression":true,"displayOptions":{"show":{"@version":[{"_cnd":{"gte":2.1}}]}}},{"displayName":"Connect an additional language model on the canvas to use it as a fallback if the main model fails","name":"fallbackNotice","type":"notice","default":"","displayOptions":{"show":{"needsFallback":[true]}}},{"displayName":"Options","name":"options","type":"collection","default":{},"placeholder":"Add Option","options":[{"displayName":"System Message","name":"systemMessage","type":"string","default":"You are a helpful assistant","description":"The message that will be sent to the agent before the conversation starts","builderHint":{"propertyHint":"Must include: agent's purpose, exact names of connected tools, and response instructions"},"typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Automatically Passthrough Binary Images","name":"passthroughBinaryImages","type":"boolean","default":true,"description":"Whether or not binary images should be automatically passed through to the agent as image type messages"},{"displayName":"Automatically Passthrough Binary PDFs","name":"passthroughBinaryPdfs","type":"boolean","default":false,"description":"Whether or not binary PDF documents should be automatically passed through to the agent. Useful for models that natively support PDF input (e.g. Google Gemini)."},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]},{"displayName":"Batch Processing","name":"batching","type":"collection","placeholder":"Add Batch Processing Option","description":"Batch processing options for rate limiting","default":{},"options":[{"displayName":"Batch Size","name":"batchSize","default":1,"type":"number","description":"How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."},{"displayName":"Delay Between Batches","name":"delayBetweenBatches","default":0,"type":"number","description":"Delay in milliseconds between batches. This is useful for rate limiting."}]},{"displayName":"Enable Streaming","name":"enableStreaming","type":"boolean","default":true,"description":"Whether this agent will stream the response in real-time as it generates text"}],"displayOptions":{"hide":{"@version":[{"_cnd":{"lt":2.2}}]}}},{"displayName":"Options","name":"options","type":"collection","default":{},"placeholder":"Add Option","options":[{"displayName":"System Message","name":"systemMessage","type":"string","default":"You are a helpful assistant","description":"The message that will be sent to the agent before the conversation starts","builderHint":{"propertyHint":"Must include: agent's purpose, exact names of connected tools, and response instructions"},"typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Automatically Passthrough Binary Images","name":"passthroughBinaryImages","type":"boolean","default":true,"description":"Whether or not binary images should be automatically passed through to the agent as image type messages"},{"displayName":"Automatically Passthrough Binary PDFs","name":"passthroughBinaryPdfs","type":"boolean","default":false,"description":"Whether or not binary PDF documents should be automatically passed through to the agent. Useful for models that natively support PDF input (e.g. Google Gemini)."},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]},{"displayName":"Batch Processing","name":"batching","type":"collection","placeholder":"Add Batch Processing Option","description":"Batch processing options for rate limiting","default":{},"options":[{"displayName":"Batch Size","name":"batchSize","default":1,"type":"number","description":"How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."},{"displayName":"Delay Between Batches","name":"delayBetweenBatches","default":0,"type":"number","description":"Delay in milliseconds between batches. This is useful for rate limiting."}]}],"displayOptions":{"show":{"@version":[{"_cnd":{"lt":2.2}}]}}}],"hints":[{"message":"You are using streaming responses. Make sure to set the response mode to \"Streaming Response\" on the connected trigger node.","type":"warning","location":"outputPane","whenToDisplay":"afterExecution","displayCondition":"={{ $parameter[\"enableStreaming\"] === true }}"}]},
|
|
13
|
-
{"version":[1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9],"displayName":"AI Agent","name":"agent","icon":"node:ai-agent","iconColor":"black","group":["transform"],"description":"Generates an action plan and executes it. Can use external tools.","codex":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"categories":["AI"],"subcategories":{"AI":["Agents","Root Nodes"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]}},"defaultVersion":3.1,"builderHint":{"searchHint":"Wire model/memory/tools/outputParser via the SDK `subnodes` config object using factory functions (`languageModel()`, `memory()`, `tool()`, `outputParser()`). Inside subnodes, reference upstream data with `nodeJson(triggerNode, 'path')`, not `$json` — subnodes do not share the main predecessor's item context.","relatedNodes":[{"nodeType":"n8n-nodes-base.aggregate","relationHint":"Use to combine multiple items together before the agent"},{"nodeType":"@n8n/n8n-nodes-langchain.outputParserStructured","relationHint":"Attach for structured output; reference fields as $json.output.fieldName for use in subsequent nodes (conditions, storing data)"},{"nodeType":"@n8n/n8n-nodes-langchain.agentTool","relationHint":"For multi-agent systems using orchestrator pattern"},{"nodeType":"@n8n/n8n-nodes-langchain.memoryBufferWindow","relationHint":"Required for conversational workflows - connect memory to every agent that needs to recall previous messages in the conversation"}],"extraTypeDefContent":[{"content":"<patterns>\n<pattern title=\"Agent with model, memory, structured output parser\">\nconst chatTrigger = trigger({\n type: '@n8n/n8n-nodes-langchain.chatTrigger',\n version: 1.3,\n config: {\n name: 'Chat Trigger',\n parameters: { public: false },\n output: [{ sessionId: 'chat-session-id', chatInput: 'Hello' }]\n }\n});\n\nconst model = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n version: 1.3,\n config: {\n name: 'OpenAI Chat Model',\n parameters: { model: { __rl: true, mode: 'list', value: 'gpt-5.4' } },\n credentials: { openAiApi: { id: 'credId', name: 'OpenAI account' } }\n }\n});\n\nconst parser = outputParser({\n type: '@n8n/n8n-nodes-langchain.outputParserStructured',\n version: 1.3,\n config: {\n name: 'Output Parser',\n parameters: {\n schemaType: 'fromJson',\n jsonSchemaExample: '{ \"score\": 75, \"tier\": \"hot\" }'\n }\n }\n});\n\nconst memoryNode = memory({\n type: '@n8n/n8n-nodes-langchain.memoryBufferWindow',\n version: 1.3,\n config: {\n name: 'Conversation Memory',\n parameters: {\n sessionIdType: 'customKey',\n sessionKey: nodeJson(chatTrigger, 'sessionId'),\n contextWindowLength: 10\n }\n }\n});\n\nconst agent = node({\n type: '@n8n/n8n-nodes-langchain.agent',\n version: 3.1,\n config: {\n name: 'AI Agent',\n parameters: {\n promptType: 'define',\n text: expr('{{ $json.prompt }}'),\n hasOutputParser: true,\n options: { systemMessage: 'You are an expert...' }\n },\n subnodes: { model, memory: memoryNode, outputParser: parser }\n }\n});\n</pattern>\n\n<pattern title=\"Agent with a fallback model (primary + backup provider)\">\n// Give ONE agent a backup model with a FLAT model array: the first entry is the\n// primary, the second fills the agent's Fallback Model input. The agent retries\n// on the second model when the first call fails.\n// Do NOT build a second agent or an error-output branch for this — one agent.\n// A NESTED array (model: [[a, b]]) means something else: both models on the SAME\n// input, which is not a fallback.\n\nconst primaryModel = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatAnthropic',\n version: 1.6,\n config: {\n name: 'Claude (Primary)',\n parameters: { model: { __rl: true, mode: 'list', value: 'claude-sonnet-4-5' } }\n }\n});\n\nconst fallbackModel = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n version: 1.3,\n config: {\n name: 'OpenAI (Fallback)',\n parameters: { model: { __rl: true, mode: 'list', value: 'gpt-5.4' } }\n }\n});\n\nconst agentWithFallback = node({\n type: '@n8n/n8n-nodes-langchain.agent',\n version: 3.1,\n config: {\n name: 'AI Agent',\n parameters: {\n promptType: 'define',\n text: expr('{{ $json.prompt }}'),\n options: { systemMessage: 'You are an expert...' },\n // REQUIRED with a second model: the agent only declares its Fallback Model\n // input when this is on. Without it the second model is wired to an input\n // that does not exist and never runs.\n needsFallback: true\n },\n subnodes: { model: [primaryModel, fallbackModel] }\n }\n});\n</pattern>\n</patterns>"}],"inputs":{"ai_languageModel":{"required":true},"ai_memory":{"required":false},"ai_tool":{"required":false},"ai_outputParser":{"required":false,"displayOptions":{"show":{"hasOutputParser":[true]}}}}},"defaults":{"name":"AI Agent","color":"#404040"},"inputs":"={{\n\t\t\t\t((agent, hasOutputParser) => {\n\t\t\t\t\tfunction getInputs(agent, hasOutputParser) {\n const getInputData = (inputs) => {\n const displayNames = {\n ai_languageModel: 'Model',\n ai_memory: 'Memory',\n ai_tool: 'Tool',\n ai_outputParser: 'Output Parser',\n };\n return inputs.map(({ type, filter }) => {\n const isModelType = type === 'ai_languageModel';\n let displayName = type in displayNames ? displayNames[type] : undefined;\n if (isModelType &&\n ['openAiFunctionsAgent', 'toolsAgent', 'conversationalAgent'].includes(agent)) {\n displayName = 'Chat Model';\n }\n const input = {\n type,\n displayName,\n required: isModelType,\n maxConnections: ['ai_languageModel', 'ai_memory', 'ai_outputParser'].includes(type)\n ? 1\n : undefined,\n };\n if (filter) {\n input.filter = filter;\n }\n return input;\n });\n };\n let specialInputs = [];\n if (agent === 'conversationalAgent') {\n specialInputs = [\n {\n type: 'ai_languageModel',\n filter: {\n nodes: [\n '@n8n/n8n-nodes-langchain.lmChatAnthropic',\n '@n8n/n8n-nodes-langchain.lmChatAwsBedrock',\n '@n8n/n8n-nodes-langchain.lmChatGroq',\n '@n8n/n8n-nodes-langchain.lmChatLemonade',\n '@n8n/n8n-nodes-langchain.lmChatOllama',\n '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n '@n8n/n8n-nodes-langchain.lmChatGoogleGemini',\n '@n8n/n8n-nodes-langchain.lmChatGoogleVertex',\n '@n8n/n8n-nodes-langchain.lmChatMistralCloud',\n '@n8n/n8n-nodes-langchain.lmChatMinimax',\n '@n8n/n8n-nodes-langchain.lmChatMoonshot',\n '@n8n/n8n-nodes-langchain.lmChatAzureOpenAi',\n '@n8n/n8n-nodes-langchain.lmChatDeepSeek',\n '@n8n/n8n-nodes-langchain.lmChatOpenRouter',\n '@n8n/n8n-nodes-langchain.lmChatVercelAiGateway',\n '@n8n/n8n-nodes-langchain.lmChatXAiGrok',\n '@n8n/n8n-nodes-langchain.modelSelector',\n ],\n },\n },\n {\n type: 'ai_memory',\n },\n {\n type: 'ai_tool',\n },\n {\n type: 'ai_outputParser',\n },\n ];\n }\n else if (agent === 'toolsAgent') {\n specialInputs = [\n {\n type: 'ai_languageModel',\n filter: {\n nodes: [\n '@n8n/n8n-nodes-langchain.lmChatAnthropic',\n '@n8n/n8n-nodes-langchain.lmChatAzureOpenAi',\n '@n8n/n8n-nodes-langchain.lmChatAwsBedrock',\n '@n8n/n8n-nodes-langchain.lmChatLemonade',\n '@n8n/n8n-nodes-langchain.lmChatMistralCloud',\n '@n8n/n8n-nodes-langchain.lmChatMinimax',\n '@n8n/n8n-nodes-langchain.lmChatMoonshot',\n '@n8n/n8n-nodes-langchain.lmChatOllama',\n '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n '@n8n/n8n-nodes-langchain.lmChatGroq',\n '@n8n/n8n-nodes-langchain.lmChatGoogleVertex',\n '@n8n/n8n-nodes-langchain.lmChatGoogleGemini',\n '@n8n/n8n-nodes-langchain.lmChatDeepSeek',\n '@n8n/n8n-nodes-langchain.lmChatOpenRouter',\n '@n8n/n8n-nodes-langchain.lmChatVercelAiGateway',\n '@n8n/n8n-nodes-langchain.lmChatXAiGrok',\n ],\n },\n },\n {\n type: 'ai_memory',\n },\n {\n type: 'ai_tool',\n required: true,\n },\n {\n type: 'ai_outputParser',\n },\n ];\n }\n else if (agent === 'openAiFunctionsAgent') {\n specialInputs = [\n {\n type: 'ai_languageModel',\n filter: {\n nodes: [\n '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n '@n8n/n8n-nodes-langchain.lmChatAzureOpenAi',\n ],\n },\n },\n {\n type: 'ai_memory',\n },\n {\n type: 'ai_tool',\n required: true,\n },\n {\n type: 'ai_outputParser',\n },\n ];\n }\n else if (agent === 'reActAgent') {\n specialInputs = [\n {\n type: 'ai_languageModel',\n },\n {\n type: 'ai_tool',\n },\n {\n type: 'ai_outputParser',\n },\n ];\n }\n else if (agent === 'sqlAgent') {\n specialInputs = [\n {\n type: 'ai_languageModel',\n },\n {\n type: 'ai_memory',\n },\n ];\n }\n else if (agent === 'planAndExecuteAgent') {\n specialInputs = [\n {\n type: 'ai_languageModel',\n },\n {\n type: 'ai_tool',\n },\n {\n type: 'ai_outputParser',\n },\n ];\n }\n if (hasOutputParser === false) {\n specialInputs = specialInputs.filter((input) => input.type !== 'ai_outputParser');\n }\n return ['main', ...getInputData(specialInputs)];\n};\n\t\t\t\t\treturn getInputs(agent, hasOutputParser)\n\t\t\t\t})($parameter.agent, $parameter.hasOutputParser === undefined || $parameter.hasOutputParser === true)\n\t\t\t}}","outputs":["main"],"credentials":[{"name":"mySql","required":true,"testedBy":"mysqlConnectionTest","displayOptions":{"show":{"agent":["sqlAgent"],"/dataSource":["mysql"]}}},{"name":"postgres","required":true,"displayOptions":{"show":{"agent":["sqlAgent"],"/dataSource":["postgres"]}}}],"properties":[{"displayName":"Tip: Get a feel for agents with our quick <a href=\"https://docs.n8n.io/advanced-ai/intro-tutorial/\" target=\"_blank\">tutorial</a> or see an <a href=\"/templates/1954\" target=\"_blank\">example</a> of how this node works","name":"aiAgentStarterCallout","type":"callout","default":"","displayOptions":{"show":{"agent":["conversationalAgent","toolsAgent"]}}},{"displayName":"This node is using Agent that has been deprecated. Please switch to using 'Tools Agent' instead.","name":"deprecated","type":"notice","default":"","displayOptions":{"show":{"agent":["conversationalAgent","openAiFunctionsAgent","planAndExecuteAgent","reActAgent","sqlAgent"]}}},{"displayName":"Agent","name":"agent","type":"options","noDataExpression":true,"options":[{"name":"Conversational Agent","value":"conversationalAgent","description":"Describes tools in the system prompt and parses JSON responses for tool calls. More flexible but potentially less reliable than the Tools Agent. Suitable for simpler interactions or with models not supporting structured schemas."},{"name":"OpenAI Functions Agent","value":"openAiFunctionsAgent","description":"Leverages OpenAI's function calling capabilities to precisely select and execute tools. Excellent for tasks requiring structured outputs when working with OpenAI models."},{"name":"Plan and Execute Agent","value":"planAndExecuteAgent","description":"Creates a high-level plan for complex tasks and then executes each step. Suitable for multi-stage problems or when a strategic approach is needed."},{"name":"ReAct Agent","value":"reActAgent","description":"Combines reasoning and action in an iterative process. Effective for tasks that require careful analysis and step-by-step problem-solving."},{"name":"SQL Agent","value":"sqlAgent","description":"Specializes in interacting with SQL databases. Ideal for data analysis tasks, generating queries, or extracting insights from structured data."}],"default":"conversationalAgent","displayOptions":{"show":{"@version":[{"_cnd":{"lte":1.5}}]}}},{"displayName":"Agent","name":"agent","type":"options","noDataExpression":true,"options":[{"name":"Tools Agent","value":"toolsAgent","description":"Utilizes structured tool schemas for precise and reliable tool selection and execution. Recommended for complex tasks requiring accurate and consistent tool usage, but only usable with models that support tool calling."},{"name":"Conversational Agent","value":"conversationalAgent","description":"Describes tools in the system prompt and parses JSON responses for tool calls. More flexible but potentially less reliable than the Tools Agent. Suitable for simpler interactions or with models not supporting structured schemas."},{"name":"OpenAI Functions Agent","value":"openAiFunctionsAgent","description":"Leverages OpenAI's function calling capabilities to precisely select and execute tools. Excellent for tasks requiring structured outputs when working with OpenAI models."},{"name":"Plan and Execute Agent","value":"planAndExecuteAgent","description":"Creates a high-level plan for complex tasks and then executes each step. Suitable for multi-stage problems or when a strategic approach is needed."},{"name":"ReAct Agent","value":"reActAgent","description":"Combines reasoning and action in an iterative process. Effective for tasks that require careful analysis and step-by-step problem-solving."},{"name":"SQL Agent","value":"sqlAgent","description":"Specializes in interacting with SQL databases. Ideal for data analysis tasks, generating queries, or extracting insights from structured data."}],"default":"toolsAgent","displayOptions":{"show":{"@version":[{"_cnd":{"between":{"from":1.6,"to":1.7}}}]}}},{"displayName":"Agent","name":"agent","type":"hidden","noDataExpression":true,"options":[{"name":"Tools Agent","value":"toolsAgent","description":"Utilizes structured tool schemas for precise and reliable tool selection and execution. Recommended for complex tasks requiring accurate and consistent tool usage, but only usable with models that support tool calling."},{"name":"Conversational Agent","value":"conversationalAgent","description":"Describes tools in the system prompt and parses JSON responses for tool calls. More flexible but potentially less reliable than the Tools Agent. Suitable for simpler interactions or with models not supporting structured schemas."},{"name":"OpenAI Functions Agent","value":"openAiFunctionsAgent","description":"Leverages OpenAI's function calling capabilities to precisely select and execute tools. Excellent for tasks requiring structured outputs when working with OpenAI models."},{"name":"Plan and Execute Agent","value":"planAndExecuteAgent","description":"Creates a high-level plan for complex tasks and then executes each step. Suitable for multi-stage problems or when a strategic approach is needed."},{"name":"ReAct Agent","value":"reActAgent","description":"Combines reasoning and action in an iterative process. Effective for tasks that require careful analysis and step-by-step problem-solving."},{"name":"SQL Agent","value":"sqlAgent","description":"Specializes in interacting with SQL databases. Ideal for data analysis tasks, generating queries, or extracting insights from structured data."}],"default":"toolsAgent","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.8}}]}}},{"displayName":"Source for Prompt (User Message)","name":"promptType","type":"options","options":[{"name":"Connected Chat Trigger Node","value":"auto","description":"Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"},{"name":"Connected Guardrails Node","value":"guardrails","description":"Looks for an input field called 'guardrailsInput' that is coming from a directly connected Guardrails Node"},{"name":"Define below","value":"define","description":"Use an expression to reference data in previous nodes or enter static text"}],"default":"auto","displayOptions":{"hide":{"@version":[{"_cnd":{"lte":1.2}}],"agent":["sqlAgent"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.guardrailsInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["guardrails"]}},"displayOptions":{"show":{"promptType":["guardrails"],"@version":[{"_cnd":{"gte":1.7}}]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.chatInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["auto"]}},"displayOptions":{"show":{"promptType":["auto"],"@version":[{"_cnd":{"gte":1.7}}]},"hide":{"agent":["sqlAgent"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2},"builderHint":{"placeholderSupported":false,"propertyHint":"Use expressions to include dynamic data from previous nodes (e.g., expr('{{ $json.input }}')). Static text prompts ignore incoming data."},"displayOptions":{"show":{"promptType":["define"]},"hide":{"agent":["sqlAgent"]}}},{"displayName":"For more reliable structured output parsing, consider using the Tools agent","name":"notice","type":"notice","default":"","displayOptions":{"show":{"hasOutputParser":[true],"agent":["conversationalAgent","reActAgent","planAndExecuteAgent","openAiFunctionsAgent"]}}},{"displayName":"Require Specific Output Format","name":"hasOutputParser","type":"boolean","default":false,"noDataExpression":true,"displayOptions":{"hide":{"@version":[{"_cnd":{"lte":1.2}}],"agent":["sqlAgent"]}}},{"displayName":"Connect an <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_outputParser'>output parser</a> on the canvas to specify the output format you require","name":"notice","type":"notice","default":"","displayOptions":{"show":{"hasOutputParser":[true],"agent":["toolsAgent"]}}},{"displayName":"Options","name":"options","type":"collection","displayOptions":{"show":{"agent":["toolsAgent"]}},"default":{},"placeholder":"Add Option","options":[{"displayName":"System Message","name":"systemMessage","type":"string","default":"You are a helpful assistant","description":"The message that will be sent to the agent before the conversation starts","builderHint":{"propertyHint":"Must include: agent's purpose, exact names of connected tools, and response instructions"},"typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Automatically Passthrough Binary Images","name":"passthroughBinaryImages","type":"boolean","default":true,"description":"Whether or not binary images should be automatically passed through to the agent as image type messages"},{"displayName":"Automatically Passthrough Binary PDFs","name":"passthroughBinaryPdfs","type":"boolean","default":false,"description":"Whether or not binary PDF documents should be automatically passed through to the agent. Useful for models that natively support PDF input (e.g. Google Gemini)."},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]}]},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["conversationalAgent"],"@version":[1]}},"default":"={{ $json.input }}"},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["conversationalAgent"],"@version":[1.1]}},"default":"={{ $json.chat_input }}"},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["conversationalAgent"],"@version":[1.2]}},"default":"={{ $json.chatInput }}"},{"displayName":"Options","name":"options","type":"collection","displayOptions":{"show":{"agent":["conversationalAgent"]}},"default":{},"placeholder":"Add Option","options":[{"displayName":"Human Message","name":"humanMessage","type":"string","default":"TOOLS\n------\nAssistant can ask the user to use tools to look up information that may be helpful in answering the users original question. The tools the human can use are:\n\n{tools}\n\n{format_instructions}\n\nUSER'S INPUT\n--------------------\nHere is the user's input (remember to respond with a markdown code snippet of a json blob with a single action, and NOTHING else):\n\n{{input}}","description":"The message that will provide the agent with a list of tools to use","typeOptions":{"rows":6}},{"displayName":"System Message","name":"systemMessage","type":"string","default":"Assistant is a large language model trained by OpenAI.\n\nAssistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n\nAssistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n\nOverall, Assistant is a powerful system that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.","description":"The message that will be sent to the agent before the conversation starts","typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]}]},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["openAiFunctionsAgent"],"@version":[1]}},"default":"={{ $json.input }}"},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["openAiFunctionsAgent"],"@version":[1.1]}},"default":"={{ $json.chat_input }}"},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["openAiFunctionsAgent"],"@version":[1.2]}},"default":"={{ $json.chatInput }}"},{"displayName":"Options","name":"options","type":"collection","displayOptions":{"show":{"agent":["openAiFunctionsAgent"]}},"default":{},"placeholder":"Add Option","options":[{"displayName":"System Message","name":"systemMessage","type":"string","default":"You are a helpful AI assistant.","description":"The message that will be sent to the agent before the conversation starts","typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]}]},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["reActAgent"],"@version":[1]}},"default":"={{ $json.input }}"},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["reActAgent"],"@version":[1.1]}},"default":"={{ $json.chat_input }}"},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["reActAgent"],"@version":[1.2]}},"default":"={{ $json.chatInput }}"},{"displayName":"Options","name":"options","type":"collection","displayOptions":{"show":{"agent":["reActAgent"]}},"default":{},"placeholder":"Add Option","options":[{"displayName":"Human Message Template","name":"humanMessageTemplate","type":"string","default":"{input}\n\n{agent_scratchpad}","description":"String to use directly as the human message template","typeOptions":{"rows":6}},{"displayName":"Prefix Message","name":"prefix","type":"string","default":"Answer the following questions as best you can. You have access to the following tools:","description":"String to put before the list of tools","typeOptions":{"rows":6}},{"displayName":"Suffix Message for Chat Model","name":"suffixChat","type":"string","default":"Begin! Reminder to always use the exact characters `Final Answer` when responding.","description":"String to put after the list of tools that will be used if chat model is used","typeOptions":{"rows":6}},{"displayName":"Suffix Message for Regular Model","name":"suffix","type":"string","default":"Begin!\n\n\tQuestion: {input}\n\tThought:{agent_scratchpad}","description":"String to put after the list of tools that will be used if regular model is used","typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]}]},{"displayName":"Data Source","name":"dataSource","type":"options","displayOptions":{"show":{"agent":["sqlAgent"],"@version":[{"_cnd":{"lt":1.4}}]}},"default":"sqlite","description":"SQL database to connect to","options":[{"name":"MySQL","value":"mysql","description":"Connect to a MySQL database"},{"name":"Postgres","value":"postgres","description":"Connect to a Postgres database"},{"name":"SQLite","value":"sqlite","description":"Use SQLite by connecting a database file as binary input"}]},{"displayName":"Data Source","name":"dataSource","type":"options","displayOptions":{"show":{"agent":["sqlAgent"],"@version":[{"_cnd":{"gte":1.4}}]}},"default":"postgres","description":"SQL database to connect to","options":[{"name":"MySQL","value":"mysql","description":"Connect to a MySQL database"},{"name":"Postgres","value":"postgres","description":"Connect to a Postgres database"},{"name":"SQLite","value":"sqlite","description":"Use SQLite by connecting a database file as binary input"}]},{"displayName":"Credentials","name":"credentials","type":"credentials","default":""},{"displayName":"Pass the SQLite database into this node as binary data, e.g. by inserting a 'Read/Write Files from Disk' node beforehand","name":"sqLiteFileNotice","type":"notice","default":"","displayOptions":{"show":{"agent":["sqlAgent"],"dataSource":["sqlite"]}}},{"displayName":"Input Binary Field","name":"binaryPropertyName","type":"string","default":"data","required":true,"placeholder":"e.g data","hint":"The name of the input binary field containing the file to be extracted","displayOptions":{"show":{"agent":["sqlAgent"],"dataSource":["sqlite"]}}},{"displayName":"Prompt","name":"input","type":"string","displayOptions":{"show":{"agent":["sqlAgent"],"@version":[{"_cnd":{"lte":1.2}}]}},"default":"","required":true,"typeOptions":{"rows":5}},{"displayName":"Source for Prompt (User Message)","name":"promptType","type":"options","options":[{"name":"Connected Chat Trigger Node","value":"auto","description":"Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"},{"name":"Connected Guardrails Node","value":"guardrails","description":"Looks for an input field called 'guardrailsInput' that is coming from a directly connected Guardrails Node"},{"name":"Define below","value":"define","description":"Use an expression to reference data in previous nodes or enter static text"}],"default":"auto","displayOptions":{"hide":{"@version":[{"_cnd":{"lte":1.2}}]},"show":{"agent":["sqlAgent"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.guardrailsInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["guardrails"]}},"displayOptions":{"show":{"promptType":["guardrails"],"@version":[{"_cnd":{"gte":1.7}}],"agent":["sqlAgent"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.chatInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["auto"]}},"displayOptions":{"show":{"promptType":["auto"],"@version":[{"_cnd":{"gte":1.7}}],"agent":["sqlAgent"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2},"builderHint":{"placeholderSupported":false,"propertyHint":"Use expressions to include dynamic data from previous nodes (e.g., expr('{{ $json.input }}')). Static text prompts ignore incoming data."},"displayOptions":{"show":{"promptType":["define"],"agent":["sqlAgent"]}}},{"displayName":"Options","name":"options","type":"collection","displayOptions":{"show":{"agent":["sqlAgent"]}},"default":{},"placeholder":"Add Option","options":[{"displayName":"Ignored Tables","name":"ignoredTables","type":"string","default":"","description":"Comma-separated list of tables to ignore from the database. If empty, no tables are ignored."},{"displayName":"Include Sample Rows","name":"includedSampleRows","type":"number","description":"Number of sample rows to include in the prompt to the agent. It helps the agent to understand the schema of the database but it also increases the amount of tokens used.","default":3},{"displayName":"Included Tables","name":"includedTables","type":"string","default":"","description":"Comma-separated list of tables to include in the database. If empty, all tables are included."},{"displayName":"Prefix Prompt","name":"prefixPrompt","type":"string","default":"You are an agent designed to interact with an SQL database.\nGiven an input question, create a syntactically correct {dialect} query to run, then look at the results of the query and return the answer.\nUnless the user specifies a specific number of examples they wish to obtain, always limit your query to at most {top_k} results using the LIMIT clause.\nYou can order the results by a relevant column to return the most interesting examples in the database.\nNever query for all the columns from a specific table, only ask for a the few relevant columns given the question.\nYou have access to tools for interacting with the database.\nOnly use the below tools. Only use the information returned by the below tools to construct your final answer.\nYou MUST double check your query before executing it. If you get an error while executing a query, rewrite the query and try again.\n\nDO NOT make any DML statements (INSERT, UPDATE, DELETE, DROP etc.) to the database.\n\nIf the question does not seem related to the database, just return \"I don't know\" as the answer.","description":"Prefix prompt to use for the agent","typeOptions":{"rows":10}},{"displayName":"Suffix Prompt","name":"suffixPrompt","type":"string","default":"Begin!\nChat History:\n{chatHistory}\n\nQuestion: {input}\nThought: I should look at the tables in the database to see what I can query.\n{agent_scratchpad}","description":"Suffix prompt to use for the agent","typeOptions":{"rows":4}},{"displayName":"Limit","name":"topK","type":"number","default":10,"description":"The maximum number of results to return"},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]}]},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["planAndExecuteAgent"],"@version":[1]}},"default":"={{ $json.input }}"},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["planAndExecuteAgent"],"@version":[1.1]}},"default":"={{ $json.chat_input }}"},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["planAndExecuteAgent"],"@version":[1.2]}},"default":"={{ $json.chatInput }}"},{"displayName":"Options","name":"options","type":"collection","displayOptions":{"show":{"agent":["planAndExecuteAgent"]}},"default":{},"placeholder":"Add Option","options":[{"displayName":"Human Message Template","name":"humanMessageTemplate","type":"string","default":"Previous steps: {previous_steps}\n\nCurrent objective: {current_step}\n\n{agent_scratchpad}\n\nYou may extract and combine relevant data from your previous steps when responding to me.","description":"The message that will be sent to the agent during each step execution","typeOptions":{"rows":6}},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]}]}]},
|
|
11
|
+
{"displayName":"AI Agent","name":"agent","icon":"node:ai-agent","iconColor":"black","group":["transform"],"description":"Generates an action plan and executes it. Can use external tools.","codex":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"categories":["AI"],"subcategories":{"AI":["Agents","Root Nodes"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]}},"defaultVersion":3.1,"builderHint":{"searchHint":"Wire model/memory/tools/outputParser via the SDK `subnodes` config object using factory functions (`languageModel()`, `memory()`, `tool()`, `outputParser()`). Inside subnodes, reference upstream data with `nodeJson(triggerNode, 'path')`, not `$json` — subnodes do not share the main predecessor's item context.","relatedNodes":[{"nodeType":"n8n-nodes-base.aggregate","relationHint":"Use to combine multiple items together before the agent"},{"nodeType":"@n8n/n8n-nodes-langchain.outputParserStructured","relationHint":"Attach for structured output; reference fields as $json.output.fieldName for use in subsequent nodes (conditions, storing data)"},{"nodeType":"@n8n/n8n-nodes-langchain.agentTool","relationHint":"For multi-agent systems using orchestrator pattern"},{"nodeType":"@n8n/n8n-nodes-langchain.memoryBufferWindow","relationHint":"Required for conversational workflows - connect memory to every agent that needs to recall previous messages in the conversation"}],"extraTypeDefContent":[{"content":"<patterns>\n<pattern title=\"Agent with model, memory, structured output parser\">\nconst chatTrigger = trigger({\n type: '@n8n/n8n-nodes-langchain.chatTrigger',\n version: 1.3,\n config: {\n name: 'Chat Trigger',\n parameters: { public: false },\n output: [{ sessionId: 'chat-session-id', chatInput: 'Hello' }]\n }\n});\n\nconst model = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n version: 1.3,\n config: {\n name: 'OpenAI Chat Model',\n parameters: { model: { __rl: true, mode: 'list', value: 'gpt-5.4' } },\n credentials: { openAiApi: { id: 'credId', name: 'OpenAI account' } }\n }\n});\n\nconst parser = outputParser({\n type: '@n8n/n8n-nodes-langchain.outputParserStructured',\n version: 1.3,\n config: {\n name: 'Output Parser',\n parameters: {\n schemaType: 'fromJson',\n jsonSchemaExample: '{ \"score\": 75, \"tier\": \"hot\" }'\n }\n }\n});\n\nconst memoryNode = memory({\n type: '@n8n/n8n-nodes-langchain.memoryBufferWindow',\n version: 1.3,\n config: {\n name: 'Conversation Memory',\n parameters: {\n sessionIdType: 'customKey',\n sessionKey: nodeJson(chatTrigger, 'sessionId'),\n contextWindowLength: 10\n }\n }\n});\n\nconst agent = node({\n type: '@n8n/n8n-nodes-langchain.agent',\n version: 3.1,\n config: {\n name: 'AI Agent',\n parameters: {\n promptType: 'define',\n text: expr('{{ $json.prompt }}'),\n hasOutputParser: true,\n options: { systemMessage: 'You are an expert...' }\n },\n subnodes: { model, memory: memoryNode, outputParser: parser }\n }\n});\n</pattern>\n\n<pattern title=\"Agent with a fallback model (primary + backup provider)\">\n// Give ONE agent a backup model with a FLAT model array: the first entry is the\n// primary, the second fills the agent's Fallback Model input. The agent retries\n// on the second model when the first call fails.\n// Do NOT build a second agent or an error-output branch for this — one agent.\n// A NESTED array (model: [[a, b]]) means something else: both models on the SAME\n// input, which is not a fallback.\n\nconst primaryModel = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatAnthropic',\n version: 1.6,\n config: {\n name: 'Claude (Primary)',\n parameters: { model: { __rl: true, mode: 'list', value: 'claude-sonnet-4-5' } }\n }\n});\n\nconst fallbackModel = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n version: 1.3,\n config: {\n name: 'OpenAI (Fallback)',\n parameters: { model: { __rl: true, mode: 'list', value: 'gpt-5.4' } }\n }\n});\n\nconst agentWithFallback = node({\n type: '@n8n/n8n-nodes-langchain.agent',\n version: 3.1,\n config: {\n name: 'AI Agent',\n parameters: {\n promptType: 'define',\n text: expr('{{ $json.prompt }}'),\n options: { systemMessage: 'You are an expert...' },\n // REQUIRED with a second model: the agent only declares its Fallback Model\n // input when this is on. Without it the second model is wired to an input\n // that does not exist and never runs.\n needsFallback: true\n },\n subnodes: { model: [primaryModel, fallbackModel] }\n }\n});\n</pattern>\n</patterns>"}],"inputs":{"ai_languageModel":{"required":true},"ai_memory":{"required":false},"ai_tool":{"required":false},"ai_outputParser":{"required":false,"displayOptions":{"show":{"hasOutputParser":[true]}}}}},"version":[3,3.1],"defaults":{"name":"AI Agent","color":"#404040"},"inputs":"={{\n\t\t\t\t((hasOutputParser, needsFallback) => {\n\t\t\t\t\tfunction getInputs(hasMainInput, hasOutputParser, needsFallback) {\n const getInputData = (inputs) => {\n return inputs.map(({ type, filter, displayName, required }) => {\n const input = {\n type,\n displayName,\n required,\n maxConnections: ['ai_languageModel', 'ai_memory', 'ai_outputParser'].includes(type)\n ? 1\n : undefined,\n };\n if (filter) {\n input.filter = filter;\n }\n return input;\n });\n };\n let specialInputs = [\n {\n type: 'ai_languageModel',\n displayName: 'Chat Model',\n required: true,\n filter: {\n excludedNodes: [\n '@n8n/n8n-nodes-langchain.lmCohere',\n '@n8n/n8n-nodes-langchain.lmOllama',\n 'n8n/n8n-nodes-langchain.lmOpenAi',\n '@n8n/n8n-nodes-langchain.lmOpenHuggingFaceInference',\n ],\n },\n },\n {\n type: 'ai_languageModel',\n displayName: 'Fallback Model',\n required: true,\n filter: {\n excludedNodes: [\n '@n8n/n8n-nodes-langchain.lmCohere',\n '@n8n/n8n-nodes-langchain.lmOllama',\n 'n8n/n8n-nodes-langchain.lmOpenAi',\n '@n8n/n8n-nodes-langchain.lmOpenHuggingFaceInference',\n ],\n },\n },\n {\n displayName: 'Memory',\n type: 'ai_memory',\n },\n {\n displayName: 'Tool',\n type: 'ai_tool',\n },\n {\n displayName: 'Output Parser',\n type: 'ai_outputParser',\n },\n ];\n if (hasOutputParser === false) {\n specialInputs = specialInputs.filter((input) => input.type !== 'ai_outputParser');\n }\n if (needsFallback === false) {\n specialInputs = specialInputs.filter((input) => input.displayName !== 'Fallback Model');\n }\n const mainInputs = hasMainInput ? ['main'] : [];\n return [...mainInputs, ...getInputData(specialInputs)];\n};\n\t\t\t\t\treturn getInputs(true, hasOutputParser, needsFallback);\n\t\t\t\t})($parameter.hasOutputParser === undefined || $parameter.hasOutputParser === true, $parameter.needsFallback !== undefined && $parameter.needsFallback === true)\n\t\t\t}}","outputs":["main"],"properties":[{"displayName":"Source for Prompt (User Message)","name":"promptType","type":"options","options":[{"name":"Connected Chat Trigger Node","value":"auto","description":"Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"},{"name":"Connected Guardrails Node","value":"guardrails","description":"Looks for an input field called 'guardrailsInput' that is coming from a directly connected Guardrails Node"},{"name":"Define below","value":"define","description":"Use an expression to reference data in previous nodes or enter static text"}],"default":"auto","displayOptions":{"show":{"@version":[{"_cnd":{"lt":3.1}}]}}},{"displayName":"Source for Prompt (User Message)","name":"promptType","type":"options","options":[{"name":"Connected Chat Trigger Node","value":"auto","description":"Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"},{"name":"Define below","value":"define","description":"Use an expression to reference data in previous nodes or enter static text"}],"default":"auto","builderHint":{"propertyHint":"Use 'auto' when following a chat trigger, 'define' when custom prompt needed"},"displayOptions":{"show":{"@version":[{"_cnd":{"gte":3.1}}]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.guardrailsInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["guardrails"]}},"displayOptions":{"show":{"promptType":["guardrails"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.chatInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["auto"]}},"displayOptions":{"show":{"promptType":["auto"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2},"builderHint":{"placeholderSupported":false,"propertyHint":"Use expressions to include dynamic data from previous nodes (e.g., expr('{{ $json.input }}')). Static text prompts ignore incoming data."},"displayOptions":{"show":{"promptType":["define"]}}},{"displayName":"Require Specific Output Format","name":"hasOutputParser","type":"boolean","default":false,"noDataExpression":true,"builderHint":{"propertyHint":"Set to `true` when you need structured JSON output. The agent then requires an `outputParser` entry in its `subnodes` config (typically an `outputParserStructured` node defined via the `outputParser({...})` SDK factory). With `hasOutputParser: false` the agent returns a plain string in `$json.output`."}},{"displayName":"Connect an <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_outputParser'>output parser</a> on the canvas to specify the output format you require","name":"notice","type":"notice","default":"","displayOptions":{"show":{"hasOutputParser":[true]}}},{"displayName":"Enable Fallback Model","name":"needsFallback","type":"boolean","default":false,"noDataExpression":true},{"displayName":"Connect an additional language model on the canvas to use it as a fallback if the main model fails","name":"fallbackNotice","type":"notice","default":"","displayOptions":{"show":{"needsFallback":[true]}}},{"displayName":"Options","name":"options","type":"collection","default":{},"placeholder":"Add Option","options":[{"displayName":"System Message","name":"systemMessage","type":"string","default":"You are a helpful assistant","description":"The message that will be sent to the agent before the conversation starts","builderHint":{"propertyHint":"Must include: agent's purpose, exact names of connected tools, and response instructions"},"typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Automatically Passthrough Binary Images","name":"passthroughBinaryImages","type":"boolean","default":true,"description":"Whether or not binary images should be automatically passed through to the agent as image type messages"},{"displayName":"Automatically Passthrough Binary PDFs","name":"passthroughBinaryPdfs","type":"boolean","default":false,"description":"Whether or not binary PDF documents should be automatically passed through to the agent. Useful for models that natively support PDF input (e.g. Google Gemini)."},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]},{"displayName":"Auto-save highlighted data","name":"autoSaveHighlightedData","type":"boolean","default":true,"description":"Whether to automatically save <a href=\"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executiondata/\" target=\"_blank\">highlighted data</a>. This data can then be used to filter executions in the Executions view. Available on Pro and Enterprise plans in n8n Cloud, and on Enterprise or registered Community Edition for self-hosted. Defaults to true."},{"displayName":"Enable Streaming","name":"enableStreaming","type":"boolean","default":true,"description":"Whether this agent will stream the response in real-time as it generates text"},{"displayName":"Batch Processing","name":"batching","type":"collection","placeholder":"Add Batch Processing Option","description":"Batch processing options for rate limiting","default":{},"options":[{"displayName":"Batch Size","name":"batchSize","default":1,"type":"number","description":"How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."},{"displayName":"Delay Between Batches","name":"delayBetweenBatches","default":0,"type":"number","description":"Delay in milliseconds between batches. This is useful for rate limiting."}]},{"displayName":"Max Tokens To Read From Memory","name":"maxTokensFromMemory","type":"hidden","default":0,"description":"The maximum number of tokens to read from the chat memory history. Set to 0 to read all history."},{"displayName":"Force Tool Call on First Iteration","name":"forceToolCallOnFirstIteration","type":"boolean","default":false,"description":"Whether the model must call at least one tool on its first response of each run. Later responses are unrestricted so the agent can answer. Useful for smaller models that otherwise skip tool calls; the model must support forced tool choice."}]}],"hints":[{"message":"You are using streaming responses. Make sure to set the response mode to \"Streaming Response\" on the connected trigger node.","type":"warning","location":"outputPane","whenToDisplay":"afterExecution","displayCondition":"={{ $parameter[\"enableStreaming\"] === true }}"}]},
|
|
12
|
+
{"displayName":"AI Agent","name":"agent","icon":"node:ai-agent","iconColor":"black","group":["transform"],"description":"Generates an action plan and executes it. Can use external tools.","codex":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"categories":["AI"],"subcategories":{"AI":["Agents","Root Nodes"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]}},"defaultVersion":3.1,"builderHint":{"searchHint":"Wire model/memory/tools/outputParser via the SDK `subnodes` config object using factory functions (`languageModel()`, `memory()`, `tool()`, `outputParser()`). Inside subnodes, reference upstream data with `nodeJson(triggerNode, 'path')`, not `$json` — subnodes do not share the main predecessor's item context.","relatedNodes":[{"nodeType":"n8n-nodes-base.aggregate","relationHint":"Use to combine multiple items together before the agent"},{"nodeType":"@n8n/n8n-nodes-langchain.outputParserStructured","relationHint":"Attach for structured output; reference fields as $json.output.fieldName for use in subsequent nodes (conditions, storing data)"},{"nodeType":"@n8n/n8n-nodes-langchain.agentTool","relationHint":"For multi-agent systems using orchestrator pattern"},{"nodeType":"@n8n/n8n-nodes-langchain.memoryBufferWindow","relationHint":"Required for conversational workflows - connect memory to every agent that needs to recall previous messages in the conversation"}],"extraTypeDefContent":[{"content":"<patterns>\n<pattern title=\"Agent with model, memory, structured output parser\">\nconst chatTrigger = trigger({\n type: '@n8n/n8n-nodes-langchain.chatTrigger',\n version: 1.3,\n config: {\n name: 'Chat Trigger',\n parameters: { public: false },\n output: [{ sessionId: 'chat-session-id', chatInput: 'Hello' }]\n }\n});\n\nconst model = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n version: 1.3,\n config: {\n name: 'OpenAI Chat Model',\n parameters: { model: { __rl: true, mode: 'list', value: 'gpt-5.4' } },\n credentials: { openAiApi: { id: 'credId', name: 'OpenAI account' } }\n }\n});\n\nconst parser = outputParser({\n type: '@n8n/n8n-nodes-langchain.outputParserStructured',\n version: 1.3,\n config: {\n name: 'Output Parser',\n parameters: {\n schemaType: 'fromJson',\n jsonSchemaExample: '{ \"score\": 75, \"tier\": \"hot\" }'\n }\n }\n});\n\nconst memoryNode = memory({\n type: '@n8n/n8n-nodes-langchain.memoryBufferWindow',\n version: 1.3,\n config: {\n name: 'Conversation Memory',\n parameters: {\n sessionIdType: 'customKey',\n sessionKey: nodeJson(chatTrigger, 'sessionId'),\n contextWindowLength: 10\n }\n }\n});\n\nconst agent = node({\n type: '@n8n/n8n-nodes-langchain.agent',\n version: 3.1,\n config: {\n name: 'AI Agent',\n parameters: {\n promptType: 'define',\n text: expr('{{ $json.prompt }}'),\n hasOutputParser: true,\n options: { systemMessage: 'You are an expert...' }\n },\n subnodes: { model, memory: memoryNode, outputParser: parser }\n }\n});\n</pattern>\n\n<pattern title=\"Agent with a fallback model (primary + backup provider)\">\n// Give ONE agent a backup model with a FLAT model array: the first entry is the\n// primary, the second fills the agent's Fallback Model input. The agent retries\n// on the second model when the first call fails.\n// Do NOT build a second agent or an error-output branch for this — one agent.\n// A NESTED array (model: [[a, b]]) means something else: both models on the SAME\n// input, which is not a fallback.\n\nconst primaryModel = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatAnthropic',\n version: 1.6,\n config: {\n name: 'Claude (Primary)',\n parameters: { model: { __rl: true, mode: 'list', value: 'claude-sonnet-4-5' } }\n }\n});\n\nconst fallbackModel = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n version: 1.3,\n config: {\n name: 'OpenAI (Fallback)',\n parameters: { model: { __rl: true, mode: 'list', value: 'gpt-5.4' } }\n }\n});\n\nconst agentWithFallback = node({\n type: '@n8n/n8n-nodes-langchain.agent',\n version: 3.1,\n config: {\n name: 'AI Agent',\n parameters: {\n promptType: 'define',\n text: expr('{{ $json.prompt }}'),\n options: { systemMessage: 'You are an expert...' },\n // REQUIRED with a second model: the agent only declares its Fallback Model\n // input when this is on. Without it the second model is wired to an input\n // that does not exist and never runs.\n needsFallback: true\n },\n subnodes: { model: [primaryModel, fallbackModel] }\n }\n});\n</pattern>\n</patterns>"}],"inputs":{"ai_languageModel":{"required":true},"ai_memory":{"required":false},"ai_tool":{"required":false},"ai_outputParser":{"required":false,"displayOptions":{"show":{"hasOutputParser":[true]}}}}},"version":[2,2.1,2.2],"defaults":{"name":"AI Agent","color":"#404040"},"inputs":"={{\n\t\t\t\t((hasOutputParser, needsFallback) => {\n\t\t\t\t\tfunction getInputs(hasMainInput, hasOutputParser, needsFallback) {\n const getInputData = (inputs) => {\n return inputs.map(({ type, filter, displayName, required }) => {\n const input = {\n type,\n displayName,\n required,\n maxConnections: ['ai_languageModel', 'ai_memory', 'ai_outputParser'].includes(type)\n ? 1\n : undefined,\n };\n if (filter) {\n input.filter = filter;\n }\n return input;\n });\n };\n let specialInputs = [\n {\n type: 'ai_languageModel',\n displayName: 'Chat Model',\n required: true,\n filter: {\n excludedNodes: [\n '@n8n/n8n-nodes-langchain.lmCohere',\n '@n8n/n8n-nodes-langchain.lmOllama',\n 'n8n/n8n-nodes-langchain.lmOpenAi',\n '@n8n/n8n-nodes-langchain.lmOpenHuggingFaceInference',\n ],\n },\n },\n {\n type: 'ai_languageModel',\n displayName: 'Fallback Model',\n required: true,\n filter: {\n excludedNodes: [\n '@n8n/n8n-nodes-langchain.lmCohere',\n '@n8n/n8n-nodes-langchain.lmOllama',\n 'n8n/n8n-nodes-langchain.lmOpenAi',\n '@n8n/n8n-nodes-langchain.lmOpenHuggingFaceInference',\n ],\n },\n },\n {\n displayName: 'Memory',\n type: 'ai_memory',\n },\n {\n displayName: 'Tool',\n type: 'ai_tool',\n },\n {\n displayName: 'Output Parser',\n type: 'ai_outputParser',\n },\n ];\n if (hasOutputParser === false) {\n specialInputs = specialInputs.filter((input) => input.type !== 'ai_outputParser');\n }\n if (needsFallback === false) {\n specialInputs = specialInputs.filter((input) => input.displayName !== 'Fallback Model');\n }\n const mainInputs = hasMainInput ? ['main'] : [];\n return [...mainInputs, ...getInputData(specialInputs)];\n};\n\t\t\t\t\treturn getInputs(true, hasOutputParser, needsFallback);\n\t\t\t\t})($parameter.hasOutputParser === undefined || $parameter.hasOutputParser === true, $parameter.needsFallback !== undefined && $parameter.needsFallback === true)\n\t\t\t}}","outputs":["main"],"properties":[{"displayName":"Source for Prompt (User Message)","name":"promptType","type":"options","options":[{"name":"Connected Chat Trigger Node","value":"auto","description":"Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"},{"name":"Connected Guardrails Node","value":"guardrails","description":"Looks for an input field called 'guardrailsInput' that is coming from a directly connected Guardrails Node"},{"name":"Define below","value":"define","description":"Use an expression to reference data in previous nodes or enter static text"}],"default":"auto"},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.guardrailsInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["guardrails"]}},"displayOptions":{"show":{"promptType":["guardrails"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.chatInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["auto"]}},"displayOptions":{"show":{"promptType":["auto"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2},"builderHint":{"placeholderSupported":false,"propertyHint":"Use expressions to include dynamic data from previous nodes (e.g., expr('{{ $json.input }}')). Static text prompts ignore incoming data."},"displayOptions":{"show":{"promptType":["define"]}}},{"displayName":"Require Specific Output Format","name":"hasOutputParser","type":"boolean","default":false,"noDataExpression":true},{"displayName":"Connect an <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_outputParser'>output parser</a> on the canvas to specify the output format you require","name":"notice","type":"notice","default":"","displayOptions":{"show":{"hasOutputParser":[true]}}},{"displayName":"Enable Fallback Model","name":"needsFallback","type":"boolean","default":false,"noDataExpression":true,"displayOptions":{"show":{"@version":[{"_cnd":{"gte":2.1}}]}}},{"displayName":"Connect an additional language model on the canvas to use it as a fallback if the main model fails","name":"fallbackNotice","type":"notice","default":"","displayOptions":{"show":{"needsFallback":[true]}}},{"displayName":"Options","name":"options","type":"collection","default":{},"placeholder":"Add Option","options":[{"displayName":"System Message","name":"systemMessage","type":"string","default":"You are a helpful assistant","description":"The message that will be sent to the agent before the conversation starts","builderHint":{"propertyHint":"Must include: agent's purpose, exact names of connected tools, and response instructions"},"typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Automatically Passthrough Binary Images","name":"passthroughBinaryImages","type":"boolean","default":true,"description":"Whether or not binary images should be automatically passed through to the agent as image type messages"},{"displayName":"Automatically Passthrough Binary PDFs","name":"passthroughBinaryPdfs","type":"boolean","default":false,"description":"Whether or not binary PDF documents should be automatically passed through to the agent. Useful for models that natively support PDF input (e.g. Google Gemini)."},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]},{"displayName":"Batch Processing","name":"batching","type":"collection","placeholder":"Add Batch Processing Option","description":"Batch processing options for rate limiting","default":{},"options":[{"displayName":"Batch Size","name":"batchSize","default":1,"type":"number","description":"How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."},{"displayName":"Delay Between Batches","name":"delayBetweenBatches","default":0,"type":"number","description":"Delay in milliseconds between batches. This is useful for rate limiting."}]},{"displayName":"Enable Streaming","name":"enableStreaming","type":"boolean","default":true,"description":"Whether this agent will stream the response in real-time as it generates text"}],"displayOptions":{"hide":{"@version":[{"_cnd":{"lt":2.2}}]}}},{"displayName":"Options","name":"options","type":"collection","default":{},"placeholder":"Add Option","options":[{"displayName":"System Message","name":"systemMessage","type":"string","default":"You are a helpful assistant","description":"The message that will be sent to the agent before the conversation starts","builderHint":{"propertyHint":"Must include: agent's purpose, exact names of connected tools, and response instructions"},"typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Automatically Passthrough Binary Images","name":"passthroughBinaryImages","type":"boolean","default":true,"description":"Whether or not binary images should be automatically passed through to the agent as image type messages"},{"displayName":"Automatically Passthrough Binary PDFs","name":"passthroughBinaryPdfs","type":"boolean","default":false,"description":"Whether or not binary PDF documents should be automatically passed through to the agent. Useful for models that natively support PDF input (e.g. Google Gemini)."},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]},{"displayName":"Batch Processing","name":"batching","type":"collection","placeholder":"Add Batch Processing Option","description":"Batch processing options for rate limiting","default":{},"options":[{"displayName":"Batch Size","name":"batchSize","default":1,"type":"number","description":"How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."},{"displayName":"Delay Between Batches","name":"delayBetweenBatches","default":0,"type":"number","description":"Delay in milliseconds between batches. This is useful for rate limiting."}]}],"displayOptions":{"show":{"@version":[{"_cnd":{"lt":2.2}}]}}}],"hints":[{"message":"You are using streaming responses. Make sure to set the response mode to \"Streaming Response\" on the connected trigger node.","type":"warning","location":"outputPane","whenToDisplay":"afterExecution","displayCondition":"={{ $parameter[\"enableStreaming\"] === true }}"}]},
|
|
13
|
+
{"version":[1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9],"displayName":"AI Agent","name":"agent","icon":"node:ai-agent","iconColor":"black","group":["transform"],"description":"Generates an action plan and executes it. Can use external tools.","codex":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"categories":["AI"],"subcategories":{"AI":["Agents","Root Nodes"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]}},"defaultVersion":3.1,"builderHint":{"searchHint":"Wire model/memory/tools/outputParser via the SDK `subnodes` config object using factory functions (`languageModel()`, `memory()`, `tool()`, `outputParser()`). Inside subnodes, reference upstream data with `nodeJson(triggerNode, 'path')`, not `$json` — subnodes do not share the main predecessor's item context.","relatedNodes":[{"nodeType":"n8n-nodes-base.aggregate","relationHint":"Use to combine multiple items together before the agent"},{"nodeType":"@n8n/n8n-nodes-langchain.outputParserStructured","relationHint":"Attach for structured output; reference fields as $json.output.fieldName for use in subsequent nodes (conditions, storing data)"},{"nodeType":"@n8n/n8n-nodes-langchain.agentTool","relationHint":"For multi-agent systems using orchestrator pattern"},{"nodeType":"@n8n/n8n-nodes-langchain.memoryBufferWindow","relationHint":"Required for conversational workflows - connect memory to every agent that needs to recall previous messages in the conversation"}],"extraTypeDefContent":[{"content":"<patterns>\n<pattern title=\"Agent with model, memory, structured output parser\">\nconst chatTrigger = trigger({\n type: '@n8n/n8n-nodes-langchain.chatTrigger',\n version: 1.3,\n config: {\n name: 'Chat Trigger',\n parameters: { public: false },\n output: [{ sessionId: 'chat-session-id', chatInput: 'Hello' }]\n }\n});\n\nconst model = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n version: 1.3,\n config: {\n name: 'OpenAI Chat Model',\n parameters: { model: { __rl: true, mode: 'list', value: 'gpt-5.4' } },\n credentials: { openAiApi: { id: 'credId', name: 'OpenAI account' } }\n }\n});\n\nconst parser = outputParser({\n type: '@n8n/n8n-nodes-langchain.outputParserStructured',\n version: 1.3,\n config: {\n name: 'Output Parser',\n parameters: {\n schemaType: 'fromJson',\n jsonSchemaExample: '{ \"score\": 75, \"tier\": \"hot\" }'\n }\n }\n});\n\nconst memoryNode = memory({\n type: '@n8n/n8n-nodes-langchain.memoryBufferWindow',\n version: 1.3,\n config: {\n name: 'Conversation Memory',\n parameters: {\n sessionIdType: 'customKey',\n sessionKey: nodeJson(chatTrigger, 'sessionId'),\n contextWindowLength: 10\n }\n }\n});\n\nconst agent = node({\n type: '@n8n/n8n-nodes-langchain.agent',\n version: 3.1,\n config: {\n name: 'AI Agent',\n parameters: {\n promptType: 'define',\n text: expr('{{ $json.prompt }}'),\n hasOutputParser: true,\n options: { systemMessage: 'You are an expert...' }\n },\n subnodes: { model, memory: memoryNode, outputParser: parser }\n }\n});\n</pattern>\n\n<pattern title=\"Agent with a fallback model (primary + backup provider)\">\n// Give ONE agent a backup model with a FLAT model array: the first entry is the\n// primary, the second fills the agent's Fallback Model input. The agent retries\n// on the second model when the first call fails.\n// Do NOT build a second agent or an error-output branch for this — one agent.\n// A NESTED array (model: [[a, b]]) means something else: both models on the SAME\n// input, which is not a fallback.\n\nconst primaryModel = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatAnthropic',\n version: 1.6,\n config: {\n name: 'Claude (Primary)',\n parameters: { model: { __rl: true, mode: 'list', value: 'claude-sonnet-4-5' } }\n }\n});\n\nconst fallbackModel = languageModel({\n type: '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n version: 1.3,\n config: {\n name: 'OpenAI (Fallback)',\n parameters: { model: { __rl: true, mode: 'list', value: 'gpt-5.4' } }\n }\n});\n\nconst agentWithFallback = node({\n type: '@n8n/n8n-nodes-langchain.agent',\n version: 3.1,\n config: {\n name: 'AI Agent',\n parameters: {\n promptType: 'define',\n text: expr('{{ $json.prompt }}'),\n options: { systemMessage: 'You are an expert...' },\n // REQUIRED with a second model: the agent only declares its Fallback Model\n // input when this is on. Without it the second model is wired to an input\n // that does not exist and never runs.\n needsFallback: true\n },\n subnodes: { model: [primaryModel, fallbackModel] }\n }\n});\n</pattern>\n</patterns>"}],"inputs":{"ai_languageModel":{"required":true},"ai_memory":{"required":false},"ai_tool":{"required":false},"ai_outputParser":{"required":false,"displayOptions":{"show":{"hasOutputParser":[true]}}}}},"defaults":{"name":"AI Agent","color":"#404040"},"inputs":"={{\n\t\t\t\t((agent, hasOutputParser) => {\n\t\t\t\t\tfunction getInputs(agent, hasOutputParser) {\n const getInputData = (inputs) => {\n const displayNames = {\n ai_languageModel: 'Model',\n ai_memory: 'Memory',\n ai_tool: 'Tool',\n ai_outputParser: 'Output Parser',\n };\n return inputs.map(({ type, filter }) => {\n const isModelType = type === 'ai_languageModel';\n let displayName = type in displayNames ? displayNames[type] : undefined;\n if (isModelType &&\n ['openAiFunctionsAgent', 'toolsAgent', 'conversationalAgent'].includes(agent)) {\n displayName = 'Chat Model';\n }\n const input = {\n type,\n displayName,\n required: isModelType,\n maxConnections: ['ai_languageModel', 'ai_memory', 'ai_outputParser'].includes(type)\n ? 1\n : undefined,\n };\n if (filter) {\n input.filter = filter;\n }\n return input;\n });\n };\n let specialInputs = [];\n if (agent === 'conversationalAgent') {\n specialInputs = [\n {\n type: 'ai_languageModel',\n filter: {\n nodes: [\n '@n8n/n8n-nodes-langchain.lmChatAnthropic',\n '@n8n/n8n-nodes-langchain.lmChatAwsBedrock',\n '@n8n/n8n-nodes-langchain.lmChatGroq',\n '@n8n/n8n-nodes-langchain.lmChatLemonade',\n '@n8n/n8n-nodes-langchain.lmChatOllama',\n '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n '@n8n/n8n-nodes-langchain.lmChatGoogleGemini',\n '@n8n/n8n-nodes-langchain.lmChatGoogleVertex',\n '@n8n/n8n-nodes-langchain.lmChatMistralCloud',\n '@n8n/n8n-nodes-langchain.lmChatMinimax',\n '@n8n/n8n-nodes-langchain.lmChatMoonshot',\n '@n8n/n8n-nodes-langchain.lmChatAzureOpenAi',\n '@n8n/n8n-nodes-langchain.lmChatDeepSeek',\n '@n8n/n8n-nodes-langchain.lmChatOpenRouter',\n '@n8n/n8n-nodes-langchain.lmChatVercelAiGateway',\n '@n8n/n8n-nodes-langchain.lmChatXAiGrok',\n '@n8n/n8n-nodes-langchain.modelSelector',\n ],\n },\n },\n {\n type: 'ai_memory',\n },\n {\n type: 'ai_tool',\n },\n {\n type: 'ai_outputParser',\n },\n ];\n }\n else if (agent === 'toolsAgent') {\n specialInputs = [\n {\n type: 'ai_languageModel',\n filter: {\n nodes: [\n '@n8n/n8n-nodes-langchain.lmChatAnthropic',\n '@n8n/n8n-nodes-langchain.lmChatAzureOpenAi',\n '@n8n/n8n-nodes-langchain.lmChatAwsBedrock',\n '@n8n/n8n-nodes-langchain.lmChatLemonade',\n '@n8n/n8n-nodes-langchain.lmChatMistralCloud',\n '@n8n/n8n-nodes-langchain.lmChatMinimax',\n '@n8n/n8n-nodes-langchain.lmChatMoonshot',\n '@n8n/n8n-nodes-langchain.lmChatOllama',\n '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n '@n8n/n8n-nodes-langchain.lmChatGroq',\n '@n8n/n8n-nodes-langchain.lmChatGoogleVertex',\n '@n8n/n8n-nodes-langchain.lmChatGoogleGemini',\n '@n8n/n8n-nodes-langchain.lmChatDeepSeek',\n '@n8n/n8n-nodes-langchain.lmChatOpenRouter',\n '@n8n/n8n-nodes-langchain.lmChatVercelAiGateway',\n '@n8n/n8n-nodes-langchain.lmChatXAiGrok',\n ],\n },\n },\n {\n type: 'ai_memory',\n },\n {\n type: 'ai_tool',\n required: true,\n },\n {\n type: 'ai_outputParser',\n },\n ];\n }\n else if (agent === 'openAiFunctionsAgent') {\n specialInputs = [\n {\n type: 'ai_languageModel',\n filter: {\n nodes: [\n '@n8n/n8n-nodes-langchain.lmChatOpenAi',\n '@n8n/n8n-nodes-langchain.lmChatAzureOpenAi',\n ],\n },\n },\n {\n type: 'ai_memory',\n },\n {\n type: 'ai_tool',\n required: true,\n },\n {\n type: 'ai_outputParser',\n },\n ];\n }\n else if (agent === 'reActAgent') {\n specialInputs = [\n {\n type: 'ai_languageModel',\n },\n {\n type: 'ai_tool',\n },\n {\n type: 'ai_outputParser',\n },\n ];\n }\n else if (agent === 'sqlAgent') {\n specialInputs = [\n {\n type: 'ai_languageModel',\n },\n {\n type: 'ai_memory',\n },\n ];\n }\n else if (agent === 'planAndExecuteAgent') {\n specialInputs = [\n {\n type: 'ai_languageModel',\n },\n {\n type: 'ai_tool',\n },\n {\n type: 'ai_outputParser',\n },\n ];\n }\n if (hasOutputParser === false) {\n specialInputs = specialInputs.filter((input) => input.type !== 'ai_outputParser');\n }\n return ['main', ...getInputData(specialInputs)];\n};\n\t\t\t\t\treturn getInputs(agent, hasOutputParser)\n\t\t\t\t})($parameter.agent, $parameter.hasOutputParser === undefined || $parameter.hasOutputParser === true)\n\t\t\t}}","outputs":["main"],"credentials":[{"name":"mySql","required":true,"testedBy":"mysqlConnectionTest","displayOptions":{"show":{"agent":["sqlAgent"],"/dataSource":["mysql"]}}},{"name":"postgres","required":true,"displayOptions":{"show":{"agent":["sqlAgent"],"/dataSource":["postgres"]}}}],"properties":[{"displayName":"This node is using Agent that has been deprecated. Please switch to using 'Tools Agent' instead.","name":"deprecated","type":"notice","default":"","displayOptions":{"show":{"agent":["conversationalAgent","openAiFunctionsAgent","planAndExecuteAgent","reActAgent","sqlAgent"]}}},{"displayName":"Agent","name":"agent","type":"options","noDataExpression":true,"options":[{"name":"Conversational Agent","value":"conversationalAgent","description":"Describes tools in the system prompt and parses JSON responses for tool calls. More flexible but potentially less reliable than the Tools Agent. Suitable for simpler interactions or with models not supporting structured schemas."},{"name":"OpenAI Functions Agent","value":"openAiFunctionsAgent","description":"Leverages OpenAI's function calling capabilities to precisely select and execute tools. Excellent for tasks requiring structured outputs when working with OpenAI models."},{"name":"Plan and Execute Agent","value":"planAndExecuteAgent","description":"Creates a high-level plan for complex tasks and then executes each step. Suitable for multi-stage problems or when a strategic approach is needed."},{"name":"ReAct Agent","value":"reActAgent","description":"Combines reasoning and action in an iterative process. Effective for tasks that require careful analysis and step-by-step problem-solving."},{"name":"SQL Agent","value":"sqlAgent","description":"Specializes in interacting with SQL databases. Ideal for data analysis tasks, generating queries, or extracting insights from structured data."}],"default":"conversationalAgent","displayOptions":{"show":{"@version":[{"_cnd":{"lte":1.5}}]}}},{"displayName":"Agent","name":"agent","type":"options","noDataExpression":true,"options":[{"name":"Tools Agent","value":"toolsAgent","description":"Utilizes structured tool schemas for precise and reliable tool selection and execution. Recommended for complex tasks requiring accurate and consistent tool usage, but only usable with models that support tool calling."},{"name":"Conversational Agent","value":"conversationalAgent","description":"Describes tools in the system prompt and parses JSON responses for tool calls. More flexible but potentially less reliable than the Tools Agent. Suitable for simpler interactions or with models not supporting structured schemas."},{"name":"OpenAI Functions Agent","value":"openAiFunctionsAgent","description":"Leverages OpenAI's function calling capabilities to precisely select and execute tools. Excellent for tasks requiring structured outputs when working with OpenAI models."},{"name":"Plan and Execute Agent","value":"planAndExecuteAgent","description":"Creates a high-level plan for complex tasks and then executes each step. Suitable for multi-stage problems or when a strategic approach is needed."},{"name":"ReAct Agent","value":"reActAgent","description":"Combines reasoning and action in an iterative process. Effective for tasks that require careful analysis and step-by-step problem-solving."},{"name":"SQL Agent","value":"sqlAgent","description":"Specializes in interacting with SQL databases. Ideal for data analysis tasks, generating queries, or extracting insights from structured data."}],"default":"toolsAgent","displayOptions":{"show":{"@version":[{"_cnd":{"between":{"from":1.6,"to":1.7}}}]}}},{"displayName":"Agent","name":"agent","type":"hidden","noDataExpression":true,"options":[{"name":"Tools Agent","value":"toolsAgent","description":"Utilizes structured tool schemas for precise and reliable tool selection and execution. Recommended for complex tasks requiring accurate and consistent tool usage, but only usable with models that support tool calling."},{"name":"Conversational Agent","value":"conversationalAgent","description":"Describes tools in the system prompt and parses JSON responses for tool calls. More flexible but potentially less reliable than the Tools Agent. Suitable for simpler interactions or with models not supporting structured schemas."},{"name":"OpenAI Functions Agent","value":"openAiFunctionsAgent","description":"Leverages OpenAI's function calling capabilities to precisely select and execute tools. Excellent for tasks requiring structured outputs when working with OpenAI models."},{"name":"Plan and Execute Agent","value":"planAndExecuteAgent","description":"Creates a high-level plan for complex tasks and then executes each step. Suitable for multi-stage problems or when a strategic approach is needed."},{"name":"ReAct Agent","value":"reActAgent","description":"Combines reasoning and action in an iterative process. Effective for tasks that require careful analysis and step-by-step problem-solving."},{"name":"SQL Agent","value":"sqlAgent","description":"Specializes in interacting with SQL databases. Ideal for data analysis tasks, generating queries, or extracting insights from structured data."}],"default":"toolsAgent","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.8}}]}}},{"displayName":"Source for Prompt (User Message)","name":"promptType","type":"options","options":[{"name":"Connected Chat Trigger Node","value":"auto","description":"Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"},{"name":"Connected Guardrails Node","value":"guardrails","description":"Looks for an input field called 'guardrailsInput' that is coming from a directly connected Guardrails Node"},{"name":"Define below","value":"define","description":"Use an expression to reference data in previous nodes or enter static text"}],"default":"auto","displayOptions":{"hide":{"@version":[{"_cnd":{"lte":1.2}}],"agent":["sqlAgent"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.guardrailsInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["guardrails"]}},"displayOptions":{"show":{"promptType":["guardrails"],"@version":[{"_cnd":{"gte":1.7}}]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.chatInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["auto"]}},"displayOptions":{"show":{"promptType":["auto"],"@version":[{"_cnd":{"gte":1.7}}]},"hide":{"agent":["sqlAgent"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2},"builderHint":{"placeholderSupported":false,"propertyHint":"Use expressions to include dynamic data from previous nodes (e.g., expr('{{ $json.input }}')). Static text prompts ignore incoming data."},"displayOptions":{"show":{"promptType":["define"]},"hide":{"agent":["sqlAgent"]}}},{"displayName":"For more reliable structured output parsing, consider using the Tools agent","name":"notice","type":"notice","default":"","displayOptions":{"show":{"hasOutputParser":[true],"agent":["conversationalAgent","reActAgent","planAndExecuteAgent","openAiFunctionsAgent"]}}},{"displayName":"Require Specific Output Format","name":"hasOutputParser","type":"boolean","default":false,"noDataExpression":true,"displayOptions":{"hide":{"@version":[{"_cnd":{"lte":1.2}}],"agent":["sqlAgent"]}}},{"displayName":"Connect an <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_outputParser'>output parser</a> on the canvas to specify the output format you require","name":"notice","type":"notice","default":"","displayOptions":{"show":{"hasOutputParser":[true],"agent":["toolsAgent"]}}},{"displayName":"Options","name":"options","type":"collection","displayOptions":{"show":{"agent":["toolsAgent"]}},"default":{},"placeholder":"Add Option","options":[{"displayName":"System Message","name":"systemMessage","type":"string","default":"You are a helpful assistant","description":"The message that will be sent to the agent before the conversation starts","builderHint":{"propertyHint":"Must include: agent's purpose, exact names of connected tools, and response instructions"},"typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Automatically Passthrough Binary Images","name":"passthroughBinaryImages","type":"boolean","default":true,"description":"Whether or not binary images should be automatically passed through to the agent as image type messages"},{"displayName":"Automatically Passthrough Binary PDFs","name":"passthroughBinaryPdfs","type":"boolean","default":false,"description":"Whether or not binary PDF documents should be automatically passed through to the agent. Useful for models that natively support PDF input (e.g. Google Gemini)."},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]}]},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["conversationalAgent"],"@version":[1]}},"default":"={{ $json.input }}"},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["conversationalAgent"],"@version":[1.1]}},"default":"={{ $json.chat_input }}"},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["conversationalAgent"],"@version":[1.2]}},"default":"={{ $json.chatInput }}"},{"displayName":"Options","name":"options","type":"collection","displayOptions":{"show":{"agent":["conversationalAgent"]}},"default":{},"placeholder":"Add Option","options":[{"displayName":"Human Message","name":"humanMessage","type":"string","default":"TOOLS\n------\nAssistant can ask the user to use tools to look up information that may be helpful in answering the users original question. The tools the human can use are:\n\n{tools}\n\n{format_instructions}\n\nUSER'S INPUT\n--------------------\nHere is the user's input (remember to respond with a markdown code snippet of a json blob with a single action, and NOTHING else):\n\n{{input}}","description":"The message that will provide the agent with a list of tools to use","typeOptions":{"rows":6}},{"displayName":"System Message","name":"systemMessage","type":"string","default":"Assistant is a large language model trained by OpenAI.\n\nAssistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n\nAssistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n\nOverall, Assistant is a powerful system that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.","description":"The message that will be sent to the agent before the conversation starts","typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]}]},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["openAiFunctionsAgent"],"@version":[1]}},"default":"={{ $json.input }}"},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["openAiFunctionsAgent"],"@version":[1.1]}},"default":"={{ $json.chat_input }}"},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["openAiFunctionsAgent"],"@version":[1.2]}},"default":"={{ $json.chatInput }}"},{"displayName":"Options","name":"options","type":"collection","displayOptions":{"show":{"agent":["openAiFunctionsAgent"]}},"default":{},"placeholder":"Add Option","options":[{"displayName":"System Message","name":"systemMessage","type":"string","default":"You are a helpful AI assistant.","description":"The message that will be sent to the agent before the conversation starts","typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]}]},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["reActAgent"],"@version":[1]}},"default":"={{ $json.input }}"},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["reActAgent"],"@version":[1.1]}},"default":"={{ $json.chat_input }}"},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["reActAgent"],"@version":[1.2]}},"default":"={{ $json.chatInput }}"},{"displayName":"Options","name":"options","type":"collection","displayOptions":{"show":{"agent":["reActAgent"]}},"default":{},"placeholder":"Add Option","options":[{"displayName":"Human Message Template","name":"humanMessageTemplate","type":"string","default":"{input}\n\n{agent_scratchpad}","description":"String to use directly as the human message template","typeOptions":{"rows":6}},{"displayName":"Prefix Message","name":"prefix","type":"string","default":"Answer the following questions as best you can. You have access to the following tools:","description":"String to put before the list of tools","typeOptions":{"rows":6}},{"displayName":"Suffix Message for Chat Model","name":"suffixChat","type":"string","default":"Begin! Reminder to always use the exact characters `Final Answer` when responding.","description":"String to put after the list of tools that will be used if chat model is used","typeOptions":{"rows":6}},{"displayName":"Suffix Message for Regular Model","name":"suffix","type":"string","default":"Begin!\n\n\tQuestion: {input}\n\tThought:{agent_scratchpad}","description":"String to put after the list of tools that will be used if regular model is used","typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]}]},{"displayName":"Data Source","name":"dataSource","type":"options","displayOptions":{"show":{"agent":["sqlAgent"],"@version":[{"_cnd":{"lt":1.4}}]}},"default":"sqlite","description":"SQL database to connect to","options":[{"name":"MySQL","value":"mysql","description":"Connect to a MySQL database"},{"name":"Postgres","value":"postgres","description":"Connect to a Postgres database"},{"name":"SQLite","value":"sqlite","description":"Use SQLite by connecting a database file as binary input"}]},{"displayName":"Data Source","name":"dataSource","type":"options","displayOptions":{"show":{"agent":["sqlAgent"],"@version":[{"_cnd":{"gte":1.4}}]}},"default":"postgres","description":"SQL database to connect to","options":[{"name":"MySQL","value":"mysql","description":"Connect to a MySQL database"},{"name":"Postgres","value":"postgres","description":"Connect to a Postgres database"},{"name":"SQLite","value":"sqlite","description":"Use SQLite by connecting a database file as binary input"}]},{"displayName":"Credentials","name":"credentials","type":"credentials","default":""},{"displayName":"Pass the SQLite database into this node as binary data, e.g. by inserting a 'Read/Write Files from Disk' node beforehand","name":"sqLiteFileNotice","type":"notice","default":"","displayOptions":{"show":{"agent":["sqlAgent"],"dataSource":["sqlite"]}}},{"displayName":"Input Binary Field","name":"binaryPropertyName","type":"string","default":"data","required":true,"placeholder":"e.g data","hint":"The name of the input binary field containing the file to be extracted","displayOptions":{"show":{"agent":["sqlAgent"],"dataSource":["sqlite"]}}},{"displayName":"Prompt","name":"input","type":"string","displayOptions":{"show":{"agent":["sqlAgent"],"@version":[{"_cnd":{"lte":1.2}}]}},"default":"","required":true,"typeOptions":{"rows":5}},{"displayName":"Source for Prompt (User Message)","name":"promptType","type":"options","options":[{"name":"Connected Chat Trigger Node","value":"auto","description":"Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"},{"name":"Connected Guardrails Node","value":"guardrails","description":"Looks for an input field called 'guardrailsInput' that is coming from a directly connected Guardrails Node"},{"name":"Define below","value":"define","description":"Use an expression to reference data in previous nodes or enter static text"}],"default":"auto","displayOptions":{"hide":{"@version":[{"_cnd":{"lte":1.2}}]},"show":{"agent":["sqlAgent"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.guardrailsInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["guardrails"]}},"displayOptions":{"show":{"promptType":["guardrails"],"@version":[{"_cnd":{"gte":1.7}}],"agent":["sqlAgent"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.chatInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["auto"]}},"displayOptions":{"show":{"promptType":["auto"],"@version":[{"_cnd":{"gte":1.7}}],"agent":["sqlAgent"]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2},"builderHint":{"placeholderSupported":false,"propertyHint":"Use expressions to include dynamic data from previous nodes (e.g., expr('{{ $json.input }}')). Static text prompts ignore incoming data."},"displayOptions":{"show":{"promptType":["define"],"agent":["sqlAgent"]}}},{"displayName":"Options","name":"options","type":"collection","displayOptions":{"show":{"agent":["sqlAgent"]}},"default":{},"placeholder":"Add Option","options":[{"displayName":"Ignored Tables","name":"ignoredTables","type":"string","default":"","description":"Comma-separated list of tables to ignore from the database. If empty, no tables are ignored."},{"displayName":"Include Sample Rows","name":"includedSampleRows","type":"number","description":"Number of sample rows to include in the prompt to the agent. It helps the agent to understand the schema of the database but it also increases the amount of tokens used.","default":3},{"displayName":"Included Tables","name":"includedTables","type":"string","default":"","description":"Comma-separated list of tables to include in the database. If empty, all tables are included."},{"displayName":"Prefix Prompt","name":"prefixPrompt","type":"string","default":"You are an agent designed to interact with an SQL database.\nGiven an input question, create a syntactically correct {dialect} query to run, then look at the results of the query and return the answer.\nUnless the user specifies a specific number of examples they wish to obtain, always limit your query to at most {top_k} results using the LIMIT clause.\nYou can order the results by a relevant column to return the most interesting examples in the database.\nNever query for all the columns from a specific table, only ask for a the few relevant columns given the question.\nYou have access to tools for interacting with the database.\nOnly use the below tools. Only use the information returned by the below tools to construct your final answer.\nYou MUST double check your query before executing it. If you get an error while executing a query, rewrite the query and try again.\n\nDO NOT make any DML statements (INSERT, UPDATE, DELETE, DROP etc.) to the database.\n\nIf the question does not seem related to the database, just return \"I don't know\" as the answer.","description":"Prefix prompt to use for the agent","typeOptions":{"rows":10}},{"displayName":"Suffix Prompt","name":"suffixPrompt","type":"string","default":"Begin!\nChat History:\n{chatHistory}\n\nQuestion: {input}\nThought: I should look at the tables in the database to see what I can query.\n{agent_scratchpad}","description":"Suffix prompt to use for the agent","typeOptions":{"rows":4}},{"displayName":"Limit","name":"topK","type":"number","default":10,"description":"The maximum number of results to return"},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]}]},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["planAndExecuteAgent"],"@version":[1]}},"default":"={{ $json.input }}"},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["planAndExecuteAgent"],"@version":[1.1]}},"default":"={{ $json.chat_input }}"},{"displayName":"Text","name":"text","type":"string","required":true,"displayOptions":{"show":{"agent":["planAndExecuteAgent"],"@version":[1.2]}},"default":"={{ $json.chatInput }}"},{"displayName":"Options","name":"options","type":"collection","displayOptions":{"show":{"agent":["planAndExecuteAgent"]}},"default":{},"placeholder":"Add Option","options":[{"displayName":"Human Message Template","name":"humanMessageTemplate","type":"string","default":"Previous steps: {previous_steps}\n\nCurrent objective: {current_step}\n\n{agent_scratchpad}\n\nYou may extract and combine relevant data from your previous steps when responding to me.","description":"The message that will be sent to the agent during each step execution","typeOptions":{"rows":6}},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]}]}]},
|
|
14
14
|
{"displayName":"AI Agent Tool","name":"agentTool","icon":"fa:robot","iconColor":"black","group":["transform"],"description":"Generates an action plan and executes it. Can use external tools.","codex":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"categories":["AI"],"subcategories":{"AI":["Tools"],"Tools":["Recommended Tools"]}},"defaultVersion":3,"version":[2.2],"defaults":{"name":"AI Agent Tool","color":"#404040"},"inputs":"={{\n\t\t\t\t((hasOutputParser, needsFallback) => {\n\t\t\t\t\tfunction getInputs(hasMainInput, hasOutputParser, needsFallback) {\n const getInputData = (inputs) => {\n return inputs.map(({ type, filter, displayName, required }) => {\n const input = {\n type,\n displayName,\n required,\n maxConnections: ['ai_languageModel', 'ai_memory', 'ai_outputParser'].includes(type)\n ? 1\n : undefined,\n };\n if (filter) {\n input.filter = filter;\n }\n return input;\n });\n };\n let specialInputs = [\n {\n type: 'ai_languageModel',\n displayName: 'Chat Model',\n required: true,\n filter: {\n excludedNodes: [\n '@n8n/n8n-nodes-langchain.lmCohere',\n '@n8n/n8n-nodes-langchain.lmOllama',\n 'n8n/n8n-nodes-langchain.lmOpenAi',\n '@n8n/n8n-nodes-langchain.lmOpenHuggingFaceInference',\n ],\n },\n },\n {\n type: 'ai_languageModel',\n displayName: 'Fallback Model',\n required: true,\n filter: {\n excludedNodes: [\n '@n8n/n8n-nodes-langchain.lmCohere',\n '@n8n/n8n-nodes-langchain.lmOllama',\n 'n8n/n8n-nodes-langchain.lmOpenAi',\n '@n8n/n8n-nodes-langchain.lmOpenHuggingFaceInference',\n ],\n },\n },\n {\n displayName: 'Memory',\n type: 'ai_memory',\n },\n {\n displayName: 'Tool',\n type: 'ai_tool',\n },\n {\n displayName: 'Output Parser',\n type: 'ai_outputParser',\n },\n ];\n if (hasOutputParser === false) {\n specialInputs = specialInputs.filter((input) => input.type !== 'ai_outputParser');\n }\n if (needsFallback === false) {\n specialInputs = specialInputs.filter((input) => input.displayName !== 'Fallback Model');\n }\n const mainInputs = hasMainInput ? ['main'] : [];\n return [...mainInputs, ...getInputData(specialInputs)];\n};\n\t\t\t\t\treturn getInputs(false, hasOutputParser, needsFallback)\n\t\t\t\t})($parameter.hasOutputParser === undefined || $parameter.hasOutputParser === true, $parameter.needsFallback !== undefined && $parameter.needsFallback === true)\n\t\t\t}}","outputs":["ai_tool"],"builderHint":{"inputs":{"ai_languageModel":{"required":true},"ai_memory":{"required":false},"ai_tool":{"required":false},"ai_outputParser":{"required":false,"displayOptions":{"show":{"hasOutputParser":[true]}}}}},"properties":[{"displayName":"Description","name":"toolDescription","type":"string","default":"AI Agent that can call other tools","required":true,"typeOptions":{"rows":2},"description":"Explain to the LLM what this tool does, a good, specific description would allow LLMs to produce expected results much more often"},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2},"builderHint":{"placeholderSupported":false,"propertyHint":"Use expressions to include dynamic data from previous nodes (e.g., expr('{{ $json.input }}')). Static text prompts ignore incoming data."}},{"displayName":"Require Specific Output Format","name":"hasOutputParser","type":"boolean","default":false,"noDataExpression":true},{"displayName":"Connect an <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_outputParser'>output parser</a> on the canvas to specify the output format you require","name":"notice","type":"notice","default":"","displayOptions":{"show":{"hasOutputParser":[true]}}},{"displayName":"Enable Fallback Model","name":"needsFallback","type":"boolean","default":false,"noDataExpression":true,"displayOptions":{"show":{"@version":[{"_cnd":{"gte":2.1}}]}}},{"displayName":"Connect an additional language model on the canvas to use it as a fallback if the main model fails","name":"fallbackNotice","type":"notice","default":"","displayOptions":{"show":{"needsFallback":[true]}}},{"displayName":"Options","name":"options","type":"collection","default":{},"placeholder":"Add Option","options":[{"displayName":"System Message","name":"systemMessage","type":"string","default":"You are a helpful assistant","description":"The message that will be sent to the agent before the conversation starts","builderHint":{"propertyHint":"Must include: agent's purpose, exact names of connected tools, and response instructions"},"typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Automatically Passthrough Binary Images","name":"passthroughBinaryImages","type":"boolean","default":true,"description":"Whether or not binary images should be automatically passed through to the agent as image type messages"},{"displayName":"Automatically Passthrough Binary PDFs","name":"passthroughBinaryPdfs","type":"boolean","default":false,"description":"Whether or not binary PDF documents should be automatically passed through to the agent. Useful for models that natively support PDF input (e.g. Google Gemini)."},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]},{"displayName":"Batch Processing","name":"batching","type":"collection","placeholder":"Add Batch Processing Option","description":"Batch processing options for rate limiting","default":{},"options":[{"displayName":"Batch Size","name":"batchSize","default":1,"type":"number","description":"How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."},{"displayName":"Delay Between Batches","name":"delayBetweenBatches","default":0,"type":"number","description":"Delay in milliseconds between batches. This is useful for rate limiting."}]}],"displayOptions":{"hide":{"@version":[{"_cnd":{"lt":2.2}}]}}},{"displayName":"Options","name":"options","type":"collection","default":{},"placeholder":"Add Option","options":[{"displayName":"System Message","name":"systemMessage","type":"string","default":"You are a helpful assistant","description":"The message that will be sent to the agent before the conversation starts","builderHint":{"propertyHint":"Must include: agent's purpose, exact names of connected tools, and response instructions"},"typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Automatically Passthrough Binary Images","name":"passthroughBinaryImages","type":"boolean","default":true,"description":"Whether or not binary images should be automatically passed through to the agent as image type messages"},{"displayName":"Automatically Passthrough Binary PDFs","name":"passthroughBinaryPdfs","type":"boolean","default":false,"description":"Whether or not binary PDF documents should be automatically passed through to the agent. Useful for models that natively support PDF input (e.g. Google Gemini)."},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]},{"displayName":"Batch Processing","name":"batching","type":"collection","placeholder":"Add Batch Processing Option","description":"Batch processing options for rate limiting","default":{},"options":[{"displayName":"Batch Size","name":"batchSize","default":1,"type":"number","description":"How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."},{"displayName":"Delay Between Batches","name":"delayBetweenBatches","default":0,"type":"number","description":"Delay in milliseconds between batches. This is useful for rate limiting."}]}],"displayOptions":{"show":{"@version":[{"_cnd":{"lt":2.2}}]}}}]},
|
|
15
15
|
{"displayName":"AI Agent Tool","name":"agentTool","icon":"fa:robot","iconColor":"black","group":["transform"],"description":"Generates an action plan and executes it. Can use external tools.","codex":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"categories":["AI"],"subcategories":{"AI":["Tools"],"Tools":["Recommended Tools"]}},"defaultVersion":3,"version":[3],"defaults":{"name":"AI Agent Tool","color":"#404040"},"inputs":"={{\n\t\t\t\t((hasOutputParser, needsFallback) => {\n\t\t\t\t\tfunction getInputs(hasMainInput, hasOutputParser, needsFallback) {\n const getInputData = (inputs) => {\n return inputs.map(({ type, filter, displayName, required }) => {\n const input = {\n type,\n displayName,\n required,\n maxConnections: ['ai_languageModel', 'ai_memory', 'ai_outputParser'].includes(type)\n ? 1\n : undefined,\n };\n if (filter) {\n input.filter = filter;\n }\n return input;\n });\n };\n let specialInputs = [\n {\n type: 'ai_languageModel',\n displayName: 'Chat Model',\n required: true,\n filter: {\n excludedNodes: [\n '@n8n/n8n-nodes-langchain.lmCohere',\n '@n8n/n8n-nodes-langchain.lmOllama',\n 'n8n/n8n-nodes-langchain.lmOpenAi',\n '@n8n/n8n-nodes-langchain.lmOpenHuggingFaceInference',\n ],\n },\n },\n {\n type: 'ai_languageModel',\n displayName: 'Fallback Model',\n required: true,\n filter: {\n excludedNodes: [\n '@n8n/n8n-nodes-langchain.lmCohere',\n '@n8n/n8n-nodes-langchain.lmOllama',\n 'n8n/n8n-nodes-langchain.lmOpenAi',\n '@n8n/n8n-nodes-langchain.lmOpenHuggingFaceInference',\n ],\n },\n },\n {\n displayName: 'Memory',\n type: 'ai_memory',\n },\n {\n displayName: 'Tool',\n type: 'ai_tool',\n },\n {\n displayName: 'Output Parser',\n type: 'ai_outputParser',\n },\n ];\n if (hasOutputParser === false) {\n specialInputs = specialInputs.filter((input) => input.type !== 'ai_outputParser');\n }\n if (needsFallback === false) {\n specialInputs = specialInputs.filter((input) => input.displayName !== 'Fallback Model');\n }\n const mainInputs = hasMainInput ? ['main'] : [];\n return [...mainInputs, ...getInputData(specialInputs)];\n};\n\t\t\t\t\treturn getInputs(false, hasOutputParser, needsFallback)\n\t\t\t\t})($parameter.hasOutputParser === undefined || $parameter.hasOutputParser === true, $parameter.needsFallback !== undefined && $parameter.needsFallback === true)\n\t\t\t}}","outputs":["ai_tool"],"builderHint":{"inputs":{"ai_languageModel":{"required":true},"ai_memory":{"required":false},"ai_tool":{"required":false},"ai_outputParser":{"required":false,"displayOptions":{"show":{"hasOutputParser":[true]}}}}},"properties":[{"displayName":"Description","name":"toolDescription","type":"string","default":"AI Agent that can call other tools","required":true,"typeOptions":{"rows":2},"description":"Explain to the LLM what this tool does, a good, specific description would allow LLMs to produce expected results much more often"},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2},"builderHint":{"placeholderSupported":false,"propertyHint":"Use expressions to include dynamic data from previous nodes (e.g., expr('{{ $json.input }}')). Static text prompts ignore incoming data."}},{"displayName":"Require Specific Output Format","name":"hasOutputParser","type":"boolean","default":false,"noDataExpression":true,"builderHint":{"propertyHint":"Set to `true` when you need structured JSON output. The agent then requires an `outputParser` entry in its `subnodes` config (typically an `outputParserStructured` node defined via the `outputParser({...})` SDK factory). With `hasOutputParser: false` the agent returns a plain string in `$json.output`."}},{"displayName":"Connect an <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_outputParser'>output parser</a> on the canvas to specify the output format you require","name":"notice","type":"notice","default":"","displayOptions":{"show":{"hasOutputParser":[true]}}},{"displayName":"Enable Fallback Model","name":"needsFallback","type":"boolean","default":false,"noDataExpression":true},{"displayName":"Connect an additional language model on the canvas to use it as a fallback if the main model fails","name":"fallbackNotice","type":"notice","default":"","displayOptions":{"show":{"needsFallback":[true]}}},{"displayName":"Options","name":"options","type":"collection","default":{},"placeholder":"Add Option","options":[{"displayName":"System Message","name":"systemMessage","type":"string","default":"You are a helpful assistant","description":"The message that will be sent to the agent before the conversation starts","builderHint":{"propertyHint":"Must include: agent's purpose, exact names of connected tools, and response instructions"},"typeOptions":{"rows":6}},{"displayName":"Max Iterations","name":"maxIterations","type":"number","default":10,"description":"The maximum number of iterations the agent will run before stopping"},{"displayName":"Return Intermediate Steps","name":"returnIntermediateSteps","type":"boolean","default":false,"description":"Whether or not the output should include intermediate steps the agent took"},{"displayName":"Automatically Passthrough Binary Images","name":"passthroughBinaryImages","type":"boolean","default":true,"description":"Whether or not binary images should be automatically passed through to the agent as image type messages"},{"displayName":"Automatically Passthrough Binary PDFs","name":"passthroughBinaryPdfs","type":"boolean","default":false,"description":"Whether or not binary PDF documents should be automatically passed through to the agent. Useful for models that natively support PDF input (e.g. Google Gemini)."},{"displayName":"Tracing Metadata","name":"tracingMetadata","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add Metadata","description":"Custom metadata added to tracing events","options":[{"displayName":"Metadata","name":"values","values":[{"displayName":"Key","name":"key","type":"string","default":""},{"displayName":"Type","name":"type","type":"options","description":"The field value type","options":[{"name":"Array","value":"arrayValue"},{"name":"Boolean","value":"booleanValue"},{"name":"Number","value":"numberValue"},{"name":"Object","value":"objectValue"},{"name":"String","value":"stringValue"}],"default":"stringValue"},{"displayName":"Value","name":"stringValue","type":"string","default":"","displayOptions":{"show":{"type":["stringValue"]}}},{"displayName":"Value","name":"numberValue","type":"string","default":"","displayOptions":{"show":{"type":["numberValue"]}},"validateType":"number"},{"displayName":"Value","name":"booleanValue","type":"options","default":"true","options":[{"name":"True","value":"true"},{"name":"False","value":"false"}],"displayOptions":{"show":{"type":["booleanValue"]}}},{"displayName":"Value","name":"arrayValue","type":"string","default":"","placeholder":"e.g. [ arrayItem1, arrayItem2, arrayItem3 ]","displayOptions":{"show":{"type":["arrayValue"]}},"validateType":"array"},{"displayName":"Value","name":"objectValue","type":"json","default":"={}","typeOptions":{"rows":2},"displayOptions":{"show":{"type":["objectValue"]}},"validateType":"object"}]}]},{"displayName":"Auto-save highlighted data","name":"autoSaveHighlightedData","type":"boolean","default":true,"description":"Whether to automatically save <a href=\"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executiondata/\" target=\"_blank\">highlighted data</a>. This data can then be used to filter executions in the Executions view. Available on Pro and Enterprise plans in n8n Cloud, and on Enterprise or registered Community Edition for self-hosted. Defaults to true."},{"displayName":"Enable Streaming","name":"enableStreaming","type":"boolean","default":true,"description":"Whether this agent will stream the response in real-time as it generates text"},{"displayName":"Batch Processing","name":"batching","type":"collection","placeholder":"Add Batch Processing Option","description":"Batch processing options for rate limiting","default":{},"options":[{"displayName":"Batch Size","name":"batchSize","default":1,"type":"number","description":"How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."},{"displayName":"Delay Between Batches","name":"delayBetweenBatches","default":0,"type":"number","description":"Delay in milliseconds between batches. This is useful for rate limiting."}]},{"displayName":"Max Tokens To Read From Memory","name":"maxTokensFromMemory","type":"hidden","default":0,"description":"The maximum number of tokens to read from the chat memory history. Set to 0 to read all history."},{"displayName":"Force Tool Call on First Iteration","name":"forceToolCallOnFirstIteration","type":"boolean","default":false,"description":"Whether the model must call at least one tool on its first response of each run. Later responses are unrestricted so the agent can answer. Useful for smaller models that otherwise skip tool calls; the model must support forced tool choice."}]}]},
|
|
16
|
-
{"displayName":"OpenAI Assistant","name":"openAiAssistant","hidden":true,"icon":"fa:robot","group":["transform"],"version":[1,1.1],"description":"Utilizes Assistant API from Open AI.","subtitle":"Open AI Assistant","defaults":{"name":"OpenAI Assistant","color":"#404040"},"codex":{"alias":["LangChain"],"categories":["AI"],"subcategories":{"AI":["Agents","Root Nodes"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.openai/assistant-operations"}]}},"inputs":[{"type":"main"},{"type":"ai_tool","displayName":"Tools"}],"outputs":["main"],"builderHint":{"inputs":{"ai_tool":{"required":false}}},"credentials":[{"name":"openAiApi","required":true}],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $parameter.options?.baseURL?.split(\"/\").slice(0,-1).join(\"/\") || \"https://api.openai.com\" }}"},"properties":[{"displayName":"Operation","name":"mode","type":"options","noDataExpression":true,"default":"existing","options":[{"name":"Use New Assistant","value":"new"},{"name":"Use Existing Assistant","value":"existing"}]},{"displayName":"Name","name":"name","type":"string","default":"","required":true,"displayOptions":{"show":{"/mode":["new"]}}},{"displayName":"Instructions","name":"instructions","type":"string","description":"How the Assistant and model should behave or respond","default":"","typeOptions":{"rows":5},"displayOptions":{"show":{"/mode":["new"]}}},{"displayName":"Model","name":"model","type":"options","description":"The model which will be used to power the assistant. <a href=\"https://
|
|
16
|
+
{"displayName":"OpenAI Assistant","name":"openAiAssistant","hidden":true,"icon":"fa:robot","group":["transform"],"version":[1,1.1],"description":"Utilizes Assistant API from Open AI.","subtitle":"Open AI Assistant","defaults":{"name":"OpenAI Assistant","color":"#404040"},"codex":{"alias":["LangChain"],"categories":["AI"],"subcategories":{"AI":["Agents","Root Nodes"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.openai/assistant-operations"}]}},"inputs":[{"type":"main"},{"type":"ai_tool","displayName":"Tools"}],"outputs":["main"],"builderHint":{"inputs":{"ai_tool":{"required":false}}},"credentials":[{"name":"openAiApi","required":true}],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $parameter.options?.baseURL?.split(\"/\").slice(0,-1).join(\"/\") || \"https://api.openai.com\" }}"},"properties":[{"displayName":"Operation","name":"mode","type":"options","noDataExpression":true,"default":"existing","options":[{"name":"Use New Assistant","value":"new"},{"name":"Use Existing Assistant","value":"existing"}]},{"displayName":"Name","name":"name","type":"string","default":"","required":true,"displayOptions":{"show":{"/mode":["new"]}}},{"displayName":"Instructions","name":"instructions","type":"string","description":"How the Assistant and model should behave or respond","default":"","typeOptions":{"rows":5},"displayOptions":{"show":{"/mode":["new"]}}},{"displayName":"Model","name":"model","type":"options","description":"The model which will be used to power the assistant. <a href=\"https://developers.openai.com/api/docs/models\">Learn more</a>. The Retrieval tool requires gpt-3.5-turbo-1106 and gpt-4-1106-preview models.","required":true,"displayOptions":{"show":{"/mode":["new"]}},"typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","url":"={{ $parameter.options?.baseURL?.split(\"/\").slice(-1).pop() || \"v1\" }}/models"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"data"}},{"type":"filter","properties":{"pass":"={{ $responseItem.id.startsWith('gpt-') && !$responseItem.id.includes('instruct') }}"}},{"type":"setKeyValue","properties":{"name":"={{$responseItem.id}}","value":"={{$responseItem.id}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"model"}},"default":"gpt-3.5-turbo-1106"},{"displayName":"Assistant","name":"assistantId","type":"options","noDataExpression":true,"displayOptions":{"show":{"/mode":["existing"]}},"description":"The assistant to use. <a href=\"https://developers.openai.com/api/docs/assistants/migration\">Learn more</a>.","typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","headers":{"OpenAI-Beta":"assistants=v1"},"url":"={{ $parameter.options?.baseURL?.split(\"/\").slice(-1).pop() || \"v1\" }}/assistants"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"data"}},{"type":"setKeyValue","properties":{"name":"={{$responseItem.name}}","value":"={{$responseItem.id}}","description":"={{$responseItem.model}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"assistant"}},"required":true,"default":""},{"displayName":"Text","name":"text","type":"string","required":true,"default":"={{ $json.chat_input }}","displayOptions":{"show":{"@version":[1]}}},{"displayName":"Text","name":"text","type":"string","required":true,"default":"={{ $json.chatInput }}","displayOptions":{"show":{"@version":[1.1]}}},{"displayName":"OpenAI Tools","name":"nativeTools","type":"multiOptions","default":[],"options":[{"name":"Code Interpreter","value":"code_interpreter"},{"name":"Knowledge Retrieval","value":"retrieval"}]},{"displayName":"Connect your own custom tools to this node on the canvas","name":"noticeTools","type":"notice","default":""},{"displayName":"Upload files for retrieval using the <a href=\"https://platform.openai.com/playground\" target=\"_blank\">OpenAI website<a/>","name":"noticeTools","type":"notice","typeOptions":{"noticeTheme":"info"},"displayOptions":{"show":{"/nativeTools":["retrieval"]}},"default":""},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Base URL","name":"baseURL","default":"https://api.openai.com/v1","description":"Override the default base URL for the API","type":"string"},{"displayName":"Max Retries","name":"maxRetries","default":2,"description":"Maximum number of retries to attempt","type":"number"},{"displayName":"Timeout","name":"timeout","default":10000,"description":"Maximum amount of time a request is allowed to take in milliseconds","type":"number"}]}]},
|
|
17
17
|
{"displayName":"Summarization Chain","name":"chainSummarization","icon":"node:summarization-chain","iconColor":"black","group":["transform"],"description":"Transforms text into a concise summary","codex":{"alias":["LangChain"],"categories":["AI"],"subcategories":{"AI":["Chains","Root Nodes"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainsummarization/"}]}},"defaultVersion":2.1,"version":[2,2.1],"defaults":{"name":"Summarization Chain","color":"#909298"},"inputs":"={{ ((parameter) => { function getInputs(parameters) {\n const chunkingMode = parameters?.chunkingMode;\n const operationMode = parameters?.operationMode;\n const inputs = [\n { displayName: '', type: 'main' },\n {\n displayName: 'Model',\n maxConnections: 1,\n type: 'ai_languageModel',\n required: true,\n },\n ];\n if (operationMode === 'documentLoader') {\n inputs.push({\n displayName: 'Document',\n type: 'ai_document',\n required: true,\n maxConnections: 1,\n });\n return inputs;\n }\n if (chunkingMode === 'advanced') {\n inputs.push({\n displayName: 'Text Splitter',\n type: 'ai_textSplitter',\n required: false,\n maxConnections: 1,\n });\n return inputs;\n }\n return inputs;\n}; return getInputs(parameter) })($parameter) }}","outputs":["main"],"builderHint":{"inputs":{"ai_languageModel":{"required":true},"ai_document":{"required":true,"displayOptions":{"show":{"operationMode":["documentLoader"]}}},"ai_textSplitter":{"required":false,"displayOptions":{"show":{"chunkingMode":["advanced"]}}}}},"credentials":[],"properties":[{"displayName":"Save time with an <a href=\"/templates/1951\" target=\"_blank\">example</a> of how this node works","name":"notice","type":"notice","default":""},{"displayName":"Data to Summarize","name":"operationMode","noDataExpression":true,"type":"options","description":"How to pass data into the summarization chain","default":"nodeInputJson","options":[{"name":"Use Node Input (JSON)","value":"nodeInputJson","description":"Summarize the JSON data coming into this node from the previous one"},{"name":"Use Node Input (Binary)","value":"nodeInputBinary","description":"Summarize the binary data coming into this node from the previous one"},{"name":"Use Document Loader","value":"documentLoader","description":"Use a loader sub-node with more configuration options"}]},{"displayName":"Chunking Strategy","name":"chunkingMode","noDataExpression":true,"type":"options","description":"Chunk splitting strategy","default":"simple","options":[{"name":"Simple (Define Below)","value":"simple"},{"name":"Advanced","value":"advanced","description":"Use a splitter sub-node with more configuration options"}],"displayOptions":{"show":{"/operationMode":["nodeInputJson","nodeInputBinary"]}}},{"displayName":"Characters Per Chunk","name":"chunkSize","description":"Controls the max size (in terms of number of characters) of the final document chunk","type":"number","default":1000,"displayOptions":{"show":{"/chunkingMode":["simple"]}}},{"displayName":"Chunk Overlap (Characters)","name":"chunkOverlap","type":"number","description":"Specifies how much characters overlap there should be between chunks","default":200,"displayOptions":{"show":{"/chunkingMode":["simple"]}}},{"displayName":"Options","name":"options","type":"collection","default":{},"placeholder":"Add Option","options":[{"displayName":"Input Data Field Name","name":"binaryDataKey","type":"string","default":"data","description":"The name of the field in the agent or chain’s input that contains the binary file to be processed","displayOptions":{"show":{"/operationMode":["nodeInputBinary"]}}},{"displayName":"Summarization Method and Prompts","name":"summarizationMethodAndPrompts","type":"fixedCollection","default":{"values":{"summarizationMethod":"map_reduce","prompt":"Write a concise summary of the following:\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:","combineMapPrompt":"Write a concise summary of the following:\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:"}},"placeholder":"Add Option","typeOptions":{},"options":[{"name":"values","displayName":"Values","values":[{"displayName":"Summarization Method","name":"summarizationMethod","type":"options","description":"The type of summarization to run","default":"map_reduce","options":[{"name":"Map Reduce (Recommended)","value":"map_reduce","description":"Summarize each document (or chunk) individually, then summarize those summaries"},{"name":"Refine","value":"refine","description":"Summarize the first document (or chunk). Then update that summary based on the next document (or chunk), and repeat."},{"name":"Stuff","value":"stuff","description":"Pass all documents (or chunks) at once. Ideal for small datasets."}]},{"displayName":"Individual Summary Prompt","name":"combineMapPrompt","type":"string","hint":"The prompt to summarize an individual document (or chunk)","displayOptions":{"hide":{"/options.summarizationMethodAndPrompts.values.summarizationMethod":["stuff","refine"]}},"default":"Write a concise summary of the following:\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:","typeOptions":{"rows":9}},{"displayName":"Final Prompt to Combine","name":"prompt","type":"string","default":"Write a concise summary of the following:\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:","hint":"The prompt to combine individual summaries","displayOptions":{"hide":{"/options.summarizationMethodAndPrompts.values.summarizationMethod":["stuff","refine"]}},"typeOptions":{"rows":9}},{"displayName":"Prompt","name":"prompt","type":"string","default":"Write a concise summary of the following:\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:","displayOptions":{"hide":{"/options.summarizationMethodAndPrompts.values.summarizationMethod":["refine","map_reduce"]}},"typeOptions":{"rows":9}},{"displayName":"Subsequent (Refine) Prompt","name":"refinePrompt","type":"string","displayOptions":{"hide":{"/options.summarizationMethodAndPrompts.values.summarizationMethod":["stuff","map_reduce"]}},"default":"Your job is to produce a final summary\nWe have provided an existing summary up to a certain point: \"{existing_answer}\"\nWe have the opportunity to refine the existing summary\n(only if needed) with some more context below.\n------------\n\"{text}\"\n------------\n\nGiven the new context, refine the original summary\nIf the context isn't useful, return the original summary.\n\nREFINED SUMMARY:","hint":"The prompt to refine the summary based on the next document (or chunk)","typeOptions":{"rows":9}},{"displayName":"Initial Prompt","name":"refineQuestionPrompt","type":"string","displayOptions":{"hide":{"/options.summarizationMethodAndPrompts.values.summarizationMethod":["stuff","map_reduce"]}},"default":"Write a concise summary of the following:\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:","hint":"The prompt for the first document (or chunk)","typeOptions":{"rows":9}}]}]},{"displayName":"Batch Processing","name":"batching","type":"collection","placeholder":"Add Batch Processing Option","description":"Batch processing options for rate limiting","default":{},"options":[{"displayName":"Batch Size","name":"batchSize","default":5,"type":"number","description":"How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."},{"displayName":"Delay Between Batches","name":"delayBetweenBatches","default":0,"type":"number","description":"Delay in milliseconds between batches. This is useful for rate limiting."}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":2.1}}]}}}]}]},
|
|
18
18
|
{"displayName":"Summarization Chain","name":"chainSummarization","icon":"node:summarization-chain","iconColor":"black","group":["transform"],"description":"Transforms text into a concise summary","codex":{"alias":["LangChain"],"categories":["AI"],"subcategories":{"AI":["Chains","Root Nodes"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainsummarization/"}]}},"defaultVersion":2.1,"version":1,"defaults":{"name":"Summarization Chain","color":"#909298"},"inputs":["main",{"displayName":"Model","maxConnections":1,"type":"ai_languageModel","required":true},{"displayName":"Document","maxConnections":1,"type":"ai_document","required":true}],"outputs":["main"],"credentials":[],"properties":[{"displayName":"Save time with an <a href=\"/templates/1951\" target=\"_blank\">example</a> of how this node works","name":"notice","type":"notice","default":""},{"displayName":"Type","name":"type","type":"options","description":"The type of summarization to run","default":"map_reduce","options":[{"name":"Map Reduce (Recommended)","value":"map_reduce","description":"Summarize each document (or chunk) individually, then summarize those summaries"},{"name":"Refine","value":"refine","description":"Summarize the first document (or chunk). Then update that summary based on the next document (or chunk), and repeat."},{"name":"Stuff","value":"stuff","description":"Pass all documents (or chunks) at once. Ideal for small datasets."}]},{"displayName":"Options","name":"options","type":"collection","default":{},"placeholder":"Add Option","options":[{"displayName":"Final Prompt to Combine","name":"combineMapPrompt","type":"string","hint":"The prompt to combine individual summaries","displayOptions":{"show":{"/type":["map_reduce"]}},"default":"Write a concise summary of the following:\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:","typeOptions":{"rows":6}},{"displayName":"Individual Summary Prompt","name":"prompt","type":"string","default":"Write a concise summary of the following:\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:","hint":"The prompt to summarize an individual document (or chunk)","displayOptions":{"show":{"/type":["map_reduce"]}},"typeOptions":{"rows":6}},{"displayName":"Prompt","name":"prompt","type":"string","default":"Write a concise summary of the following:\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:","displayOptions":{"show":{"/type":["stuff"]}},"typeOptions":{"rows":6}},{"displayName":"Subsequent (Refine) Prompt","name":"refinePrompt","type":"string","displayOptions":{"show":{"/type":["refine"]}},"default":"Your job is to produce a final summary\nWe have provided an existing summary up to a certain point: \"{existing_answer}\"\nWe have the opportunity to refine the existing summary\n(only if needed) with some more context below.\n------------\n\"{text}\"\n------------\n\nGiven the new context, refine the original summary\nIf the context isn't useful, return the original summary.\n\nREFINED SUMMARY:","hint":"The prompt to refine the summary based on the next document (or chunk)","typeOptions":{"rows":6}},{"displayName":"Initial Prompt","name":"refineQuestionPrompt","type":"string","displayOptions":{"show":{"/type":["refine"]}},"default":"Write a concise summary of the following:\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:","hint":"The prompt for the first document (or chunk)","typeOptions":{"rows":6}}]}]},
|
|
19
19
|
{"displayName":"Basic LLM Chain","name":"chainLlm","icon":"node:basic-llm-chain","iconColor":"black","group":["transform"],"version":[1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9],"description":"A simple chain to prompt a large language model","defaults":{"name":"Basic LLM Chain"},"codex":{"alias":["LangChain"],"categories":["AI"],"subcategories":{"AI":["Chains","Root Nodes"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm/"}]}},"inputs":"={{ ((parameter) => { function getInputs(parameters) {\n const inputs = [\n { displayName: '', type: 'main' },\n {\n displayName: 'Model',\n maxConnections: 1,\n type: 'ai_languageModel',\n required: true,\n },\n ];\n const needsFallback = parameters?.needsFallback;\n if (needsFallback === true) {\n inputs.push({\n displayName: 'Fallback Model',\n maxConnections: 1,\n type: 'ai_languageModel',\n required: true,\n });\n }\n const hasOutputParser = parameters?.hasOutputParser;\n if (hasOutputParser === undefined || hasOutputParser === true) {\n inputs.push({\n displayName: 'Output Parser',\n type: 'ai_outputParser',\n maxConnections: 1,\n required: false,\n });\n }\n return inputs;\n}; return getInputs(parameter) })($parameter) }}","outputs":["main"],"builderHint":{"inputs":{"ai_languageModel":{"required":true},"ai_outputParser":{"required":false,"displayOptions":{"show":{"hasOutputParser":[true]}}}}},"credentials":[],"properties":[{"displayName":"Save time with an <a href=\"/templates/1978\" target=\"_blank\">example</a> of how this node works","name":"notice","type":"notice","default":""},{"displayName":"Prompt","name":"prompt","type":"string","required":true,"default":"={{ $json.input }}","displayOptions":{"show":{"@version":[1]}}},{"displayName":"Prompt","name":"prompt","type":"string","required":true,"default":"={{ $json.chat_input }}","displayOptions":{"show":{"@version":[1.1,1.2]}}},{"displayName":"Prompt","name":"prompt","type":"string","required":true,"default":"={{ $json.chatInput }}","displayOptions":{"show":{"@version":[1.3]}}},{"displayName":"Source for Prompt (User Message)","name":"promptType","type":"options","options":[{"name":"Connected Chat Trigger Node","value":"auto","description":"Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"},{"name":"Connected Guardrails Node","value":"guardrails","description":"Looks for an input field called 'guardrailsInput' that is coming from a directly connected Guardrails Node"},{"name":"Define below","value":"define","description":"Use an expression to reference data in previous nodes or enter static text"}],"default":"auto","displayOptions":{"hide":{"@version":[{"_cnd":{"lte":1.3}},{"_cnd":{"gte":1.8}}]}}},{"displayName":"Source for Prompt (User Message)","name":"promptType","type":"options","options":[{"name":"Connected Chat Trigger Node","value":"auto","description":"Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"},{"name":"Define below","value":"define","description":"Use an expression to reference data in previous nodes or enter static text"}],"default":"auto","builderHint":{"propertyHint":"Use 'auto' when following a chat trigger, 'define' when custom prompt needed"},"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.8}}]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.guardrailsInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["guardrails"]}},"displayOptions":{"show":{"promptType":["guardrails"],"@version":[{"_cnd":{"gte":1.5}}]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"={{ $json.chatInput }}","typeOptions":{"rows":2},"disabledOptions":{"show":{"promptType":["auto"]}},"displayOptions":{"show":{"promptType":["auto"],"@version":[{"_cnd":{"gte":1.5}}]}}},{"displayName":"Prompt (User Message)","name":"text","type":"string","required":true,"default":"","placeholder":"e.g. Hello, how can you help me?","typeOptions":{"rows":2},"builderHint":{"propertyHint":"Use expressions to include dynamic data from previous nodes (e.g., expr('{{ $json.input }}')). Static text prompts ignore incoming data."},"displayOptions":{"show":{"promptType":["define"]}}},{"displayName":"Require Specific Output Format","name":"hasOutputParser","type":"boolean","default":false,"noDataExpression":true,"displayOptions":{"hide":{"@version":[1,1.1,1.3]}}},{"displayName":"Enable Fallback Model","name":"needsFallback","type":"boolean","default":false,"noDataExpression":true,"displayOptions":{"hide":{"@version":[1,1.1,1.3]}}},{"displayName":"Chat Messages (if Using a Chat Model)","name":"messages","type":"fixedCollection","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add prompt","options":[{"name":"messageValues","displayName":"Prompt","values":[{"displayName":"Type Name or ID","name":"type","type":"options","options":[{"name":"AI","value":"AIMessagePromptTemplate"},{"name":"System","value":"SystemMessagePromptTemplate"},{"name":"User","value":"HumanMessagePromptTemplate"}],"default":"SystemMessagePromptTemplate"},{"displayName":"Message Type","name":"messageType","type":"options","displayOptions":{"show":{"type":["HumanMessagePromptTemplate"]}},"options":[{"name":"Text","value":"text","description":"Simple text message"},{"name":"Image (Binary)","value":"imageBinary","description":"Process the binary input from the previous node"},{"name":"Image (URL)","value":"imageUrl","description":"Process the image from the specified URL"}],"default":"text"},{"displayName":"Image Data Field Name","name":"binaryImageDataKey","type":"string","default":"data","required":true,"description":"The name of the field in the chain's input that contains the binary image file to be processed","displayOptions":{"show":{"messageType":["imageBinary"]}}},{"displayName":"Image URL","name":"imageUrl","type":"string","default":"","required":true,"description":"URL to the image to be processed","displayOptions":{"show":{"messageType":["imageUrl"]}}},{"displayName":"Image Details","description":"Control how the model processes the image and generates its textual understanding","name":"imageDetail","type":"options","displayOptions":{"show":{"type":["HumanMessagePromptTemplate"],"messageType":["imageBinary","imageUrl"]}},"options":[{"name":"Auto","value":"auto","description":"Model will use the auto setting which will look at the image input size and decide if it should use the low or high setting"},{"name":"Low","value":"low","description":"The model will receive a low-res 512px x 512px version of the image, and represent the image with a budget of 65 tokens. This allows the API to return faster responses and consume fewer input tokens for use cases that do not require high detail."},{"name":"High","value":"high","description":"Allows the model to see the low res image and then creates detailed crops of input images as 512px squares based on the input image size. Each of the detailed crops uses twice the token budget (65 tokens) for a total of 129 tokens."}],"default":"auto"},{"displayName":"Message","name":"message","type":"string","required":true,"displayOptions":{"hide":{"messageType":["imageBinary","imageUrl"]}},"default":""}]}]},{"displayName":"Batch Processing","name":"batching","type":"collection","placeholder":"Add Batch Processing Option","description":"Batch processing options for rate limiting","default":{},"options":[{"displayName":"Batch Size","name":"batchSize","default":5,"type":"number","description":"How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."},{"displayName":"Delay Between Batches","name":"delayBetweenBatches","default":0,"type":"number","description":"Delay in milliseconds between batches. This is useful for rate limiting."}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.7}}]}}},{"displayName":"Connect an <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_outputParser'>output parser</a> on the canvas to specify the output format you require","name":"notice","type":"notice","default":"","displayOptions":{"show":{"hasOutputParser":[true]}}},{"displayName":"Connect an additional language model on the canvas to use it as a fallback if the main model fails","name":"fallbackNotice","type":"notice","default":"","displayOptions":{"show":{"needsFallback":[true]}}}]},
|
|
@@ -34,14 +34,14 @@
|
|
|
34
34
|
{"displayName":"Embeddings Google Vertex","name":"embeddingsGoogleVertex","group":["transform"],"version":1,"description":"Use Google Vertex Embeddings","defaults":{"name":"Embeddings Google Vertex"},"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $credentials.host }}"},"credentials":[{"name":"googleApi","required":true}],"codex":{"categories":["AI"],"subcategories":{"AI":["Embeddings"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsgooglevertex/"}]}},"inputs":[],"outputs":["ai_embedding"],"outputNames":["Embeddings"],"properties":[{"displayName":"This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"Each model is using different dimensional density for embeddings. Please make sure to use the same dimensionality for your vector store. The default model is using 768-dimensional embeddings. You can find available models <a href=\"https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/text-embeddings-api\">here</a>.","name":"notice","type":"notice","default":""},{"displayName":"Project ID","name":"projectId","type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"description":"Select or enter your Google Cloud project ID","modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"gcpProjectsList"}},{"displayName":"ID","name":"id","type":"string"}]},{"displayName":"Model Name","name":"modelName","type":"string","description":"The model which will generate the embeddings. <a href=\"https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/text-embeddings-api\">Learn more</a>.","default":"text-embedding-005"},{"displayName":"Region","name":"location","type":"options","default":"","description":"Where the model runs. Newer Gemini models (3.x) are only available on the Global or the EU/US multi-region locations. Leave as Default to use the region set in the credential.","options":[{"name":"Default (Use Credential Region)","value":""},{"name":"Global","value":"global"},{"name":"EU (Multi-Region)","value":"eu"},{"name":"US (Multi-Region)","value":"us"}]}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/embeddings/EmbeddingsGoogleVertex/google.svg"},
|
|
35
35
|
{"displayName":"Embeddings Hugging Face Inference","name":"embeddingsHuggingFaceInference","group":["transform"],"version":1,"description":"Use HuggingFace Inference Embeddings","defaults":{"name":"Embeddings HuggingFace Inference"},"credentials":[{"name":"huggingFaceApi","required":true}],"codex":{"categories":["AI"],"subcategories":{"AI":["Embeddings"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingshuggingfaceinference/"}]}},"inputs":[],"outputs":["ai_embedding"],"outputNames":["Embeddings"],"properties":[{"displayName":"This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"Each model is using different dimensional density for embeddings. Please make sure to use the same dimensionality for your vector store. The default model is using 768-dimensional embeddings.","name":"notice","type":"notice","default":""},{"displayName":"Model Name","name":"modelName","type":"string","default":"sentence-transformers/distilbert-base-nli-mean-tokens","description":"The model name to use from HuggingFace library"},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Custom Inference Endpoint","name":"endpointUrl","default":"","description":"Custom endpoint URL","type":"string"},{"displayName":"Provider","name":"provider","type":"options","options":[{"value":"black-forest-labs","name":"black-forest-labs"},{"value":"cerebras","name":"cerebras"},{"value":"cohere","name":"cohere"},{"value":"fal-ai","name":"fal-ai"},{"value":"featherless-ai","name":"featherless-ai"},{"value":"fireworks-ai","name":"fireworks-ai"},{"value":"groq","name":"groq"},{"value":"hf-inference","name":"hf-inference"},{"value":"hyperbolic","name":"hyperbolic"},{"value":"nebius","name":"nebius"},{"value":"novita","name":"novita"},{"value":"nscale","name":"nscale"},{"value":"openai","name":"openai"},{"value":"ovhcloud","name":"ovhcloud"},{"value":"replicate","name":"replicate"},{"value":"sambanova","name":"sambanova"},{"value":"together","name":"together"},{"value":"auto","name":"auto"}],"default":"auto"}]}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/embeddings/EmbeddingsHuggingFaceInference/huggingface.svg"},
|
|
36
36
|
{"displayName":"Embeddings Mistral Cloud","name":"embeddingsMistralCloud","credentials":[{"name":"mistralCloudApi","required":true}],"group":["transform"],"version":1,"description":"Use Embeddings Mistral Cloud","defaults":{"name":"Embeddings Mistral Cloud"},"codex":{"categories":["AI"],"subcategories":{"AI":["Embeddings"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsmistralcloud/"}]}},"inputs":[],"outputs":["ai_embedding"],"outputNames":["Embeddings"],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"https://api.mistral.ai/v1"},"properties":[{"displayName":"This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"Model","name":"model","type":"options","description":"The model which will compute the embeddings. <a href=\"https://docs.mistral.ai/platform/endpoints/\">Learn more</a>.","typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","url":"/models"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"data"}},{"type":"filter","properties":{"pass":"={{ $responseItem.id.includes('embed') }}"}},{"type":"setKeyValue","properties":{"name":"={{ $responseItem.id }}","value":"={{ $responseItem.id }}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"model"}},"default":"mistral-embed"},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Batch Size","name":"batchSize","default":512,"typeOptions":{"maxValue":2048},"description":"Maximum number of documents to send in each request","type":"number"},{"displayName":"Strip New Lines","name":"stripNewLines","default":true,"description":"Whether to strip new lines from the input text","type":"boolean"}]}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/embeddings/EmbeddingsMistralCloud/mistral.svg"},
|
|
37
|
-
{"displayName":"Embeddings OpenAI","name":"embeddingsOpenAi","credentials":[{"name":"openAiApi","required":true}],"group":["transform"],"version":[1,1.1,1.2],"description":"Use Embeddings OpenAI","defaults":{"name":"Embeddings OpenAI"},"codex":{"categories":["AI"],"subcategories":{"AI":["Embeddings"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsopenai/"}]}},"inputs":[],"outputs":["ai_embedding"],"outputNames":["Embeddings"],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $parameter.options?.baseURL?.split(\"/\").slice(0,-1).join(\"/\") || $credentials.url?.split(\"/\").slice(0,-1).join(\"/\") || \"https://api.openai.com\" }}"},"properties":[{"displayName":"This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"Model","name":"model","type":"options","description":"The model which will generate the embeddings. <a href=\"https://
|
|
37
|
+
{"displayName":"Embeddings OpenAI","name":"embeddingsOpenAi","credentials":[{"name":"openAiApi","required":true}],"group":["transform"],"version":[1,1.1,1.2],"description":"Use Embeddings OpenAI","defaults":{"name":"Embeddings OpenAI"},"codex":{"categories":["AI"],"subcategories":{"AI":["Embeddings"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsopenai/"}]}},"inputs":[],"outputs":["ai_embedding"],"outputNames":["Embeddings"],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $parameter.options?.baseURL?.split(\"/\").slice(0,-1).join(\"/\") || $credentials.url?.split(\"/\").slice(0,-1).join(\"/\") || \"https://api.openai.com\" }}"},"properties":[{"displayName":"This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"Model","name":"model","type":"options","description":"The model which will generate the embeddings. <a href=\"https://developers.openai.com/api/docs/models\">Learn more</a>.","typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","url":"={{ $parameter.options?.baseURL?.split(\"/\").slice(-1).pop() || $credentials?.url?.split(\"/\").slice(-1).pop() || \"v1\" }}/models"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"data"}},{"type":"filter","properties":{"pass":"={{\n\t\t\t\t\t\t\t\t\t($parameter.options?.baseURL && !$parameter.options?.baseURL?.startsWith('https://api.openai.com/')) ||\n\t\t\t\t\t\t\t\t\t($credentials?.url && !$credentials.url.startsWith('https://api.openai.com/')) ||\n\t\t\t\t\t\t\t\t\t$responseItem.id.includes('embed')\n\t\t\t\t\t\t\t\t}}"}},{"type":"setKeyValue","properties":{"name":"={{$responseItem.id}}","value":"={{$responseItem.id}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"model"}},"default":"text-embedding-ada-002","displayOptions":{"show":{"@version":[1]}}},{"displayName":"Model","name":"model","type":"options","description":"The model which will generate the embeddings. <a href=\"https://developers.openai.com/api/docs/models\">Learn more</a>.","typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","url":"={{ $parameter.options?.baseURL?.split(\"/\").slice(-1).pop() || $credentials?.url?.split(\"/\").slice(-1).pop() || \"v1\" }}/models"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"data"}},{"type":"filter","properties":{"pass":"={{\n\t\t\t\t\t\t\t\t\t($parameter.options?.baseURL && !$parameter.options?.baseURL?.startsWith('https://api.openai.com/')) ||\n\t\t\t\t\t\t\t\t\t($credentials?.url && !$credentials.url.startsWith('https://api.openai.com/')) ||\n\t\t\t\t\t\t\t\t\t$responseItem.id.includes('embed')\n\t\t\t\t\t\t\t\t}}"}},{"type":"setKeyValue","properties":{"name":"={{$responseItem.id}}","value":"={{$responseItem.id}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"model"}},"default":"text-embedding-3-small","displayOptions":{"hide":{"@version":[1]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Dimensions","name":"dimensions","default":1536,"description":"The number of dimensions the resulting output embeddings should have. Only supported in text-embedding-3 and later models.","type":"options","options":[{"name":"256","value":256},{"name":"512","value":512},{"name":"1024","value":1024},{"name":"1536","value":1536},{"name":"3072","value":3072}]},{"displayName":"Base URL","name":"baseURL","default":"https://api.openai.com/v1","description":"Override the default base URL for the API","type":"string","displayOptions":{"hide":{"@version":[{"_cnd":{"gte":1.2}}]}}},{"displayName":"Batch Size","name":"batchSize","default":512,"typeOptions":{"maxValue":2048},"description":"Maximum number of documents to send in each request","type":"number"},{"displayName":"Strip New Lines","name":"stripNewLines","default":true,"description":"Whether to strip new lines from the input text","type":"boolean"},{"displayName":"Timeout","name":"timeout","default":-1,"description":"Maximum amount of time a request is allowed to take in seconds. Set to -1 for no timeout.","type":"number"},{"displayName":"Encoding Format","name":"encodingFormat","type":"options","description":"The format to return the embeddings in","default":"float","options":[{"name":"Float","value":"float"},{"name":"Base64","value":"base64"}]}]}],"iconUrl":{"light":"icons/@n8n/n8n-nodes-langchain/dist/nodes/embeddings/EmbeddingsOpenAI/openAiLight.svg","dark":"icons/@n8n/n8n-nodes-langchain/dist/nodes/embeddings/EmbeddingsOpenAI/openAiLight.dark.svg"}},
|
|
38
38
|
{"displayName":"Embeddings Lemonade","name":"embeddingsLemonade","group":["transform"],"version":1,"description":"Use Lemonade Embeddings","defaults":{"name":"Embeddings Lemonade"},"credentials":[{"name":"lemonadeApi","required":true}],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $credentials.baseUrl.replace(new RegExp(\"/$\"), \"\") }}"},"codex":{"categories":["AI"],"subcategories":{"AI":["Embeddings"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingslemonade/"}]}},"inputs":[],"outputs":["ai_embedding"],"outputNames":["Embeddings"],"properties":[{"displayName":"This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"Model","name":"model","type":"options","default":"","description":"The model which will generate the completion. Models are loaded and managed through the Lemonade server.","typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","url":"/models"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"data"}},{"type":"setKeyValue","properties":{"name":"={{$responseItem.id}}","value":"={{$responseItem.id}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"model"}},"required":true}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/embeddings/EmbeddingsLemonade/lemonade.svg"},
|
|
39
39
|
{"displayName":"Embeddings Ollama","name":"embeddingsOllama","group":["transform"],"version":1,"description":"Use Ollama Embeddings","defaults":{"name":"Embeddings Ollama"},"credentials":[{"name":"ollamaApi","required":true}],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $credentials.baseUrl.replace(new RegExp(\"/$\"), \"\") }}"},"codex":{"categories":["AI"],"subcategories":{"AI":["Embeddings"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsollama/"}]}},"inputs":[],"outputs":["ai_embedding"],"outputNames":["Embeddings"],"properties":[{"displayName":"This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"Model","name":"model","type":"options","default":"llama3.2","description":"The model which will generate the completion. To download models, visit <a href=\"https://ollama.ai/library\">Ollama Models Library</a>.","typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","url":"/api/tags"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"models"}},{"type":"setKeyValue","properties":{"name":"={{$responseItem.name}}","value":"={{$responseItem.name}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"model"}},"required":true}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/embeddings/EmbeddingsOllama/ollama.svg"},
|
|
40
40
|
{"displayName":"Embeddings Oracle Database","name":"embeddingsOracleDb","group":["transform"],"version":1,"description":"Use ONNX Embeddings","defaults":{"name":"Embeddings ONNX"},"credentials":[{"name":"oracleDBApi","required":true}],"codex":{"categories":["AI"],"subcategories":{"AI":["Embeddings"]},"resources":{"primaryDocumentation":[{"url":"https://docs.oracle.com/en/database/oracle/oracle-database/26/vecse/import-onnx-models-oracle-ai-database-end-end-example.html"}]}},"inputs":[],"outputs":["ai_embedding"],"outputNames":["Embeddings"],"properties":[{"displayName":"This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"Model","name":"model","type":"resourceLocator","default":{"mode":"list","value":"ALL_MINILM_L12_V2"},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","placeholder":"Select a model...","typeOptions":{"searchListMethod":"searchModels","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"ALL_MINILM_L12_V2"}],"description":"The model. Choose from the list, or specify an ID."}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/shared/icons/oracle.svg"},
|
|
41
41
|
{"displayName":"NVIDIA Nemotron Embeddings","name":"embeddingsNvidia","group":["transform"],"version":[1],"description":"Use NVIDIA NeMo Retriever embedding models from build.nvidia.com or a self-hosted NIM","defaults":{"name":"NVIDIA Nemotron Embeddings"},"credentials":[{"name":"nvidiaApi","required":true}],"codex":{"categories":["AI"],"subcategories":{"AI":["Embeddings"]},"alias":["nvidia","nemotron","nemo","embeddings"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsnvidia/"}]}},"inputs":[],"outputs":["ai_embedding"],"outputNames":["Embeddings"],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $credentials?.url }}"},"properties":[{"displayName":"This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"Model","name":"model","type":"resourceLocator","default":{"mode":"list","value":"nvidia/llama-3.2-nv-embedqa-1b-v2"},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","placeholder":"Select a model...","typeOptions":{"searchListMethod":"searchModels","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"nvidia/llama-3.2-nv-embedqa-1b-v2"}],"description":"The NeMo Retriever embedding model. Choose from the list, or specify an ID for a self-hosted NIM. input_type is set automatically (passage when indexing, query when searching). <a href=\"https://build.nvidia.com/models\">Learn more</a>."},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Batch Size","name":"batchSize","default":512,"typeOptions":{"maxValue":2048},"description":"Maximum number of documents to send in each request","type":"number"},{"displayName":"Strip New Lines","name":"stripNewLines","default":true,"description":"Whether to strip new lines from the input text","type":"boolean"},{"displayName":"Dimensions","name":"dimensions","description":"The number of dimensions the resulting output embeddings should have. Only supported by models with dynamic (Matryoshka) embeddings; leave unset to use the model default.","type":"number"},{"displayName":"Timeout","name":"timeout","default":-1,"description":"Maximum amount of time a request is allowed to take in seconds. Set to -1 for no timeout.","type":"number"}]}],"iconUrl":{"light":"icons/@n8n/n8n-nodes-langchain/dist/nodes/embeddings/EmbeddingsNvidia/nvidia.svg","dark":"icons/@n8n/n8n-nodes-langchain/dist/nodes/embeddings/EmbeddingsNvidia/nvidia.dark.svg"}},
|
|
42
42
|
{"displayName":"Qwen Cloud Chat Model","name":"lmChatAlibabaCloud","group":["transform"],"version":[1,1.1],"description":"For advanced usage with an AI chain","defaults":{"name":"Qwen Cloud Chat Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatalibabacloud/"}]},"alias":["qwen","dashscope","alibaba","model studio"]},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"alibabaCloudApi","required":true}],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $credentials?.url + \"/compatible-mode/v1\" }}"},"properties":[{"displayName":"This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"If using JSON response format, you must include word \"json\" in the prompt in your chain or agent.","name":"notice","type":"notice","default":"","displayOptions":{"show":{"/options.responseFormat":["json_object"]}}},{"displayName":"Model","name":"model","type":"options","description":"The model which will generate the completion. <a href=\"https://www.qwencloud.com/models\">Learn more</a>.","typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","url":"/models"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"data"}},{"type":"setKeyValue","properties":{"name":"={{$responseItem.id}}","value":"={{$responseItem.id}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"model"}},"default":"qwen-plus","builderHint":{"propertyHint":"Prefer a stable Qwen model or rolling alias such as qwen-plus when the connected credential offers it. Do not select a preview model by default. Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"displayOptions":{"show":{"@version":[{"_cnd":{"eq":1}}]}}},{"displayName":"Model","name":"model","type":"options","description":"The model which will generate the completion. <a href=\"https://www.qwencloud.com/models\">Learn more</a>.","typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","url":"/models"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"data"}},null,{"type":"setKeyValue","properties":{"name":"={{$responseItem.id}}","value":"={{$responseItem.id}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"model"}},"default":"qwen-plus","builderHint":{"propertyHint":"Prefer a stable Qwen model or rolling alias such as qwen-plus when the connected credential offers it. Do not select a preview model by default. Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.1}}]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Frequency Penalty","name":"frequencyPenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim","type":"number"},{"displayName":"Maximum Number of Tokens","name":"maxTokens","default":-1,"description":"The maximum number of tokens to generate in the completion. The limit depends on the selected model.","type":"number"},{"displayName":"Response Format","name":"responseFormat","default":"text","type":"options","options":[{"name":"Text","value":"text","description":"Regular text response"},{"name":"JSON","value":"json_object","description":"Enables JSON mode, which should guarantee the message the model generates is valid JSON"}]},{"displayName":"Presence Penalty","name":"presencePenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics","type":"number"},{"displayName":"Sampling Temperature","name":"temperature","default":0.7,"typeOptions":{"maxValue":2,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.","type":"number"},{"displayName":"Timeout","name":"timeout","default":360000,"description":"Maximum amount of time a request is allowed to take in milliseconds","type":"number"},{"displayName":"Max Retries","name":"maxRetries","default":2,"description":"Maximum number of retries to attempt","type":"number"},{"displayName":"Top P","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"}]}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LmChatAlibabaCloud/alibaba.svg"},
|
|
43
43
|
{"displayName":"Anthropic Chat Model","name":"lmChatAnthropic","group":["transform"],"version":[1,1.1,1.2,1.3,1.4,1.5,1.6],"defaultVersion":1.6,"description":"Language Model Anthropic","defaults":{"name":"Anthropic Chat Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatanthropic/"}]},"alias":["claude","sonnet","opus"]},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"anthropicApi","required":true}],"properties":[{"displayName":"This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"Model","name":"model","type":"options","options":[{"name":"Claude 3.5 Sonnet(20241022)","value":"claude-3-5-sonnet-20241022"},{"name":"Claude 3 Opus(20240229)","value":"claude-3-opus-20240229"},{"name":"Claude 3.5 Sonnet(20240620)","value":"claude-3-5-sonnet-20240620"},{"name":"Claude 3 Sonnet(20240229)","value":"claude-3-sonnet-20240229"},{"name":"Claude 3.5 Haiku(20241022)","value":"claude-3-5-haiku-20241022"},{"name":"Claude 3 Haiku(20240307)","value":"claude-3-haiku-20240307"},{"name":"LEGACY: Claude 2","value":"claude-2"},{"name":"LEGACY: Claude 2.1","value":"claude-2.1"},{"name":"LEGACY: Claude Instant 1.2","value":"claude-instant-1.2"},{"name":"LEGACY: Claude Instant 1","value":"claude-instant-1"}],"description":"The model which will generate the completion. <a href=\"https://docs.anthropic.com/claude/docs/models-overview\">Learn more</a>.","default":"claude-2","builderHint":{"propertyHint":"This node version only offers superseded Claude models. Pick claude-3-5-sonnet-20241022 if the node has to stay on this version; otherwise rebuild it on the latest node version, where the current Claude generation is selectable."},"displayOptions":{"show":{"@version":[1]}}},{"displayName":"Model","name":"model","type":"options","options":[{"name":"Claude 3.5 Sonnet(20241022)","value":"claude-3-5-sonnet-20241022"},{"name":"Claude 3 Opus(20240229)","value":"claude-3-opus-20240229"},{"name":"Claude 3.5 Sonnet(20240620)","value":"claude-3-5-sonnet-20240620"},{"name":"Claude 3 Sonnet(20240229)","value":"claude-3-sonnet-20240229"},{"name":"Claude 3.5 Haiku(20241022)","value":"claude-3-5-haiku-20241022"},{"name":"Claude 3 Haiku(20240307)","value":"claude-3-haiku-20240307"},{"name":"LEGACY: Claude 2","value":"claude-2"},{"name":"LEGACY: Claude 2.1","value":"claude-2.1"},{"name":"LEGACY: Claude Instant 1.2","value":"claude-instant-1.2"},{"name":"LEGACY: Claude Instant 1","value":"claude-instant-1"}],"description":"The model which will generate the completion. <a href=\"https://docs.anthropic.com/claude/docs/models-overview\">Learn more</a>.","default":"claude-3-sonnet-20240229","builderHint":{"propertyHint":"This node version only offers superseded Claude models. Pick claude-3-5-sonnet-20241022 if the node has to stay on this version; otherwise rebuild it on the latest node version, where the current Claude generation is selectable."},"displayOptions":{"show":{"@version":[1.1]}}},{"displayName":"Model","name":"model","type":"options","options":[{"name":"Claude 3.5 Sonnet(20241022)","value":"claude-3-5-sonnet-20241022"},{"name":"Claude 3 Opus(20240229)","value":"claude-3-opus-20240229"},{"name":"Claude 3.5 Sonnet(20240620)","value":"claude-3-5-sonnet-20240620"},{"name":"Claude 3 Sonnet(20240229)","value":"claude-3-sonnet-20240229"},{"name":"Claude 3.5 Haiku(20241022)","value":"claude-3-5-haiku-20241022"},{"name":"Claude 3 Haiku(20240307)","value":"claude-3-haiku-20240307"}],"description":"The model which will generate the completion. <a href=\"https://docs.anthropic.com/claude/docs/models-overview\">Learn more</a>.","default":"claude-3-5-sonnet-20240620","builderHint":{"propertyHint":"This node version only offers superseded Claude models. Pick claude-3-5-sonnet-20241022 if the node has to stay on this version; otherwise rebuild it on the latest node version, where the current Claude generation is selectable."},"displayOptions":{"show":{"@version":[{"_cnd":{"lte":1.2}}]}}},{"displayName":"Model","name":"model","type":"resourceLocator","default":{"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"builderHint":{"propertyHint":"When extended thinking is needed, use Adaptive mode and choose an Effort level. Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","placeholder":"Select a model...","typeOptions":{"searchListMethod":"searchModels","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"Claude Sonnet"}],"description":"The model. Choose from the list, or specify an ID. <a href=\"https://docs.anthropic.com/claude/docs/models-overview\">Learn more</a>.","displayOptions":{"show":{"@version":[1.3]}}},{"displayName":"Model","name":"model","type":"resourceLocator","default":{"mode":"list","value":"claude-sonnet-4-6","cachedResultName":"Claude Sonnet 4.6"},"builderHint":{"propertyHint":"When extended thinking is needed, use Adaptive mode and choose an Effort level. Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","placeholder":"Select a model...","typeOptions":{"searchListMethod":"searchModels","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"Claude Sonnet"}],"description":"The model. Choose from the list, or specify an ID. <a href=\"https://docs.anthropic.com/claude/docs/models-overview\">Learn more</a>.","displayOptions":{"show":{"@version":[1.4]}}},{"displayName":"Model","name":"model","type":"resourceLocator","default":{"mode":"list","value":"claude-sonnet-4-6","cachedResultName":"Claude Sonnet 4.6"},"builderHint":{"propertyHint":"When extended thinking is needed, use Adaptive mode and choose an Effort level. Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","placeholder":"Select a model...","typeOptions":{"searchListMethod":"searchModels","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"Claude Sonnet"}],"description":"The model. Choose from the list, or specify an ID. <a href=\"https://docs.anthropic.com/claude/docs/models-overview\">Learn more</a>.","displayOptions":{"show":{"@version":[1.5]}}},{"displayName":"Model","name":"model","type":"resourceLocator","default":{"mode":"list","value":"claude-sonnet-5","cachedResultName":"Claude Sonnet 5"},"builderHint":{"propertyHint":"When extended thinking is needed, use Adaptive mode and choose an Effort level. Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","placeholder":"Select a model...","typeOptions":{"searchListMethod":"searchModels","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"Claude Sonnet"}],"description":"The model. Choose from the list, or specify an ID. <a href=\"https://docs.anthropic.com/claude/docs/models-overview\">Learn more</a>.","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.6}}]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Maximum Number of Tokens","name":"maxTokensToSample","default":4096,"description":"The maximum number of tokens to generate in the completion","type":"number"},{"displayName":"Sampling Temperature","name":"temperature","default":0.7,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive. Not supported on newer Anthropic models (Claude Opus 4.7+, Claude Sonnet 5+) — ignored there.","type":"number","displayOptions":{"hide":{"thinking":[true],"thinkingMode":["adaptive","manual"]}}},{"displayName":"Top K","name":"topK","default":-1,"typeOptions":{"maxValue":1,"minValue":-1,"numberPrecision":1},"description":"Used to remove \"long tail\" low probability responses. Defaults to -1, which disables it. Not supported on newer Anthropic models (Claude Opus 4.7+, Claude Sonnet 5+) — ignored there.","type":"number","displayOptions":{"hide":{"thinking":[true],"thinkingMode":["adaptive","manual"]}}},{"displayName":"Top P","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both. Not supported on newer Anthropic models (Claude Opus 4.7+, Claude Sonnet 5+) — ignored there.","type":"number","displayOptions":{"hide":{"thinking":[true],"thinkingMode":["adaptive","manual"]}}},{"displayName":"Enable Thinking","name":"thinking","type":"boolean","default":false,"description":"Whether to enable thinking mode for the model","displayOptions":{"show":{"@version":[{"_cnd":{"lte":1.4}}]}}},{"displayName":"Thinking Budget (Tokens)","name":"thinkingBudget","type":"number","default":1024,"description":"The maximum number of tokens to use for thinking","displayOptions":{"show":{"@version":[{"_cnd":{"lte":1.4}}],"thinking":[true]}}},{"displayName":"Thinking Mode","name":"thinkingMode","type":"options","default":"disabled","description":"How extended thinking is configured. Leave the option unset to use the model default.","options":[{"name":"Disabled","value":"disabled","description":"No extended thinking"},{"name":"Adaptive (Recommended)","value":"adaptive","description":"Claude decides how much to think; control with Effort"},{"name":"Manual (Deprecated)","value":"manual","description":"Legacy fixed-budget mode; rejected by Opus 4.7+"}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.5}}]}}},{"displayName":"Effort","name":"effort","type":"options","default":"medium","description":"Effort level for adaptive thinking","options":[{"name":"Low","value":"low"},{"name":"Medium","value":"medium"},{"name":"High","value":"high"},{"name":"X-High","value":"xhigh"},{"name":"Max","value":"max"}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.5}}],"thinkingMode":["adaptive"],"/model.value":[{"_cnd":{"includes":"opus"}}]}}},{"displayName":"Effort","name":"effort","type":"options","default":"medium","description":"Effort level for adaptive thinking","options":[{"name":"Low","value":"low"},{"name":"Medium","value":"medium"},{"name":"High","value":"high"}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.5}}],"thinkingMode":["adaptive"],"/model.value":[{"_cnd":{"regex":"^(?!.*opus).*"}}]}}},{"displayName":"Thinking Budget (Tokens)","name":"thinkingBudget","type":"number","default":1024,"description":"Maximum tokens used for thinking. Manual mode is rejected by Opus 4.7+.","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.5}}],"thinkingMode":["manual"]}}},{"displayName":"Stream Responses","name":"streaming","type":"boolean","default":false,"description":"Whether the model should stream its response over Server-Sent Events instead of returning a single non-streamed payload. Final output shape is unchanged."},{"displayName":"Prompt Caching","name":"promptCaching","type":"options","default":"disabled","description":"Whether to cache the system prompt, tool definitions, and conversation history between requests using <a href=\"https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching\">Anthropic prompt caching</a>. The value sets how long cached content stays valid before it has to be written again.","options":[{"name":"Disabled","value":"disabled"},{"name":"5 Minutes","value":"5m"},{"name":"1 Hour","value":"1h"}]}]},{"displayName":"Cache reads and writes are billed at different rates than regular input tokens, so reported prompt/total tokens are only an approximation of actual billable usage","name":"promptCachingNotice","type":"notice","default":"","displayOptions":{"show":{"/options.promptCaching":["5m","1h"]}}}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LMChatAnthropic/anthropic.svg"},
|
|
44
|
-
{"displayName":"Azure AI Foundry Chat Model","name":"lmChatAzureOpenAi","group":["transform"],"version":1,"description":"For advanced usage with an AI chain","defaults":{"name":"Azure AI Foundry Chat Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatazureopenai/"}]},"alias":["Azure OpenAI Chat Model","Azure OpenAI","Azure AI Foundry","Foundry"]},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"azureOpenAiApi","required":true,"displayOptions":{"show":{"authentication":["azureOpenAiApi"]}}},{"name":"azureEntraCognitiveServicesOAuth2Api","required":true,"displayOptions":{"show":{"authentication":["azureEntraCognitiveServicesOAuth2Api"]}}}],"properties":[{"displayName":"Authentication","name":"authentication","type":"options","default":"azureOpenAiApi","options":[{"name":"API Key","value":"azureOpenAiApi"},{"name":"Azure Entra ID (OAuth2)","value":"azureEntraCognitiveServicesOAuth2Api"}]},{"displayName":"This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"If using JSON response format, you must include word \"json\" in the prompt in your chain or agent. Also, make sure to select latest models released post November 2023.","name":"notice","type":"notice","default":"","displayOptions":{"show":{"/options.responseFormat":["json_object"]}}},{"displayName":"Model (Deployment) Name","name":"model","type":"string","description":"The name of the model(deployment) to use (e.g., gpt-4, gpt-35-turbo)","required":true,"default":""},{"displayName":"Project","name":"project","type":"string","description":"The Azure AI Foundry project that owns the deployment. Required for an Azure AI Foundry resource; leave empty for a classic Azure OpenAI resource.","default":""},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Frequency Penalty","name":"frequencyPenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim","type":"number"},{"displayName":"Maximum Number of Tokens","name":"maxTokens","default":-1,"description":"The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768). Use -1 for default.","type":"number","typeOptions":{"maxValue":128000}},{"displayName":"Response Format","name":"responseFormat","default":"text","type":"options","options":[{"name":"Text","value":"text","description":"Regular text response"},{"name":"JSON","value":"json_object","description":"Enables JSON mode, which should guarantee the message the model generates is valid JSON"}]},{"displayName":"Presence Penalty","name":"presencePenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics","type":"number"},{"displayName":"Sampling Temperature","name":"temperature","default":0.7,"typeOptions":{"maxValue":2,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.","type":"number"},{"displayName":"Timeout (Ms)","name":"timeout","default":60000,"description":"Maximum amount of time a request is allowed to take in milliseconds","type":"number"},{"displayName":"Max Retries","name":"maxRetries","default":2,"description":"Maximum number of retries to attempt on failure","type":"number"},{"displayName":"Top P","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"}]}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LmChatAzureOpenAi/azure.svg"},
|
|
44
|
+
{"displayName":"Azure AI Foundry Chat Model","name":"lmChatAzureOpenAi","group":["transform"],"version":[1,1.1],"defaultVersion":1.1,"description":"For advanced usage with an AI chain","defaults":{"name":"Azure AI Foundry Chat Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatazureopenai/"}]},"alias":["Azure OpenAI Chat Model","Azure OpenAI","Azure AI Foundry","Foundry"]},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"azureOpenAiApi","required":true,"displayOptions":{"show":{"authentication":["azureOpenAiApi"]}}},{"name":"azureEntraCognitiveServicesOAuth2Api","required":true,"displayOptions":{"show":{"authentication":["azureEntraCognitiveServicesOAuth2Api"]}}}],"properties":[{"displayName":"Authentication","name":"authentication","type":"options","default":"azureOpenAiApi","options":[{"name":"API Key","value":"azureOpenAiApi"},{"name":"Azure Entra ID (OAuth2)","value":"azureEntraCognitiveServicesOAuth2Api"}]},{"displayName":"This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"If using JSON response format, you must include word \"json\" in the prompt in your chain or agent. Also, make sure to select latest models released post November 2023.","name":"notice","type":"notice","default":"","displayOptions":{"show":{"/options.responseFormat":["json_object"]}}},{"displayName":"Model (Deployment) Name","name":"model","type":"string","description":"The name of the model(deployment) to use (e.g., gpt-4, gpt-35-turbo)","required":true,"default":"","displayOptions":{"show":{"@version":[1]}}},{"displayName":"Project","name":"project","type":"string","description":"The Azure AI Foundry project that owns the deployment. Required for an Azure AI Foundry resource; leave empty for a classic Azure OpenAI resource.","default":""},{"displayName":"Model (Deployment)","name":"model","type":"resourceLocator","default":{"mode":"id","value":""},"required":true,"builderHint":{"propertyHint":"Set the project parameter before you list deployments. The list needs an Azure AI Foundry credential. With a classic credential, use the id mode and enter the deployment name."},"modes":[{"displayName":"From List","name":"list","type":"list","placeholder":"Select a deployment...","typeOptions":{"searchListMethod":"searchModels","searchable":true}},{"displayName":"By ID","name":"id","type":"string","placeholder":"e.g. gpt-4o"}],"description":"The deployment to use. Choose from the list (Azure AI Foundry credentials only), or enter the deployment name.","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.1}}]}}},{"displayName":"Use Responses API","name":"responsesApiEnabled","type":"boolean","default":false,"description":"Whether to call the deployment on the Responses API instead of Chat Completions. Azure does not tell us which one a deployment supports, so set this to match your deployment: leave it off for a chat-completions deployment, turn it on for a Responses-only one. Needs a credential using the Azure AI Foundry endpoint type.","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.1}}]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Frequency Penalty","name":"frequencyPenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim","type":"number"},{"displayName":"Maximum Number of Tokens","name":"maxTokens","default":-1,"description":"The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768). Use -1 for default.","type":"number","typeOptions":{"maxValue":128000}},{"displayName":"Response Format","name":"responseFormat","default":"text","type":"options","options":[{"name":"Text","value":"text","description":"Regular text response"},{"name":"JSON","value":"json_object","description":"Enables JSON mode, which should guarantee the message the model generates is valid JSON"}]},{"displayName":"Presence Penalty","name":"presencePenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics","type":"number"},{"displayName":"Sampling Temperature","name":"temperature","default":0.7,"typeOptions":{"maxValue":2,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.","type":"number"},{"displayName":"Timeout (Ms)","name":"timeout","default":60000,"description":"Maximum amount of time a request is allowed to take in milliseconds","type":"number"},{"displayName":"Max Retries","name":"maxRetries","default":2,"description":"Maximum number of retries to attempt on failure","type":"number"},{"displayName":"Top P","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Extra Body","name":"extraBody","type":"json","default":"{}","description":"Optional additional JSON properties to include in the request body. Use this for parameters a deployment supports that the options above do not cover."}]}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LmChatAzureOpenAi/azure.svg"},
|
|
45
45
|
{"displayName":"AWS Bedrock Chat Model","name":"lmChatAwsBedrock","group":["transform"],"version":[1,1.1,1.2],"description":"Language Model AWS Bedrock","defaults":{"name":"AWS Bedrock Chat Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatawsbedrock/"}]}},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"aws","required":true,"displayOptions":{"show":{"authentication":["iam"]}}},{"name":"awsAssumeRole","required":true,"displayOptions":{"show":{"authentication":["assumeRole"]}}}],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"=https://bedrock.{{$credentials?.region ?? \"eu-central-1\"}}.amazonaws.com"},"properties":[{"displayName":"Authentication","name":"authentication","type":"options","options":[{"name":"AWS (IAM)","value":"iam"},{"name":"AWS (Assume Role)","value":"assumeRole"}],"default":"iam"},{"displayName":"This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"Model Source","name":"modelSource","type":"options","displayOptions":{"show":{"@version":[{"_cnd":{"eq":1.1}}]}},"options":[{"name":"On-Demand Models","value":"onDemand","description":"Standard foundation models with on-demand pricing"},{"name":"Inference Profiles","value":"inferenceProfile","description":"Cross-region inference profiles (required for models like Claude Sonnet 4 and others)"}],"default":"onDemand","description":"Choose between on-demand foundation models or inference profiles"},{"displayName":"Model","name":"model","type":"options","allowArbitraryValues":true,"description":"The model which will generate the completion. <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/foundation-models.html\">Learn more</a>.","displayOptions":{"show":{"@version":[{"_cnd":{"lt":1.2}}]},"hide":{"modelSource":["inferenceProfile"]}},"typeOptions":{"loadOptionsDependsOn":["modelSource"],"loadOptions":{"routing":{"request":{"method":"GET","url":"/foundation-models?&byOutputModality=TEXT&byInferenceType=ON_DEMAND"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"modelSummaries"}},{"type":"setKeyValue","properties":{"name":"={{$responseItem.modelName}}","description":"={{$responseItem.modelArn}}","value":"={{$responseItem.modelId}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"model"}},"default":"","builderHint":{"propertyHint":"If the chosen model requires an inference profile, use the Inference Profiles picker on a node version that supports it. Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."}},{"displayName":"Model","name":"model","type":"options","allowArbitraryValues":true,"description":"The inference profile which will generate the completion. <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-use.html\">Learn more</a>.","displayOptions":{"show":{"@version":[{"_cnd":{"lt":1.2}}],"modelSource":["inferenceProfile"]}},"typeOptions":{"loadOptionsDependsOn":["modelSource","authentication"],"loadOptionsMethod":"listInferenceProfiles"},"routing":{"send":{"type":"body","property":"model"}},"default":"","builderHint":{"propertyHint":"Use an available inference profile for the chosen model. Copy the exact ID returned by the list. Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."}},{"displayName":"Model","name":"model","type":"options","allowArbitraryValues":true,"description":"The model or inference profile which will generate the completion. <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/foundation-models.html\">Learn more</a>.","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.2}}]}},"typeOptions":{"loadOptionsDependsOn":["authentication"],"loadOptionsMethod":"listModels"},"routing":{"send":{"type":"body","property":"model"}},"default":"","builderHint":{"propertyHint":"Use the exact model or inference profile ID returned by the list. Profile IDs can have a global or regional prefix. Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."}},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Maximum Number of Tokens","name":"maxTokensToSample","default":2000,"description":"The maximum number of tokens to generate in the completion","type":"number"},{"displayName":"Sampling Temperature","name":"temperature","default":0.7,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.","type":"number"},{"displayName":"Top P","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Max Retries","name":"maxRetries","default":2,"description":"Maximum number of retries to attempt when a request fails","type":"number"},{"displayName":"Timeout","name":"timeout","default":60000,"description":"Maximum amount of time a request is allowed to take in milliseconds. Increase this for long generations; set to 0 to disable.","type":"number"},{"displayName":"Additional Model Request Fields","name":"additionalModelRequestFields","default":"{}","description":"Model-family-specific inference parameters passed through as JSON (e.g. Claude <code>top_k</code>/<code>thinking</code>, Nova <code>inferenceConfig</code>/<code>reasoningConfig</code>, Cohere penalties). See the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html\">AWS model parameters docs</a>.","type":"json","typeOptions":{"rows":4}},{"displayName":"Latency Optimization","name":"latency","default":"standard","description":"Latency optimization mode for the request. \"Optimized\" can reduce response time for supported models and regions.","type":"options","options":[{"name":"Standard","value":"standard"},{"name":"Optimized","value":"optimized"}]},{"displayName":"Guardrail","name":"guardrail","type":"fixedCollection","default":{},"description":"Apply an Amazon Bedrock guardrail to requests","options":[{"displayName":"Guardrail","name":"values","values":[{"displayName":"Guardrail Identifier","name":"guardrailIdentifier","type":"string","default":"","description":"The identifier (ID or ARN) of the guardrail to apply"},{"displayName":"Guardrail Version","name":"guardrailVersion","type":"string","default":"DRAFT","description":"The version of the guardrail to apply, e.g. \"1\". Defaults to the working draft (\"DRAFT\")."},{"displayName":"Trace","name":"trace","type":"options","default":"disabled","description":"The trace behavior for the guardrail","options":[{"name":"Disabled","value":"disabled"},{"name":"Enabled","value":"enabled"},{"name":"Enabled (Full)","value":"enabled_full"}]}]}]}]}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LmChatAwsBedrock/bedrock.svg"},
|
|
46
46
|
{"displayName":"Cohere Chat Model","name":"lmChatCohere","group":["transform"],"version":[1],"description":"For advanced usage with an AI chain","defaults":{"name":"Cohere Chat Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatcohere/"}]}},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"cohereApi","required":true}],"requestDefaults":{"baseURL":"={{$credentials?.url}}","headers":{"accept":"application/json","authorization":"=Bearer {{$credentials?.apiKey}}"}},"properties":[{"displayName":"This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"Model","name":"model","type":"options","description":"The model which will generate the completion. <a href=\"https://docs.cohere.com/docs/models\">Learn more</a>.","typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","url":"/v1/models?page_size=100&endpoint=chat"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"models"}},{"type":"setKeyValue","properties":{"name":"={{$responseItem.name}}","value":"={{$responseItem.name}}","description":"={{$responseItem.description}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"default":"command-a-03-2025","builderHint":{"propertyHint":"Choose a current Command model from the connected credential's model list. Check tool support when connecting it to an agent. Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."}},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Sampling Temperature","name":"temperature","default":0.7,"typeOptions":{"maxValue":2,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.","type":"number"},{"displayName":"Max Retries","name":"maxRetries","default":2,"description":"Maximum number of retries to attempt","type":"number"}]}],"iconUrl":{"light":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LmChatCohere/cohere.svg","dark":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LmChatCohere/cohere.dark.svg"}},
|
|
47
47
|
{"displayName":"Databricks Chat Model","name":"lmChatDatabricks","group":["transform"],"version":[1],"description":"For advanced usage with an AI chain","defaults":{"name":"Databricks Chat Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatdatabricks/"}]}},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"databricksOAuth2Api","required":true}],"properties":[{"displayName":"This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"If using JSON response format, you must include word \"json\" in the prompt in your chain or agent. Also, make sure the selected model service supports JSON mode.","name":"notice","type":"notice","default":"","displayOptions":{"show":{"/options.responseFormat":["json_object"]}}},{"displayName":"Model","name":"model","type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","placeholder":"Select a model...","typeOptions":{"searchListMethod":"searchModels","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"system.ai.gpt-oss-120b"}],"description":"The Unity AI Gateway model service. Choose from the list, or enter its full name (catalog.schema.service)."},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Frequency Penalty","name":"frequencyPenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim","type":"number"},{"displayName":"Maximum Number of Tokens","name":"maxTokens","default":-1,"description":"The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768).","type":"number","typeOptions":{"maxValue":32768}},{"displayName":"Response Format","name":"responseFormat","default":"text","type":"options","options":[{"name":"Text","value":"text","description":"Regular text response"},{"name":"JSON","value":"json_object","description":"Enables JSON mode, which should guarantee the message the model generates is valid JSON"}]},{"displayName":"Presence Penalty","name":"presencePenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics","type":"number"},{"displayName":"Sampling Temperature","name":"temperature","default":0.7,"typeOptions":{"maxValue":2,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.","type":"number"},{"displayName":"Timeout","name":"timeout","default":360000,"description":"Maximum amount of time a request is allowed to take in milliseconds","type":"number"},{"displayName":"Max Retries","name":"maxRetries","default":2,"description":"Maximum number of retries to attempt","type":"number"},{"displayName":"Top P","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"}]}],"iconUrl":{"light":"icons/@n8n/n8n-nodes-langchain/dist/nodes/shared/icons/databricks.svg","dark":"icons/@n8n/n8n-nodes-langchain/dist/nodes/shared/icons/databricks.dark.svg"}},
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
{"displayName":"OpenRouter Chat Model","name":"lmChatOpenRouter","group":["transform"],"version":[1],"description":"For advanced usage with an AI chain","defaults":{"name":"OpenRouter Chat Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenrouter/"}]}},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"openRouterApi","required":true}],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $credentials?.url }}"},"properties":[{"displayName":"This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"If using JSON response format, you must include word \"json\" in the prompt in your chain or agent. Also, make sure to select latest models released post November 2023.","name":"notice","type":"notice","default":"","displayOptions":{"show":{"/options.responseFormat":["json_object"]}}},{"displayName":"Model","name":"model","type":"options","description":"The model which will generate the completion. <a href=\"https://openrouter.ai/docs/models\">Learn more</a>.","typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","url":"/models"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"data"}},{"type":"setKeyValue","properties":{"name":"={{$responseItem.id}}","value":"={{$responseItem.id}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"model"}},"default":"openai/gpt-4.1-mini","builderHint":{"propertyHint":"Use the exact provider-prefixed ID returned by OpenRouter. Do not construct an OpenRouter ID from another provider's model name. Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."}},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Frequency Penalty","name":"frequencyPenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim","type":"number"},{"displayName":"Maximum Number of Tokens","name":"maxTokens","default":-1,"description":"The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768).","type":"number","typeOptions":{"maxValue":32768}},{"displayName":"Response Format","name":"responseFormat","default":"text","type":"options","options":[{"name":"Text","value":"text","description":"Regular text response"},{"name":"JSON","value":"json_object","description":"Enables JSON mode, which should guarantee the message the model generates is valid JSON"}]},{"displayName":"Presence Penalty","name":"presencePenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics","type":"number"},{"displayName":"Sampling Temperature","name":"temperature","default":0.7,"typeOptions":{"maxValue":2,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.","type":"number"},{"displayName":"Timeout","name":"timeout","default":360000,"description":"Maximum amount of time a request is allowed to take in milliseconds","type":"number"},{"displayName":"Max Retries","name":"maxRetries","default":2,"description":"Maximum number of retries to attempt","type":"number"},{"displayName":"Top P","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Provider Routing","name":"providerRouting","type":"collection","default":{},"description":"Configure which sub-providers handle your requests. <a href=\"https://openrouter.ai/docs/provider-routing\">Learn more</a>.","placeholder":"Add Provider Routing Option","options":[{"displayName":"Order","name":"order","type":"string","default":"","placeholder":"anthropic,openai,google","description":"Comma-separated list of provider slugs to try in order. <a href=\"https://openrouter.ai/docs/provider-routing#provider-sorting\">Learn more</a>."},{"displayName":"Allow Fallbacks","name":"allowFallbacks","type":"boolean","default":true,"description":"Whether to allow backup providers when the primary is unavailable"},{"displayName":"Require Parameters","name":"requireParameters","type":"boolean","default":false,"description":"Whether to only use providers that support all parameters in your request"},{"displayName":"Data Collection","name":"dataCollection","type":"options","options":[{"name":"Allow","value":"allow"},{"name":"Deny","value":"deny"}],"default":"allow","description":"Select 'Deny' to route requests only through providers that don't collect your data"},{"displayName":"Zero Data Retention (ZDR)","name":"zdr","type":"boolean","default":false,"description":"Whether to restrict routing to only providers with Zero Data Retention endpoints"},{"displayName":"Only","name":"only","type":"string","default":"","placeholder":"azure,anthropic","description":"Comma-separated list of provider slugs to allow for this request. Only these providers will be used. <a href=\"https://openrouter.ai/docs/guides/routing/provider-selection#allowing-only-specific-providers\">Learn more</a>."},{"displayName":"Ignore","name":"ignore","type":"string","default":"","placeholder":"anthropic,openai","description":"Comma-separated list of provider slugs to skip for this request"},{"displayName":"Sort","name":"sort","type":"options","options":[{"name":"Price","value":"price"},{"name":"Throughput","value":"throughput"},{"name":"Latency","value":"latency"}],"default":"","description":"Sort providers by a specific attribute. Disables load balancing and tries providers in order. <a href=\"https://openrouter.ai/docs/provider-routing#provider-sorting\">Learn more</a>."}]}]}],"iconUrl":{"light":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LmChatOpenRouter/openrouter.svg","dark":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LmChatOpenRouter/openrouter.dark.svg"}},
|
|
59
59
|
{"displayName":"Vercel AI Gateway Chat Model","name":"lmChatVercelAiGateway","group":["transform"],"version":[1],"description":"For advanced usage with an AI chain via Vercel AI Gateway","defaults":{"name":"Vercel AI Gateway Chat Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatvercel/"}]}},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"vercelAiGatewayApi","required":true}],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $credentials?.url }}"},"properties":[{"displayName":"This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"If using JSON response format, you must include word \"json\" in the prompt in your chain or agent. Also, make sure to select latest models released post November 2023.","name":"notice","type":"notice","default":"","displayOptions":{"show":{"/options.responseFormat":["json_object"]}}},{"displayName":"Model","name":"model","type":"options","description":"The model which will generate the completion","typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","url":"/models"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"data"}},{"type":"setKeyValue","properties":{"name":"={{$responseItem.id}}","value":"={{$responseItem.id}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"model"}},"default":"openai/gpt-4o","builderHint":{"propertyHint":"Use the exact provider-prefixed ID returned by Vercel AI Gateway. Do not assume it serves every model from the underlying provider. Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."}},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Frequency Penalty","name":"frequencyPenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim","type":"number"},{"displayName":"Maximum Number of Tokens","name":"maxTokens","default":-1,"description":"The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768).","type":"number","typeOptions":{"maxValue":32768}},{"displayName":"Response Format","name":"responseFormat","default":"text","type":"options","options":[{"name":"Text","value":"text","description":"Regular text response"},{"name":"JSON","value":"json_object","description":"Enables JSON mode, which should guarantee the message the model generates is valid JSON"}]},{"displayName":"Presence Penalty","name":"presencePenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics","type":"number"},{"displayName":"Sampling Temperature","name":"temperature","default":0.7,"typeOptions":{"maxValue":2,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.","type":"number"},{"displayName":"Timeout","name":"timeout","default":360000,"description":"Maximum amount of time a request is allowed to take in milliseconds","type":"number"},{"displayName":"Max Retries","name":"maxRetries","default":2,"description":"Maximum number of retries to attempt","type":"number"},{"displayName":"Top P","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"}]}],"iconUrl":{"light":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LmChatVercelAiGateway/vercel.dark.svg","dark":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LmChatVercelAiGateway/vercel.svg"}},
|
|
60
60
|
{"displayName":"xAI Grok Chat Model","name":"lmChatXAiGrok","group":["transform"],"version":[1],"description":"For advanced usage with an AI chain","defaults":{"name":"xAI Grok Chat Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatxaigrok/"}]}},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"xAiApi","required":true}],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $credentials?.url }}"},"properties":[{"displayName":"This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"If using JSON response format, you must include word \"json\" in the prompt in your chain or agent. Also, make sure to select latest models released post November 2023.","name":"notice","type":"notice","default":"","displayOptions":{"show":{"/options.responseFormat":["json_object"]}}},{"displayName":"Model","name":"model","type":"options","description":"The model which will generate the completion. <a href=\"https://docs.x.ai/docs/models\">Learn more</a>.","typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","url":"/models"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"data"}},{"type":"setKeyValue","properties":{"name":"={{$responseItem.id}}","value":"={{$responseItem.id}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"model"}},"default":"grok-2-vision-1212","builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."}},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Frequency Penalty","name":"frequencyPenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim","type":"number"},{"displayName":"Maximum Number of Tokens","name":"maxTokens","default":-1,"description":"The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768).","type":"number","typeOptions":{"maxValue":32768}},{"displayName":"Response Format","name":"responseFormat","default":"text","type":"options","options":[{"name":"Text","value":"text","description":"Regular text response"},{"name":"JSON","value":"json_object","description":"Enables JSON mode, which should guarantee the message the model generates is valid JSON"}]},{"displayName":"Presence Penalty","name":"presencePenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics","type":"number"},{"displayName":"Sampling Temperature","name":"temperature","default":0.7,"typeOptions":{"maxValue":2,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.","type":"number"},{"displayName":"Timeout","name":"timeout","default":360000,"description":"Maximum amount of time a request is allowed to take in milliseconds","type":"number"},{"displayName":"Max Retries","name":"maxRetries","default":2,"description":"Maximum number of retries to attempt","type":"number"},{"displayName":"Top P","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Enable Priority","name":"priority","default":false,"description":"Whether to give your xAI API requests higher scheduling priority (Priority Processing)","type":"boolean"},{"displayName":"Reasoning Effort","name":"reasoning","type":"options","default":"low","description":"Effort the model spends thinking before responding","options":[{"name":"None","value":"none","description":"Disables reasoning entirely; no thinking tokens are used"},{"name":"Low","value":"low","description":"Uses some reasoning tokens, but still fast"},{"name":"Medium","value":"medium","description":"More thinking for less-latency sensitive applications"},{"name":"High","value":"high","description":"Uses more reasoning tokens for deeper thinking"}]}]}],"iconUrl":{"light":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LmChatXAiGrok/logo.dark.svg","dark":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LmChatXAiGrok/logo.svg"}},
|
|
61
|
-
{"displayName":"OpenAI Chat Model","name":"lmChatOpenAi","group":["transform"],"version":[1,1.1,1.2,1.3],"description":"For advanced usage with an AI chain","defaults":{"name":"OpenAI Chat Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"}]}},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"openAiApi","required":true}],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $parameter.options?.baseURL?.split(\"/\").slice(0,-1).join(\"/\") || $credentials?.url?.split(\"/\").slice(0,-1).join(\"/\") || \"https://api.openai.com\" }}"},"properties":[{"displayName":"This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"If using JSON response format, you must include word \"json\" in the prompt in your chain or agent. Also, make sure to select latest models released post November 2023.","name":"notice","type":"notice","default":"","displayOptions":{"show":{"/options.responseFormat":["json_object"]}}},{"displayName":"If using JSON response format, you must include word \"json\" in the prompt in your chain or agent. Also, make sure to select latest models released post November 2023.","name":"notice","type":"notice","default":"","displayOptions":{"show":{"/options.textFormat.textOptions.type":["json_object"]}}},{"displayName":"Model","name":"model","type":"options","description":"The model which will generate the completion. <a href=\"https://beta.openai.com/docs/models/overview\">Learn more</a>.","typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","url":"={{ $parameter.options?.baseURL?.split(\"/\").slice(-1).pop() || $credentials?.url?.split(\"/\").slice(-1).pop() || \"v1\" }}/models"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"data"}},{"type":"filter","properties":{"pass":"={{\n\t\t\t\t\t\t\t\t\t\t\t\t($parameter.options?.baseURL && !$parameter.options?.baseURL?.startsWith('https://api.openai.com/')) ||\n\t\t\t\t\t\t\t\t\t\t\t\t($credentials?.url && !$credentials.url.startsWith('https://api.openai.com/')) ||\n\t\t\t\t\t\t\t\t\t\t\t\t$responseItem.id.startsWith('ft:') ||\n\t\t\t\t\t\t\t\t\t\t\t\t$responseItem.id.startsWith('o1') ||\n\t\t\t\t\t\t\t\t\t\t\t\t$responseItem.id.startsWith('o3') ||\n\t\t\t\t\t\t\t\t\t\t\t\t($responseItem.id.startsWith('gpt-') && !$responseItem.id.includes('instruct'))\n\t\t\t\t\t\t\t\t\t\t\t}}"}},{"type":"setKeyValue","properties":{"name":"={{$responseItem.id}}","value":"={{$responseItem.id}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"model"}},"default":"gpt-5-mini","builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"displayOptions":{"hide":{"@version":[{"_cnd":{"gte":1.2}}]}}},{"displayName":"Model","name":"model","type":"resourceLocator","default":{"mode":"list","value":"gpt-5-mini"},"builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","placeholder":"Select a model...","typeOptions":{"searchListMethod":"searchModels","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"gpt-5-mini"}],"description":"The model. Choose from the list, or specify an ID.","displayOptions":{"hide":{"@version":[{"_cnd":{"lte":1.1}}]}}},{"displayName":"When using non-OpenAI models via \"Base URL\" override, not all models might be chat-compatible or support other features, like tools calling or JSON response format","name":"notice","type":"notice","default":"","displayOptions":{"show":{"/options.baseURL":[{"_cnd":{"exists":true}}]}}},{"displayName":"Use Responses API","name":"responsesApiEnabled","type":"boolean","default":true,"description":"Whether to use the Responses API to generate the response. <a href=\"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/#use-responses-api\">Learn more</a>.","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}]}}},{"displayName":"Built-in Tools","name":"builtInTools","placeholder":"Add Built-in Tool","type":"collection","default":{},"options":[{"displayName":"Web Search","name":"webSearch","type":"collection","default":{"searchContextSize":"medium"},"options":[{"displayName":"Search Context Size","name":"searchContextSize","type":"options","default":"medium","description":"High level guidance for the amount of context window space to use for the search","options":[{"name":"Low","value":"low"},{"name":"Medium","value":"medium"},{"name":"High","value":"high"}]},{"displayName":"Web Search Allowed Domains","name":"allowedDomains","type":"string","default":"","description":"Comma-separated list of domains to search. Only domains in this list will be searched.","placeholder":"e.g. google.com, wikipedia.org"},{"displayName":"Country","name":"country","type":"string","default":"","placeholder":"e.g. US, GB"},{"displayName":"City","name":"city","type":"string","default":"","placeholder":"e.g. New York, London"},{"displayName":"Region","name":"region","type":"string","default":"","placeholder":"e.g. New York, London"}]},{"displayName":"File Search","name":"fileSearch","type":"collection","default":{"vectorStoreIds":"[]"},"options":[{"displayName":"Vector Store IDs","name":"vectorStoreIds","description":"The vector store IDs to use for the file search. Vector stores are managed via OpenAI Dashboard. <a href=\"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/#built-in-tools\">Learn more</a>.","type":"json","default":"[]","required":true},{"displayName":"Filters","name":"filters","type":"json","default":"{}"},{"displayName":"Max Results","name":"maxResults","type":"number","default":1,"typeOptions":{"minValue":1,"maxValue":50}}]},{"displayName":"Code Interpreter","name":"codeInterpreter","type":"boolean","default":true,"description":"Whether to allow the model to execute code in a sandboxed environment"}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Base URL","name":"baseURL","default":"https://api.openai.com/v1","description":"Override the default base URL for the API","type":"string","displayOptions":{"hide":{"@version":[{"_cnd":{"gte":1.1}}]}}},{"displayName":"Frequency Penalty","name":"frequencyPenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim","type":"number"},{"displayName":"Maximum Number of Tokens","name":"maxTokens","default":-1,"description":"The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768).","type":"number","typeOptions":{"maxValue":32768}},{"displayName":"Response Format","name":"responseFormat","default":"text","type":"options","options":[{"name":"Text","value":"text","description":"Regular text response"},{"name":"JSON","value":"json_object","description":"Enables JSON mode, which should guarantee the message the model generates is valid JSON"}],"displayOptions":{"show":{"@version":[{"_cnd":{"lt":1.3}}]}}},{"displayName":"Response Format","name":"responseFormat","default":"text","type":"options","options":[{"name":"Text","value":"text","description":"Regular text response"},{"name":"JSON","value":"json_object","description":"Enables JSON mode, which should guarantee the message the model generates is valid JSON"}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[false]}}},{"displayName":"Response Format","name":"textFormat","type":"fixedCollection","default":{"textOptions":[{"type":"text"}]},"options":[{"displayName":"Text","name":"textOptions","values":[{"displayName":"Type","name":"type","type":"options","default":"","options":[{"name":"Text","value":"text"},{"name":"JSON Schema (recommended)","value":"json_schema"},{"name":"JSON Object","value":"json_object"}]},{"displayName":"Verbosity","name":"verbosity","type":"options","default":"medium","options":[{"name":"Low","value":"low"},{"name":"Medium","value":"medium"},{"name":"High","value":"high"}]},{"displayName":"Name","name":"name","type":"string","default":"my_schema","description":"The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.","displayOptions":{"show":{"type":["json_schema"]}}},{"displayName":"All properties in the schema must be set to \"required\", when using \"strict\" mode.","name":"requiredNotice","type":"notice","default":"","displayOptions":{"show":{"strict":[true]}}},{"displayName":"Schema","name":"schema","type":"json","default":"{\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false,\n \"required\": [\"message\"]\n}","description":"The schema of the response format","displayOptions":{"show":{"type":["json_schema"]}}},{"displayName":"Description","name":"description","type":"string","default":"","description":"The description of the response format","displayOptions":{"show":{"type":["json_schema"]}}},{"displayName":"Strict","name":"strict","type":"boolean","default":false,"description":"Whether to require that the AI will always generate responses that match the provided JSON Schema","displayOptions":{"show":{"type":["json_schema"]}}}]}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}},{"displayName":"Presence Penalty","name":"presencePenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics","type":"number"},{"displayName":"Sampling Temperature","name":"temperature","default":0.7,"typeOptions":{"maxValue":2,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.","type":"number"},{"displayName":"Reasoning Effort","name":"reasoningEffort","default":"medium","description":"Controls the amount of reasoning tokens to use. A value of \"low\" will favor speed and economical token usage, \"high\" will favor more complete reasoning at the cost of more tokens generated and slower responses.","type":"options","options":[{"name":"Low","value":"low","description":"Favors speed and economical token usage"},{"name":"Medium","value":"medium","description":"Balance between speed and reasoning accuracy"},{"name":"High","value":"high","description":"Favors more complete reasoning at the cost of more tokens generated and slower responses"}],"displayOptions":{"show":{"/model":[{"_cnd":{"regex":"(^o1([-\\d]+)?$)|(^o[3-9].*)|(^gpt-5.*)"}}]}}},{"displayName":"Timeout","name":"timeout","default":60000,"description":"Maximum amount of time a request is allowed to take in milliseconds","type":"number"},{"displayName":"Max Retries","name":"maxRetries","default":2,"description":"Maximum number of retries to attempt","type":"number"},{"displayName":"Top P","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Extra Body","name":"extraBody","type":"json","default":"{}","description":"Optional additional JSON properties to include in the request body when making requests to OpenAI-compatible APIs"},{"displayName":"Conversation ID","name":"conversationId","default":"","description":"The conversation that this response belongs to. Input items and output items from this response are automatically added to this conversation after this response completes.","type":"string","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}},{"displayName":"Prompt Cache Key","name":"promptCacheKey","type":"string","default":"","description":"Used by OpenAI to cache responses for similar requests to optimize your cache hit rates","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}},{"displayName":"Safety Identifier","name":"safetyIdentifier","type":"string","default":"","description":"A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. The IDs should be a string that uniquely identifies each user.","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}},{"displayName":"Service Tier","name":"serviceTier","type":"options","default":"auto","description":"The service tier to use for the request","options":[{"name":"Auto","value":"auto"},{"name":"Flex","value":"flex"},{"name":"Default","value":"default"},{"name":"Priority","value":"priority"}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}},{"displayName":"Metadata","name":"metadata","type":"json","description":"Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.","default":"{}","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}},{"displayName":"Top Logprobs","name":"topLogprobs","type":"number","default":0,"description":"An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability","typeOptions":{"minValue":0,"maxValue":20},"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}},{"displayName":"Prompt","name":"promptConfig","type":"fixedCollection","description":"Configure the reusable prompt template configured via OpenAI Dashboard. <a href=\"https://platform.openai.com/docs/guides/prompt-engineering#reusable-prompts\">Learn more</a>.","default":{"promptOptions":[{"promptId":""}]},"options":[{"displayName":"Prompt","name":"promptOptions","values":[{"displayName":"Prompt ID","name":"promptId","type":"string","default":"","description":"The unique identifier of the prompt template to use"},{"displayName":"Version","name":"version","type":"string","default":"","description":"Optional version of the prompt template"},{"displayName":"Variables","name":"variables","type":"json","default":"{}","description":"Variables to be substituted into the prompt template"}]}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}}]}],"iconUrl":{"light":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LMChatOpenAi/openAiLight.svg","dark":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LMChatOpenAi/openAiLight.dark.svg"}},
|
|
62
|
-
{"displayName":"OpenAI Model","name":"lmOpenAi","hidden":true,"group":["transform"],"version":1,"description":"For advanced usage with an AI chain","defaults":{"name":"OpenAI Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Text Completion Models"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmopenai/"}]}},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"openAiApi","required":true}],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $parameter.options?.baseURL?.split(\"/\").slice(0,-1).join(\"/\") || \"https://api.openai.com\" }}"},"properties":[{"displayName":"This node is using OpenAI completions which are now deprecated. Please use the OpenAI Chat Model node instead.","name":"deprecated","type":"notice","default":""},{"displayName":"Model","name":"model","type":"resourceLocator","default":{"mode":"list","value":"gpt-3.5-turbo-instruct"},"required":true,"description":"The model which will generate the completion. <a href=\"https://
|
|
61
|
+
{"displayName":"OpenAI Chat Model","name":"lmChatOpenAi","group":["transform"],"version":[1,1.1,1.2,1.3],"description":"For advanced usage with an AI chain","defaults":{"name":"OpenAI Chat Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"}]}},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"openAiApi","required":true}],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $parameter.options?.baseURL?.split(\"/\").slice(0,-1).join(\"/\") || $credentials?.url?.split(\"/\").slice(0,-1).join(\"/\") || \"https://api.openai.com\" }}"},"properties":[{"displayName":"This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"If using JSON response format, you must include word \"json\" in the prompt in your chain or agent. Also, make sure to select latest models released post November 2023.","name":"notice","type":"notice","default":"","displayOptions":{"show":{"/options.responseFormat":["json_object"]}}},{"displayName":"If using JSON response format, you must include word \"json\" in the prompt in your chain or agent. Also, make sure to select latest models released post November 2023.","name":"notice","type":"notice","default":"","displayOptions":{"show":{"/options.textFormat.textOptions.type":["json_object"]}}},{"displayName":"Model","name":"model","type":"options","description":"The model which will generate the completion. <a href=\"https://developers.openai.com/api/docs/models\">Learn more</a>.","typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","url":"={{ $parameter.options?.baseURL?.split(\"/\").slice(-1).pop() || $credentials?.url?.split(\"/\").slice(-1).pop() || \"v1\" }}/models"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"data"}},{"type":"filter","properties":{"pass":"={{\n\t\t\t\t\t\t\t\t\t\t\t\t($parameter.options?.baseURL && !$parameter.options?.baseURL?.startsWith('https://api.openai.com/')) ||\n\t\t\t\t\t\t\t\t\t\t\t\t($credentials?.url && !$credentials.url.startsWith('https://api.openai.com/')) ||\n\t\t\t\t\t\t\t\t\t\t\t\t$responseItem.id.startsWith('ft:') ||\n\t\t\t\t\t\t\t\t\t\t\t\t$responseItem.id.startsWith('o1') ||\n\t\t\t\t\t\t\t\t\t\t\t\t$responseItem.id.startsWith('o3') ||\n\t\t\t\t\t\t\t\t\t\t\t\t($responseItem.id.startsWith('gpt-') && !$responseItem.id.includes('instruct'))\n\t\t\t\t\t\t\t\t\t\t\t}}"}},{"type":"setKeyValue","properties":{"name":"={{$responseItem.id}}","value":"={{$responseItem.id}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"model"}},"default":"gpt-5-mini","builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"displayOptions":{"hide":{"@version":[{"_cnd":{"gte":1.2}}]}}},{"displayName":"Model","name":"model","type":"resourceLocator","default":{"mode":"list","value":"gpt-5-mini"},"builderHint":{"propertyHint":"Keep a working or explicitly requested model unless provider evidence shows it is unavailable or unsuitable. When choosing a new model, select a current stable model supported by this node version, the configured API, and the required operation. Use the declared model-list lookup with the connected credential when available. Gateway credits can restrict that list. For a new choice without credentials, use current provider catalog information. Choose a model that fits the task and budget. Copy the exact model ID. Do not rely on node defaults, invent model IDs, or treat an unfamiliar model as invalid."},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","placeholder":"Select a model...","typeOptions":{"searchListMethod":"searchModels","searchable":true}},{"displayName":"ID","name":"id","type":"string","placeholder":"gpt-5-mini"}],"description":"The model. Choose from the list, or specify an ID.","displayOptions":{"hide":{"@version":[{"_cnd":{"lte":1.1}}]}}},{"displayName":"When using non-OpenAI models via \"Base URL\" override, not all models might be chat-compatible or support other features, like tools calling or JSON response format","name":"notice","type":"notice","default":"","displayOptions":{"show":{"/options.baseURL":[{"_cnd":{"exists":true}}]}}},{"displayName":"Use Responses API","name":"responsesApiEnabled","type":"boolean","default":true,"description":"Whether to use the Responses API to generate the response. <a href=\"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/#use-responses-api\">Learn more</a>.","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}]}}},{"displayName":"Built-in Tools","name":"builtInTools","placeholder":"Add Built-in Tool","type":"collection","default":{},"options":[{"displayName":"Web Search","name":"webSearch","type":"collection","default":{"searchContextSize":"medium"},"options":[{"displayName":"Search Context Size","name":"searchContextSize","type":"options","default":"medium","description":"High level guidance for the amount of context window space to use for the search","options":[{"name":"Low","value":"low"},{"name":"Medium","value":"medium"},{"name":"High","value":"high"}]},{"displayName":"Web Search Allowed Domains","name":"allowedDomains","type":"string","default":"","description":"Comma-separated list of domains to search. Only domains in this list will be searched.","placeholder":"e.g. google.com, wikipedia.org"},{"displayName":"Country","name":"country","type":"string","default":"","placeholder":"e.g. US, GB"},{"displayName":"City","name":"city","type":"string","default":"","placeholder":"e.g. New York, London"},{"displayName":"Region","name":"region","type":"string","default":"","placeholder":"e.g. New York, London"}]},{"displayName":"File Search","name":"fileSearch","type":"collection","default":{"vectorStoreIds":"[]"},"options":[{"displayName":"Vector Store IDs","name":"vectorStoreIds","description":"The vector store IDs to use for the file search. Vector stores are managed via OpenAI Dashboard. <a href=\"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/#built-in-tools\">Learn more</a>.","type":"json","default":"[]","required":true},{"displayName":"Filters","name":"filters","type":"json","default":"{}"},{"displayName":"Max Results","name":"maxResults","type":"number","default":1,"typeOptions":{"minValue":1,"maxValue":50}}]},{"displayName":"Code Interpreter","name":"codeInterpreter","type":"boolean","default":true,"description":"Whether to allow the model to execute code in a sandboxed environment"}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Base URL","name":"baseURL","default":"https://api.openai.com/v1","description":"Override the default base URL for the API","type":"string","displayOptions":{"hide":{"@version":[{"_cnd":{"gte":1.1}}]}}},{"displayName":"Frequency Penalty","name":"frequencyPenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim","type":"number"},{"displayName":"Maximum Number of Tokens","name":"maxTokens","default":-1,"description":"The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768).","type":"number","typeOptions":{"maxValue":32768}},{"displayName":"Response Format","name":"responseFormat","default":"text","type":"options","options":[{"name":"Text","value":"text","description":"Regular text response"},{"name":"JSON","value":"json_object","description":"Enables JSON mode, which should guarantee the message the model generates is valid JSON"}],"displayOptions":{"show":{"@version":[{"_cnd":{"lt":1.3}}]}}},{"displayName":"Response Format","name":"responseFormat","default":"text","type":"options","options":[{"name":"Text","value":"text","description":"Regular text response"},{"name":"JSON","value":"json_object","description":"Enables JSON mode, which should guarantee the message the model generates is valid JSON"}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[false]}}},{"displayName":"Response Format","name":"textFormat","type":"fixedCollection","default":{"textOptions":[{"type":"text"}]},"options":[{"displayName":"Text","name":"textOptions","values":[{"displayName":"Type","name":"type","type":"options","default":"","options":[{"name":"Text","value":"text"},{"name":"JSON Schema (recommended)","value":"json_schema"},{"name":"JSON Object","value":"json_object"}]},{"displayName":"Verbosity","name":"verbosity","type":"options","default":"medium","options":[{"name":"Low","value":"low"},{"name":"Medium","value":"medium"},{"name":"High","value":"high"}]},{"displayName":"Name","name":"name","type":"string","default":"my_schema","description":"The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.","displayOptions":{"show":{"type":["json_schema"]}}},{"displayName":"All properties in the schema must be set to \"required\", when using \"strict\" mode.","name":"requiredNotice","type":"notice","default":"","displayOptions":{"show":{"strict":[true]}}},{"displayName":"Schema","name":"schema","type":"json","default":"{\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false,\n \"required\": [\"message\"]\n}","description":"The schema of the response format","displayOptions":{"show":{"type":["json_schema"]}}},{"displayName":"Description","name":"description","type":"string","default":"","description":"The description of the response format","displayOptions":{"show":{"type":["json_schema"]}}},{"displayName":"Strict","name":"strict","type":"boolean","default":false,"description":"Whether to require that the AI will always generate responses that match the provided JSON Schema","displayOptions":{"show":{"type":["json_schema"]}}}]}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}},{"displayName":"Presence Penalty","name":"presencePenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics","type":"number"},{"displayName":"Sampling Temperature","name":"temperature","default":0.7,"typeOptions":{"maxValue":2,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.","type":"number"},{"displayName":"Reasoning Effort","name":"reasoningEffort","default":"medium","description":"Controls the amount of reasoning tokens to use. A value of \"low\" will favor speed and economical token usage, \"high\" will favor more complete reasoning at the cost of more tokens generated and slower responses.","type":"options","options":[{"name":"Low","value":"low","description":"Favors speed and economical token usage"},{"name":"Medium","value":"medium","description":"Balance between speed and reasoning accuracy"},{"name":"High","value":"high","description":"Favors more complete reasoning at the cost of more tokens generated and slower responses"}],"displayOptions":{"show":{"/model":[{"_cnd":{"regex":"(^o1([-\\d]+)?$)|(^o[3-9].*)|(^gpt-5.*)"}}]}}},{"displayName":"Timeout","name":"timeout","default":60000,"description":"Maximum amount of time a request is allowed to take in milliseconds","type":"number"},{"displayName":"Max Retries","name":"maxRetries","default":2,"description":"Maximum number of retries to attempt","type":"number"},{"displayName":"Top P","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"},{"displayName":"Extra Body","name":"extraBody","type":"json","default":"{}","description":"Optional additional JSON properties to include in the request body when making requests to OpenAI-compatible APIs"},{"displayName":"Conversation ID","name":"conversationId","default":"","description":"The conversation that this response belongs to. Input items and output items from this response are automatically added to this conversation after this response completes.","type":"string","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}},{"displayName":"Prompt Cache Key","name":"promptCacheKey","type":"string","default":"","description":"Used by OpenAI to cache responses for similar requests to optimize your cache hit rates","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}},{"displayName":"Safety Identifier","name":"safetyIdentifier","type":"string","default":"","description":"A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. The IDs should be a string that uniquely identifies each user.","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}},{"displayName":"Service Tier","name":"serviceTier","type":"options","default":"auto","description":"The service tier to use for the request","options":[{"name":"Auto","value":"auto"},{"name":"Flex","value":"flex"},{"name":"Default","value":"default"},{"name":"Priority","value":"priority"}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}},{"displayName":"Metadata","name":"metadata","type":"json","description":"Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.","default":"{}","displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}},{"displayName":"Top Logprobs","name":"topLogprobs","type":"number","default":0,"description":"An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability","typeOptions":{"minValue":0,"maxValue":20},"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}},{"displayName":"Prompt","name":"promptConfig","type":"fixedCollection","description":"Configure the reusable prompt template configured via OpenAI Dashboard. <a href=\"https://platform.openai.com/docs/guides/prompt-engineering#reusable-prompts\">Learn more</a>.","default":{"promptOptions":[{"promptId":""}]},"options":[{"displayName":"Prompt","name":"promptOptions","values":[{"displayName":"Prompt ID","name":"promptId","type":"string","default":"","description":"The unique identifier of the prompt template to use"},{"displayName":"Version","name":"version","type":"string","default":"","description":"Optional version of the prompt template"},{"displayName":"Variables","name":"variables","type":"json","default":"{}","description":"Variables to be substituted into the prompt template"}]}],"displayOptions":{"show":{"@version":[{"_cnd":{"gte":1.3}}],"/responsesApiEnabled":[true]}}}]}],"iconUrl":{"light":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LMChatOpenAi/openAiLight.svg","dark":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LMChatOpenAi/openAiLight.dark.svg"}},
|
|
62
|
+
{"displayName":"OpenAI Model","name":"lmOpenAi","hidden":true,"group":["transform"],"version":1,"description":"For advanced usage with an AI chain","defaults":{"name":"OpenAI Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Text Completion Models"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmopenai/"}]}},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"openAiApi","required":true}],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $parameter.options?.baseURL?.split(\"/\").slice(0,-1).join(\"/\") || \"https://api.openai.com\" }}"},"properties":[{"displayName":"This node is using OpenAI completions which are now deprecated. Please use the OpenAI Chat Model node instead.","name":"deprecated","type":"notice","default":""},{"displayName":"Model","name":"model","type":"resourceLocator","default":{"mode":"list","value":"gpt-3.5-turbo-instruct"},"required":true,"description":"The model which will generate the completion. <a href=\"https://developers.openai.com/api/docs/models\">Learn more</a>.","modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"openAiModelSearch"}},{"displayName":"ID","name":"id","type":"string"}],"routing":{"send":{"type":"body","property":"model","value":"={{$parameter.model.value}}"}}},{"displayName":"When using non OpenAI models via Base URL override, not all models might be chat-compatible or support other features, like tools calling or JSON response format.","name":"notice","type":"notice","default":"","displayOptions":{"show":{"/options.baseURL":[{"_cnd":{"exists":true}}]}}},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Base URL","name":"baseURL","default":"https://api.openai.com/v1","description":"Override the default base URL for the API","type":"string"},{"displayName":"Frequency Penalty","name":"frequencyPenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim","type":"number"},{"displayName":"Maximum Number of Tokens","name":"maxTokens","default":-1,"description":"The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768).","type":"number","typeOptions":{"maxValue":32768}},{"displayName":"Presence Penalty","name":"presencePenalty","default":0,"typeOptions":{"maxValue":2,"minValue":-2,"numberPrecision":1},"description":"Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics","type":"number"},{"displayName":"Sampling Temperature","name":"temperature","default":0.7,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.","type":"number"},{"displayName":"Timeout","name":"timeout","default":60000,"description":"Maximum amount of time a request is allowed to take in milliseconds","type":"number"},{"displayName":"Max Retries","name":"maxRetries","default":2,"description":"Maximum number of retries to attempt","type":"number"},{"displayName":"Top P","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.","type":"number"}]}],"iconUrl":{"light":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LMOpenAi/openAiLight.svg","dark":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LMOpenAi/openAiLight.dark.svg"}},
|
|
63
63
|
{"displayName":"Cohere Model","name":"lmCohere","group":["transform"],"version":1,"description":"Language Model Cohere","defaults":{"name":"Cohere Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Text Completion Models"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmcohere/"}]}},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"cohereApi","required":true}],"properties":[{"displayName":"This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Maximum Number of Tokens","name":"maxTokens","default":250,"description":"The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768).","type":"number","typeOptions":{"maxValue":32768}},{"displayName":"Model","name":"model","type":"string","description":"The name of the model to use","default":""},{"displayName":"Sampling Temperature","name":"temperature","default":0,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.","type":"number"}]}],"iconUrl":{"light":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LMCohere/cohere.svg","dark":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LMCohere/cohere.dark.svg"}},
|
|
64
64
|
{"displayName":"Lemonade Model","name":"lmLemonade","group":["transform"],"version":1,"description":"Language Model Lemonade","defaults":{"name":"Lemonade Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Text Completion Models"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmlemonade/"}]}},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"lemonadeApi","required":true}],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $credentials.baseUrl.replace(new RegExp(\"/$\"), \"\") }}"},"properties":[{"displayName":"This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"Model","name":"model","type":"options","default":"","description":"The model which will generate the completion. Models are loaded and managed through the Lemonade server.","typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","url":"/models"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"data"}},{"type":"setKeyValue","properties":{"name":"={{$responseItem.id}}","value":"={{$responseItem.id}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"model"}},"required":true},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Sampling Temperature","name":"temperature","default":0.7,"typeOptions":{"maxValue":2,"minValue":0,"numberPrecision":1},"description":"Controls the randomness of the generated text. Lower values make the output more focused and deterministic, while higher values make it more diverse and random.","type":"number"},{"displayName":"Top P","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Chooses from the smallest possible set of tokens whose cumulative probability exceeds the probability top_p. Helps generate more human-like text by reducing repetitions.","type":"number"},{"displayName":"Frequency Penalty","name":"frequencyPenalty","type":"number","default":0,"typeOptions":{"minValue":-2,"maxValue":2,"numberPrecision":1},"description":"Adjusts the penalty for tokens that have already appeared in the generated text. Positive values discourage repetition, negative values encourage it."},{"displayName":"Presence Penalty","name":"presencePenalty","type":"number","default":0,"typeOptions":{"minValue":-2,"maxValue":2,"numberPrecision":1},"description":"Adjusts the penalty for tokens based on their presence in the generated text so far. Positive values penalize tokens that have already appeared, encouraging diversity."},{"displayName":"Max Tokens to Generate","name":"maxTokens","type":"number","default":-1,"description":"The maximum number of tokens to generate. Set to -1 for no limit. Be cautious when setting this to a large value, as it can lead to very long outputs."},{"displayName":"Stop Sequences","name":"stop","type":"string","default":"","description":"Comma-separated list of sequences where the model will stop generating text"}]}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LMLemonade/lemonade.svg"},
|
|
65
65
|
{"displayName":"Ollama Model","name":"lmOllama","group":["transform"],"version":1,"description":"Language Model Ollama","defaults":{"name":"Ollama Model"},"codex":{"categories":["AI"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Text Completion Models"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmollama/"}]}},"inputs":[],"outputs":["ai_languageModel"],"outputNames":["Model"],"credentials":[{"name":"ollamaApi","required":true}],"requestDefaults":{"ignoreHttpStatusErrors":true,"baseURL":"={{ $credentials.baseUrl.replace(new RegExp(\"/$\"), \"\") }}"},"properties":[{"displayName":"This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"}},{"displayName":"Model","name":"model","type":"options","default":"llama3.2","description":"The model which will generate the completion. To download models, visit <a href=\"https://ollama.ai/library\">Ollama Models Library</a>.","typeOptions":{"loadOptions":{"routing":{"request":{"method":"GET","url":"/api/tags"},"output":{"postReceive":[{"type":"rootProperty","properties":{"property":"models"}},{"type":"setKeyValue","properties":{"name":"={{$responseItem.name}}","value":"={{$responseItem.name}}"}},{"type":"sort","properties":{"key":"name"}}]}}}},"routing":{"send":{"type":"body","property":"model"}},"required":true},{"displayName":"Options","name":"options","placeholder":"Add Option","description":"Additional options to add","type":"collection","default":{},"options":[{"displayName":"Enable Thinking","name":"think","type":"boolean","default":true,"description":"Whether to enable (default) thinking mode for supported models. When enabled, the model's thinking process is separated from the output. When disabled, the model outputs content directly (only for supported models)."},{"displayName":"Sampling Temperature","name":"temperature","default":0.7,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Controls the randomness of the generated text. Lower values make the output more focused and deterministic, while higher values make it more diverse and random.","type":"number"},{"displayName":"Top K","name":"topK","default":-1,"typeOptions":{"maxValue":100,"minValue":-1,"numberPrecision":1},"description":"Limits the number of highest probability vocabulary tokens to consider at each step. A higher value increases diversity but may reduce coherence. Set to -1 to disable.","type":"number"},{"displayName":"Top P","name":"topP","default":1,"typeOptions":{"maxValue":1,"minValue":0,"numberPrecision":1},"description":"Chooses from the smallest possible set of tokens whose cumulative probability exceeds the probability top_p. Helps generate more human-like text by reducing repetitions.","type":"number"},{"displayName":"Frequency Penalty","name":"frequencyPenalty","type":"number","default":0,"typeOptions":{"minValue":0},"description":"Adjusts the penalty for tokens that have already appeared in the generated text. Higher values discourage repetition."},{"displayName":"Keep Alive","name":"keepAlive","type":"string","default":"5m","description":"Specifies the duration to keep the loaded model in memory after use. Useful for frequently used models. Format: 1h30m (1 hour 30 minutes)."},{"displayName":"Low VRAM Mode","name":"lowVram","type":"boolean","default":false,"description":"Whether to Activate low VRAM mode, which reduces memory usage at the cost of slower generation speed. Useful for GPUs with limited memory."},{"displayName":"Main GPU ID","name":"mainGpu","type":"number","default":0,"description":"Specifies the ID of the GPU to use for the main computation. Only change this if you have multiple GPUs."},{"displayName":"Context Batch Size","name":"numBatch","type":"number","default":512,"description":"Sets the batch size for prompt processing. Larger batch sizes may improve generation speed but increase memory usage."},{"displayName":"Context Length","name":"numCtx","type":"number","default":2048,"description":"The maximum number of tokens to use as context for generating the next token. Smaller values reduce memory usage, while larger values provide more context to the model."},{"displayName":"Number of GPUs","name":"numGpu","type":"number","default":-1,"description":"Specifies the number of GPUs to use for parallel processing. Set to -1 for auto-detection."},{"displayName":"Max Tokens to Generate","name":"numPredict","type":"number","default":-1,"description":"The maximum number of tokens to generate. Set to -1 for no limit. Be cautious when setting this to a large value, as it can lead to very long outputs."},{"displayName":"Number of CPU Threads","name":"numThread","type":"number","default":0,"description":"Specifies the number of CPU threads to use for processing. Set to 0 for auto-detection."},{"displayName":"Penalize Newlines","name":"penalizeNewline","type":"boolean","default":true,"description":"Whether the model will be less likely to generate newline characters, encouraging longer continuous sequences of text"},{"displayName":"Presence Penalty","name":"presencePenalty","type":"number","default":0,"description":"Adjusts the penalty for tokens based on their presence in the generated text so far. Positive values penalize tokens that have already appeared, encouraging diversity."},{"displayName":"Repetition Penalty","name":"repeatPenalty","type":"number","default":1,"description":"Adjusts the penalty factor for repeated tokens. Higher values more strongly discourage repetition. Set to 1.0 to disable repetition penalty."},{"displayName":"Use Memory Locking","name":"useMLock","type":"boolean","default":false,"description":"Whether to lock the model in memory to prevent swapping. This can improve performance but requires sufficient available memory."},{"displayName":"Use Memory Mapping","name":"useMMap","type":"boolean","default":true,"description":"Whether to use memory mapping for loading the model. This can reduce memory usage but may impact performance. Recommended to keep enabled."},{"displayName":"Load Vocabulary Only","name":"vocabOnly","type":"boolean","default":false,"description":"Whether to only load the model vocabulary without the weights. Useful for quickly testing tokenization."},{"displayName":"Output Format","name":"format","type":"options","options":[{"name":"Default","value":"default"},{"name":"JSON","value":"json"}],"default":"default","description":"Specifies the format of the API response"}]}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/llms/LMOllama/ollama.svg"},
|