diff --git a/api/apps/sdk/dify_retrieval.py b/api/apps/sdk/dify_retrieval.py index 0e80b4587..446d4d74a 100644 --- a/api/apps/sdk/dify_retrieval.py +++ b/api/apps/sdk/dify_retrieval.py @@ -24,7 +24,7 @@ from api.db.services.llm_service import LLMBundle from api import settings from api.utils.api_utils import validate_request, build_error_result, apikey_required from rag.app.tag import label_question -from api.db.services.dialog_service import meta_filter +from api.db.services.dialog_service import meta_filter, convert_conditions @manager.route('/dify/retrieval', methods=['POST']) # noqa: F821 @@ -101,19 +101,4 @@ def retrieval(tenant_id): logging.exception(e) return build_error_result(message=str(e), code=settings.RetCode.SERVER_ERROR) -def convert_conditions(metadata_condition): - if metadata_condition is None: - metadata_condition = {} - op_mapping = { - "is": "=", - "not is": "≠" - } - return [ - { - "op": op_mapping.get(cond["comparison_operator"], cond["comparison_operator"]), - "key": cond["name"], - "value": cond["value"] - } - for cond in metadata_condition.get("conditions", []) -] diff --git a/api/apps/sdk/doc.py b/api/apps/sdk/doc.py index 50e6f7bba..5009b6fee 100644 --- a/api/apps/sdk/doc.py +++ b/api/apps/sdk/doc.py @@ -35,8 +35,7 @@ from api.db.services.knowledgebase_service import KnowledgebaseService from api.db.services.llm_service import LLMBundle from api.db.services.tenant_llm_service import TenantLLMService from api.db.services.task_service import TaskService, queue_tasks -from api.db.services.dialog_service import meta_filter -from api.apps.sdk.dify_retrieval import convert_conditions +from api.db.services.dialog_service import meta_filter, convert_conditions from api.utils.api_utils import check_duplicate_ids, construct_json_result, get_error_data_result, get_parser_config, get_result, server_error_response, token_required from rag.app.qa import beAdoc, rmPrefix from rag.app.tag import label_question diff --git a/api/db/services/dialog_service.py b/api/db/services/dialog_service.py index b56459a56..3855c1ded 100644 --- a/api/db/services/dialog_service.py +++ b/api/db/services/dialog_service.py @@ -21,11 +21,9 @@ from copy import deepcopy from datetime import datetime from functools import partial from timeit import default_timer as timer - import trio from langfuse import Langfuse from peewee import fn - from agentic_reasoning import DeepResearcher from api import settings from api.db import LLMType, ParserType, StatusEnum @@ -255,6 +253,23 @@ def repair_bad_citation_formats(answer: str, kbinfos: dict, idx: set): return answer, idx +def convert_conditions(metadata_condition): + if metadata_condition is None: + metadata_condition = {} + op_mapping = { + "is": "=", + "not is": "≠" + } + return [ + { + "op": op_mapping.get(cond["comparison_operator"], cond["comparison_operator"]), + "key": cond["name"], + "value": cond["value"] + } + for cond in metadata_condition.get("conditions", []) +] + + def meta_filter(metas: dict, filters: list[dict]): doc_ids = set([])