diff --git a/core/api.py b/core/api.py index 1f6dacce..e4401f34 100644 --- a/core/api.py +++ b/core/api.py @@ -378,6 +378,7 @@ async def ingest_file( metadata: str = Form("{}"), rules: str = Form("[]"), auth: AuthContext = Depends(verify_token), + external_id: Optional[str] = Form(None), use_colpali: Optional[bool] = None, folder_name: Optional[str] = Form(None), end_user_id: Optional[str] = Form(None), @@ -421,6 +422,7 @@ def str2bool(v): # Create a document with processing status doc = Document( content_type=file.content_type, + external_id=external_id if external_id else None, filename=file.filename, metadata=metadata_dict, owner={"type": auth.entity_type.value, "id": auth.entity_id}, diff --git a/core/models/request.py b/core/models/request.py index f67d5348..7446a401 100644 --- a/core/models/request.py +++ b/core/models/request.py @@ -49,6 +49,7 @@ class IngestTextRequest(BaseModel): use_colpali: Optional[bool] = None folder_name: Optional[str] = Field(None, description="Optional folder scope for the operation") end_user_id: Optional[str] = Field(None, description="Optional end-user scope for the operation") + external_id: Optional[str] = None class CreateGraphRequest(BaseModel): diff --git a/core/services/document_service.py b/core/services/document_service.py index f652b657..fb5d338e 100644 --- a/core/services/document_service.py +++ b/core/services/document_service.py @@ -555,6 +555,7 @@ async def query( async def ingest_text( self, content: str, + external_id=external_id if external_id else None, filename: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, auth: AuthContext = None, @@ -574,8 +575,10 @@ async def ingest_text( settings = get_settings() doc = Document( + external_id=external_id, content_type="text/plain", filename=filename, + content=content, metadata=metadata or {}, owner={"type": auth.entity_type, "id": auth.entity_id}, access_control={