mirror of
https://github.com/farcasclaudiu/Flowise.git
synced 2026-06-28 17:01:00 +03:00
Bugfix/Get value with nested metadata filter (#3695)
add ability to get value with nested metadata filter
This commit is contained in:
@@ -3,10 +3,9 @@ import { CallbackManager, CallbackManagerForToolRun, Callbacks, parseCallbackCon
|
||||
import { BaseDynamicToolInput, DynamicTool, StructuredTool, ToolInputParsingException } from '@langchain/core/tools'
|
||||
import { BaseRetriever } from '@langchain/core/retrievers'
|
||||
import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface'
|
||||
import { getBaseClasses } from '../../../src/utils'
|
||||
import { getBaseClasses, resolveFlowObjValue } from '../../../src/utils'
|
||||
import { SOURCE_DOCUMENTS_PREFIX } from '../../../src/agents'
|
||||
import { RunnableConfig } from '@langchain/core/runnables'
|
||||
import { customGet } from '../../sequentialagents/commonUtils'
|
||||
import { VectorStoreRetriever } from '@langchain/core/vectorstores'
|
||||
|
||||
const howToUse = `Add additional filters to vector store. You can also filter with flow config, including the current "state":
|
||||
@@ -199,14 +198,7 @@ class Retriever_Tools implements INode {
|
||||
|
||||
const metadatafilter =
|
||||
typeof retrieverToolMetadataFilter === 'object' ? retrieverToolMetadataFilter : JSON.parse(retrieverToolMetadataFilter)
|
||||
const newMetadataFilter: any = {}
|
||||
for (const key in metadatafilter) {
|
||||
let value = metadatafilter[key]
|
||||
if (value.startsWith('$flow')) {
|
||||
value = customGet(flowObj, value)
|
||||
}
|
||||
newMetadataFilter[key] = value
|
||||
}
|
||||
const newMetadataFilter = resolveFlowObjValue(metadatafilter, flowObj)
|
||||
|
||||
const vectorStore = (retriever as VectorStoreRetriever<any>).vectorStore
|
||||
vectorStore.filter = newMetadataFilter
|
||||
|
||||
Reference in New Issue
Block a user