OpenRAG 0.5.1.dev4__py3-none-any.whl → 0.5.1.dev6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -636,7 +636,7 @@ class OneDriveConnector(BaseConnector):
636
636
 
637
637
  # Check if ID contains '!' which indicates driveId!itemId format
638
638
  if "!" in file_id:
639
- parts = file_id.rsplit("!", 1)
639
+ parts = file_id.split("!", 1)
640
640
  if len(parts) == 2:
641
641
  drive_id = parts[0]
642
642
  item_id = parts[1]
@@ -735,7 +735,7 @@ class OneDriveConnector(BaseConnector):
735
735
 
736
736
  # Build URL based on ID format
737
737
  if "!" in file_id:
738
- parts = file_id.rsplit("!", 1)
738
+ parts = file_id.split("!", 1)
739
739
  if len(parts) == 2:
740
740
  drive_id = parts[0]
741
741
  item_id = parts[1]
@@ -747,11 +747,8 @@ class OneDriveConnector(BaseConnector):
747
747
  return content
748
748
 
749
749
  # Try drives endpoint for driveId!itemId format
750
- if not item_id.startswith("s"):
751
- url = f"{self._graph_base_url}/drives/{drive_id}/items/{item_id}/content"
752
- logger.info(f"Downloading via drives endpoint: {url}")
753
- else:
754
- url = f"{self._graph_base_url}/me/drive/items/{file_id}/content"
750
+ url = f"{self._graph_base_url}/drives/{drive_id}/items/{file_id}/content"
751
+ logger.info(f"Downloading via drives endpoint: {url}")
755
752
  else:
756
753
  url = f"{self._graph_base_url}/me/drive/items/{file_id}/content"
757
754
  else:
@@ -886,18 +883,7 @@ class OneDriveConnector(BaseConnector):
886
883
  files: list[dict[str, Any]] = []
887
884
 
888
885
  try:
889
- drive_id = None
890
- if "!" in folder_id:
891
- parts = folder_id.rsplit("!", 1)
892
- if len(parts) == 2:
893
- potential_drive_id, item_id = parts
894
- if not item_id.startswith("s"):
895
- drive_id = potential_drive_id
896
- url = f"{self._graph_base_url}/drives/{drive_id}/items/{item_id}/children"
897
-
898
- if not drive_id:
899
- url = f"{self._graph_base_url}/me/drive/items/{folder_id}/children"
900
-
886
+ url = f"{self._graph_base_url}/me/drive/items/{folder_id}/children"
901
887
  params = dict(self._default_params)
902
888
 
903
889
  response = await self._make_graph_request(url, params=params)
models/processors.py CHANGED
@@ -27,6 +27,15 @@ from .tasks import FileTask, TaskStatus, UploadTask
27
27
 
28
28
  logger = get_logger(__name__)
29
29
 
30
+ # Image file extensions that require OCR
31
+ IMAGE_EXTENSIONS = {"bmp", "jpeg", "jpg", "png", "tiff", "tif", "webp"}
32
+
33
+
34
+ def is_image_file(filename: str) -> bool:
35
+ """Check if a file is an image based on its extension."""
36
+ ext = filename.split(".")[-1].lower() if "." in filename else ""
37
+ return ext in IMAGE_EXTENSIONS
38
+
30
39
  if TYPE_CHECKING:
31
40
  from connectors.base import DocumentACL
32
41
 
@@ -455,6 +464,18 @@ class DocumentFileProcessor(TaskProcessor):
455
464
  file_task.updated_at = time.time()
456
465
 
457
466
  try:
467
+ # Check if OCR is disabled and file is an image
468
+ filename = os.path.basename(item)
469
+ config = get_openrag_config()
470
+ ocr_enabled = config.knowledge.ocr
471
+
472
+ if not ocr_enabled and is_image_file(filename):
473
+ file_task.status = TaskStatus.FAILED
474
+ file_task.error = f"The file '{filename}' is an image file and cannot be ingested because OCR is disabled."
475
+ file_task.updated_at = time.time()
476
+ upload_task.failed_files += 1
477
+ return
478
+
458
479
  # Compute hash
459
480
  file_hash = hash_id(item)
460
481
 
@@ -578,6 +599,17 @@ class ConnectorFileProcessor(TaskProcessor):
578
599
  file_task.updated_at = time.time()
579
600
  upload_task.failed_files += 1
580
601
  return
602
+
603
+ # Check if OCR is disabled and file is an image
604
+ config = get_openrag_config()
605
+ ocr_enabled = config.knowledge.ocr
606
+
607
+ if not ocr_enabled and is_image_file(file_task.filename):
608
+ file_task.status = TaskStatus.FAILED
609
+ file_task.error = f"The file '{file_task.filename}' is an image file and cannot be ingested because OCR is disabled."
610
+ file_task.updated_at = time.time()
611
+ upload_task.failed_files += 1
612
+ return
581
613
 
582
614
  # Get file content from connector
583
615
  try:
@@ -642,6 +674,17 @@ class ConnectorFileProcessor(TaskProcessor):
642
674
  file_task.updated_at = time.time()
643
675
  upload_task.failed_files += 1
644
676
  return
677
+
678
+ # Check if OCR is disabled and file is an image
679
+ config = get_openrag_config()
680
+ ocr_enabled = config.knowledge.ocr
681
+
682
+ if not ocr_enabled and is_image_file(name):
683
+ file_task.status = TaskStatus.FAILED
684
+ file_task.error = f"The file '{name}' is an image file and cannot be ingested because OCR is disabled."
685
+ file_task.updated_at = time.time()
686
+ upload_task.failed_files += 1
687
+ return
645
688
 
646
689
  if not self.user_id:
647
690
  raise ValueError("user_id not provided to ConnectorFileProcessor")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openrag
3
- Version: 0.5.1.dev4
3
+ Version: 0.5.1.dev6
4
4
  Summary: OpenRAG is a comprehensive Retrieval-Augmented Generation platform that enables intelligent document search and AI-powered conversations.
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Environment :: Console
@@ -59,7 +59,7 @@ connectors/ibm_cos/connector.py,sha256=HqgfpaDKl-q5gHzIiLCtCXrnaMnMX2E1HM7Xv6Yq6
59
59
  connectors/ibm_cos/models.py,sha256=tQc0xSH_bFP_T-lqj010nJLqe6NWF2wFPCvuVIVzUq4,630
60
60
  connectors/ibm_cos/support.py,sha256=0vWHSfYQiZRaPk0T0aIzTG7NYwbEdh7WWCyJAj2PhMU,2205
61
61
  connectors/onedrive/__init__.py,sha256=YJs21dmKpdWRobGEyQex-j8Hg6y7zwpkZvOOqPGQD08,124
62
- connectors/onedrive/connector.py,sha256=_ofbJTgFCW4vpLKVe7Ldhuy21Z7nICrVeprBfmDEoi8,42900
62
+ connectors/onedrive/connector.py,sha256=7zyhDWApibUx_0IqV57YURqSNtFA6IaTzQZnULTLjZ8,42281
63
63
  connectors/onedrive/oauth.py,sha256=OPMeC-uaTLUMGpEWNZzgjGxkRtfxbd4ejZ4LarieFs0,17215
64
64
  connectors/sharepoint/__init__.py,sha256=uZJE-UKNUdaugXLelLbsqpxuwWalW4306yMhwYbYiLY,132
65
65
  connectors/sharepoint/connector.py,sha256=GRP_8dg_Bt6bnV_WB5yRoSyZMlR7HDD4iXK2uiYovVk,39966
@@ -68,10 +68,10 @@ connectors/sharepoint/utils.py,sha256=OBNEbXb8uAfR-iR-ML0aOojGfGj03vJnKm9DbYf2hW
68
68
  mcp_http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
69
  mcp_http/server.py,sha256=JutP94fQRCizeCN69kKkdYDFE71L3DqLTCcb397T8Eo,7738
70
70
  models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- models/processors.py,sha256=1EDaMugIigfSu31Yxf54VRNrag1KXVE9Gdxl6VwFNZc,42351
71
+ models/processors.py,sha256=a5q6E33OU0TVwU-jS2D9qP6u5VdKhjNOTYhhgLVqgyk,44361
72
72
  models/tasks.py,sha256=EySl0-h2YHG0QfKDswVvO3v4tKyz_t_9e6z8IwKj61Y,1951
73
73
  models/url.py,sha256=92rsrLLyIqUErYipYz5QwUNTdHwJ2jBRV7PIVpncTyo,5764
74
- openrag-0.5.1.dev4.dist-info/licenses/LICENSE,sha256=jWcnPXkUxEinX60Yn-_zjsY9i84vz2QSb0fi53djOkg,11334
74
+ openrag-0.5.1.dev6.dist-info/licenses/LICENSE,sha256=jWcnPXkUxEinX60Yn-_zjsY9i84vz2QSb0fi53djOkg,11334
75
75
  services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
76
  services/api_key_service.py,sha256=HFULyy47ixp38XBx-BVmCA1Wggv9v98HBTZT4XLTr8M,11923
77
77
  services/auth_service.py,sha256=nAKTvMyX-YUtiNfKF06Dq4E4iwHPBhfKR6nliqGpOSs,22090
@@ -158,8 +158,8 @@ utils/telemetry/__init__.py,sha256=xoStY8hoYWnVe0B_jNthSdzRb7AxCT0rhM8ba9Q0Obg,2
158
158
  utils/telemetry/category.py,sha256=wei3V5WyUaiadYjEE5s0ys9PY0TjnebIvTykQU0P_2k,1114
159
159
  utils/telemetry/client.py,sha256=RhjW1a27w7W6gHt9X7AxdRPdZGmCEQDPskkxj5nsuiQ,12500
160
160
  utils/telemetry/message_id.py,sha256=IAu0wBVNOGPcSlQ0bAzvqIYr1Ac_n8wSTSxXzq_tiV0,9634
161
- openrag-0.5.1.dev4.dist-info/METADATA,sha256=ZK0HBRCzAepF3QTkTwG4eKR1_QZXHs_QhkxmdhiCH2Q,7818
162
- openrag-0.5.1.dev4.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
163
- openrag-0.5.1.dev4.dist-info/entry_points.txt,sha256=ArKNHB63I3K8vynNkogvZOLmmQFpIsHDL7MvreCmju4,45
164
- openrag-0.5.1.dev4.dist-info/top_level.txt,sha256=5vfLBIkzuwBJrizhCSZiXV7NTzTRIMlNLsyzYDEeCF8,125
165
- openrag-0.5.1.dev4.dist-info/RECORD,,
161
+ openrag-0.5.1.dev6.dist-info/METADATA,sha256=jzIhgRHmRVXH9d_up7DS4F9zcp5GGp8GAKs2WslEpoo,7818
162
+ openrag-0.5.1.dev6.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
163
+ openrag-0.5.1.dev6.dist-info/entry_points.txt,sha256=ArKNHB63I3K8vynNkogvZOLmmQFpIsHDL7MvreCmju4,45
164
+ openrag-0.5.1.dev6.dist-info/top_level.txt,sha256=5vfLBIkzuwBJrizhCSZiXV7NTzTRIMlNLsyzYDEeCF8,125
165
+ openrag-0.5.1.dev6.dist-info/RECORD,,