diff --git a/api/db/services/dialog_service.py b/api/db/services/dialog_service.py index e8e7f6d01d..5dacc32bb2 100644 --- a/api/db/services/dialog_service.py +++ b/api/db/services/dialog_service.py @@ -554,9 +554,13 @@ async def async_chat(dialog, messages, stream=True, **kwargs): logging.debug("SQL failed or returned no results, falling back to vector search") param_keys = [p["key"] for p in prompt_config.get("parameters", [])] + if dialog.kb_ids and "knowledge" not in param_keys and "{knowledge}" in prompt_config.get("system", ""): + logging.warning("prompt_config['parameters'] is missing 'knowledge' entry despite kb_ids being set; auto-fixing.") + prompt_config.setdefault("parameters", []).append({"key": "knowledge", "optional": False}) + param_keys.append("knowledge") logging.debug(f"attachments={attachments}, param_keys={param_keys}, embd_mdl={embd_mdl}") - for p in prompt_config["parameters"]: + for p in prompt_config.get("parameters", []): if p["key"] == "knowledge": continue if p["key"] not in kwargs and not p["optional"]: