Fallback to file based URI when document context URI is unset

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
This commit is contained in:
Debanjum
2025-07-06 11:44:36 -07:00
parent 9dc146bb08
commit 4c33d1a526

View File

@@ -14,7 +14,7 @@ from django.dispatch import receiver
from pgvector.django import VectorField
from phonenumber_field.modelfields import PhoneNumberField
from pydantic import BaseModel as PydanticBaseModel
from pydantic import Field
from pydantic import Field, model_validator
logger = logging.getLogger(__name__)
@@ -26,6 +26,19 @@ class Context(PydanticBaseModel):
uri: str
query: Optional[str] = None
@model_validator(mode="after")
def set_uri_fallback(self):
"""Set the URI to existing deeplink URI. Fallback to file based URI if unset."""
if self.uri and self.uri.strip():
self.uri = self.uri
elif self.file and (self.file.startswith("http") or self.file.startswith("file://")):
self.uri = self.file
elif self.file:
self.uri = f"file://{self.file}"
else:
self.uri = None
return self
class CodeContextFile(PydanticBaseModel):
filename: str