From da9a78e79b7553ef253ed966887f8c512f0ce23b Mon Sep 17 00:00:00 2001 From: Debanjum Date: Sun, 6 Jul 2025 12:47:20 -0700 Subject: [PATCH] Make URI field optional for now to handle previously saved documents For files not synced after the previous release, context uri is unset. This results in failure to save chat messages that retrieve documents as the uri field cannot be unset so pre save validation fails. We'd use a db migration to handle this but this is a quick mitigation for now. --- src/khoj/database/models/__init__.py | 2 +- src/khoj/processor/conversation/utils.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/khoj/database/models/__init__.py b/src/khoj/database/models/__init__.py index e3294291..8d903338 100644 --- a/src/khoj/database/models/__init__.py +++ b/src/khoj/database/models/__init__.py @@ -23,7 +23,7 @@ logger = logging.getLogger(__name__) class Context(PydanticBaseModel): compiled: str file: str - uri: str + uri: Optional[str] = None query: Optional[str] = None @model_validator(mode="after") diff --git a/src/khoj/processor/conversation/utils.py b/src/khoj/processor/conversation/utils.py index 58b36baa..09297f30 100644 --- a/src/khoj/processor/conversation/utils.py +++ b/src/khoj/processor/conversation/utils.py @@ -646,7 +646,11 @@ def generate_chatml_messages_with_context( if not is_none_or_empty(chat.context): references = "\n\n".join( - {f"# URI: {item.uri}\n## {item.compiled}\n" for item in chat.context or [] if isinstance(item, dict)} + { + f"# URI: {item.uri or item.file}\n## {item.compiled}\n" + for item in chat.context or [] + if isinstance(item, dict) + } ) message_context += [{"type": "text", "text": f"{prompts.notes_conversation.format(references=references)}"}]