diff --git a/api/controllers/console/datasets/datasets.py b/api/controllers/console/datasets/datasets.py index 6532e046c9..fed304f728 100644 --- a/api/controllers/console/datasets/datasets.py +++ b/api/controllers/console/datasets/datasets.py @@ -79,7 +79,7 @@ class DatasetListApi(Resource): data = marshal(datasets, dataset_detail_fields) for item in data: # convert embedding_model_provider to plugin standard format - if item["indexing_technique"] == "high_quality": + if item["indexing_technique"] == "high_quality" and item["embedding_model_provider"]: item["embedding_model_provider"] = str(ModelProviderID(item["embedding_model_provider"])) item_model = f"{item['embedding_model']}:{item['embedding_model_provider']}" if item_model in model_names: diff --git a/api/controllers/service_api/dataset/dataset.py b/api/controllers/service_api/dataset/dataset.py index 49acdd693a..8ab743dc44 100644 --- a/api/controllers/service_api/dataset/dataset.py +++ b/api/controllers/service_api/dataset/dataset.py @@ -7,6 +7,7 @@ from controllers.service_api import api from controllers.service_api.dataset.error import DatasetInUseError, DatasetNameDuplicateError from controllers.service_api.wraps import DatasetApiResource from core.model_runtime.entities.model_entities import ModelType +from core.plugin.entities.plugin import ModelProviderID from core.provider_manager import ProviderManager from fields.dataset_fields import dataset_detail_fields from libs.login import current_user @@ -48,7 +49,8 @@ class DatasetListApi(DatasetApiResource): data = marshal(datasets, dataset_detail_fields) for item in data: - if item["indexing_technique"] == "high_quality": + if item["indexing_technique"] == "high_quality" and item["embedding_model_provider"]: + item["embedding_model_provider"] = str(ModelProviderID(item["embedding_model_provider"])) item_model = f"{item['embedding_model']}:{item['embedding_model_provider']}" if item_model in model_names: item["embedding_available"] = True diff --git a/api/core/rag/retrieval/dataset_retrieval.py b/api/core/rag/retrieval/dataset_retrieval.py index 62d5e4b8fe..f56b2db8a6 100644 --- a/api/core/rag/retrieval/dataset_retrieval.py +++ b/api/core/rag/retrieval/dataset_retrieval.py @@ -870,7 +870,7 @@ class DatasetRetrieval: for condition in metadata_filtering_conditions.conditions: # type: ignore metadata_name = condition.name expected_value = condition.value - if expected_value or condition.comparison_operator in ("empty", "not empty"): + if expected_value is not None or condition.comparison_operator in ("empty", "not empty"): if isinstance(expected_value, str): expected_value = self._replace_metadata_filter_value(expected_value, inputs) filters = self._process_metadata_filter_func( diff --git a/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py b/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py index e602abb66c..5643e37ce0 100644 --- a/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py +++ b/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py @@ -356,7 +356,7 @@ class KnowledgeRetrievalNode(LLMNode): for condition in node_data.metadata_filtering_conditions.conditions: # type: ignore metadata_name = condition.name expected_value = condition.value - if expected_value or condition.comparison_operator in ("empty", "not empty"): + if expected_value is not None or condition.comparison_operator in ("empty", "not empty"): if isinstance(expected_value, str): expected_value = self.graph_runtime_state.variable_pool.convert_template( expected_value diff --git a/web/app/components/workflow/nodes/_base/hooks/use-node-help-link.ts b/web/app/components/workflow/nodes/_base/hooks/use-node-help-link.ts index 866c784517..0509848101 100644 --- a/web/app/components/workflow/nodes/_base/hooks/use-node-help-link.ts +++ b/web/app/components/workflow/nodes/_base/hooks/use-node-help-link.ts @@ -6,7 +6,7 @@ export const useNodeHelpLink = (nodeType: BlockEnum) => { const language = useGetLanguage() const prefixLink = useMemo(() => { if (language === 'zh_Hans') - return 'https://docs.dify.ai/v/zh-hans/guides/workflow/node/' + return 'https://docs.dify.ai/zh-hans/guides/workflow/node/' return 'https://docs.dify.ai/guides/workflow/node/' }, [language]) @@ -34,6 +34,7 @@ export const useNodeHelpLink = (nodeType: BlockEnum) => { [BlockEnum.Tool]: 'tools', [BlockEnum.DocExtractor]: 'doc-extractor', [BlockEnum.ListFilter]: 'list-operator', + [BlockEnum.Agent]: 'agent', } }