diff --git a/rag/svr/task_executor.py b/rag/svr/task_executor.py index 99dfe6dfa7..c81555c76e 100644 --- a/rag/svr/task_executor.py +++ b/rag/svr/task_executor.py @@ -407,25 +407,26 @@ async def build_chunks(task, progress_callback): raise progress_callback(msg="Question generation {} chunks completed in {:.2f}s".format(len(docs), timer() - st)) - if task["parser_config"].get("enable_metadata", False) and task["parser_config"].get("metadata"): + if task["parser_config"].get("enable_metadata", False) and (task["parser_config"].get("metadata") or task["parser_config"].get("built_in_metadata")): st = timer() progress_callback(msg="Start to generate meta-data for every chunk ...") chat_model_config = get_model_config_by_type_and_name(task["tenant_id"], LLMType.CHAT, task["llm_id"]) chat_mdl = LLMBundle(task["tenant_id"], chat_model_config, lang=task["language"]) async def gen_metadata_task(chat_mdl, d): + metadata_conf = list(task["parser_config"].get("metadata", [])) + list(task["parser_config"].get("built_in_metadata") or []) cached = get_llm_cache(chat_mdl.llm_name, d["content_with_weight"], "metadata", - task["parser_config"]["metadata"]) + metadata_conf) if not cached: if has_canceled(task["id"]): progress_callback(-1, msg="Task has been canceled.") return async with chat_limiter: cached = await gen_metadata(chat_mdl, - turn2jsonschema(task["parser_config"]["metadata"]), + turn2jsonschema(metadata_conf), d["content_with_weight"]) set_llm_cache(chat_mdl.llm_name, d["content_with_weight"], cached, "metadata", - task["parser_config"]["metadata"]) + metadata_conf) if cached: d["metadata_obj"] = cached