From 6885c38d189d64393cf18f0347c92672fca652ef Mon Sep 17 00:00:00 2001 From: Henry Heng Date: Sat, 13 Sep 2025 11:28:53 +0100 Subject: [PATCH] Chore/Accept Dynamic Variable From Metadata Filter (#5203) * add acceptVariable property to vector store metadata filter * add accepVariadd acceptVariable property to other json fields --- packages/components/nodes/tools/AgentAsTool/AgentAsTool.ts | 3 ++- packages/components/nodes/tools/ChatflowTool/ChatflowTool.ts | 3 ++- .../components/nodes/tools/OpenAPIToolkit/OpenAPIToolkit.ts | 3 ++- packages/components/nodes/tools/RetrieverTool/RetrieverTool.ts | 3 ++- packages/components/nodes/vectorstores/Chroma/Chroma.ts | 3 ++- packages/components/nodes/vectorstores/Couchbase/Couchbase.ts | 3 ++- packages/components/nodes/vectorstores/Kendra/Kendra.ts | 3 ++- .../components/nodes/vectorstores/Meilisearch/Meilisearch.ts | 3 ++- packages/components/nodes/vectorstores/Milvus/Milvus.ts | 3 ++- .../components/nodes/vectorstores/MongoDBAtlas/MongoDBAtlas.ts | 3 ++- packages/components/nodes/vectorstores/Pinecone/Pinecone.ts | 3 ++- packages/components/nodes/vectorstores/Postgres/Postgres.ts | 3 ++- packages/components/nodes/vectorstores/Qdrant/Qdrant.ts | 3 ++- packages/components/nodes/vectorstores/Supabase/Supabase.ts | 3 ++- packages/components/nodes/vectorstores/Upstash/Upstash.ts | 3 ++- packages/components/nodes/vectorstores/Vectara/Vectara.ts | 3 ++- packages/components/nodes/vectorstores/Weaviate/Weaviate.ts | 3 ++- packages/components/nodes/vectorstores/Zep/Zep.ts | 3 ++- packages/components/nodes/vectorstores/ZepCloud/ZepCloud.ts | 3 ++- 19 files changed, 38 insertions(+), 19 deletions(-) diff --git a/packages/components/nodes/tools/AgentAsTool/AgentAsTool.ts b/packages/components/nodes/tools/AgentAsTool/AgentAsTool.ts index 41cec7bf7..8bb9c1595 100644 --- a/packages/components/nodes/tools/AgentAsTool/AgentAsTool.ts +++ b/packages/components/nodes/tools/AgentAsTool/AgentAsTool.ts @@ -69,7 +69,8 @@ class AgentAsTool_Tools implements INode { description: 'Override the config passed to the Agentflow.', type: 'json', optional: true, - additionalParams: true + additionalParams: true, + acceptVariable: true }, { label: 'Base URL', diff --git a/packages/components/nodes/tools/ChatflowTool/ChatflowTool.ts b/packages/components/nodes/tools/ChatflowTool/ChatflowTool.ts index 816f7d15c..b42bf716b 100644 --- a/packages/components/nodes/tools/ChatflowTool/ChatflowTool.ts +++ b/packages/components/nodes/tools/ChatflowTool/ChatflowTool.ts @@ -69,7 +69,8 @@ class ChatflowTool_Tools implements INode { description: 'Override the config passed to the Chatflow.', type: 'json', optional: true, - additionalParams: true + additionalParams: true, + acceptVariable: true }, { label: 'Base URL', diff --git a/packages/components/nodes/tools/OpenAPIToolkit/OpenAPIToolkit.ts b/packages/components/nodes/tools/OpenAPIToolkit/OpenAPIToolkit.ts index ccc7ef7d3..d4c664638 100644 --- a/packages/components/nodes/tools/OpenAPIToolkit/OpenAPIToolkit.ts +++ b/packages/components/nodes/tools/OpenAPIToolkit/OpenAPIToolkit.ts @@ -46,7 +46,8 @@ class OpenAPIToolkit_Tools implements INode { type: 'json', description: 'Request headers to be sent with the API request. For example, {"Authorization": "Bearer token"}', additionalParams: true, - optional: true + optional: true, + acceptVariable: true }, { label: 'Remove null parameters', diff --git a/packages/components/nodes/tools/RetrieverTool/RetrieverTool.ts b/packages/components/nodes/tools/RetrieverTool/RetrieverTool.ts index 0010bce9c..d95ee11d6 100644 --- a/packages/components/nodes/tools/RetrieverTool/RetrieverTool.ts +++ b/packages/components/nodes/tools/RetrieverTool/RetrieverTool.ts @@ -173,7 +173,8 @@ class Retriever_Tools implements INode { hint: { label: 'What can you filter?', value: howToUse - } + }, + acceptVariable: true } ] } diff --git a/packages/components/nodes/vectorstores/Chroma/Chroma.ts b/packages/components/nodes/vectorstores/Chroma/Chroma.ts index 90fb2c552..80ddbe35b 100644 --- a/packages/components/nodes/vectorstores/Chroma/Chroma.ts +++ b/packages/components/nodes/vectorstores/Chroma/Chroma.ts @@ -74,7 +74,8 @@ class Chroma_VectorStores implements INode { name: 'chromaMetadataFilter', type: 'json', optional: true, - additionalParams: true + additionalParams: true, + acceptVariable: true }, { label: 'Top K', diff --git a/packages/components/nodes/vectorstores/Couchbase/Couchbase.ts b/packages/components/nodes/vectorstores/Couchbase/Couchbase.ts index 83c45271e..cbc25fb4a 100644 --- a/packages/components/nodes/vectorstores/Couchbase/Couchbase.ts +++ b/packages/components/nodes/vectorstores/Couchbase/Couchbase.ts @@ -96,7 +96,8 @@ class Couchbase_VectorStores implements INode { name: 'couchbaseMetadataFilter', type: 'json', optional: true, - additionalParams: true + additionalParams: true, + acceptVariable: true }, { label: 'Top K', diff --git a/packages/components/nodes/vectorstores/Kendra/Kendra.ts b/packages/components/nodes/vectorstores/Kendra/Kendra.ts index 5bbe16d79..d870558c7 100644 --- a/packages/components/nodes/vectorstores/Kendra/Kendra.ts +++ b/packages/components/nodes/vectorstores/Kendra/Kendra.ts @@ -86,7 +86,8 @@ class Kendra_VectorStores implements INode { description: 'Optional filter to apply when retrieving documents', type: 'json', optional: true, - additionalParams: true + additionalParams: true, + acceptVariable: true } ] // Note: Kendra doesn't support MMR search, but keeping the structure consistent diff --git a/packages/components/nodes/vectorstores/Meilisearch/Meilisearch.ts b/packages/components/nodes/vectorstores/Meilisearch/Meilisearch.ts index eed428cdb..7be405c67 100644 --- a/packages/components/nodes/vectorstores/Meilisearch/Meilisearch.ts +++ b/packages/components/nodes/vectorstores/Meilisearch/Meilisearch.ts @@ -89,7 +89,8 @@ class MeilisearchRetriever_node implements INode { type: 'string', description: 'search filter to apply on searchable attributes', additionalParams: true, - optional: true + optional: true, + acceptVariable: true } ] this.outputs = [ diff --git a/packages/components/nodes/vectorstores/Milvus/Milvus.ts b/packages/components/nodes/vectorstores/Milvus/Milvus.ts index ac2e4bd2f..527d57bf5 100644 --- a/packages/components/nodes/vectorstores/Milvus/Milvus.ts +++ b/packages/components/nodes/vectorstores/Milvus/Milvus.ts @@ -100,7 +100,8 @@ class Milvus_VectorStores implements INode { description: 'Filter data with a simple string query. Refer Milvus docs for more details.', placeholder: 'doc=="a"', - additionalParams: true + additionalParams: true, + acceptVariable: true }, { label: 'Top K', diff --git a/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDBAtlas.ts b/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDBAtlas.ts index 785c64484..8fb6efc74 100644 --- a/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDBAtlas.ts +++ b/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDBAtlas.ts @@ -90,7 +90,8 @@ class MongoDBAtlas_VectorStores implements INode { name: 'mongoMetadataFilter', type: 'json', optional: true, - additionalParams: true + additionalParams: true, + acceptVariable: true }, { label: 'Top K', diff --git a/packages/components/nodes/vectorstores/Pinecone/Pinecone.ts b/packages/components/nodes/vectorstores/Pinecone/Pinecone.ts index c9ff257fb..972f8b712 100644 --- a/packages/components/nodes/vectorstores/Pinecone/Pinecone.ts +++ b/packages/components/nodes/vectorstores/Pinecone/Pinecone.ts @@ -97,7 +97,8 @@ class Pinecone_VectorStores implements INode { name: 'pineconeMetadataFilter', type: 'json', optional: true, - additionalParams: true + additionalParams: true, + acceptVariable: true }, { label: 'Top K', diff --git a/packages/components/nodes/vectorstores/Postgres/Postgres.ts b/packages/components/nodes/vectorstores/Postgres/Postgres.ts index ad0f82bb0..ce4a7ba22 100644 --- a/packages/components/nodes/vectorstores/Postgres/Postgres.ts +++ b/packages/components/nodes/vectorstores/Postgres/Postgres.ts @@ -194,7 +194,8 @@ class Postgres_VectorStores implements INode { name: 'pgMetadataFilter', type: 'json', additionalParams: true, - optional: true + optional: true, + acceptVariable: true }, { label: 'Content Column Name', diff --git a/packages/components/nodes/vectorstores/Qdrant/Qdrant.ts b/packages/components/nodes/vectorstores/Qdrant/Qdrant.ts index 2bdbcf353..d6bd2157b 100644 --- a/packages/components/nodes/vectorstores/Qdrant/Qdrant.ts +++ b/packages/components/nodes/vectorstores/Qdrant/Qdrant.ts @@ -171,7 +171,8 @@ class Qdrant_VectorStores implements INode { description: 'Only return points which satisfy the conditions', type: 'json', additionalParams: true, - optional: true + optional: true, + acceptVariable: true } ] this.outputs = [ diff --git a/packages/components/nodes/vectorstores/Supabase/Supabase.ts b/packages/components/nodes/vectorstores/Supabase/Supabase.ts index 72f84f202..9a088eb24 100644 --- a/packages/components/nodes/vectorstores/Supabase/Supabase.ts +++ b/packages/components/nodes/vectorstores/Supabase/Supabase.ts @@ -79,7 +79,8 @@ class Supabase_VectorStores implements INode { name: 'supabaseMetadataFilter', type: 'json', optional: true, - additionalParams: true + additionalParams: true, + acceptVariable: true }, { label: 'Supabase RPC Filter', diff --git a/packages/components/nodes/vectorstores/Upstash/Upstash.ts b/packages/components/nodes/vectorstores/Upstash/Upstash.ts index d126daa86..2886afcfa 100644 --- a/packages/components/nodes/vectorstores/Upstash/Upstash.ts +++ b/packages/components/nodes/vectorstores/Upstash/Upstash.ts @@ -80,7 +80,8 @@ class Upstash_VectorStores implements INode { name: 'upstashMetadataFilter', type: 'string', optional: true, - additionalParams: true + additionalParams: true, + acceptVariable: true }, { label: 'Top K', diff --git a/packages/components/nodes/vectorstores/Vectara/Vectara.ts b/packages/components/nodes/vectorstores/Vectara/Vectara.ts index 9514bdc8f..ae752602f 100644 --- a/packages/components/nodes/vectorstores/Vectara/Vectara.ts +++ b/packages/components/nodes/vectorstores/Vectara/Vectara.ts @@ -65,7 +65,8 @@ class Vectara_VectorStores implements INode { 'Filter to apply to Vectara metadata. Refer to the documentation on how to use Vectara filters with Flowise.', type: 'string', additionalParams: true, - optional: true + optional: true, + acceptVariable: true }, { label: 'Sentences Before', diff --git a/packages/components/nodes/vectorstores/Weaviate/Weaviate.ts b/packages/components/nodes/vectorstores/Weaviate/Weaviate.ts index 5d83eaa9a..05bfe2398 100644 --- a/packages/components/nodes/vectorstores/Weaviate/Weaviate.ts +++ b/packages/components/nodes/vectorstores/Weaviate/Weaviate.ts @@ -120,7 +120,8 @@ class Weaviate_VectorStores implements INode { name: 'weaviateFilter', type: 'json', additionalParams: true, - optional: true + optional: true, + acceptVariable: true } ] addMMRInputParams(this.inputs) diff --git a/packages/components/nodes/vectorstores/Zep/Zep.ts b/packages/components/nodes/vectorstores/Zep/Zep.ts index 5caa8e515..8158ccc89 100644 --- a/packages/components/nodes/vectorstores/Zep/Zep.ts +++ b/packages/components/nodes/vectorstores/Zep/Zep.ts @@ -69,7 +69,8 @@ class Zep_VectorStores implements INode { name: 'zepMetadataFilter', type: 'json', optional: true, - additionalParams: true + additionalParams: true, + acceptVariable: true }, { label: 'Embedding Dimension', diff --git a/packages/components/nodes/vectorstores/ZepCloud/ZepCloud.ts b/packages/components/nodes/vectorstores/ZepCloud/ZepCloud.ts index c7e68f05f..862b496bd 100644 --- a/packages/components/nodes/vectorstores/ZepCloud/ZepCloud.ts +++ b/packages/components/nodes/vectorstores/ZepCloud/ZepCloud.ts @@ -59,7 +59,8 @@ class Zep_CloudVectorStores implements INode { name: 'zepMetadataFilter', type: 'json', optional: true, - additionalParams: true + additionalParams: true, + acceptVariable: true }, { label: 'Top K',