mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-20 21:39:21 +08:00
check metadata_filtering_conditions could be None in auto mode (#18548)
This commit is contained in:
parent
3737e0b087
commit
e2cb7006c4
@ -869,7 +869,9 @@ class DatasetRetrieval:
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
metadata_condition = MetadataCondition(
|
metadata_condition = MetadataCondition(
|
||||||
logical_operator=metadata_filtering_conditions.logical_operator, # type: ignore
|
logical_operator=metadata_filtering_conditions.logical_operator
|
||||||
|
if metadata_filtering_conditions
|
||||||
|
else "or", # type: ignore
|
||||||
conditions=conditions,
|
conditions=conditions,
|
||||||
)
|
)
|
||||||
elif metadata_filtering_mode == "manual":
|
elif metadata_filtering_mode == "manual":
|
||||||
@ -891,10 +893,10 @@ class DatasetRetrieval:
|
|||||||
else:
|
else:
|
||||||
raise ValueError("Invalid metadata filtering mode")
|
raise ValueError("Invalid metadata filtering mode")
|
||||||
if filters:
|
if filters:
|
||||||
if metadata_filtering_conditions.logical_operator == "or": # type: ignore
|
if metadata_filtering_conditions and metadata_filtering_conditions.logical_operator == "and": # type: ignore
|
||||||
document_query = document_query.filter(or_(*filters))
|
|
||||||
else:
|
|
||||||
document_query = document_query.filter(and_(*filters))
|
document_query = document_query.filter(and_(*filters))
|
||||||
|
else:
|
||||||
|
document_query = document_query.filter(or_(*filters))
|
||||||
documents = document_query.all()
|
documents = document_query.all()
|
||||||
# group by dataset_id
|
# group by dataset_id
|
||||||
metadata_filter_document_ids = defaultdict(list) if documents else None # type: ignore
|
metadata_filter_document_ids = defaultdict(list) if documents else None # type: ignore
|
||||||
|
@ -349,7 +349,9 @@ class KnowledgeRetrievalNode(LLMNode):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
metadata_condition = MetadataCondition(
|
metadata_condition = MetadataCondition(
|
||||||
logical_operator=node_data.metadata_filtering_conditions.logical_operator, # type: ignore
|
logical_operator=node_data.metadata_filtering_conditions.logical_operator
|
||||||
|
if node_data.metadata_filtering_conditions
|
||||||
|
else "or", # type: ignore
|
||||||
conditions=conditions,
|
conditions=conditions,
|
||||||
)
|
)
|
||||||
elif node_data.metadata_filtering_mode == "manual":
|
elif node_data.metadata_filtering_mode == "manual":
|
||||||
@ -380,7 +382,10 @@ class KnowledgeRetrievalNode(LLMNode):
|
|||||||
else:
|
else:
|
||||||
raise ValueError("Invalid metadata filtering mode")
|
raise ValueError("Invalid metadata filtering mode")
|
||||||
if filters:
|
if filters:
|
||||||
if node_data.metadata_filtering_conditions.logical_operator == "and": # type: ignore
|
if (
|
||||||
|
node_data.metadata_filtering_conditions
|
||||||
|
and node_data.metadata_filtering_conditions.logical_operator == "and"
|
||||||
|
): # type: ignore
|
||||||
document_query = document_query.filter(and_(*filters))
|
document_query = document_query.filter(and_(*filters))
|
||||||
else:
|
else:
|
||||||
document_query = document_query.filter(or_(*filters))
|
document_query = document_query.filter(or_(*filters))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user