mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-02 21:19:12 +00:00
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user