nv-ingest 2025.12.14.dev20251214__py3-none-any.whl → 2025.12.15.dev20251215__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.
nv_ingest/api/main.py CHANGED
@@ -23,7 +23,7 @@ logger = logging.getLogger(__name__)
23
23
  app = FastAPI(
24
24
  title="NV-Ingest Microservice",
25
25
  description="Service for ingesting heterogenous datatypes",
26
- version="25.4.2",
26
+ version="26.1.0",
27
27
  contact={
28
28
  "name": "NVIDIA Corporation",
29
29
  "url": "https://nvidia.com",
@@ -0,0 +1,64 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-25, NVIDIA CORPORATION & AFFILIATES.
2
+ # All rights reserved.
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ # Added this no-op UDF ray stage to the pipeline to help speed up the LLM api calls
6
+
7
+ """
8
+ UDF Parallel Stage - A high-concurrency no-op stage for parallel UDF execution.
9
+
10
+ This stage does nothing except pass messages through, but with high replica count
11
+ it provides a parallel execution pool for UDFs to achieve N-way concurrency.
12
+ """
13
+
14
+ import logging
15
+ from typing import Any, Optional
16
+ from pydantic import BaseModel
17
+ import ray
18
+
19
+ from nv_ingest.framework.orchestration.ray.stages.meta.ray_actor_stage_base import RayActorStage
20
+ from nv_ingest.framework.util.flow_control.udf_intercept import udf_intercept_hook
21
+ from nv_ingest_api.internal.primitives.tracing.tagging import traceable
22
+ from nv_ingest_api.util.exception_handlers.decorators import (
23
+ nv_ingest_node_failure_try_except,
24
+ )
25
+
26
+ logger = logging.getLogger(__name__)
27
+
28
+
29
+ @ray.remote
30
+ class UDFParallelStage(RayActorStage):
31
+ """
32
+ A no-op pass-through stage designed for parallel UDF execution.
33
+
34
+ This stage simply returns the input message unchanged, but when configured
35
+ with multiple replicas, it provides a high-concurrency pool for UDFs to
36
+ achieve parallel execution without blocking.
37
+ """
38
+
39
+ def __init__(self, config: BaseModel, stage_name: Optional[str] = None) -> None:
40
+ super().__init__(config, stage_name=stage_name)
41
+ logger.info(f"UDFParallelStage initialized: {stage_name}")
42
+
43
+ @nv_ingest_node_failure_try_except()
44
+ @traceable()
45
+ @udf_intercept_hook()
46
+ def on_data(self, message: Any) -> Any:
47
+ """
48
+ Pass-through processing that simply returns the message unchanged.
49
+
50
+ The @udf_intercept_hook decorator allows UDFs to target this stage,
51
+ and multiple replicas provide parallel execution capacity.
52
+
53
+ Parameters
54
+ ----------
55
+ message : Any
56
+ The incoming control message.
57
+
58
+ Returns
59
+ -------
60
+ Any
61
+ The unmodified control message.
62
+ """
63
+ # No-op: just return the message
64
+ return message
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nv-ingest
3
- Version: 2025.12.14.dev20251214
3
+ Version: 2025.12.15.dev20251215
4
4
  Summary: Python module for multimodal document ingestion
5
5
  Author-email: Jeremy Dyer <jdyer@nvidia.com>
6
6
  License: Apache License
@@ -1,7 +1,7 @@
1
1
  nv_ingest/__init__.py,sha256=vJLPeuxiIHqbxXPJSu9qe3MS-GPavbOUExyRq83DxxM,895
2
2
  nv_ingest/version.py,sha256=MG7DxlzpnoJI56vqxwzs9WeMAEI3uPhfDiNLs6GN6wI,986
3
3
  nv_ingest/api/__init__.py,sha256=ED07QUqwVyJalH0ahhnnjvc2W_in6TpZZ5nJ6NWU9-Y,271
4
- nv_ingest/api/main.py,sha256=uCCkUNLS1xE9TDYKDOdxEfo_9jQWumpQAPWrxj5m9Go,1706
4
+ nv_ingest/api/main.py,sha256=qXV8YVrC_Jz2dqyirFD4WEKvSTGHsZEFqLMGgHg8TYc,1706
5
5
  nv_ingest/api/tracing.py,sha256=NkqMuUiB6ixGU5MYp3TrODsZDQepJ1kbH8JFHsYjuE0,2940
6
6
  nv_ingest/api/v1/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
7
7
  nv_ingest/api/v1/health.py,sha256=pV-RoVq5y0iBPp0qZoLzd1xKpd0JiHAi0UMyMj99LqU,4740
@@ -55,6 +55,7 @@ nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_edge_base.py,sha256=
55
55
  nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_sink_stage_base.py,sha256=HQJXIuU7VjiQ6fQjHjbNNmIJX5f30cXFB0CJGixgwVo,3633
56
56
  nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_source_stage_base.py,sha256=hP25MLTP2bOEEncrYdxPPqeRyRVbij8aEurR1F1ZmhE,1811
57
57
  nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_stage_base.py,sha256=qiB_ZU5_3bXgvE9C2rvnXIS0Alm6M5PWLCeQm8ZxOy4,29812
58
+ nv_ingest/framework/orchestration/ray/stages/meta/udf_parallel_helper.py,sha256=uB9bFJq_RVcGcHlYIwnzYufNbHw6-3zgO5N_EI-yxng,2142
58
59
  nv_ingest/framework/orchestration/ray/stages/mutate/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
59
60
  nv_ingest/framework/orchestration/ray/stages/mutate/image_dedup.py,sha256=cPLG3ZEqhZkRiSsbL7cbF1zsvOAimd8K5O-qadUR9Mg,3709
60
61
  nv_ingest/framework/orchestration/ray/stages/mutate/image_filter.py,sha256=f1CS8x9uifY1FJ_1lUF0fNNMExvM4zBIF012gxnSpqU,3523
@@ -118,8 +119,8 @@ nv_ingest/pipeline/pipeline_schema.py,sha256=rLZZz2It2o2hVNWrZUJU8CarrqRei1fho3Z
118
119
  nv_ingest/pipeline/config/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
119
120
  nv_ingest/pipeline/config/loaders.py,sha256=75Yr9WYO7j7ghvKTnYLfZXQZEH3J3VEZo5J4TunC_Us,7590
120
121
  nv_ingest/pipeline/config/replica_resolver.py,sha256=dEwqMXNttfw0QeisTGGkp24785jqzVCDAEFyQIffeGc,9369
121
- nv_ingest-2025.12.14.dev20251214.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
122
- nv_ingest-2025.12.14.dev20251214.dist-info/METADATA,sha256=LYFR8u4wl4hcC59q2Q-aUHTPXojFF3Zf8HTa37osQCM,15163
123
- nv_ingest-2025.12.14.dev20251214.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
124
- nv_ingest-2025.12.14.dev20251214.dist-info/top_level.txt,sha256=sjb0ajIsgn3YgftSjZHlYO0HjYAIIhNuXG_AmywCvaU,10
125
- nv_ingest-2025.12.14.dev20251214.dist-info/RECORD,,
122
+ nv_ingest-2025.12.15.dev20251215.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
123
+ nv_ingest-2025.12.15.dev20251215.dist-info/METADATA,sha256=qAcZRl-oe2VXPYp_DGoe_m2odTLjpM69KQvMLZQHdGo,15163
124
+ nv_ingest-2025.12.15.dev20251215.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
125
+ nv_ingest-2025.12.15.dev20251215.dist-info/top_level.txt,sha256=sjb0ajIsgn3YgftSjZHlYO0HjYAIIhNuXG_AmywCvaU,10
126
+ nv_ingest-2025.12.15.dev20251215.dist-info/RECORD,,