diff --git a/api/apps/document_app.py b/api/apps/document_app.py index 067d10da2..98e50723c 100644 --- a/api/apps/document_app.py +++ b/api/apps/document_app.py @@ -611,6 +611,13 @@ async def run(): settings.docStoreConn.delete({"doc_id": id}, search.index_name(tenant_id), doc.kb_id) if str(req["run"]) == TaskStatus.RUNNING.value: + if req.get("apply_kb"): + e, kb = KnowledgebaseService.get_by_id(doc.kb_id) + if not e: + raise LookupError("Can't find this dataset!") + doc.parser_config["enable_metadata"] = kb.parser_config.get("enable_metadata", False) + doc.parser_config["metadata"] = kb.parser_config.get("metadata", {}) + DocumentService.update_parser_config(doc.id, doc.parser_config) doc_dict = doc.to_dict() DocumentService.run(tenant_id, doc_dict, kb_table_num_map) diff --git a/rag/prompts/generator.py b/rag/prompts/generator.py index 5a11294ba..38d79a47c 100644 --- a/rag/prompts/generator.py +++ b/rag/prompts/generator.py @@ -827,7 +827,7 @@ async def relevant_chunks_with_toc(query: str, toc:list[dict], chat_mdl, topn: i META_DATA = load_prompt("meta_data") async def gen_metadata(chat_mdl, schema:dict, content:str): template = PROMPT_JINJA_ENV.from_string(META_DATA) - for k, desc in schema.items(): + for k, desc in schema["properties"].items(): if "enum" in desc and not desc.get("enum"): del desc["enum"] if desc.get("enum"):