aboutsummaryrefslogtreecommitdiff
path: root/R2R/r2r/main/api/routes/ingestion.py
diff options
context:
space:
mode:
Diffstat (limited to 'R2R/r2r/main/api/routes/ingestion.py')
-rwxr-xr-xR2R/r2r/main/api/routes/ingestion.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/R2R/r2r/main/api/routes/ingestion.py b/R2R/r2r/main/api/routes/ingestion.py
new file mode 100755
index 00000000..be583602
--- /dev/null
+++ b/R2R/r2r/main/api/routes/ingestion.py
@@ -0,0 +1,42 @@
+from fastapi import Depends, File, UploadFile
+
+from ...engine import R2REngine
+from ...services.ingestion_service import IngestionService
+from ..requests import R2RIngestFilesRequest, R2RUpdateFilesRequest
+from .base_router import BaseRouter
+
+
+class IngestionRouter(BaseRouter):
+ def __init__(self, engine: R2REngine):
+ super().__init__(engine)
+ self.setup_routes()
+
+ def setup_routes(self):
+ @self.router.post("/ingest_files")
+ @self.base_endpoint
+ async def ingest_files_app(
+ files: list[UploadFile] = File(...),
+ request: R2RIngestFilesRequest = Depends(
+ IngestionService.parse_ingest_files_form_data
+ ),
+ ):
+ return await self.engine.aingest_files(
+ files=files,
+ metadatas=request.metadatas,
+ document_ids=request.document_ids,
+ versions=request.versions,
+ )
+
+ @self.router.post("/update_files")
+ @self.base_endpoint
+ async def update_files_app(
+ files: list[UploadFile] = File(...),
+ request: R2RUpdateFilesRequest = Depends(
+ IngestionService.parse_update_files_form_data
+ ),
+ ):
+ return await self.engine.aupdate_files(
+ files=files,
+ metadatas=request.metadatas,
+ document_ids=request.document_ids,
+ )