@n8n/n8n-nodes-langchain 2.45.3 → 2.45.5

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.
Files changed (42) hide show
  1. package/dist/credentials/WeaviateApi.credentials.js +14 -0
  2. package/dist/credentials/WeaviateApi.credentials.js.map +1 -1
  3. package/dist/node-definitions/.nodes-hash +1 -1
  4. package/dist/node-definitions/nodes/n8n-nodes-langchain/vectorStoreWeaviate/v1/mode_insert.ts +2 -1
  5. package/dist/node-definitions/nodes/n8n-nodes-langchain/vectorStoreWeaviate/v1/mode_load.ts +2 -1
  6. package/dist/node-definitions/nodes/n8n-nodes-langchain/vectorStoreWeaviate/v1/mode_retrieve.ts +2 -1
  7. package/dist/node-definitions/nodes/n8n-nodes-langchain/vectorStoreWeaviate/v1/mode_retrieve_as_tool.ts +2 -1
  8. package/dist/node-definitions/nodes/n8n-nodes-langchain/vectorStoreWeaviate/v11/mode_insert.ts +2 -1
  9. package/dist/node-definitions/nodes/n8n-nodes-langchain/vectorStoreWeaviate/v11/mode_load.ts +2 -1
  10. package/dist/node-definitions/nodes/n8n-nodes-langchain/vectorStoreWeaviate/v11/mode_retrieve.ts +2 -1
  11. package/dist/node-definitions/nodes/n8n-nodes-langchain/vectorStoreWeaviate/v11/mode_retrieve_as_tool.ts +2 -1
  12. package/dist/node-definitions/nodes/n8n-nodes-langchain/vectorStoreWeaviate/v12/mode_insert.ts +2 -1
  13. package/dist/node-definitions/nodes/n8n-nodes-langchain/vectorStoreWeaviate/v12/mode_load.ts +2 -1
  14. package/dist/node-definitions/nodes/n8n-nodes-langchain/vectorStoreWeaviate/v12/mode_retrieve.ts +2 -1
  15. package/dist/node-definitions/nodes/n8n-nodes-langchain/vectorStoreWeaviate/v12/mode_retrieve_as_tool.ts +2 -1
  16. package/dist/node-definitions/nodes/n8n-nodes-langchain/vectorStoreWeaviate/v13/mode_insert.ts +2 -1
  17. package/dist/node-definitions/nodes/n8n-nodes-langchain/vectorStoreWeaviate/v13/mode_load.ts +2 -1
  18. package/dist/node-definitions/nodes/n8n-nodes-langchain/vectorStoreWeaviate/v13/mode_retrieve.ts +2 -1
  19. package/dist/node-definitions/nodes/n8n-nodes-langchain/vectorStoreWeaviate/v13/mode_retrieve_as_tool.ts +2 -1
  20. package/dist/nodes/embeddings/EmbeddingsGoogleGemini/EmbeddingsGoogleGemini.node.js +2 -0
  21. package/dist/nodes/embeddings/EmbeddingsGoogleGemini/EmbeddingsGoogleGemini.node.js.map +1 -1
  22. package/dist/nodes/embeddings/EmbeddingsLemonade/EmbeddingsLemonade.node.js +3 -0
  23. package/dist/nodes/embeddings/EmbeddingsLemonade/EmbeddingsLemonade.node.js.map +1 -1
  24. package/dist/nodes/llms/LMLemonade/LmLemonade.node.js +3 -0
  25. package/dist/nodes/llms/LMLemonade/LmLemonade.node.js.map +1 -1
  26. package/dist/nodes/llms/LmChatGoogleGemini/LmChatGoogleGemini.node.js +2 -0
  27. package/dist/nodes/llms/LmChatGoogleGemini/LmChatGoogleGemini.node.js.map +1 -1
  28. package/dist/nodes/trigger/ChatTrigger/ChatTrigger.node.js +4 -0
  29. package/dist/nodes/trigger/ChatTrigger/ChatTrigger.node.js.map +1 -1
  30. package/dist/nodes/trigger/ChatTrigger/GenericFunctions.js +2 -2
  31. package/dist/nodes/trigger/ChatTrigger/GenericFunctions.js.map +1 -1
  32. package/dist/nodes/vector_store/VectorStoreWeaviate/VectorStoreWeaviate.node.js +3 -5
  33. package/dist/nodes/vector_store/VectorStoreWeaviate/VectorStoreWeaviate.node.js.map +1 -1
  34. package/dist/nodes/vector_store/VectorStoreWeaviate/Weaviate.utils.d.ts +3 -2
  35. package/dist/nodes/vector_store/VectorStoreWeaviate/Weaviate.utils.js +20 -2
  36. package/dist/nodes/vector_store/VectorStoreWeaviate/Weaviate.utils.js.map +1 -1
  37. package/dist/typecheck.tsbuildinfo +1 -1
  38. package/dist/types/credentials.json +1 -1
  39. package/dist/types/nodes.json +1 -1
  40. package/dist/utils/schemaParsing.js +1 -3
  41. package/dist/utils/schemaParsing.js.map +1 -1
  42. package/package.json +11 -12
@@ -30,7 +30,7 @@
30
30
  {"name":"searXngApi","displayName":"SearXNG","documentationUrl":"searxng","properties":[{"displayName":"API URL","name":"apiUrl","type":"string","default":"","required":true}],"supportedNodes":["toolSearXng"],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/tools/ToolSearXng/searXng.svg"},
31
31
  {"name":"serpApi","displayName":"SerpAPI","documentationUrl":"serp","properties":[{"displayName":"This node is deprecated and will not be updated in the future. Please use the official verified community node instead.","name":"oldVersionNotice","type":"notice","default":""},{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"required":true,"default":""}],"authenticate":{"type":"generic","properties":{"qs":{"api_key":"={{$credentials.apiKey}}"}}},"test":{"request":{"baseURL":"https://serpapi.com","url":"/account.json "}},"supportedNodes":["toolSerpApi"],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/tools/ToolSerpApi/serpApi.svg"},
32
32
  {"name":"vercelAiGatewayApi","displayName":"Vercel AI Gateway","documentationUrl":"vercel","properties":[{"displayName":"API Key or OIDC Token","name":"apiKey","type":"string","typeOptions":{"password":true},"required":true,"default":"","description":"Your credentials for the Vercel AI Gateway"},{"displayName":"Base URL","name":"url","type":"string","required":true,"default":"https://ai-gateway.vercel.sh/v1","description":"The base URL for your Vercel AI Gateway instance","placeholder":"https://ai-gateway.vercel.sh/v1"}],"authenticate":{"type":"generic","properties":{"headers":{"Authorization":"=Bearer {{$credentials.apiKey}}","http-referer":"https://n8n.io/","x-title":"n8n"}}},"test":{"request":{"baseURL":"={{ $credentials.url }}","url":"/chat/completions","method":"POST","headers":{"http-referer":"https://n8n.io/","x-title":"n8n"},"body":{"model":"openai/gpt-4.1-nano","messages":[{"role":"user","content":"test"}],"max_tokens":1}}},"supportedNodes":["lmChatVercelAiGateway"],"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"}},
33
- {"name":"weaviateApi","displayName":"Weaviate Credentials","documentationUrl":"https://docs.n8n.io/integrations/builtin/credentials/weaviate/","properties":[{"displayName":"Connection Type","name":"connection_type","type":"options","options":[{"name":"Weaviate Cloud","value":"weaviate_cloud"},{"name":"Custom Connection","value":"custom_connection"}],"default":"weaviate_cloud","description":"Choose whether to connect to a Weaviate Cloud instance or a custom Weaviate instance."},{"displayName":"Weaviate Cloud Endpoint","name":"weaviate_cloud_endpoint","description":"The Endpoint of a Weaviate Cloud instance.","placeholder":"https://your-cluster.weaviate.cloud","type":"string","required":true,"default":"","displayOptions":{"show":{"connection_type":["weaviate_cloud"]}}},{"displayName":"Weaviate Api Key","name":"weaviate_api_key","description":"The API key for the Weaviate instance.","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Custom Connection HTTP Host","name":"custom_connection_http_host","description":"The host of your Weaviate instance.","type":"string","required":true,"default":"weaviate","displayOptions":{"show":{"connection_type":["custom_connection"]}}},{"displayName":"Custom Connection HTTP Port","name":"custom_connection_http_port","description":"The port of your Weaviate instance.","type":"number","required":true,"default":8080,"displayOptions":{"show":{"connection_type":["custom_connection"]}}},{"displayName":"Custom Connection HTTP Secure","name":"custom_connection_http_secure","description":"Whether to use a secure connection for HTTP.","type":"boolean","required":true,"default":false,"displayOptions":{"show":{"connection_type":["custom_connection"]}}},{"displayName":"Custom Connection gRPC Host","name":"custom_connection_grpc_host","description":"The gRPC host of your Weaviate instance.","type":"string","required":true,"default":"weaviate","displayOptions":{"show":{"connection_type":["custom_connection"]}}},{"displayName":"Custom Connection gRPC Port","name":"custom_connection_grpc_port","description":"The gRPC port of your Weaviate instance.","type":"number","required":true,"default":50051,"displayOptions":{"show":{"connection_type":["custom_connection"]}}},{"displayName":"Custom Connection gRPC Secure","name":"custom_connection_grpc_secure","description":"Whether to use a secure connection for gRPC.","type":"boolean","required":true,"default":false,"displayOptions":{"show":{"connection_type":["custom_connection"]}}}],"test":{"request":{"baseURL":"={{$credentials.weaviate_cloud_endpoint?$credentials.weaviate_cloud_endpoint.startsWith(\"http://\") || $credentials.weaviate_cloud_endpoint.startsWith(\"https://\")?$credentials.weaviate_cloud_endpoint:\"https://\" + $credentials.weaviate_cloud_endpoint:($credentials.custom_connection_http_secure ? \"https\" : \"http\") + \"://\" + $credentials.custom_connection_http_host + \":\" + $credentials.custom_connection_http_port }}","url":"/v1/nodes","disableFollowRedirect":false,"headers":{"Authorization":"={{$if($credentials.weaviate_api_key, \"Bearer \" + $credentials.weaviate_api_key, undefined)}}"}}},"supportedNodes":["vectorStoreWeaviate"],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vector_store/VectorStoreWeaviate/weaviate.svg"},
33
+ {"name":"weaviateApi","displayName":"Weaviate Credentials","documentationUrl":"https://docs.n8n.io/integrations/builtin/credentials/weaviate/","properties":[{"displayName":"Connection Type","name":"connection_type","type":"options","options":[{"name":"Weaviate Cloud","value":"weaviate_cloud"},{"name":"Custom Connection","value":"custom_connection"}],"default":"weaviate_cloud","description":"Choose whether to connect to a Weaviate Cloud instance or a custom Weaviate instance."},{"displayName":"Weaviate Cloud Endpoint","name":"weaviate_cloud_endpoint","description":"The Endpoint of a Weaviate Cloud instance.","placeholder":"https://your-cluster.weaviate.cloud","type":"string","required":true,"default":"","displayOptions":{"show":{"connection_type":["weaviate_cloud"]}}},{"displayName":"Weaviate Api Key","name":"weaviate_api_key","description":"The API key for the Weaviate instance.","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Custom Connection HTTP Host","name":"custom_connection_http_host","description":"The host of your Weaviate instance.","type":"string","required":true,"default":"weaviate","displayOptions":{"show":{"connection_type":["custom_connection"]}}},{"displayName":"Custom Connection HTTP Port","name":"custom_connection_http_port","description":"The port of your Weaviate instance.","type":"number","required":true,"default":8080,"displayOptions":{"show":{"connection_type":["custom_connection"]}}},{"displayName":"Custom Connection HTTP Secure","name":"custom_connection_http_secure","description":"Whether to use a secure connection for HTTP.","type":"boolean","required":true,"default":false,"displayOptions":{"show":{"connection_type":["custom_connection"]}}},{"displayName":"Custom Connection gRPC Host","name":"custom_connection_grpc_host","description":"The gRPC host of your Weaviate instance.","type":"string","required":true,"default":"weaviate","displayOptions":{"show":{"connection_type":["custom_connection"]}}},{"displayName":"Custom Connection gRPC Port","name":"custom_connection_grpc_port","description":"The gRPC port of your Weaviate instance.","type":"number","required":true,"default":50051,"displayOptions":{"show":{"connection_type":["custom_connection"]}}},{"displayName":"Custom Connection gRPC Secure","name":"custom_connection_grpc_secure","description":"Whether to use a secure connection for gRPC.","type":"boolean","required":true,"default":false,"displayOptions":{"show":{"connection_type":["custom_connection"]}}},{"displayName":"Custom Connection gRPC Proxy","name":"custom_connection_grpc_proxy","description":"The URL of an HTTP proxy for gRPC requests. Leave empty to connect directly.","placeholder":"http://proxy.example.com:3128","type":"string","typeOptions":{"password":true},"default":"","displayOptions":{"show":{"connection_type":["custom_connection"]}}}],"test":{"request":{"baseURL":"={{$credentials.weaviate_cloud_endpoint?$credentials.weaviate_cloud_endpoint.startsWith(\"http://\") || $credentials.weaviate_cloud_endpoint.startsWith(\"https://\")?$credentials.weaviate_cloud_endpoint:\"https://\" + $credentials.weaviate_cloud_endpoint:($credentials.custom_connection_http_secure ? \"https\" : \"http\") + \"://\" + $credentials.custom_connection_http_host + \":\" + $credentials.custom_connection_http_port }}","url":"/v1/nodes","disableFollowRedirect":false,"headers":{"Authorization":"={{$if($credentials.weaviate_api_key, \"Bearer \" + $credentials.weaviate_api_key, undefined)}}"}}},"supportedNodes":["vectorStoreWeaviate"],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vector_store/VectorStoreWeaviate/weaviate.svg"},
34
34
  {"name":"wolframAlphaApi","displayName":"Wolfram Alpha API","documentationUrl":"wolframalpha","properties":[{"displayName":"App ID","name":"appId","type":"string","typeOptions":{"password":true},"required":true,"default":""}],"authenticate":{"type":"generic","properties":{"qs":{"api_key":"={{$credentials.appId}}"}}},"test":{"request":{"baseURL":"https://api.wolframalpha.com/v1","url":"=/simple","qs":{"i":"How much is 1 1","appid":"={{$credentials.appId}}"}}},"supportedNodes":["toolWolframAlpha"],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/tools/ToolWolframAlpha/wolfram-alpha.svg"},
35
35
  {"name":"xAiApi","displayName":"xAi","documentationUrl":"xai","properties":[{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"required":true,"default":""},{"displayName":"Base URL","name":"url","type":"hidden","default":"https://api.x.ai/v1"}],"authenticate":{"type":"generic","properties":{"headers":{"Authorization":"=Bearer {{$credentials.apiKey}}"}}},"test":{"request":{"baseURL":"={{ $credentials.url }}","url":"/models"}},"supportedNodes":["lmChatXAiGrok"],"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"}},
36
36
  {"name":"xataApi","displayName":"Xata Api","documentationUrl":"xata","properties":[{"displayName":"Database Endpoint","name":"databaseEndpoint","required":true,"type":"string","default":"","placeholder":"https://{workspace}.{region}.xata.sh/db/{database}"},{"displayName":"Branch","name":"branch","required":true,"type":"string","default":"main"},{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"required":true,"default":""}],"authenticate":{"type":"generic","properties":{"headers":{"Authorization":"=Bearer {{$credentials.apiKey}}"}}},"test":{"request":{"baseURL":"={{$credentials.databaseEndpoint}}:{{$credentials.branch}}"}},"supportedNodes":["memoryXata"],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/memory/MemoryXata/xata.svg"},
@@ -124,7 +124,7 @@
124
124
  {"displayName":"Supabase Vector Store","name":"vectorStoreSupabase","description":"Work with your data in Supabase Vector Store","group":["transform"],"version":[1,1.1,1.2,1.3],"defaults":{"name":"Supabase Vector Store"},"codex":{"categories":["AI"],"subcategories":{"AI":["Vector Stores","Tools","Root Nodes"],"Vector Stores":["Other Vector Stores"],"Tools":["Other Tools"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoresupabase/"}]}},"builderHint":{"searchHint":"Pick mode by where data flows: `insert` upserts documents into the store on the main flow; `load` runs a one-shot similarity search on the main flow; `retrieve-as-tool` is the canonical RAG mode — plug into an AI Agent's `subnodes.tools`; `retrieve` exposes the store as a subnode for another node's `subnodes.vectorStore`; `update` updates a single document by ID.","extraTypeDefContent":[{"displayOptions":{"show":{"mode":["insert"]}},"content":"Sits on the main flow — pipe the documents you want to embed into this node. Declare with `vectorStore({...})`. Required subnodes: `embedding` and `documentLoader`. If the goal is letting an LLM query the store, use `mode: 'retrieve-as-tool'` instead.\n<patterns>\n<pattern title=\"insert mode — upsert documents (generic, works for any vectorStore* node)\">\n// Substitute the type literal and provider-specific parameters (e.g. pineconeIndex,\n// qdrantCollection, supabaseTableName) — see the rest of this file for the exact shape.\nconst store = vectorStore({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: {\n mode: 'insert',\n // ...provider-specific parameters\n },\n subnodes: { embedding: embeddingsOpenAi, documentLoader: defaultDataLoader }\n }\n});\n</pattern>\n</patterns>"},{"displayOptions":{"show":{"mode":["retrieve-as-tool"]}},"content":"Canonical RAG mode — declare with the `tool({...})` factory (NOT `vectorStore`) and plug into an AI Agent's `subnodes.tools`. Required subnodes: `embedding`. Set `toolDescription` so the agent knows when to call it.\n<patterns>\n<pattern title=\"retrieve-as-tool mode — RAG via AI Agent (generic, works for any vectorStore* node)\">\n// Substitute the type literal and provider-specific parameters — see the rest of this file\n// for the exact shape (e.g. pineconeIndex, qdrantCollection, supabaseTableName).\nconst knowledgeBase = tool({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: {\n mode: 'retrieve-as-tool',\n toolDescription: 'Search the product knowledge base',\n // ...provider-specific parameters\n },\n subnodes: { embedding: embeddingsOpenAi }\n }\n});\n\nconst agent = node({\n type: '@n8n/n8n-nodes-langchain.agent',\n config: {\n name: 'Support Agent',\n parameters: { promptType: 'define', text: expr('{{ $json.question }}') },\n subnodes: { model: openAiModel, tools: [knowledgeBase] }\n }\n});\n</pattern>\n</patterns>"},{"displayOptions":{"show":{"mode":["load"]}},"content":"One-shot similarity search on the main flow using the `prompt` parameter. Declare with `vectorStore({...})`. Required subnodes: `embedding`. For LLM-driven querying (RAG), use `mode: 'retrieve-as-tool'` instead.\n<patterns>\n<pattern title=\"load mode — one-shot similarity search (generic)\">\n// Substitute the type literal and provider-specific parameters — see the rest of this file.\nconst lookup = vectorStore({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: {\n mode: 'load',\n prompt: expr('{{ $json.query }}'),\n // ...provider-specific parameters\n },\n subnodes: { embedding: embeddingsOpenAi }\n }\n});\n</pattern>\n</patterns>"},{"displayOptions":{"show":{"mode":["retrieve"]}},"content":"Exposes the store as an `ai_vectorStore` subnode for another node (e.g. `toolVectorStore`). Declare with `vectorStore({...})`. Required subnodes: `embedding`. For RAG with an AI Agent directly, prefer `mode: 'retrieve-as-tool'`.\n<patterns>\n<pattern title=\"retrieve mode — feed another node as a subnode (generic)\">\n// Substitute the type literal and provider-specific parameters — see the rest of this file.\nconst store = vectorStore({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: { mode: 'retrieve' /* + provider-specific parameters */ },\n subnodes: { embedding: embeddingsOpenAi }\n }\n});\n\nconst retrieverTool = tool({\n type: '@n8n/n8n-nodes-langchain.toolVectorStore',\n config: {\n name: 'KB Retriever',\n parameters: { description: 'Search the product knowledge base' },\n subnodes: { vectorStore: store, model: openAiModel }\n }\n});\n</pattern>\n</patterns>"},{"displayOptions":{"show":{"mode":["update"]}},"content":"Updates a single document by `id`. Declare with `vectorStore({...})`. Required subnodes: `embedding`. Only available on stores whose `operationModes` enables it — most providers omit this mode.\n<patterns>\n<pattern title=\"update mode — update document by ID (generic)\">\n// Substitute the type literal and provider-specific parameters — see the rest of this file.\nconst store = vectorStore({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: { mode: 'update', id: expr('{{ $json.docId }}') },\n subnodes: { embedding: embeddingsOpenAi }\n }\n});\n</pattern>\n</patterns>"}],"inputs":{"ai_embedding":{"required":true},"ai_document":{"required":true,"displayOptions":{"show":{"mode":["insert"]}}},"ai_reranker":{"required":true,"displayOptions":{"show":{"mode":["load","retrieve","retrieve-as-tool"],"useReranker":[true]}}}},"outputs":{"main":{"displayOptions":{"show":{"mode":["insert","load","update"]}}},"ai_vectorStore":{"required":true,"displayOptions":{"show":{"mode":["retrieve"]}}},"ai_tool":{"required":true,"displayOptions":{"show":{"mode":["retrieve-as-tool"]}}}}},"credentials":[{"name":"supabaseApi","required":true}],"inputs":"={{\n\t\t\t((parameters) => {\n\t\t\t\tconst mode = parameters?.mode;\n\t\t\t\tconst useReranker = parameters?.useReranker;\n\t\t\t\tconst inputs = [{ displayName: \"Embedding\", type: \"ai_embedding\", required: true, maxConnections: 1}]\n\n\t\t\t\tif (['load', 'retrieve', 'retrieve-as-tool'].includes(mode) && useReranker) {\n\t\t\t\t\tinputs.push({ displayName: \"Reranker\", type: \"ai_reranker\", required: true, maxConnections: 1})\n\t\t\t\t}\n\n\t\t\t\tif (mode === 'retrieve-as-tool') {\n\t\t\t\t\treturn inputs;\n\t\t\t\t}\n\n\t\t\t\tif (['insert', 'load', 'update'].includes(mode)) {\n\t\t\t\t\tinputs.push({ displayName: \"\", type: \"main\"})\n\t\t\t\t}\n\n\t\t\t\tif (['insert'].includes(mode)) {\n\t\t\t\t\tinputs.push({ displayName: \"Document\", type: \"ai_document\", required: true, maxConnections: 1})\n\t\t\t\t}\n\t\t\t\treturn inputs\n\t\t\t})($parameter)\n\t\t}}","outputs":"={{\n\t\t\t((parameters) => {\n\t\t\t\tconst mode = parameters?.mode ?? 'retrieve';\n\n\t\t\t\tif (mode === 'retrieve-as-tool') {\n\t\t\t\t\treturn [{ displayName: \"Tool\", type: \"ai_tool\"}]\n\t\t\t\t}\n\n\t\t\t\tif (mode === 'retrieve') {\n\t\t\t\t\treturn [{ displayName: \"Vector Store\", type: \"ai_vectorStore\"}]\n\t\t\t\t}\n\t\t\t\treturn [{ displayName: \"\", type: \"main\"}]\n\t\t\t})($parameter)\n\t\t}}","properties":[{"displayName":"Tip: Get a feel for vector stores in n8n with our","name":"ragStarterCallout","type":"callout","typeOptions":{"calloutAction":{"label":"RAG starter template","type":"openSampleWorkflowTemplate","templateId":"rag-starter-template"}},"default":""},{"displayName":"Operation Mode","name":"mode","type":"options","noDataExpression":true,"default":"retrieve","options":[{"name":"Get Many","value":"load","description":"Get many ranked documents from vector store for query","action":"Get ranked documents from vector store"},{"name":"Insert Documents","value":"insert","description":"Insert documents into vector store","action":"Add documents to vector store"},{"name":"Retrieve Documents (As Vector Store for Chain/Tool)","value":"retrieve","description":"Retrieve documents from vector store to be used as vector store with AI nodes","action":"Retrieve documents for Chain/Tool as Vector Store","outputConnectionType":"ai_vectorStore"},{"name":"Retrieve Documents (As Tool for AI Agent)","value":"retrieve-as-tool","description":"Retrieve documents from vector store to be used as tool with AI nodes","action":"Retrieve documents for AI Agent as Tool","outputConnectionType":"ai_tool"},{"name":"Update Documents","value":"update","description":"Update documents in vector store by ID","action":"Update vector store documents"}]},{"displayName":"This node must be connected to a vector store retriever. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_retriever'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"},"displayOptions":{"show":{"mode":["retrieve"]}}},{"displayName":"Name","name":"toolName","type":"string","default":"","required":true,"description":"Name of the vector store","placeholder":"e.g. company_knowledge_base","validateType":"string-alphanumeric","displayOptions":{"show":{"@version":[{"_cnd":{"lte":1.2}}],"mode":["retrieve-as-tool"]}}},{"displayName":"Description","name":"toolDescription","type":"string","default":"","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","placeholder":"e.g. Work with your data in Supabase Vector Store","displayOptions":{"show":{"mode":["retrieve-as-tool"]}}},{"displayName":"Table Name","name":"tableName","type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"supabaseTableNameSearch"}},{"displayName":"ID","name":"id","type":"string"}]},{"displayName":"Embedding Batch Size","name":"embeddingBatchSize","type":"number","default":200,"description":"Number of documents to embed in a single batch","displayOptions":{"show":{"mode":["insert"],"@version":[{"_cnd":{"gte":1.1}}]}}},{"displayName":"Options","name":"options","type":"collection","placeholder":"Add Option","default":{},"options":[{"displayName":"Query Name","name":"queryName","type":"string","default":"match_documents","description":"Name of the query to use for matching documents"}],"displayOptions":{"show":{"mode":["insert"]}}},{"displayName":"Prompt","name":"prompt","type":"string","default":"","required":true,"description":"Search prompt to retrieve matching documents from the vector store using similarity-based ranking","displayOptions":{"show":{"mode":["load"]}}},{"displayName":"Limit","name":"topK","type":"number","default":4,"description":"Number of top results to fetch from vector store","displayOptions":{"show":{"mode":["load","retrieve-as-tool"]}}},{"displayName":"Include Metadata","name":"includeDocumentMetadata","type":"boolean","default":true,"description":"Whether or not to include document metadata","displayOptions":{"show":{"mode":["load","retrieve-as-tool"]}}},{"displayName":"Rerank Results","name":"useReranker","type":"boolean","default":false,"description":"Whether or not to rerank results","displayOptions":{"show":{"mode":["load","retrieve","retrieve-as-tool"]}}},{"displayName":"ID","name":"id","type":"string","default":"","required":true,"description":"ID of an embedding entry","displayOptions":{"show":{"mode":["update"]}}},{"displayName":"Options","name":"options","type":"collection","placeholder":"Add Option","default":{},"options":[{"displayName":"Query Name","name":"queryName","type":"string","default":"match_documents","description":"Name of the query to use for matching documents"},{"displayName":"Metadata Filter","name":"metadata","type":"fixedCollection","description":"Metadata to filter the document by","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add filter field","options":[{"name":"metadataValues","displayName":"Fields to Set","values":[{"displayName":"Name","name":"name","type":"string","default":"","required":true},{"displayName":"Value","name":"value","type":"string","default":""}]}]}],"displayOptions":{"show":{"mode":["load","retrieve-as-tool"]}}},{"displayName":"Options","name":"options","type":"collection","placeholder":"Add Option","default":{},"options":[{"displayName":"Query Name","name":"queryName","type":"string","default":"match_documents","description":"Name of the query to use for matching documents"},{"displayName":"Metadata Filter","name":"metadata","type":"fixedCollection","description":"Metadata to filter the document by","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add filter field","options":[{"name":"metadataValues","displayName":"Fields to Set","values":[{"displayName":"Name","name":"name","type":"string","default":"","required":true},{"displayName":"Value","name":"value","type":"string","default":""}]}]}],"displayOptions":{"show":{"mode":["retrieve"]}}},{"displayName":"Options","name":"options","type":"collection","placeholder":"Add Option","default":{},"options":[{"displayName":"Query Name","name":"queryName","type":"string","default":"match_documents","description":"Name of the query to use for matching documents"}],"displayOptions":{"show":{"mode":["update"]}}}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vector_store/VectorStoreSupabase/supabase.svg"},
125
125
  {"displayName":"Supabase: Insert","hidden":true,"name":"vectorStoreSupabaseInsert","group":["transform"],"version":1,"description":"Insert data into Supabase Vector Store index [https://supabase.com/docs/guides/ai/langchain]","defaults":{"name":"Supabase: Insert"},"codex":{"categories":["AI"],"subcategories":{"AI":["Vector Stores"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoresupabase/"}]}},"credentials":[{"name":"supabaseApi","required":true}],"inputs":["main",{"displayName":"Document","maxConnections":1,"type":"ai_document","required":true},{"displayName":"Embedding","maxConnections":1,"type":"ai_embedding","required":true}],"outputs":["main"],"properties":[{"displayName":"Please refer to the <a href=\"https://supabase.com/docs/guides/ai/langchain\" target=\"_blank\">Supabase documentation</a> for more information on how to setup your database as a Vector Store.","name":"setupNotice","type":"notice","default":""},{"displayName":"Table Name","name":"tableName","type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"supabaseTableNameSearch"}},{"displayName":"ID","name":"id","type":"string"}]},{"displayName":"Query Name","name":"queryName","type":"string","default":"match_documents","required":true,"description":"Name of the query to use for matching documents"},{"displayName":"Specify the document to load in the document loader sub-node","name":"notice","type":"notice","default":""}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vector_store/VectorStoreSupabaseInsert/supabase.svg"},
126
126
  {"displayName":"Supabase: Load","name":"vectorStoreSupabaseLoad","hidden":true,"group":["transform"],"version":1,"description":"Load data from Supabase Vector Store index","defaults":{"name":"Supabase: Load"},"codex":{"categories":["AI"],"subcategories":{"AI":["Vector Stores"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoresupabase/"}]}},"credentials":[{"name":"supabaseApi","required":true}],"inputs":[{"displayName":"Embedding","maxConnections":1,"type":"ai_embedding","required":true}],"outputs":["ai_vectorStore"],"outputNames":["Vector Store"],"properties":[{"displayName":"Table Name","name":"tableName","type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"supabaseTableNameSearch"}},{"displayName":"ID","name":"id","type":"string"}]},{"displayName":"Query Name","name":"queryName","type":"string","default":"match_documents","required":true,"description":"Name of the query to use for matching documents"},{"displayName":"Options","name":"options","type":"collection","placeholder":"Add Option","default":{},"options":[{"displayName":"Metadata Filter","name":"metadata","type":"fixedCollection","description":"Metadata to filter the document by","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add filter field","options":[{"name":"metadataValues","displayName":"Fields to Set","values":[{"displayName":"Name","name":"name","type":"string","default":"","required":true},{"displayName":"Value","name":"value","type":"string","default":""}]}]}]}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vector_store/VectorStoreSupabaseLoad/supabase.svg"},
127
- {"displayName":"Weaviate Vector Store","name":"vectorStoreWeaviate","description":"Work with your data in a Weaviate Cluster","group":["transform"],"version":[1,1.1,1.2,1.3],"defaults":{"name":"Weaviate Vector Store"},"codex":{"categories":["AI"],"subcategories":{"AI":["Vector Stores","Tools","Root Nodes"],"Vector Stores":["Other Vector Stores"],"Tools":["Other Tools"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreweaviate/"}]}},"builderHint":{"searchHint":"Pick mode by where data flows: `insert` upserts documents into the store on the main flow; `load` runs a one-shot similarity search on the main flow; `retrieve-as-tool` is the canonical RAG mode — plug into an AI Agent's `subnodes.tools`; `retrieve` exposes the store as a subnode for another node's `subnodes.vectorStore`; `update` updates a single document by ID.","extraTypeDefContent":[{"displayOptions":{"show":{"mode":["insert"]}},"content":"Sits on the main flow — pipe the documents you want to embed into this node. Declare with `vectorStore({...})`. Required subnodes: `embedding` and `documentLoader`. If the goal is letting an LLM query the store, use `mode: 'retrieve-as-tool'` instead.\n<patterns>\n<pattern title=\"insert mode — upsert documents (generic, works for any vectorStore* node)\">\n// Substitute the type literal and provider-specific parameters (e.g. pineconeIndex,\n// qdrantCollection, supabaseTableName) — see the rest of this file for the exact shape.\nconst store = vectorStore({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: {\n mode: 'insert',\n // ...provider-specific parameters\n },\n subnodes: { embedding: embeddingsOpenAi, documentLoader: defaultDataLoader }\n }\n});\n</pattern>\n</patterns>"},{"displayOptions":{"show":{"mode":["retrieve-as-tool"]}},"content":"Canonical RAG mode — declare with the `tool({...})` factory (NOT `vectorStore`) and plug into an AI Agent's `subnodes.tools`. Required subnodes: `embedding`. Set `toolDescription` so the agent knows when to call it.\n<patterns>\n<pattern title=\"retrieve-as-tool mode — RAG via AI Agent (generic, works for any vectorStore* node)\">\n// Substitute the type literal and provider-specific parameters — see the rest of this file\n// for the exact shape (e.g. pineconeIndex, qdrantCollection, supabaseTableName).\nconst knowledgeBase = tool({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: {\n mode: 'retrieve-as-tool',\n toolDescription: 'Search the product knowledge base',\n // ...provider-specific parameters\n },\n subnodes: { embedding: embeddingsOpenAi }\n }\n});\n\nconst agent = node({\n type: '@n8n/n8n-nodes-langchain.agent',\n config: {\n name: 'Support Agent',\n parameters: { promptType: 'define', text: expr('{{ $json.question }}') },\n subnodes: { model: openAiModel, tools: [knowledgeBase] }\n }\n});\n</pattern>\n</patterns>"},{"displayOptions":{"show":{"mode":["load"]}},"content":"One-shot similarity search on the main flow using the `prompt` parameter. Declare with `vectorStore({...})`. Required subnodes: `embedding`. For LLM-driven querying (RAG), use `mode: 'retrieve-as-tool'` instead.\n<patterns>\n<pattern title=\"load mode — one-shot similarity search (generic)\">\n// Substitute the type literal and provider-specific parameters — see the rest of this file.\nconst lookup = vectorStore({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: {\n mode: 'load',\n prompt: expr('{{ $json.query }}'),\n // ...provider-specific parameters\n },\n subnodes: { embedding: embeddingsOpenAi }\n }\n});\n</pattern>\n</patterns>"},{"displayOptions":{"show":{"mode":["retrieve"]}},"content":"Exposes the store as an `ai_vectorStore` subnode for another node (e.g. `toolVectorStore`). Declare with `vectorStore({...})`. Required subnodes: `embedding`. For RAG with an AI Agent directly, prefer `mode: 'retrieve-as-tool'`.\n<patterns>\n<pattern title=\"retrieve mode — feed another node as a subnode (generic)\">\n// Substitute the type literal and provider-specific parameters — see the rest of this file.\nconst store = vectorStore({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: { mode: 'retrieve' /* + provider-specific parameters */ },\n subnodes: { embedding: embeddingsOpenAi }\n }\n});\n\nconst retrieverTool = tool({\n type: '@n8n/n8n-nodes-langchain.toolVectorStore',\n config: {\n name: 'KB Retriever',\n parameters: { description: 'Search the product knowledge base' },\n subnodes: { vectorStore: store, model: openAiModel }\n }\n});\n</pattern>\n</patterns>"},{"displayOptions":{"show":{"mode":["update"]}},"content":"Updates a single document by `id`. Declare with `vectorStore({...})`. Required subnodes: `embedding`. Only available on stores whose `operationModes` enables it — most providers omit this mode.\n<patterns>\n<pattern title=\"update mode — update document by ID (generic)\">\n// Substitute the type literal and provider-specific parameters — see the rest of this file.\nconst store = vectorStore({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: { mode: 'update', id: expr('{{ $json.docId }}') },\n subnodes: { embedding: embeddingsOpenAi }\n }\n});\n</pattern>\n</patterns>"}],"inputs":{"ai_embedding":{"required":true},"ai_document":{"required":true,"displayOptions":{"show":{"mode":["insert"]}}},"ai_reranker":{"required":true,"displayOptions":{"show":{"mode":["load","retrieve","retrieve-as-tool"],"useReranker":[true]}}}},"outputs":{"main":{"displayOptions":{"show":{"mode":["insert","load","update"]}}},"ai_vectorStore":{"required":true,"displayOptions":{"show":{"mode":["retrieve"]}}},"ai_tool":{"required":true,"displayOptions":{"show":{"mode":["retrieve-as-tool"]}}}}},"credentials":[{"name":"weaviateApi","required":true}],"inputs":"={{\n\t\t\t((parameters) => {\n\t\t\t\tconst mode = parameters?.mode;\n\t\t\t\tconst useReranker = parameters?.useReranker;\n\t\t\t\tconst inputs = [{ displayName: \"Embedding\", type: \"ai_embedding\", required: true, maxConnections: 1}]\n\n\t\t\t\tif (['load', 'retrieve', 'retrieve-as-tool'].includes(mode) && useReranker) {\n\t\t\t\t\tinputs.push({ displayName: \"Reranker\", type: \"ai_reranker\", required: true, maxConnections: 1})\n\t\t\t\t}\n\n\t\t\t\tif (mode === 'retrieve-as-tool') {\n\t\t\t\t\treturn inputs;\n\t\t\t\t}\n\n\t\t\t\tif (['insert', 'load', 'update'].includes(mode)) {\n\t\t\t\t\tinputs.push({ displayName: \"\", type: \"main\"})\n\t\t\t\t}\n\n\t\t\t\tif (['insert'].includes(mode)) {\n\t\t\t\t\tinputs.push({ displayName: \"Document\", type: \"ai_document\", required: true, maxConnections: 1})\n\t\t\t\t}\n\t\t\t\treturn inputs\n\t\t\t})($parameter)\n\t\t}}","outputs":"={{\n\t\t\t((parameters) => {\n\t\t\t\tconst mode = parameters?.mode ?? 'retrieve';\n\n\t\t\t\tif (mode === 'retrieve-as-tool') {\n\t\t\t\t\treturn [{ displayName: \"Tool\", type: \"ai_tool\"}]\n\t\t\t\t}\n\n\t\t\t\tif (mode === 'retrieve') {\n\t\t\t\t\treturn [{ displayName: \"Vector Store\", type: \"ai_vectorStore\"}]\n\t\t\t\t}\n\t\t\t\treturn [{ displayName: \"\", type: \"main\"}]\n\t\t\t})($parameter)\n\t\t}}","properties":[{"displayName":"Tip: Get a feel for vector stores in n8n with our","name":"ragStarterCallout","type":"callout","typeOptions":{"calloutAction":{"label":"RAG starter template","type":"openSampleWorkflowTemplate","templateId":"rag-starter-template"}},"default":""},{"displayName":"Operation Mode","name":"mode","type":"options","noDataExpression":true,"default":"retrieve","options":[{"name":"Get Many","value":"load","description":"Get many ranked documents from vector store for query","action":"Get ranked documents from vector store"},{"name":"Insert Documents","value":"insert","description":"Insert documents into vector store","action":"Add documents to vector store"},{"name":"Retrieve Documents (As Vector Store for Chain/Tool)","value":"retrieve","description":"Retrieve documents from vector store to be used as vector store with AI nodes","action":"Retrieve documents for Chain/Tool as Vector Store","outputConnectionType":"ai_vectorStore"},{"name":"Retrieve Documents (As Tool for AI Agent)","value":"retrieve-as-tool","description":"Retrieve documents from vector store to be used as tool with AI nodes","action":"Retrieve documents for AI Agent as Tool","outputConnectionType":"ai_tool"}]},{"displayName":"This node must be connected to a vector store retriever. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_retriever'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"},"displayOptions":{"show":{"mode":["retrieve"]}}},{"displayName":"Name","name":"toolName","type":"string","default":"","required":true,"description":"Name of the vector store","placeholder":"e.g. company_knowledge_base","validateType":"string-alphanumeric","displayOptions":{"show":{"@version":[{"_cnd":{"lte":1.2}}],"mode":["retrieve-as-tool"]}}},{"displayName":"Description","name":"toolDescription","type":"string","default":"","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","placeholder":"e.g. Work with your data in a Weaviate Cluster","displayOptions":{"show":{"mode":["retrieve-as-tool"]}}},{"displayName":"Weaviate Collection","name":"weaviateCollection","type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"weaviateCollectionsSearch"}},{"displayName":"ID","name":"id","type":"string"}]},{"displayName":"Embedding Batch Size","name":"embeddingBatchSize","type":"number","default":200,"description":"Number of documents to embed in a single batch","displayOptions":{"show":{"mode":["insert"],"@version":[{"_cnd":{"gte":1.1}}]}}},{"displayName":"Options","name":"options","type":"collection","placeholder":"Add Option","default":{},"options":[{"displayName":"Tenant Name","name":"tenant","type":"string","default":"","validateType":"string","description":"Tenant Name. Collection must have been created with tenant support enabled."},{"displayName":"Text Key","name":"textKey","type":"string","default":"text","validateType":"string","description":"The key in the document that contains the embedded text"},{"displayName":"Skip Init Checks","name":"skip_init_checks","type":"boolean","default":false,"validateType":"boolean","description":"Whether to skip init checks while instantiating the client"},{"displayName":"Init Timeout","name":"timeout_init","type":"number","default":2,"validateType":"number","description":"Number of timeout seconds for initial checks"},{"displayName":"Insert Timeout","name":"timeout_insert","type":"number","default":90,"validateType":"number","description":"Number of timeout seconds for inserts"},{"displayName":"Query Timeout","name":"timeout_query","type":"number","default":30,"validateType":"number","description":"Number of timeout seconds for queries"},{"displayName":"GRPC Proxy","name":"proxy_grpc","type":"string","default":"","validateType":"string","description":"Proxy to use for GRPC"},{"displayName":"Clear Data","name":"clearStore","type":"boolean","default":false,"description":"Whether to clear the Collection/Tenant before inserting new data"}],"displayOptions":{"show":{"mode":["insert"]}}},{"displayName":"Prompt","name":"prompt","type":"string","default":"","required":true,"description":"Search prompt to retrieve matching documents from the vector store using similarity-based ranking","displayOptions":{"show":{"mode":["load"]}}},{"displayName":"Limit","name":"topK","type":"number","default":4,"description":"Number of top results to fetch from vector store","displayOptions":{"show":{"mode":["load","retrieve-as-tool"]}}},{"displayName":"Include Metadata","name":"includeDocumentMetadata","type":"boolean","default":true,"description":"Whether or not to include document metadata","displayOptions":{"show":{"mode":["load","retrieve-as-tool"]}}},{"displayName":"Rerank Results","name":"useReranker","type":"boolean","default":false,"description":"Whether or not to rerank results","displayOptions":{"show":{"mode":["load","retrieve","retrieve-as-tool"]}}},{"displayName":"ID","name":"id","type":"string","default":"","required":true,"description":"ID of an embedding entry","displayOptions":{"show":{"mode":["update"]}}},{"displayName":"Options","name":"options","type":"collection","placeholder":"Add Option","default":{},"options":[{"displayName":"Search Filters","name":"searchFilterJson","type":"json","typeOptions":{"rows":5},"default":"{\n \"OR\": [\n {\n \"path\": [\"pdf_info_Author\"],\n \"operator\": \"Equal\",\n \"valueString\": \"Elis\"\n },\n {\n \"path\": [\"pdf_info_Author\"],\n \"operator\": \"Equal\",\n \"valueString\": \"Pinnacle\"\n } \n ]\n}","validateType":"object","description":"Filter pageContent or metadata using this <a href=\"https://weaviate.io/\" target=\"_blank\">filtering syntax</a>"},{"displayName":"Metadata Keys","name":"metadataKeys","type":"string","default":"source,page","validateType":"string","description":"Select the metadata to retrieve along the content"},{"displayName":"Hybrid: Query Text","name":"hybridQuery","type":"string","default":"","validateType":"string","description":"Provide a query text to combine vector search with a keyword/text search"},{"displayName":"Hybrid: Explain Score","name":"hybridExplainScore","type":"boolean","default":false,"validateType":"boolean","description":"Whether to show the score fused between hybrid and vector search explanation"},{"displayName":"Hybrid: Fusion Type","name":"fusionType","type":"options","options":[{"name":"Relative Score","value":"RelativeScore"},{"name":"Ranked","value":"Ranked"}],"default":"RelativeScore","description":"Select the fusion type for combining vector and keyword search results"},{"displayName":"Hybrid: Auto Cut Limit","name":"autoCutLimit","type":"number","validateType":"number","description":"Limit result groups by detecting sudden jumps in score"},{"displayName":"Hybrid: Alpha","name":"alpha","type":"number","default":0.5,"validateType":"number","description":"Change the relative weights of the keyword and vector components. 1.0 = pure vector, 0.0 = pure keyword."},{"displayName":"Hybrid: Query Properties","name":"queryProperties","type":"string","default":"","validateType":"string","description":"Comma-separated list of properties to include in the query with optionally weighted values, e.g., \"question^2,answer\""},{"displayName":"Hybrid: Max Vector Distance","name":"maxVectorDistance","type":"number","validateType":"number","description":"Set the maximum allowable distance for the vector search component"},{"displayName":"Tenant Name","name":"tenant","type":"string","default":"","validateType":"string","description":"Tenant Name. Collection must have been created with tenant support enabled."},{"displayName":"Text Key","name":"textKey","type":"string","default":"text","validateType":"string","description":"The key in the document that contains the embedded text"},{"displayName":"Skip Init Checks","name":"skip_init_checks","type":"boolean","default":false,"validateType":"boolean","description":"Whether to skip init checks while instantiating the client"},{"displayName":"Init Timeout","name":"timeout_init","type":"number","default":2,"validateType":"number","description":"Number of timeout seconds for initial checks"},{"displayName":"Insert Timeout","name":"timeout_insert","type":"number","default":90,"validateType":"number","description":"Number of timeout seconds for inserts"},{"displayName":"Query Timeout","name":"timeout_query","type":"number","default":30,"validateType":"number","description":"Number of timeout seconds for queries"},{"displayName":"GRPC Proxy","name":"proxy_grpc","type":"string","default":"","validateType":"string","description":"Proxy to use for GRPC"}],"displayOptions":{"show":{"mode":["load","retrieve-as-tool"]}}},{"displayName":"Options","name":"options","type":"collection","placeholder":"Add Option","default":{},"options":[{"displayName":"Search Filters","name":"searchFilterJson","type":"json","typeOptions":{"rows":5},"default":"{\n \"OR\": [\n {\n \"path\": [\"pdf_info_Author\"],\n \"operator\": \"Equal\",\n \"valueString\": \"Elis\"\n },\n {\n \"path\": [\"pdf_info_Author\"],\n \"operator\": \"Equal\",\n \"valueString\": \"Pinnacle\"\n } \n ]\n}","validateType":"object","description":"Filter pageContent or metadata using this <a href=\"https://weaviate.io/\" target=\"_blank\">filtering syntax</a>"},{"displayName":"Metadata Keys","name":"metadataKeys","type":"string","default":"source,page","validateType":"string","description":"Select the metadata to retrieve along the content"},{"displayName":"Hybrid: Query Text","name":"hybridQuery","type":"string","default":"","validateType":"string","description":"Provide a query text to combine vector search with a keyword/text search"},{"displayName":"Hybrid: Explain Score","name":"hybridExplainScore","type":"boolean","default":false,"validateType":"boolean","description":"Whether to show the score fused between hybrid and vector search explanation"},{"displayName":"Hybrid: Fusion Type","name":"fusionType","type":"options","options":[{"name":"Relative Score","value":"RelativeScore"},{"name":"Ranked","value":"Ranked"}],"default":"RelativeScore","description":"Select the fusion type for combining vector and keyword search results"},{"displayName":"Hybrid: Auto Cut Limit","name":"autoCutLimit","type":"number","validateType":"number","description":"Limit result groups by detecting sudden jumps in score"},{"displayName":"Hybrid: Alpha","name":"alpha","type":"number","default":0.5,"validateType":"number","description":"Change the relative weights of the keyword and vector components. 1.0 = pure vector, 0.0 = pure keyword."},{"displayName":"Hybrid: Query Properties","name":"queryProperties","type":"string","default":"","validateType":"string","description":"Comma-separated list of properties to include in the query with optionally weighted values, e.g., \"question^2,answer\""},{"displayName":"Hybrid: Max Vector Distance","name":"maxVectorDistance","type":"number","validateType":"number","description":"Set the maximum allowable distance for the vector search component"},{"displayName":"Tenant Name","name":"tenant","type":"string","default":"","validateType":"string","description":"Tenant Name. Collection must have been created with tenant support enabled."},{"displayName":"Text Key","name":"textKey","type":"string","default":"text","validateType":"string","description":"The key in the document that contains the embedded text"},{"displayName":"Skip Init Checks","name":"skip_init_checks","type":"boolean","default":false,"validateType":"boolean","description":"Whether to skip init checks while instantiating the client"},{"displayName":"Init Timeout","name":"timeout_init","type":"number","default":2,"validateType":"number","description":"Number of timeout seconds for initial checks"},{"displayName":"Insert Timeout","name":"timeout_insert","type":"number","default":90,"validateType":"number","description":"Number of timeout seconds for inserts"},{"displayName":"Query Timeout","name":"timeout_query","type":"number","default":30,"validateType":"number","description":"Number of timeout seconds for queries"},{"displayName":"GRPC Proxy","name":"proxy_grpc","type":"string","default":"","validateType":"string","description":"Proxy to use for GRPC"}],"displayOptions":{"show":{"mode":["retrieve"]}}}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vector_store/VectorStoreWeaviate/weaviate.svg"},
127
+ {"displayName":"Weaviate Vector Store","name":"vectorStoreWeaviate","description":"Work with your data in a Weaviate Cluster","group":["transform"],"version":[1,1.1,1.2,1.3],"defaults":{"name":"Weaviate Vector Store"},"codex":{"categories":["AI"],"subcategories":{"AI":["Vector Stores","Tools","Root Nodes"],"Vector Stores":["Other Vector Stores"],"Tools":["Other Tools"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreweaviate/"}]}},"builderHint":{"searchHint":"Pick mode by where data flows: `insert` upserts documents into the store on the main flow; `load` runs a one-shot similarity search on the main flow; `retrieve-as-tool` is the canonical RAG mode — plug into an AI Agent's `subnodes.tools`; `retrieve` exposes the store as a subnode for another node's `subnodes.vectorStore`; `update` updates a single document by ID.","extraTypeDefContent":[{"displayOptions":{"show":{"mode":["insert"]}},"content":"Sits on the main flow — pipe the documents you want to embed into this node. Declare with `vectorStore({...})`. Required subnodes: `embedding` and `documentLoader`. If the goal is letting an LLM query the store, use `mode: 'retrieve-as-tool'` instead.\n<patterns>\n<pattern title=\"insert mode — upsert documents (generic, works for any vectorStore* node)\">\n// Substitute the type literal and provider-specific parameters (e.g. pineconeIndex,\n// qdrantCollection, supabaseTableName) — see the rest of this file for the exact shape.\nconst store = vectorStore({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: {\n mode: 'insert',\n // ...provider-specific parameters\n },\n subnodes: { embedding: embeddingsOpenAi, documentLoader: defaultDataLoader }\n }\n});\n</pattern>\n</patterns>"},{"displayOptions":{"show":{"mode":["retrieve-as-tool"]}},"content":"Canonical RAG mode — declare with the `tool({...})` factory (NOT `vectorStore`) and plug into an AI Agent's `subnodes.tools`. Required subnodes: `embedding`. Set `toolDescription` so the agent knows when to call it.\n<patterns>\n<pattern title=\"retrieve-as-tool mode — RAG via AI Agent (generic, works for any vectorStore* node)\">\n// Substitute the type literal and provider-specific parameters — see the rest of this file\n// for the exact shape (e.g. pineconeIndex, qdrantCollection, supabaseTableName).\nconst knowledgeBase = tool({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: {\n mode: 'retrieve-as-tool',\n toolDescription: 'Search the product knowledge base',\n // ...provider-specific parameters\n },\n subnodes: { embedding: embeddingsOpenAi }\n }\n});\n\nconst agent = node({\n type: '@n8n/n8n-nodes-langchain.agent',\n config: {\n name: 'Support Agent',\n parameters: { promptType: 'define', text: expr('{{ $json.question }}') },\n subnodes: { model: openAiModel, tools: [knowledgeBase] }\n }\n});\n</pattern>\n</patterns>"},{"displayOptions":{"show":{"mode":["load"]}},"content":"One-shot similarity search on the main flow using the `prompt` parameter. Declare with `vectorStore({...})`. Required subnodes: `embedding`. For LLM-driven querying (RAG), use `mode: 'retrieve-as-tool'` instead.\n<patterns>\n<pattern title=\"load mode — one-shot similarity search (generic)\">\n// Substitute the type literal and provider-specific parameters — see the rest of this file.\nconst lookup = vectorStore({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: {\n mode: 'load',\n prompt: expr('{{ $json.query }}'),\n // ...provider-specific parameters\n },\n subnodes: { embedding: embeddingsOpenAi }\n }\n});\n</pattern>\n</patterns>"},{"displayOptions":{"show":{"mode":["retrieve"]}},"content":"Exposes the store as an `ai_vectorStore` subnode for another node (e.g. `toolVectorStore`). Declare with `vectorStore({...})`. Required subnodes: `embedding`. For RAG with an AI Agent directly, prefer `mode: 'retrieve-as-tool'`.\n<patterns>\n<pattern title=\"retrieve mode — feed another node as a subnode (generic)\">\n// Substitute the type literal and provider-specific parameters — see the rest of this file.\nconst store = vectorStore({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: { mode: 'retrieve' /* + provider-specific parameters */ },\n subnodes: { embedding: embeddingsOpenAi }\n }\n});\n\nconst retrieverTool = tool({\n type: '@n8n/n8n-nodes-langchain.toolVectorStore',\n config: {\n name: 'KB Retriever',\n parameters: { description: 'Search the product knowledge base' },\n subnodes: { vectorStore: store, model: openAiModel }\n }\n});\n</pattern>\n</patterns>"},{"displayOptions":{"show":{"mode":["update"]}},"content":"Updates a single document by `id`. Declare with `vectorStore({...})`. Required subnodes: `embedding`. Only available on stores whose `operationModes` enables it — most providers omit this mode.\n<patterns>\n<pattern title=\"update mode — update document by ID (generic)\">\n// Substitute the type literal and provider-specific parameters — see the rest of this file.\nconst store = vectorStore({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: { mode: 'update', id: expr('{{ $json.docId }}') },\n subnodes: { embedding: embeddingsOpenAi }\n }\n});\n</pattern>\n</patterns>"}],"inputs":{"ai_embedding":{"required":true},"ai_document":{"required":true,"displayOptions":{"show":{"mode":["insert"]}}},"ai_reranker":{"required":true,"displayOptions":{"show":{"mode":["load","retrieve","retrieve-as-tool"],"useReranker":[true]}}}},"outputs":{"main":{"displayOptions":{"show":{"mode":["insert","load","update"]}}},"ai_vectorStore":{"required":true,"displayOptions":{"show":{"mode":["retrieve"]}}},"ai_tool":{"required":true,"displayOptions":{"show":{"mode":["retrieve-as-tool"]}}}}},"credentials":[{"name":"weaviateApi","required":true}],"inputs":"={{\n\t\t\t((parameters) => {\n\t\t\t\tconst mode = parameters?.mode;\n\t\t\t\tconst useReranker = parameters?.useReranker;\n\t\t\t\tconst inputs = [{ displayName: \"Embedding\", type: \"ai_embedding\", required: true, maxConnections: 1}]\n\n\t\t\t\tif (['load', 'retrieve', 'retrieve-as-tool'].includes(mode) && useReranker) {\n\t\t\t\t\tinputs.push({ displayName: \"Reranker\", type: \"ai_reranker\", required: true, maxConnections: 1})\n\t\t\t\t}\n\n\t\t\t\tif (mode === 'retrieve-as-tool') {\n\t\t\t\t\treturn inputs;\n\t\t\t\t}\n\n\t\t\t\tif (['insert', 'load', 'update'].includes(mode)) {\n\t\t\t\t\tinputs.push({ displayName: \"\", type: \"main\"})\n\t\t\t\t}\n\n\t\t\t\tif (['insert'].includes(mode)) {\n\t\t\t\t\tinputs.push({ displayName: \"Document\", type: \"ai_document\", required: true, maxConnections: 1})\n\t\t\t\t}\n\t\t\t\treturn inputs\n\t\t\t})($parameter)\n\t\t}}","outputs":"={{\n\t\t\t((parameters) => {\n\t\t\t\tconst mode = parameters?.mode ?? 'retrieve';\n\n\t\t\t\tif (mode === 'retrieve-as-tool') {\n\t\t\t\t\treturn [{ displayName: \"Tool\", type: \"ai_tool\"}]\n\t\t\t\t}\n\n\t\t\t\tif (mode === 'retrieve') {\n\t\t\t\t\treturn [{ displayName: \"Vector Store\", type: \"ai_vectorStore\"}]\n\t\t\t\t}\n\t\t\t\treturn [{ displayName: \"\", type: \"main\"}]\n\t\t\t})($parameter)\n\t\t}}","properties":[{"displayName":"Tip: Get a feel for vector stores in n8n with our","name":"ragStarterCallout","type":"callout","typeOptions":{"calloutAction":{"label":"RAG starter template","type":"openSampleWorkflowTemplate","templateId":"rag-starter-template"}},"default":""},{"displayName":"Operation Mode","name":"mode","type":"options","noDataExpression":true,"default":"retrieve","options":[{"name":"Get Many","value":"load","description":"Get many ranked documents from vector store for query","action":"Get ranked documents from vector store"},{"name":"Insert Documents","value":"insert","description":"Insert documents into vector store","action":"Add documents to vector store"},{"name":"Retrieve Documents (As Vector Store for Chain/Tool)","value":"retrieve","description":"Retrieve documents from vector store to be used as vector store with AI nodes","action":"Retrieve documents for Chain/Tool as Vector Store","outputConnectionType":"ai_vectorStore"},{"name":"Retrieve Documents (As Tool for AI Agent)","value":"retrieve-as-tool","description":"Retrieve documents from vector store to be used as tool with AI nodes","action":"Retrieve documents for AI Agent as Tool","outputConnectionType":"ai_tool"}]},{"displayName":"This node must be connected to a vector store retriever. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_retriever'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"},"displayOptions":{"show":{"mode":["retrieve"]}}},{"displayName":"Name","name":"toolName","type":"string","default":"","required":true,"description":"Name of the vector store","placeholder":"e.g. company_knowledge_base","validateType":"string-alphanumeric","displayOptions":{"show":{"@version":[{"_cnd":{"lte":1.2}}],"mode":["retrieve-as-tool"]}}},{"displayName":"Description","name":"toolDescription","type":"string","default":"","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","placeholder":"e.g. Work with your data in a Weaviate Cluster","displayOptions":{"show":{"mode":["retrieve-as-tool"]}}},{"displayName":"Weaviate Collection","name":"weaviateCollection","type":"resourceLocator","default":{"mode":"list","value":""},"required":true,"modes":[{"displayName":"From List","name":"list","type":"list","typeOptions":{"searchListMethod":"weaviateCollectionsSearch"}},{"displayName":"ID","name":"id","type":"string"}]},{"displayName":"Embedding Batch Size","name":"embeddingBatchSize","type":"number","default":200,"description":"Number of documents to embed in a single batch","displayOptions":{"show":{"mode":["insert"],"@version":[{"_cnd":{"gte":1.1}}]}}},{"displayName":"Options","name":"options","type":"collection","placeholder":"Add Option","default":{},"options":[{"displayName":"Tenant Name","name":"tenant","type":"string","default":"","validateType":"string","description":"Tenant Name. Collection must have been created with tenant support enabled."},{"displayName":"Text Key","name":"textKey","type":"string","default":"text","validateType":"string","description":"The key in the document that contains the embedded text"},{"displayName":"Skip Init Checks","name":"skip_init_checks","type":"boolean","default":false,"validateType":"boolean","description":"Whether to skip init checks while instantiating the client"},{"displayName":"Init Timeout","name":"timeout_init","type":"number","default":2,"validateType":"number","description":"Number of timeout seconds for initial checks"},{"displayName":"Insert Timeout","name":"timeout_insert","type":"number","default":90,"validateType":"number","description":"Number of timeout seconds for inserts"},{"displayName":"Query Timeout","name":"timeout_query","type":"number","default":30,"validateType":"number","description":"Number of timeout seconds for queries"},{"displayName":"GRPC Proxy","name":"proxy_grpc","type":"string","default":"","validateType":"string","description":"Proxy to use for GRPC. Applies only when the credential has no gRPC proxy, and needs \"Custom Connection gRPC Secure\" when the credential has an API key.","hint":"Set the gRPC proxy in the Weaviate credential instead"},{"displayName":"Clear Data","name":"clearStore","type":"boolean","default":false,"description":"Whether to clear the Collection/Tenant before inserting new data"}],"displayOptions":{"show":{"mode":["insert"]}}},{"displayName":"Prompt","name":"prompt","type":"string","default":"","required":true,"description":"Search prompt to retrieve matching documents from the vector store using similarity-based ranking","displayOptions":{"show":{"mode":["load"]}}},{"displayName":"Limit","name":"topK","type":"number","default":4,"description":"Number of top results to fetch from vector store","displayOptions":{"show":{"mode":["load","retrieve-as-tool"]}}},{"displayName":"Include Metadata","name":"includeDocumentMetadata","type":"boolean","default":true,"description":"Whether or not to include document metadata","displayOptions":{"show":{"mode":["load","retrieve-as-tool"]}}},{"displayName":"Rerank Results","name":"useReranker","type":"boolean","default":false,"description":"Whether or not to rerank results","displayOptions":{"show":{"mode":["load","retrieve","retrieve-as-tool"]}}},{"displayName":"ID","name":"id","type":"string","default":"","required":true,"description":"ID of an embedding entry","displayOptions":{"show":{"mode":["update"]}}},{"displayName":"Options","name":"options","type":"collection","placeholder":"Add Option","default":{},"options":[{"displayName":"Search Filters","name":"searchFilterJson","type":"json","typeOptions":{"rows":5},"default":"{\n \"OR\": [\n {\n \"path\": [\"pdf_info_Author\"],\n \"operator\": \"Equal\",\n \"valueString\": \"Elis\"\n },\n {\n \"path\": [\"pdf_info_Author\"],\n \"operator\": \"Equal\",\n \"valueString\": \"Pinnacle\"\n } \n ]\n}","validateType":"object","description":"Filter pageContent or metadata using this <a href=\"https://weaviate.io/\" target=\"_blank\">filtering syntax</a>"},{"displayName":"Metadata Keys","name":"metadataKeys","type":"string","default":"source,page","validateType":"string","description":"Select the metadata to retrieve along the content"},{"displayName":"Hybrid: Query Text","name":"hybridQuery","type":"string","default":"","validateType":"string","description":"Provide a query text to combine vector search with a keyword/text search"},{"displayName":"Hybrid: Explain Score","name":"hybridExplainScore","type":"boolean","default":false,"validateType":"boolean","description":"Whether to show the score fused between hybrid and vector search explanation"},{"displayName":"Hybrid: Fusion Type","name":"fusionType","type":"options","options":[{"name":"Relative Score","value":"RelativeScore"},{"name":"Ranked","value":"Ranked"}],"default":"RelativeScore","description":"Select the fusion type for combining vector and keyword search results"},{"displayName":"Hybrid: Auto Cut Limit","name":"autoCutLimit","type":"number","validateType":"number","description":"Limit result groups by detecting sudden jumps in score"},{"displayName":"Hybrid: Alpha","name":"alpha","type":"number","default":0.5,"validateType":"number","description":"Change the relative weights of the keyword and vector components. 1.0 = pure vector, 0.0 = pure keyword."},{"displayName":"Hybrid: Query Properties","name":"queryProperties","type":"string","default":"","validateType":"string","description":"Comma-separated list of properties to include in the query with optionally weighted values, e.g., \"question^2,answer\""},{"displayName":"Hybrid: Max Vector Distance","name":"maxVectorDistance","type":"number","validateType":"number","description":"Set the maximum allowable distance for the vector search component"},{"displayName":"Tenant Name","name":"tenant","type":"string","default":"","validateType":"string","description":"Tenant Name. Collection must have been created with tenant support enabled."},{"displayName":"Text Key","name":"textKey","type":"string","default":"text","validateType":"string","description":"The key in the document that contains the embedded text"},{"displayName":"Skip Init Checks","name":"skip_init_checks","type":"boolean","default":false,"validateType":"boolean","description":"Whether to skip init checks while instantiating the client"},{"displayName":"Init Timeout","name":"timeout_init","type":"number","default":2,"validateType":"number","description":"Number of timeout seconds for initial checks"},{"displayName":"Insert Timeout","name":"timeout_insert","type":"number","default":90,"validateType":"number","description":"Number of timeout seconds for inserts"},{"displayName":"Query Timeout","name":"timeout_query","type":"number","default":30,"validateType":"number","description":"Number of timeout seconds for queries"},{"displayName":"GRPC Proxy","name":"proxy_grpc","type":"string","default":"","validateType":"string","description":"Proxy to use for GRPC. Applies only when the credential has no gRPC proxy, and needs \"Custom Connection gRPC Secure\" when the credential has an API key.","hint":"Set the gRPC proxy in the Weaviate credential instead"}],"displayOptions":{"show":{"mode":["load","retrieve-as-tool"]}}},{"displayName":"Options","name":"options","type":"collection","placeholder":"Add Option","default":{},"options":[{"displayName":"Search Filters","name":"searchFilterJson","type":"json","typeOptions":{"rows":5},"default":"{\n \"OR\": [\n {\n \"path\": [\"pdf_info_Author\"],\n \"operator\": \"Equal\",\n \"valueString\": \"Elis\"\n },\n {\n \"path\": [\"pdf_info_Author\"],\n \"operator\": \"Equal\",\n \"valueString\": \"Pinnacle\"\n } \n ]\n}","validateType":"object","description":"Filter pageContent or metadata using this <a href=\"https://weaviate.io/\" target=\"_blank\">filtering syntax</a>"},{"displayName":"Metadata Keys","name":"metadataKeys","type":"string","default":"source,page","validateType":"string","description":"Select the metadata to retrieve along the content"},{"displayName":"Hybrid: Query Text","name":"hybridQuery","type":"string","default":"","validateType":"string","description":"Provide a query text to combine vector search with a keyword/text search"},{"displayName":"Hybrid: Explain Score","name":"hybridExplainScore","type":"boolean","default":false,"validateType":"boolean","description":"Whether to show the score fused between hybrid and vector search explanation"},{"displayName":"Hybrid: Fusion Type","name":"fusionType","type":"options","options":[{"name":"Relative Score","value":"RelativeScore"},{"name":"Ranked","value":"Ranked"}],"default":"RelativeScore","description":"Select the fusion type for combining vector and keyword search results"},{"displayName":"Hybrid: Auto Cut Limit","name":"autoCutLimit","type":"number","validateType":"number","description":"Limit result groups by detecting sudden jumps in score"},{"displayName":"Hybrid: Alpha","name":"alpha","type":"number","default":0.5,"validateType":"number","description":"Change the relative weights of the keyword and vector components. 1.0 = pure vector, 0.0 = pure keyword."},{"displayName":"Hybrid: Query Properties","name":"queryProperties","type":"string","default":"","validateType":"string","description":"Comma-separated list of properties to include in the query with optionally weighted values, e.g., \"question^2,answer\""},{"displayName":"Hybrid: Max Vector Distance","name":"maxVectorDistance","type":"number","validateType":"number","description":"Set the maximum allowable distance for the vector search component"},{"displayName":"Tenant Name","name":"tenant","type":"string","default":"","validateType":"string","description":"Tenant Name. Collection must have been created with tenant support enabled."},{"displayName":"Text Key","name":"textKey","type":"string","default":"text","validateType":"string","description":"The key in the document that contains the embedded text"},{"displayName":"Skip Init Checks","name":"skip_init_checks","type":"boolean","default":false,"validateType":"boolean","description":"Whether to skip init checks while instantiating the client"},{"displayName":"Init Timeout","name":"timeout_init","type":"number","default":2,"validateType":"number","description":"Number of timeout seconds for initial checks"},{"displayName":"Insert Timeout","name":"timeout_insert","type":"number","default":90,"validateType":"number","description":"Number of timeout seconds for inserts"},{"displayName":"Query Timeout","name":"timeout_query","type":"number","default":30,"validateType":"number","description":"Number of timeout seconds for queries"},{"displayName":"GRPC Proxy","name":"proxy_grpc","type":"string","default":"","validateType":"string","description":"Proxy to use for GRPC. Applies only when the credential has no gRPC proxy, and needs \"Custom Connection gRPC Secure\" when the credential has an API key.","hint":"Set the gRPC proxy in the Weaviate credential instead"}],"displayOptions":{"show":{"mode":["retrieve"]}}}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vector_store/VectorStoreWeaviate/weaviate.svg"},
128
128
  {"displayName":"Zep Vector Store","name":"vectorStoreZep","description":"Work with your data in Zep Vector Store","group":["transform"],"version":[1,1.1,1.2,1.3],"defaults":{"name":"Zep Vector Store"},"codex":{"categories":["AI"],"subcategories":{"AI":["Vector Stores","Tools","Root Nodes"],"Vector Stores":["Other Vector Stores"],"Tools":["Other Tools"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorezep/"}]}},"builderHint":{"searchHint":"Pick mode by where data flows: `insert` upserts documents into the store on the main flow; `load` runs a one-shot similarity search on the main flow; `retrieve-as-tool` is the canonical RAG mode — plug into an AI Agent's `subnodes.tools`; `retrieve` exposes the store as a subnode for another node's `subnodes.vectorStore`; `update` updates a single document by ID.","extraTypeDefContent":[{"displayOptions":{"show":{"mode":["insert"]}},"content":"Sits on the main flow — pipe the documents you want to embed into this node. Declare with `vectorStore({...})`. Required subnodes: `embedding` and `documentLoader`. If the goal is letting an LLM query the store, use `mode: 'retrieve-as-tool'` instead.\n<patterns>\n<pattern title=\"insert mode — upsert documents (generic, works for any vectorStore* node)\">\n// Substitute the type literal and provider-specific parameters (e.g. pineconeIndex,\n// qdrantCollection, supabaseTableName) — see the rest of this file for the exact shape.\nconst store = vectorStore({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: {\n mode: 'insert',\n // ...provider-specific parameters\n },\n subnodes: { embedding: embeddingsOpenAi, documentLoader: defaultDataLoader }\n }\n});\n</pattern>\n</patterns>"},{"displayOptions":{"show":{"mode":["retrieve-as-tool"]}},"content":"Canonical RAG mode — declare with the `tool({...})` factory (NOT `vectorStore`) and plug into an AI Agent's `subnodes.tools`. Required subnodes: `embedding`. Set `toolDescription` so the agent knows when to call it.\n<patterns>\n<pattern title=\"retrieve-as-tool mode — RAG via AI Agent (generic, works for any vectorStore* node)\">\n// Substitute the type literal and provider-specific parameters — see the rest of this file\n// for the exact shape (e.g. pineconeIndex, qdrantCollection, supabaseTableName).\nconst knowledgeBase = tool({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: {\n mode: 'retrieve-as-tool',\n toolDescription: 'Search the product knowledge base',\n // ...provider-specific parameters\n },\n subnodes: { embedding: embeddingsOpenAi }\n }\n});\n\nconst agent = node({\n type: '@n8n/n8n-nodes-langchain.agent',\n config: {\n name: 'Support Agent',\n parameters: { promptType: 'define', text: expr('{{ $json.question }}') },\n subnodes: { model: openAiModel, tools: [knowledgeBase] }\n }\n});\n</pattern>\n</patterns>"},{"displayOptions":{"show":{"mode":["load"]}},"content":"One-shot similarity search on the main flow using the `prompt` parameter. Declare with `vectorStore({...})`. Required subnodes: `embedding`. For LLM-driven querying (RAG), use `mode: 'retrieve-as-tool'` instead.\n<patterns>\n<pattern title=\"load mode — one-shot similarity search (generic)\">\n// Substitute the type literal and provider-specific parameters — see the rest of this file.\nconst lookup = vectorStore({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: {\n mode: 'load',\n prompt: expr('{{ $json.query }}'),\n // ...provider-specific parameters\n },\n subnodes: { embedding: embeddingsOpenAi }\n }\n});\n</pattern>\n</patterns>"},{"displayOptions":{"show":{"mode":["retrieve"]}},"content":"Exposes the store as an `ai_vectorStore` subnode for another node (e.g. `toolVectorStore`). Declare with `vectorStore({...})`. Required subnodes: `embedding`. For RAG with an AI Agent directly, prefer `mode: 'retrieve-as-tool'`.\n<patterns>\n<pattern title=\"retrieve mode — feed another node as a subnode (generic)\">\n// Substitute the type literal and provider-specific parameters — see the rest of this file.\nconst store = vectorStore({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: { mode: 'retrieve' /* + provider-specific parameters */ },\n subnodes: { embedding: embeddingsOpenAi }\n }\n});\n\nconst retrieverTool = tool({\n type: '@n8n/n8n-nodes-langchain.toolVectorStore',\n config: {\n name: 'KB Retriever',\n parameters: { description: 'Search the product knowledge base' },\n subnodes: { vectorStore: store, model: openAiModel }\n }\n});\n</pattern>\n</patterns>"},{"displayOptions":{"show":{"mode":["update"]}},"content":"Updates a single document by `id`. Declare with `vectorStore({...})`. Required subnodes: `embedding`. Only available on stores whose `operationModes` enables it — most providers omit this mode.\n<patterns>\n<pattern title=\"update mode — update document by ID (generic)\">\n// Substitute the type literal and provider-specific parameters — see the rest of this file.\nconst store = vectorStore({\n type: '@n8n/n8n-nodes-langchain.vectorStoreXxx',\n config: {\n name: 'Knowledge Base',\n parameters: { mode: 'update', id: expr('{{ $json.docId }}') },\n subnodes: { embedding: embeddingsOpenAi }\n }\n});\n</pattern>\n</patterns>"}],"inputs":{"ai_embedding":{"required":true},"ai_document":{"required":true,"displayOptions":{"show":{"mode":["insert"]}}},"ai_reranker":{"required":true,"displayOptions":{"show":{"mode":["load","retrieve","retrieve-as-tool"],"useReranker":[true]}}}},"outputs":{"main":{"displayOptions":{"show":{"mode":["insert","load","update"]}}},"ai_vectorStore":{"required":true,"displayOptions":{"show":{"mode":["retrieve"]}}},"ai_tool":{"required":true,"displayOptions":{"show":{"mode":["retrieve-as-tool"]}}}}},"credentials":[{"name":"zepApi","required":true}],"inputs":"={{\n\t\t\t((parameters) => {\n\t\t\t\tconst mode = parameters?.mode;\n\t\t\t\tconst useReranker = parameters?.useReranker;\n\t\t\t\tconst inputs = [{ displayName: \"Embedding\", type: \"ai_embedding\", required: true, maxConnections: 1}]\n\n\t\t\t\tif (['load', 'retrieve', 'retrieve-as-tool'].includes(mode) && useReranker) {\n\t\t\t\t\tinputs.push({ displayName: \"Reranker\", type: \"ai_reranker\", required: true, maxConnections: 1})\n\t\t\t\t}\n\n\t\t\t\tif (mode === 'retrieve-as-tool') {\n\t\t\t\t\treturn inputs;\n\t\t\t\t}\n\n\t\t\t\tif (['insert', 'load', 'update'].includes(mode)) {\n\t\t\t\t\tinputs.push({ displayName: \"\", type: \"main\"})\n\t\t\t\t}\n\n\t\t\t\tif (['insert'].includes(mode)) {\n\t\t\t\t\tinputs.push({ displayName: \"Document\", type: \"ai_document\", required: true, maxConnections: 1})\n\t\t\t\t}\n\t\t\t\treturn inputs\n\t\t\t})($parameter)\n\t\t}}","outputs":"={{\n\t\t\t((parameters) => {\n\t\t\t\tconst mode = parameters?.mode ?? 'retrieve';\n\n\t\t\t\tif (mode === 'retrieve-as-tool') {\n\t\t\t\t\treturn [{ displayName: \"Tool\", type: \"ai_tool\"}]\n\t\t\t\t}\n\n\t\t\t\tif (mode === 'retrieve') {\n\t\t\t\t\treturn [{ displayName: \"Vector Store\", type: \"ai_vectorStore\"}]\n\t\t\t\t}\n\t\t\t\treturn [{ displayName: \"\", type: \"main\"}]\n\t\t\t})($parameter)\n\t\t}}","properties":[{"displayName":"Tip: Get a feel for vector stores in n8n with our","name":"ragStarterCallout","type":"callout","typeOptions":{"calloutAction":{"label":"RAG starter template","type":"openSampleWorkflowTemplate","templateId":"rag-starter-template"}},"default":""},{"displayName":"Operation Mode","name":"mode","type":"options","noDataExpression":true,"default":"retrieve","options":[{"name":"Get Many","value":"load","description":"Get many ranked documents from vector store for query","action":"Get ranked documents from vector store"},{"name":"Insert Documents","value":"insert","description":"Insert documents into vector store","action":"Add documents to vector store"},{"name":"Retrieve Documents (As Vector Store for Chain/Tool)","value":"retrieve","description":"Retrieve documents from vector store to be used as vector store with AI nodes","action":"Retrieve documents for Chain/Tool as Vector Store","outputConnectionType":"ai_vectorStore"},{"name":"Retrieve Documents (As Tool for AI Agent)","value":"retrieve-as-tool","description":"Retrieve documents from vector store to be used as tool with AI nodes","action":"Retrieve documents for AI Agent as Tool","outputConnectionType":"ai_tool"}]},{"displayName":"This node must be connected to a vector store retriever. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_retriever'>Insert one</a>","name":"notice","type":"notice","default":"","typeOptions":{"containerClass":"ndv-connection-hint-notice"},"displayOptions":{"show":{"mode":["retrieve"]}}},{"displayName":"Name","name":"toolName","type":"string","default":"","required":true,"description":"Name of the vector store","placeholder":"e.g. company_knowledge_base","validateType":"string-alphanumeric","displayOptions":{"show":{"@version":[{"_cnd":{"lte":1.2}}],"mode":["retrieve-as-tool"]}}},{"displayName":"Description","name":"toolDescription","type":"string","default":"","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","placeholder":"e.g. Work with your data in Zep Vector Store","displayOptions":{"show":{"mode":["retrieve-as-tool"]}}},{"displayName":"This Zep integration is deprecated and will be removed in a future version.","name":"deprecationNotice","type":"notice","default":""},{"displayName":"Collection Name","name":"collectionName","type":"string","default":"","required":true},{"displayName":"Embedding Batch Size","name":"embeddingBatchSize","type":"number","default":200,"description":"Number of documents to embed in a single batch","displayOptions":{"show":{"mode":["insert"],"@version":[{"_cnd":{"gte":1.1}}]}}},{"displayName":"Options","name":"options","type":"collection","placeholder":"Add Option","default":{},"options":[{"displayName":"Embedding Dimensions","name":"embeddingDimensions","type":"number","default":1536,"description":"Whether to allow using characters from the Unicode surrogate blocks"},{"displayName":"Is Auto Embedded","name":"isAutoEmbedded","type":"boolean","default":true,"description":"Whether to automatically embed documents when they are added"}],"displayOptions":{"show":{"mode":["insert"]}}},{"displayName":"Prompt","name":"prompt","type":"string","default":"","required":true,"description":"Search prompt to retrieve matching documents from the vector store using similarity-based ranking","displayOptions":{"show":{"mode":["load"]}}},{"displayName":"Limit","name":"topK","type":"number","default":4,"description":"Number of top results to fetch from vector store","displayOptions":{"show":{"mode":["load","retrieve-as-tool"]}}},{"displayName":"Include Metadata","name":"includeDocumentMetadata","type":"boolean","default":true,"description":"Whether or not to include document metadata","displayOptions":{"show":{"mode":["load","retrieve-as-tool"]}}},{"displayName":"Rerank Results","name":"useReranker","type":"boolean","default":false,"description":"Whether or not to rerank results","displayOptions":{"show":{"mode":["load","retrieve","retrieve-as-tool"]}}},{"displayName":"ID","name":"id","type":"string","default":"","required":true,"description":"ID of an embedding entry","displayOptions":{"show":{"mode":["update"]}}},{"displayName":"Options","name":"options","type":"collection","placeholder":"Add Option","default":{},"options":[{"displayName":"Embedding Dimensions","name":"embeddingDimensions","type":"number","default":1536,"description":"Whether to allow using characters from the Unicode surrogate blocks"},{"displayName":"Metadata Filter","name":"metadata","type":"fixedCollection","description":"Metadata to filter the document by","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add filter field","options":[{"name":"metadataValues","displayName":"Fields to Set","values":[{"displayName":"Name","name":"name","type":"string","default":"","required":true},{"displayName":"Value","name":"value","type":"string","default":""}]}]}],"displayOptions":{"show":{"mode":["load","retrieve-as-tool"]}}},{"displayName":"Options","name":"options","type":"collection","placeholder":"Add Option","default":{},"options":[{"displayName":"Embedding Dimensions","name":"embeddingDimensions","type":"number","default":1536,"description":"Whether to allow using characters from the Unicode surrogate blocks"},{"displayName":"Metadata Filter","name":"metadata","type":"fixedCollection","description":"Metadata to filter the document by","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add filter field","options":[{"name":"metadataValues","displayName":"Fields to Set","values":[{"displayName":"Name","name":"name","type":"string","default":"","required":true},{"displayName":"Value","name":"value","type":"string","default":""}]}]}],"displayOptions":{"show":{"mode":["retrieve"]}}}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vector_store/VectorStoreZep/zep.png"},
129
129
  {"displayName":"Zep Vector Store: Insert","name":"vectorStoreZepInsert","hidden":true,"group":["transform"],"version":1,"description":"Insert data into Zep Vector Store index","defaults":{"name":"Zep: Insert"},"codex":{"categories":["AI"],"subcategories":{"AI":["Vector Stores"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorezep/"}]}},"credentials":[{"name":"zepApi","required":true}],"inputs":["main",{"displayName":"Document","maxConnections":1,"type":"ai_document","required":true},{"displayName":"Embedding","maxConnections":1,"type":"ai_embedding","required":true}],"outputs":["main"],"properties":[{"displayName":"This Zep integration is deprecated and will be removed in a future version.","name":"deprecationNotice","type":"notice","default":""},{"displayName":"Collection Name","name":"collectionName","type":"string","default":"","required":true},{"displayName":"Specify the document to load in the document loader sub-node","name":"notice","type":"notice","default":""},{"displayName":"Options","name":"options","type":"collection","placeholder":"Add Option","default":{},"options":[{"displayName":"Embedding Dimensions","name":"embeddingDimensions","type":"number","default":1536,"description":"Whether to allow using characters from the Unicode surrogate blocks"},{"displayName":"Is Auto Embedded","name":"isAutoEmbedded","type":"boolean","default":true,"description":"Whether to automatically embed documents when they are added"}]}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vector_store/VectorStoreZepInsert/zep.png"},
130
130
  {"displayName":"Zep Vector Store: Load","name":"vectorStoreZepLoad","hidden":true,"group":["transform"],"version":1,"description":"Load data from Zep Vector Store index","defaults":{"name":"Zep: Load"},"codex":{"categories":["AI"],"subcategories":{"AI":["Vector Stores"]},"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorezep/"}]}},"credentials":[{"name":"zepApi","required":true}],"inputs":[{"displayName":"Embedding","maxConnections":1,"type":"ai_embedding","required":true}],"outputs":["ai_vectorStore"],"outputNames":["Vector Store"],"properties":[{"displayName":"This Zep integration is deprecated and will be removed in a future version.","name":"deprecationNotice","type":"notice","default":""},{"displayName":"Collection Name","name":"collectionName","type":"string","default":"","required":true},{"displayName":"Options","name":"options","type":"collection","placeholder":"Add Option","default":{},"options":[{"displayName":"Embedding Dimensions","name":"embeddingDimensions","type":"number","default":1536,"description":"Whether to allow using characters from the Unicode surrogate blocks"},{"displayName":"Metadata Filter","name":"metadata","type":"fixedCollection","description":"Metadata to filter the document by","typeOptions":{"multipleValues":true},"default":{},"placeholder":"Add filter field","options":[{"name":"metadataValues","displayName":"Fields to Set","values":[{"displayName":"Name","name":"name","type":"string","default":"","required":true},{"displayName":"Value","name":"value","type":"string","default":""}]}]}]}],"iconUrl":"icons/@n8n/n8n-nodes-langchain/dist/nodes/vector_store/VectorStoreZepLoad/zep.png"},
@@ -5,7 +5,6 @@ exports.generateSchemaFromExample = generateSchemaFromExample;
5
5
  exports.convertJsonSchemaToZod = convertJsonSchemaToZod;
6
6
  exports.throwIfToolSchema = throwIfToolSchema;
7
7
  const json_schema_to_zod_1 = require("@n8n/json-schema-to-zod");
8
- const generate_schema_1 = require("generate-schema");
9
8
  const n8n_workflow_1 = require("n8n-workflow");
10
9
  function makeAllPropertiesRequired(schema) {
11
10
  function isPropertySchema(property) {
@@ -36,8 +35,7 @@ function parseJsonSchemaParameter(raw) {
36
35
  return (0, n8n_workflow_1.jsonParse)(asSchemaText(raw));
37
36
  }
38
37
  function generateSchemaFromExample(exampleJson, allFieldsRequired = false) {
39
- const parsedExample = (0, n8n_workflow_1.jsonParse)(asSchemaText(exampleJson));
40
- const schema = (0, generate_schema_1.json)(parsedExample);
38
+ const schema = (0, n8n_workflow_1.generateSchemaFromExample)(asSchemaText(exampleJson));
41
39
  if (allFieldsRequired) {
42
40
  return makeAllPropertiesRequired(schema);
43
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schemaParsing.js","sourceRoot":"","sources":["../../utils/schemaParsing.ts"],"names":[],"mappings":";;;;;;AAAA,gEAA0D;AAC1D,qDAA6D;AAI7D,+CAA6D;AAG7D,SAAS,yBAAyB,CAAC,MAAmB;IACrD,SAAS,gBAAgB,CAAC,QAAiB;QAC1C,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,MAAM,IAAI,QAAQ,CAAC;IAChF,CAAC;IAGD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC9B,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC9C,yBAAyB,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACnD,CAAC;QACF,CAAC;IACF,CAAC;IAGD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/E,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAOD,SAAS,YAAY,CAAC,GAAY;IACjC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAGxE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAGD,kCAAyC,GAAY;IACpD,OAAO,IAAA,wBAAS,EAAc,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,mCACC,WAAoB,EACpB,iBAAiB,GAAG,KAAK;IAEzB,MAAM,aAAa,GAAG,IAAA,wBAAS,EAAe,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;IAEzE,MAAM,MAAM,GAAG,IAAA,sBAAkB,EAAC,aAAa,CAAgB,CAAC;IAEhE,IAAI,iBAAiB,EAAE,CAAC;QACvB,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,gCAA8E,MAAmB;IAChG,OAAO,IAAA,oCAAe,EAAI,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,2BAAkC,GAAsB,EAAE,KAAY;IACrE,IAAI,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,0CAA0C,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,iCAAkB,CAC3B,GAAG,CAAC,OAAO,EAAE,EACb,GAAG,KAAK,CAAC,OAAO;wNACqM,CACrN,CAAC;IACH,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"schemaParsing.js","sourceRoot":"","sources":["../../utils/schemaParsing.ts"],"names":[],"mappings":";;;;;;AAAA,gEAA0D;AAG1D,+CAIsB;AAGtB,SAAS,yBAAyB,CAAC,MAAmB;IACrD,SAAS,gBAAgB,CAAC,QAAiB;QAC1C,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,MAAM,IAAI,QAAQ,CAAC;IAChF,CAAC;IAGD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC9B,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC9C,yBAAyB,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACnD,CAAC;QACF,CAAC;IACF,CAAC;IAGD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/E,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAOD,SAAS,YAAY,CAAC,GAAY;IACjC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAGxE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAGD,kCAAyC,GAAY;IACpD,OAAO,IAAA,wBAAS,EAAc,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,mCACC,WAAoB,EACpB,iBAAiB,GAAG,KAAK;IAEzB,MAAM,MAAM,GAAG,IAAA,wCAA6B,EAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;IAExE,IAAI,iBAAiB,EAAE,CAAC;QACvB,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,gCAA8E,MAAmB;IAChG,OAAO,IAAA,oCAAe,EAAI,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,2BAAkC,GAAsB,EAAE,KAAY;IACrE,IAAI,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,0CAA0C,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,iCAAkB,CAC3B,GAAG,CAAC,OAAO,EAAE,EACb,GAAG,KAAK,CAAC,OAAO;wNACqM,CACrN,CAAC;IACH,CAAC;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n8n/n8n-nodes-langchain",
3
- "version": "2.45.3",
3
+ "version": "2.45.5",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "exports": {
@@ -25,8 +25,8 @@
25
25
  },
26
26
  "files": [
27
27
  "dist",
28
- "LICENSE_EE.md",
29
- "LICENSE.md"
28
+ "LICENSE.md",
29
+ "LICENSE_EE.md"
30
30
  ],
31
31
  "n8n": {
32
32
  "n8nNodesApiVersion": 1,
@@ -202,7 +202,7 @@
202
202
  ]
203
203
  },
204
204
  "devDependencies": {
205
- "@n8n/eslint-plugin-community-nodes": "0.37.0",
205
+ "@n8n/eslint-plugin-community-nodes": "0.37.1",
206
206
  "@n8n/vitest-config": "1.24.0",
207
207
  "@typescript-eslint/typescript-estree": "8.70.0",
208
208
  "@types/basic-auth": "^1.1.3",
@@ -265,14 +265,14 @@
265
265
  "@mistralai/mistralai": "^2.2.1",
266
266
  "@modelcontextprotocol/sdk": "1.31.0",
267
267
  "@mozilla/readability": "^0.6.0",
268
- "@n8n/ai-utilities": "0.38.3",
269
- "@n8n/client-oauth2": "1.27.3",
270
- "@n8n/config": "2.43.1",
268
+ "@n8n/ai-utilities": "0.38.5",
269
+ "@n8n/client-oauth2": "1.27.5",
270
+ "@n8n/config": "2.43.2",
271
271
  "@n8n/di": "0.17.0",
272
272
  "@n8n/json-schema-to-zod": "1.18.0",
273
273
  "@n8n/typeorm": "0.3.20-16",
274
274
  "@n8n/typescript-config": "1.12.0",
275
- "@n8n/utils": "1.52.0",
275
+ "@n8n/utils": "1.52.1",
276
276
  "@oracle/langchain-oracledb": "0.2.0",
277
277
  "@pinecone-database/pinecone": "^5.0.2",
278
278
  "@qdrant/js-client-rest": "^1.19.0",
@@ -289,7 +289,6 @@
289
289
  "epub2": "3.0.2",
290
290
  "express": "5.1.0",
291
291
  "form-data": "4.0.6",
292
- "generate-schema": "2.6.0",
293
292
  "html-to-text": "9.0.5",
294
293
  "ignore": "^5.2.0",
295
294
  "js-tiktoken": "1.0.21",
@@ -301,9 +300,9 @@
301
300
  "mime-types": "3.0.2",
302
301
  "mongodb": "^6.17.0",
303
302
  "mysql2": "3.23.1",
304
- "n8n-core": "2.45.3",
305
- "n8n-nodes-base": "2.45.3",
306
- "n8n-workflow": "2.45.1",
303
+ "n8n-core": "2.45.5",
304
+ "n8n-nodes-base": "2.45.5",
305
+ "n8n-workflow": "2.45.3",
307
306
  "openai": "6.46.0",
308
307
  "oracledb": "6.10.0",
309
308
  "pg": "8.21.0",