Metadata-Version: 2.5
Name: nemo-platform
Version: 0.5.0
Summary: Convenience wrapper distribution for NeMo Platform Python packages
Project-URL: Homepage, https://github.com/NVIDIA-NeMo/nemo-platform
Project-URL: Documentation, https://docs.nvidia.com/nemo-platform
Project-URL: Source, https://github.com/NVIDIA-NeMo/nemo-platform
Author: NVIDIA Corporation
License-Expression: Apache-2.0
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Operating System :: OS Independent
Classifier: Operating System :: POSIX
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: <3.14,>=3.12
Requires-Dist: nemo-platform[nemo-platform-plugin]
Requires-Dist: nemo-platform[nemo-platform-sdk]
Requires-Dist: nemo-platform[nmp-common]
Provides-Extra: aiohttp
Requires-Dist: aiohttp>=3.14.1; extra == 'aiohttp'
Requires-Dist: httpx-aiohttp>=0.1.9; extra == 'aiohttp'
Provides-Extra: all
Requires-Dist: aioboto3>=15.5.0; extra == 'all'
Requires-Dist: aiofiles>=24.1.0; extra == 'all'
Requires-Dist: aiohttp>=3.14.1; extra == 'all'
Requires-Dist: aiohttp[speedups]>=3.14.1; extra == 'all'
Requires-Dist: aiosqlite>=0.20.0; extra == 'all'
Requires-Dist: alembic<2.0.0,>=1.10.4; extra == 'all'
Requires-Dist: alembic>=1.13.1; extra == 'all'
Requires-Dist: anthropic>=0.88.0; extra == 'all'
Requires-Dist: anyio>=4.0.0; extra == 'all'
Requires-Dist: asyncpg>=0.31.0; extra == 'all'
Requires-Dist: base58>=2.1.0; extra == 'all'
Requires-Dist: base58>=2.1.1; extra == 'all'
Requires-Dist: boto3<1.40.62,>=1.40.46; extra == 'all'
Requires-Dist: botocore<1.40.62,>=1.40.46; extra == 'all'
Requires-Dist: clickhouse-connect<1.0,>=0.7; extra == 'all'
Requires-Dist: cloudpickle>=3.1.1; extra == 'all'
Requires-Dist: nemo-platform[data-designer-nemo] ; extra == "all"
Requires-Dist: data-designer==0.9.1; extra == 'all'
Requires-Dist: datasets<=4.3.0,>=3.3.1; extra == 'all'
Requires-Dist: deepagents<0.8,>=0.7.8; extra == 'all'
Requires-Dist: docker>=7.1.0; extra == 'all'
Requires-Dist: duckdb<2.0.0,>=1.1.3; extra == 'all'
Requires-Dist: duckdb>=1.1.3; extra == 'all'
Requires-Dist: fastapi; extra == 'all'
Requires-Dist: fastapi<1.0.0,>=0.115.5; extra == 'all'
Requires-Dist: fastapi>=0.100.0; extra == 'all'
Requires-Dist: fastapi>=0.109.0; extra == 'all'
Requires-Dist: fastapi>=0.115; extra == 'all'
Requires-Dist: fastapi>=0.115.8; extra == 'all'
Requires-Dist: fastapi[standard]>=0.115.4; extra == 'all'
Requires-Dist: fastmcp>=3.2.0; extra == 'all'
Requires-Dist: nemo-platform[nemo-platform-sdk] ; extra == "all"
Requires-Dist: fsspec>=2024.10.0; extra == 'all'
Requires-Dist: nemo-platform[auditor-service] ; extra == "all"
Requires-Dist: greenlet>=3.0.0; extra == 'all'
Requires-Dist: gunicorn>=23.0.0; extra == 'all'
Requires-Dist: harbor>=0.16; extra == 'all'
Requires-Dist: httpx; extra == 'all'
Requires-Dist: httpx>=0.27; extra == 'all'
Requires-Dist: httpx>=0.27.0; extra == 'all'
Requires-Dist: httpx>=0.27.2; extra == 'all'
Requires-Dist: hvac>=2.3.0; extra == 'all'
Requires-Dist: jinja2>=3.1; extra == 'all'
Requires-Dist: jsonschema>=4.23.0; extra == 'all'
Requires-Dist: kubernetes>=30.1.0; extra == 'all'
Requires-Dist: langchain-aws==1.1.0; extra == 'all'
Requires-Dist: langchain-community<0.4,>=0.3.31; extra == 'all'
Requires-Dist: langchain-core>=1.4.9; extra == 'all'
Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.4.3; extra == 'all'
Requires-Dist: langchain-openai<2.0.0,>=1.3.5; extra == 'all'
Requires-Dist: langchain-openai>=1.3.5; extra == 'all'
Requires-Dist: langchain>=1.3.14; extra == 'all'
Requires-Dist: lark>=1.1.0; extra == 'all'
Requires-Dist: matplotlib>=3.8.0; extra == 'all'
Requires-Dist: nemo-platform[nemo-agents-example-calculator] ; extra == "all"
Requires-Dist: nemo-anonymizer==0.3.3; extra == 'all'
Requires-Dist: nemo-platform[nemo-auditor-plugin] ; extra == "all"
Requires-Dist: nemo-platform[nemo-deployments-plugin] ; extra == "all"
Requires-Dist: nemo-platform[nemo-evaluator-sdk] ; extra == "all"
Requires-Dist: nemo-fabric-adapters-deepagents==0.3.0b1; extra == 'all'
Requires-Dist: nemo-fabric-adapters-hermes==0.3.0b1; (python_version < '3.14') and extra == 'all'
Requires-Dist: nemo-fabric[claude,codex,relay]==0.3.0b1; extra == 'all'
Requires-Dist: nemo-platform[nemo-insights-plugin] ; extra == "all"
Requires-Dist: nemo-platform[nemo-optimization-plugin] ; extra == "all"
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "all"
Requires-Dist: nemo-safe-synthesizer==0.1.7; extra == 'all'
Requires-Dist: nemoguardrails[tracing]==0.23.0; extra == 'all'
Requires-Dist: ngcsdk>=4.9.10; extra == 'all'
Requires-Dist: nemo-platform[auth-service] ; extra == "all"
Requires-Dist: nemo-platform[automodel-service] ; extra == "all"
Requires-Dist: nemo-platform[nmp-common] ; extra == "all"
Requires-Dist: nemo-platform[nmp-customization-common] ; extra == "all"
Requires-Dist: nemo-platform[guardrails-service] ; extra == "all"
Requires-Dist: nemo-platform[rl-service] ; extra == "all"
Requires-Dist: nemo-platform[unsloth-service] ; extra == "all"
Requires-Dist: nooa>=0.0.9; extra == 'all'
Requires-Dist: numpy>=1.26.0; extra == 'all'
Requires-Dist: nvidia-nat-atif<1.10,>=1.9.0a20260811; extra == 'all'
Requires-Dist: nvidia-nat-config-optimizer<1.10,>=1.9.0a20260811; extra == 'all'
Requires-Dist: nvidia-nat-core<1.10,>=1.9.0a20260811; extra == 'all'
Requires-Dist: nvidia-nat-eval<1.10,>=1.9.0a20260811; extra == 'all'
Requires-Dist: nvidia-nat-langchain<1.10,>=1.9.0a20260811; extra == 'all'
Requires-Dist: nvidia-nat-opentelemetry<1.10,>=1.9.0a20260811; extra == 'all'
Requires-Dist: openai>=1.61.0; extra == 'all'
Requires-Dist: opentelemetry-distro>=0.64b0; extra == 'all'
Requires-Dist: opentelemetry-exporter-otlp>=1.22.0; extra == 'all'
Requires-Dist: opentelemetry-exporter-otlp>=1.42.1; extra == 'all'
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.64b0; extra == 'all'
Requires-Dist: opentelemetry-instrumentation-httpx>=0.64b0; extra == 'all'
Requires-Dist: opentelemetry-instrumentation-requests>=0.64b0; extra == 'all'
Requires-Dist: opentelemetry-proto>=1.27.0; extra == 'all'
Requires-Dist: opentelemetry-proto>=1.28.2; extra == 'all'
Requires-Dist: opentelemetry-proto>=1.42.1; extra == 'all'
Requires-Dist: opentelemetry-sdk<2.0.0,>=1.27.0; extra == 'all'
Requires-Dist: opentelemetry-sdk>=1.42.1; extra == 'all'
Requires-Dist: optuna>=4.0.0; extra == 'all'
Requires-Dist: packaging>=24.0; extra == 'all'
Requires-Dist: pandas; extra == 'all'
Requires-Dist: pandas>=1.5.3; extra == 'all'
Requires-Dist: protobuf>=6.0.0; extra == 'all'
Requires-Dist: psycopg2-binary>=2.9.10; extra == 'all'
Requires-Dist: pydantic-settings<3.0.0,>=2.6.1; extra == 'all'
Requires-Dist: pydantic-settings>=2.0.0; extra == 'all'
Requires-Dist: pydantic-settings>=2.2.1; extra == 'all'
Requires-Dist: pydantic-settings>=2.6.1; extra == 'all'
Requires-Dist: pydantic-settings>=2.8.1; extra == 'all'
Requires-Dist: pydantic<3.0.0,>=2.9.2; extra == 'all'
Requires-Dist: pydantic>=2; extra == 'all'
Requires-Dist: pydantic>=2.0.0; extra == 'all'
Requires-Dist: pydantic>=2.10.3; extra == 'all'
Requires-Dist: pydantic>=2.10.6; extra == 'all'
Requires-Dist: pydantic>=2.12.0; extra == 'all'
Requires-Dist: pydantic[email]>=2.9.2; extra == 'all'
Requires-Dist: pyleak>=0.1.0; extra == 'all'
Requires-Dist: python-multipart~=0.0.9; extra == 'all'
Requires-Dist: python-on-whales>=0.60; extra == 'all'
Requires-Dist: pyyaml>=6.0; extra == 'all'
Requires-Dist: pyyaml>=6.0.0; extra == 'all'
Requires-Dist: pyyaml>=6.0.2; extra == 'all'
Requires-Dist: pyyaml>=6.0.3; extra == 'all'
Requires-Dist: requests>=2.31.0; extra == 'all'
Requires-Dist: rich>=13.7.1; extra == 'all'
Requires-Dist: rich>=14.1.0; extra == 'all'
Requires-Dist: sqlalchemy>=2.0.0; extra == 'all'
Requires-Dist: sqlmodel>=0.0.22; extra == 'all'
Requires-Dist: streaming-form-data>=1.19.1; extra == 'all'
Requires-Dist: nemo-platform[switchyard-vendored] ; extra == "all"
Requires-Dist: tenacity>=8.5.0; extra == 'all'
Requires-Dist: tomlkit>=0.13.3; extra == 'all'
Requires-Dist: typer>=0.12.5; extra == 'all'
Requires-Dist: typer>=0.20.0; extra == 'all'
Requires-Dist: typer>=0.9.0; extra == 'all'
Requires-Dist: types-aioboto3[s3]>=15.5.0; extra == 'all'
Requires-Dist: tzdata==2026.2; extra == 'all'
Requires-Dist: urllib3>=2.7.0; extra == 'all'
Requires-Dist: uvicorn<1.0.0,>=0.22.0; extra == 'all'
Requires-Dist: uvicorn>=0.32.1; extra == 'all'
Requires-Dist: uvicorn>=0.34.0; extra == 'all'
Requires-Dist: uvicorn[standard]>=0.12.0; extra == 'all'
Requires-Dist: uvicorn[standard]>=0.23.0; extra == 'all'
Requires-Dist: wasmtime>=20.0.0; extra == 'all'
Requires-Dist: yara-python==4.5.1; extra == 'all'
Provides-Extra: auditor-service
Requires-Dist: aiohttp>=3.14.1; extra == 'auditor-service'
Requires-Dist: httpx<1.0.0,>=0.28.1; extra == 'auditor-service'
Requires-Dist: pyyaml>=6.0.2; extra == 'auditor-service'
Requires-Dist: requests<3.0.0,>=2.32.3; extra == 'auditor-service'
Requires-Dist: xdg-base-dirs>=6.0.1; extra == 'auditor-service'
Provides-Extra: auth-service
Requires-Dist: fastapi[standard]>=0.115.4; extra == 'auth-service'
Requires-Dist: httpx>=0.27.0; extra == 'auth-service'
Requires-Dist: nemo-platform[nmp-common] ; extra == "auth-service"
Requires-Dist: pydantic-settings>=2.6.1; extra == 'auth-service'
Requires-Dist: pydantic>=2.10.3; extra == 'auth-service'
Requires-Dist: pyyaml>=6.0.0; extra == 'auth-service'
Requires-Dist: uvicorn[standard]>=0.12.0; extra == 'auth-service'
Requires-Dist: wasmtime>=20.0.0; extra == 'auth-service'
Provides-Extra: automodel-service
Requires-Dist: aiofiles>=24.1.0; extra == 'automodel-service'
Requires-Dist: httpx>=0.27.0; extra == 'automodel-service'
Requires-Dist: jsonschema>=4.23.0; extra == 'automodel-service'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "automodel-service"
Requires-Dist: nemo-platform[nemo-platform-sdk] ; extra == "automodel-service"
Requires-Dist: nemo-platform[nmp-common] ; extra == "automodel-service"
Requires-Dist: nemo-platform[nmp-customization-common] ; extra == "automodel-service"
Requires-Dist: pydantic-settings>=2.6.1; extra == 'automodel-service'
Requires-Dist: pydantic>=2.10.6; extra == 'automodel-service'
Requires-Dist: tenacity>=8.5.0; extra == 'automodel-service'
Provides-Extra: core-service
Requires-Dist: aioboto3>=15.5.0; extra == 'core-service'
Requires-Dist: aiohttp>=3.14.1; extra == 'core-service'
Requires-Dist: aiohttp[speedups]>=3.14.1; extra == 'core-service'
Requires-Dist: aiosqlite>=0.20.0; extra == 'core-service'
Requires-Dist: alembic>=1.13.1; extra == 'core-service'
Requires-Dist: anyio>=4.0.0; extra == 'core-service'
Requires-Dist: asyncpg>=0.31.0; extra == 'core-service'
Requires-Dist: base58>=2.1.0; extra == 'core-service'
Requires-Dist: base58>=2.1.1; extra == 'core-service'
Requires-Dist: docker>=7.1.0; extra == 'core-service'
Requires-Dist: duckdb<2.0.0,>=1.1.3; extra == 'core-service'
Requires-Dist: duckdb>=1.1.3; extra == 'core-service'
Requires-Dist: fastapi>=0.100.0; extra == 'core-service'
Requires-Dist: fastapi>=0.115.8; extra == 'core-service'
Requires-Dist: fastapi[standard]>=0.115.4; extra == 'core-service'
Requires-Dist: fastmcp>=3.2.0; extra == 'core-service'
Requires-Dist: nemo-platform[nemo-platform-sdk] ; extra == "core-service"
Requires-Dist: greenlet>=3.0.0; extra == 'core-service'
Requires-Dist: httpx>=0.27.0; extra == 'core-service'
Requires-Dist: hvac>=2.3.0; extra == 'core-service'
Requires-Dist: kubernetes>=30.1.0; extra == 'core-service'
Requires-Dist: lark>=1.1.0; extra == 'core-service'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "core-service"
Requires-Dist: ngcsdk>=4.9.10; extra == 'core-service'
Requires-Dist: nemo-platform[nmp-common] ; extra == "core-service"
Requires-Dist: opentelemetry-proto>=1.28.2; extra == 'core-service'
Requires-Dist: pandas>=1.5.3; extra == 'core-service'
Requires-Dist: psycopg2-binary>=2.9.10; extra == 'core-service'
Requires-Dist: pydantic-settings>=2.0.0; extra == 'core-service'
Requires-Dist: pydantic-settings>=2.6.1; extra == 'core-service'
Requires-Dist: pydantic-settings>=2.8.1; extra == 'core-service'
Requires-Dist: pydantic>=2.0.0; extra == 'core-service'
Requires-Dist: pydantic>=2.10.3; extra == 'core-service'
Requires-Dist: pydantic>=2.10.6; extra == 'core-service'
Requires-Dist: pyyaml>=6.0.0; extra == 'core-service'
Requires-Dist: pyyaml>=6.0.2; extra == 'core-service'
Requires-Dist: sqlalchemy>=2.0.0; extra == 'core-service'
Requires-Dist: sqlmodel>=0.0.22; extra == 'core-service'
Requires-Dist: streaming-form-data>=1.19.1; extra == 'core-service'
Requires-Dist: tenacity>=8.5.0; extra == 'core-service'
Requires-Dist: types-aioboto3[s3]>=15.5.0; extra == 'core-service'
Requires-Dist: urllib3>=2.7.0; extra == 'core-service'
Requires-Dist: uvicorn>=0.34.0; extra == 'core-service'
Requires-Dist: uvicorn[standard]>=0.12.0; extra == 'core-service'
Requires-Dist: uvicorn[standard]>=0.23.0; extra == 'core-service'
Requires-Dist: wasmtime>=20.0.0; extra == 'core-service'
Provides-Extra: data-designer-nemo
Requires-Dist: anyio>=4.0; extra == 'data-designer-nemo'
Requires-Dist: data-designer==0.9.1; extra == 'data-designer-nemo'
Requires-Dist: duckdb; extra == 'data-designer-nemo'
Requires-Dist: pydantic>=2; extra == 'data-designer-nemo'
Provides-Extra: entities-service
Requires-Dist: alembic>=1.13.1; extra == 'entities-service'
Requires-Dist: asyncpg>=0.31.0; extra == 'entities-service'
Requires-Dist: base58>=2.1.0; extra == 'entities-service'
Requires-Dist: fastapi>=0.100.0; extra == 'entities-service'
Requires-Dist: fastmcp>=3.2.0; extra == 'entities-service'
Requires-Dist: greenlet>=3.0.0; extra == 'entities-service'
Requires-Dist: lark>=1.1.0; extra == 'entities-service'
Requires-Dist: nemo-platform[nemo-platform-sdk] ; extra == "entities-service"
Requires-Dist: nemo-platform[nmp-common] ; extra == "entities-service"
Requires-Dist: psycopg2-binary>=2.9.10; extra == 'entities-service'
Requires-Dist: pydantic-settings>=2.0.0; extra == 'entities-service'
Requires-Dist: pydantic>=2.0.0; extra == 'entities-service'
Requires-Dist: sqlalchemy>=2.0.0; extra == 'entities-service'
Requires-Dist: uvicorn[standard]>=0.23.0; extra == 'entities-service'
Provides-Extra: files-service
Requires-Dist: aioboto3>=15.5.0; extra == 'files-service'
Requires-Dist: aiohttp>=3.14.1; extra == 'files-service'
Requires-Dist: anyio>=4.0.0; extra == 'files-service'
Requires-Dist: duckdb>=1.1.3; extra == 'files-service'
Requires-Dist: fastapi>=0.115.8; extra == 'files-service'
Requires-Dist: nemo-platform[nemo-platform-sdk] ; extra == "files-service"
Requires-Dist: ngcsdk>=4.9.10; extra == 'files-service'
Requires-Dist: nemo-platform[nmp-common] ; extra == "files-service"
Requires-Dist: opentelemetry-proto>=1.28.2; extra == 'files-service'
Requires-Dist: pandas>=1.5.3; extra == 'files-service'
Requires-Dist: pydantic-settings>=2.8.1; extra == 'files-service'
Requires-Dist: pydantic>=2.10.6; extra == 'files-service'
Requires-Dist: pyyaml>=6.0.2; extra == 'files-service'
Requires-Dist: streaming-form-data>=1.19.1; extra == 'files-service'
Requires-Dist: types-aioboto3[s3]>=15.5.0; extra == 'files-service'
Requires-Dist: uvicorn>=0.34.0; extra == 'files-service'
Provides-Extra: guardrails-service
Requires-Dist: alembic<2.0.0,>=1.10.4; extra == 'guardrails-service'
Requires-Dist: fastapi>=0.109.0; extra == 'guardrails-service'
Requires-Dist: fsspec>=2024.10.0; extra == 'guardrails-service'
Requires-Dist: gunicorn>=23.0.0; extra == 'guardrails-service'
Requires-Dist: httpx>=0.27.2; extra == 'guardrails-service'
Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.4.3; extra == 'guardrails-service'
Requires-Dist: langchain-openai<2.0.0,>=1.3.5; extra == 'guardrails-service'
Requires-Dist: nemoguardrails[tracing]==0.23.0; extra == 'guardrails-service'
Requires-Dist: nemo-platform[nmp-common] ; extra == "guardrails-service"
Requires-Dist: openai>=1.61.0; extra == 'guardrails-service'
Requires-Dist: opentelemetry-distro>=0.64b0; extra == 'guardrails-service'
Requires-Dist: opentelemetry-exporter-otlp>=1.22.0; extra == 'guardrails-service'
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.64b0; extra == 'guardrails-service'
Requires-Dist: opentelemetry-instrumentation-httpx>=0.64b0; extra == 'guardrails-service'
Requires-Dist: opentelemetry-instrumentation-requests>=0.64b0; extra == 'guardrails-service'
Requires-Dist: opentelemetry-sdk<2.0.0,>=1.27.0; extra == 'guardrails-service'
Requires-Dist: pydantic-settings>=2.2.1; extra == 'guardrails-service'
Requires-Dist: python-multipart~=0.0.9; extra == 'guardrails-service'
Requires-Dist: requests>=2.31.0; extra == 'guardrails-service'
Requires-Dist: uvicorn>=0.32.1; extra == 'guardrails-service'
Requires-Dist: yara-python==4.5.1; extra == 'guardrails-service'
Provides-Extra: hello-world-service
Requires-Dist: fastapi[standard]>=0.115.4; extra == 'hello-world-service'
Requires-Dist: nemo-platform[nmp-common] ; extra == "hello-world-service"
Requires-Dist: uvicorn[standard]>=0.12.0; extra == 'hello-world-service'
Provides-Extra: inference-gateway-service
Requires-Dist: aiohttp[speedups]>=3.14.1; extra == 'inference-gateway-service'
Requires-Dist: fastapi>=0.115.8; extra == 'inference-gateway-service'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "inference-gateway-service"
Requires-Dist: nemo-platform[nmp-common] ; extra == "inference-gateway-service"
Requires-Dist: pydantic-settings>=2.8.1; extra == 'inference-gateway-service'
Requires-Dist: pydantic>=2.10.6; extra == 'inference-gateway-service'
Requires-Dist: pyyaml>=6.0.2; extra == 'inference-gateway-service'
Requires-Dist: uvicorn>=0.34.0; extra == 'inference-gateway-service'
Provides-Extra: intake-service
Requires-Dist: clickhouse-connect<1.0,>=0.7; extra == 'intake-service'
Requires-Dist: docker>=7.1.0; extra == 'intake-service'
Requires-Dist: fastapi<1.0.0,>=0.115.5; extra == 'intake-service'
Requires-Dist: nemo-platform[nmp-common] ; extra == "intake-service"
Requires-Dist: opentelemetry-proto>=1.27.0; extra == 'intake-service'
Requires-Dist: pydantic-settings<3.0.0,>=2.6.1; extra == 'intake-service'
Requires-Dist: pydantic<3.0.0,>=2.9.2; extra == 'intake-service'
Requires-Dist: uvicorn<1.0.0,>=0.22.0; extra == 'intake-service'
Provides-Extra: jobs-service
Requires-Dist: aiosqlite>=0.20.0; extra == 'jobs-service'
Requires-Dist: base58>=2.1.1; extra == 'jobs-service'
Requires-Dist: docker>=7.1.0; extra == 'jobs-service'
Requires-Dist: duckdb<2.0.0,>=1.1.3; extra == 'jobs-service'
Requires-Dist: fastapi>=0.115.8; extra == 'jobs-service'
Requires-Dist: hvac>=2.3.0; extra == 'jobs-service'
Requires-Dist: kubernetes>=30.1.0; extra == 'jobs-service'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "jobs-service"
Requires-Dist: nemo-platform[nmp-common] ; extra == "jobs-service"
Requires-Dist: pandas>=1.5.3; extra == 'jobs-service'
Requires-Dist: pydantic-settings>=2.8.1; extra == 'jobs-service'
Requires-Dist: pydantic>=2.10.6; extra == 'jobs-service'
Requires-Dist: pyyaml>=6.0.2; extra == 'jobs-service'
Requires-Dist: sqlmodel>=0.0.22; extra == 'jobs-service'
Requires-Dist: uvicorn>=0.34.0; extra == 'jobs-service'
Provides-Extra: models-service
Requires-Dist: fastapi>=0.115.8; extra == 'models-service'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "models-service"
Requires-Dist: nemo-platform[nmp-common] ; extra == "models-service"
Requires-Dist: pydantic-settings>=2.8.1; extra == 'models-service'
Requires-Dist: pydantic>=2.10.6; extra == 'models-service'
Requires-Dist: pyyaml>=6.0.2; extra == 'models-service'
Requires-Dist: sqlmodel>=0.0.22; extra == 'models-service'
Requires-Dist: tenacity>=8.5.0; extra == 'models-service'
Requires-Dist: urllib3>=2.7.0; extra == 'models-service'
Requires-Dist: uvicorn>=0.34.0; extra == 'models-service'
Provides-Extra: nemo-agents-example-calculator
Requires-Dist: nvidia-nat-core<1.10,>=1.9.0a20260811; extra == 'nemo-agents-example-calculator'
Requires-Dist: nvidia-nat-langchain<1.10,>=1.9.0a20260811; extra == 'nemo-agents-example-calculator'
Provides-Extra: nemo-agents-plugin
Requires-Dist: anthropic>=0.88.0; extra == 'nemo-agents-plugin'
Requires-Dist: boto3<1.40.62,>=1.40.46; extra == 'nemo-agents-plugin'
Requires-Dist: botocore<1.40.62,>=1.40.46; extra == 'nemo-agents-plugin'
Requires-Dist: deepagents<0.8,>=0.7.8; extra == 'nemo-agents-plugin'
Requires-Dist: httpx>=0.27; extra == 'nemo-agents-plugin'
Requires-Dist: jinja2>=3.1; extra == 'nemo-agents-plugin'
Requires-Dist: langchain-aws==1.1.0; extra == 'nemo-agents-plugin'
Requires-Dist: nemo-platform[nemo-agents-example-calculator] ; extra == "nemo-agents-plugin"
Requires-Dist: nemo-platform[nemo-deployments-plugin] ; extra == "nemo-agents-plugin"
Requires-Dist: nemo-fabric-adapters-deepagents==0.3.0b1; extra == 'nemo-agents-plugin'
Requires-Dist: nemo-fabric-adapters-hermes==0.3.0b1; (python_version < '3.14') and extra == 'nemo-agents-plugin'
Requires-Dist: nemo-fabric[claude,codex,relay]==0.3.0b1; extra == 'nemo-agents-plugin'
Requires-Dist: nemo-platform[nemo-optimization-plugin] ; extra == "nemo-agents-plugin"
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-agents-plugin"
Requires-Dist: nvidia-nat-atif<1.10,>=1.9.0a20260811; extra == 'nemo-agents-plugin'
Requires-Dist: nvidia-nat-config-optimizer<1.10,>=1.9.0a20260811; extra == 'nemo-agents-plugin'
Requires-Dist: nvidia-nat-core<1.10,>=1.9.0a20260811; extra == 'nemo-agents-plugin'
Requires-Dist: nvidia-nat-eval<1.10,>=1.9.0a20260811; extra == 'nemo-agents-plugin'
Requires-Dist: nvidia-nat-langchain<1.10,>=1.9.0a20260811; extra == 'nemo-agents-plugin'
Requires-Dist: nvidia-nat-opentelemetry<1.10,>=1.9.0a20260811; extra == 'nemo-agents-plugin'
Requires-Dist: python-on-whales>=0.60; extra == 'nemo-agents-plugin'
Requires-Dist: pyyaml>=6.0; extra == 'nemo-agents-plugin'
Requires-Dist: rich>=13.7.1; extra == 'nemo-agents-plugin'
Provides-Extra: nemo-anonymizer-plugin
Requires-Dist: nemo-platform[data-designer-nemo] ; extra == "nemo-anonymizer-plugin"
Requires-Dist: data-designer==0.9.1; extra == 'nemo-anonymizer-plugin'
Requires-Dist: fastapi; extra == 'nemo-anonymizer-plugin'
Requires-Dist: httpx>=0.27; extra == 'nemo-anonymizer-plugin'
Requires-Dist: nemo-anonymizer==0.3.3; extra == 'nemo-anonymizer-plugin'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-anonymizer-plugin"
Requires-Dist: pandas; extra == 'nemo-anonymizer-plugin'
Requires-Dist: pyyaml>=6.0.2; extra == 'nemo-anonymizer-plugin'
Provides-Extra: nemo-auditor-plugin
Requires-Dist: nemo-platform[auditor-service] ; extra == "nemo-auditor-plugin"
Requires-Dist: httpx>=0.27; extra == 'nemo-auditor-plugin'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-auditor-plugin"
Requires-Dist: pydantic>=2.10.6; extra == 'nemo-auditor-plugin'
Requires-Dist: pyyaml>=6.0.2; extra == 'nemo-auditor-plugin'
Requires-Dist: typer>=0.20.0; extra == 'nemo-auditor-plugin'
Provides-Extra: nemo-automodel-plugin
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-automodel-plugin"
Requires-Dist: nemo-platform[automodel-service] ; extra == "nemo-automodel-plugin"
Requires-Dist: nemo-platform[nmp-customization-common] ; extra == "nemo-automodel-plugin"
Requires-Dist: pydantic-settings>=2.6.1; extra == 'nemo-automodel-plugin'
Requires-Dist: pydantic>=2.10.6; extra == 'nemo-automodel-plugin'
Requires-Dist: typer>=0.12.5; extra == 'nemo-automodel-plugin'
Provides-Extra: nemo-customizer-plugin
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-customizer-plugin"
Requires-Dist: pydantic>=2.10.6; extra == 'nemo-customizer-plugin'
Requires-Dist: typer>=0.12.5; extra == 'nemo-customizer-plugin'
Provides-Extra: nemo-data-designer-plugin
Requires-Dist: nemo-platform[data-designer-nemo] ; extra == "nemo-data-designer-plugin"
Requires-Dist: data-designer==0.9.1; extra == 'nemo-data-designer-plugin'
Requires-Dist: fastapi; extra == 'nemo-data-designer-plugin'
Requires-Dist: httpx>=0.27; extra == 'nemo-data-designer-plugin'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-data-designer-plugin"
Requires-Dist: pandas; extra == 'nemo-data-designer-plugin'
Provides-Extra: nemo-deployments-plugin
Requires-Dist: fastapi>=0.115; extra == 'nemo-deployments-plugin'
Requires-Dist: httpx>=0.27; extra == 'nemo-deployments-plugin'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-deployments-plugin"
Requires-Dist: nemo-platform[nemo-platform-sdk] ; extra == "nemo-deployments-plugin"
Requires-Dist: pydantic>=2.10.6; extra == 'nemo-deployments-plugin'
Requires-Dist: pyyaml>=6.0; extra == 'nemo-deployments-plugin'
Provides-Extra: nemo-evaluator-plugin
Requires-Dist: cloudpickle>=3.1.1; extra == 'nemo-evaluator-plugin'
Requires-Dist: nemo-platform[nemo-evaluator-sdk] ; extra == "nemo-evaluator-plugin"
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-evaluator-plugin"
Requires-Dist: nemo-platform[nemo-platform-sdk] ; extra == "nemo-evaluator-plugin"
Requires-Dist: pydantic>=2.12.0; extra == 'nemo-evaluator-plugin'
Requires-Dist: typer>=0.20.0; extra == 'nemo-evaluator-plugin'
Provides-Extra: nemo-evaluator-sdk
Requires-Dist: httpx<1,>=0.27.0; extra == 'nemo-evaluator-sdk'
Requires-Dist: jinja2>=3.1.6; extra == 'nemo-evaluator-sdk'
Requires-Dist: jsonpath-ng>=1.7.0; extra == 'nemo-evaluator-sdk'
Requires-Dist: jsonschema>=4.23.0; extra == 'nemo-evaluator-sdk'
Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.4.3; extra == 'nemo-evaluator-sdk'
Requires-Dist: langchain-openai>=1.3.5; extra == 'nemo-evaluator-sdk'
Requires-Dist: nemo-fabric==0.3.0b1; extra == 'nemo-evaluator-sdk'
Requires-Dist: nemo-relay<0.8,>=0.7.2; extra == 'nemo-evaluator-sdk'
Requires-Dist: openai>=1.61.0; extra == 'nemo-evaluator-sdk'
Requires-Dist: pandas>=1.5.3; extra == 'nemo-evaluator-sdk'
Requires-Dist: pyarrow>=19.0.1; extra == 'nemo-evaluator-sdk'
Requires-Dist: pydantic>=2.10.6; extra == 'nemo-evaluator-sdk'
Requires-Dist: ragas==0.4.3; extra == 'nemo-evaluator-sdk'
Requires-Dist: rouge-score==0.1.2; extra == 'nemo-evaluator-sdk'
Requires-Dist: sacrebleu>=2.5.1; extra == 'nemo-evaluator-sdk'
Provides-Extra: nemo-experimentalist-plugin
Requires-Dist: harbor>=0.16; extra == 'nemo-experimentalist-plugin'
Requires-Dist: httpx; extra == 'nemo-experimentalist-plugin'
Requires-Dist: nemo-platform[nemo-evaluator-sdk] ; extra == "nemo-experimentalist-plugin"
Requires-Dist: nemo-platform[nemo-insights-plugin] ; extra == "nemo-experimentalist-plugin"
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-experimentalist-plugin"
Requires-Dist: nooa>=0.0.9; extra == 'nemo-experimentalist-plugin'
Requires-Dist: opentelemetry-proto>=1.42.1; extra == 'nemo-experimentalist-plugin'
Requires-Dist: protobuf>=6.0.0; extra == 'nemo-experimentalist-plugin'
Requires-Dist: pydantic>=2; extra == 'nemo-experimentalist-plugin'
Requires-Dist: pyyaml>=6.0.3; extra == 'nemo-experimentalist-plugin'
Requires-Dist: tomlkit>=0.13.3; extra == 'nemo-experimentalist-plugin'
Provides-Extra: nemo-guardrails-plugin
Requires-Dist: langchain-community<0.4,>=0.3.31; extra == 'nemo-guardrails-plugin'
Requires-Dist: langchain-core>=1.4.9; extra == 'nemo-guardrails-plugin'
Requires-Dist: langchain-openai>=1.3.5; extra == 'nemo-guardrails-plugin'
Requires-Dist: langchain>=1.3.14; extra == 'nemo-guardrails-plugin'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-guardrails-plugin"
Requires-Dist: nemoguardrails[tracing]==0.23.0; extra == 'nemo-guardrails-plugin'
Provides-Extra: nemo-insights-plugin
Requires-Dist: fastapi>=0.115; extra == 'nemo-insights-plugin'
Requires-Dist: httpx; extra == 'nemo-insights-plugin'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-insights-plugin"
Requires-Dist: nooa>=0.0.9; extra == 'nemo-insights-plugin'
Requires-Dist: opentelemetry-exporter-otlp>=1.42.1; extra == 'nemo-insights-plugin'
Requires-Dist: opentelemetry-sdk>=1.42.1; extra == 'nemo-insights-plugin'
Requires-Dist: pydantic>=2.12.0; extra == 'nemo-insights-plugin'
Requires-Dist: pyyaml>=6.0.3; extra == 'nemo-insights-plugin'
Requires-Dist: typer>=0.20.0; extra == 'nemo-insights-plugin'
Requires-Dist: tzdata==2026.2; extra == 'nemo-insights-plugin'
Provides-Extra: nemo-optimization-plugin
Requires-Dist: matplotlib>=3.8.0; extra == 'nemo-optimization-plugin'
Requires-Dist: nemo-platform[nemo-evaluator-sdk] ; extra == "nemo-optimization-plugin"
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-optimization-plugin"
Requires-Dist: numpy>=1.26.0; extra == 'nemo-optimization-plugin'
Requires-Dist: optuna>=4.0.0; extra == 'nemo-optimization-plugin'
Requires-Dist: pydantic-settings>=2.6.1; extra == 'nemo-optimization-plugin'
Requires-Dist: pydantic>=2.10.6; extra == 'nemo-optimization-plugin'
Requires-Dist: pyyaml>=6.0; extra == 'nemo-optimization-plugin'
Requires-Dist: typer>=0.12.5; extra == 'nemo-optimization-plugin'
Provides-Extra: nemo-platform-plugin
Requires-Dist: anthropic>=0.88.0; extra == 'nemo-platform-plugin'
Requires-Dist: fastapi>=0.115.4; extra == 'nemo-platform-plugin'
Requires-Dist: jsonschema>=4.0.0; extra == 'nemo-platform-plugin'
Requires-Dist: lark>=1.1.0; extra == 'nemo-platform-plugin'
Requires-Dist: nemo-platform[nemo-platform-sdk] ; extra == "nemo-platform-plugin"
Requires-Dist: openai>=1.109.1; extra == 'nemo-platform-plugin'
Requires-Dist: pydantic-settings>=2.8.1; extra == 'nemo-platform-plugin'
Requires-Dist: pydantic>=2.12.0; extra == 'nemo-platform-plugin'
Requires-Dist: pyyaml>=6.0.2; extra == 'nemo-platform-plugin'
Requires-Dist: typer<0.26,>=0.20.0; extra == 'nemo-platform-plugin'
Provides-Extra: nemo-platform-sdk
Requires-Dist: anyio<5,>=4.0.0; extra == 'nemo-platform-sdk'
Requires-Dist: distro<2,>=1.7.0; extra == 'nemo-platform-sdk'
Requires-Dist: docker>=7.0.0; extra == 'nemo-platform-sdk'
Requires-Dist: fsspec>=2023.1.0; extra == 'nemo-platform-sdk'
Requires-Dist: httpx<1,>=0.23.0; extra == 'nemo-platform-sdk'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-platform-sdk"
Requires-Dist: ngcsdk>=4.8.2; extra == 'nemo-platform-sdk'
Requires-Dist: nvidia-ml-py>=13.0.0; extra == 'nemo-platform-sdk'
Requires-Dist: openai; extra == 'nemo-platform-sdk'
Requires-Dist: prompt-toolkit>=3.0.0; extra == 'nemo-platform-sdk'
Requires-Dist: psutil>=5.9.0; extra == 'nemo-platform-sdk'
Requires-Dist: pydantic<3,>=2.0.0; extra == 'nemo-platform-sdk'
Requires-Dist: pyyaml>=6.0.0; extra == 'nemo-platform-sdk'
Requires-Dist: requests>=2.31.0; extra == 'nemo-platform-sdk'
Requires-Dist: rich>=13.7.1; extra == 'nemo-platform-sdk'
Requires-Dist: sniffio; extra == 'nemo-platform-sdk'
Requires-Dist: typer>=0.20.0; extra == 'nemo-platform-sdk'
Requires-Dist: typing-extensions<5,>=4.14; extra == 'nemo-platform-sdk'
Provides-Extra: nemo-rl-plugin
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-rl-plugin"
Requires-Dist: nemo-platform[nmp-customization-common] ; extra == "nemo-rl-plugin"
Requires-Dist: nemo-platform[rl-service] ; extra == "nemo-rl-plugin"
Requires-Dist: pydantic-settings>=2.6.1; extra == 'nemo-rl-plugin'
Requires-Dist: pydantic>=2.10.6; extra == 'nemo-rl-plugin'
Requires-Dist: typer>=0.12.5; extra == 'nemo-rl-plugin'
Provides-Extra: nemo-safe-synthesizer-plugin
Requires-Dist: datasets<=4.3.0,>=3.3.1; extra == 'nemo-safe-synthesizer-plugin'
Requires-Dist: fastapi>=0.115.8; extra == 'nemo-safe-synthesizer-plugin'
Requires-Dist: fsspec>=2024.10.0; extra == 'nemo-safe-synthesizer-plugin'
Requires-Dist: gunicorn>=23.0.0; extra == 'nemo-safe-synthesizer-plugin'
Requires-Dist: httpx>=0.27.2; extra == 'nemo-safe-synthesizer-plugin'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-safe-synthesizer-plugin"
Requires-Dist: nemo-safe-synthesizer==0.1.7; extra == 'nemo-safe-synthesizer-plugin'
Requires-Dist: pydantic-settings>=2.2.1; extra == 'nemo-safe-synthesizer-plugin'
Requires-Dist: pydantic[email]>=2.9.2; extra == 'nemo-safe-synthesizer-plugin'
Requires-Dist: python-multipart~=0.0.9; extra == 'nemo-safe-synthesizer-plugin'
Requires-Dist: requests>=2.31.0; extra == 'nemo-safe-synthesizer-plugin'
Requires-Dist: typer>=0.9.0; extra == 'nemo-safe-synthesizer-plugin'
Requires-Dist: uvicorn>=0.32.1; extra == 'nemo-safe-synthesizer-plugin'
Provides-Extra: nemo-switchyard
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-switchyard"
Requires-Dist: nemo-platform[switchyard-vendored] ; extra == "nemo-switchyard"
Provides-Extra: nemo-unsloth-plugin
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nemo-unsloth-plugin"
Requires-Dist: nemo-platform[nmp-customization-common] ; extra == "nemo-unsloth-plugin"
Requires-Dist: nemo-platform[unsloth-service] ; extra == "nemo-unsloth-plugin"
Requires-Dist: pydantic-settings>=2.6.1; extra == 'nemo-unsloth-plugin'
Requires-Dist: pydantic>=2.10.6; extra == 'nemo-unsloth-plugin'
Requires-Dist: typer>=0.12.5; extra == 'nemo-unsloth-plugin'
Provides-Extra: nmp-common
Requires-Dist: aiofiles>=24.1.0; extra == 'nmp-common'
Requires-Dist: base58>=2.1.1; extra == 'nmp-common'
Requires-Dist: fastapi[standard]>=0.115.4; extra == 'nmp-common'
Requires-Dist: huggingface-hub<2.0.0,>=1.0.1; extra == 'nmp-common'
Requires-Dist: hvac>=2.3.0; extra == 'nmp-common'
Requires-Dist: kubernetes>=30.1.0; extra == 'nmp-common'
Requires-Dist: lark>=1.1.0; extra == 'nmp-common'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nmp-common"
Requires-Dist: nemo-platform[nemo-platform-sdk] ; extra == "nmp-common"
Requires-Dist: nvidia-ml-py>=13.0.0; extra == 'nmp-common'
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.38.0; extra == 'nmp-common'
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.38.0; extra == 'nmp-common'
Requires-Dist: opentelemetry-exporter-prometheus>=0.64b0; extra == 'nmp-common'
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.64b0; extra == 'nmp-common'
Requires-Dist: opentelemetry-instrumentation-httpx>=0.64b0; extra == 'nmp-common'
Requires-Dist: opentelemetry-instrumentation-sqlalchemy>=0.64b0; extra == 'nmp-common'
Requires-Dist: opentelemetry-instrumentation-system-metrics>=0.64b0; extra == 'nmp-common'
Requires-Dist: opentelemetry-processor-baggage>=0.64b0; extra == 'nmp-common'
Requires-Dist: opentelemetry-sdk>=1.38.0; extra == 'nmp-common'
Requires-Dist: prometheus-client>=0.23.0; extra == 'nmp-common'
Requires-Dist: prometheus-fastapi-instrumentator>=8.0.2; extra == 'nmp-common'
Requires-Dist: pydantic-settings>=2.8.1; extra == 'nmp-common'
Requires-Dist: pydantic>=2.10.3; extra == 'nmp-common'
Requires-Dist: pyjwt[crypto]>=2.13.0; extra == 'nmp-common'
Requires-Dist: pyyaml>=6.0.2; extra == 'nmp-common'
Requires-Dist: sqlalchemy>=2.0.0; extra == 'nmp-common'
Requires-Dist: structlog>=24.1.0; extra == 'nmp-common'
Provides-Extra: nmp-customization-common
Requires-Dist: httpx>=0.27.0; extra == 'nmp-customization-common'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "nmp-customization-common"
Requires-Dist: nemo-platform[nemo-platform-sdk] ; extra == "nmp-customization-common"
Requires-Dist: nemo-platform[nmp-common] ; extra == "nmp-customization-common"
Requires-Dist: pydantic-settings>=2.6.1; extra == 'nmp-customization-common'
Requires-Dist: pydantic>=2.10.6; extra == 'nmp-customization-common'
Requires-Dist: tenacity>=8.5.0; extra == 'nmp-customization-common'
Provides-Extra: platform-seed-service
Requires-Dist: nemo-platform[nemo-auditor-plugin] ; extra == "platform-seed-service"
Requires-Dist: nemo-platform[auth-service] ; extra == "platform-seed-service"
Requires-Dist: nemo-platform[nmp-common] ; extra == "platform-seed-service"
Requires-Dist: nemo-platform[guardrails-service] ; extra == "platform-seed-service"
Provides-Extra: plugins
Requires-Dist: anthropic>=0.88.0; extra == 'plugins'
Requires-Dist: boto3<1.40.62,>=1.40.46; extra == 'plugins'
Requires-Dist: botocore<1.40.62,>=1.40.46; extra == 'plugins'
Requires-Dist: cloudpickle>=3.1.1; extra == 'plugins'
Requires-Dist: nemo-platform[data-designer-nemo] ; extra == "plugins"
Requires-Dist: data-designer==0.9.1; extra == 'plugins'
Requires-Dist: datasets<=4.3.0,>=3.3.1; extra == 'plugins'
Requires-Dist: deepagents<0.8,>=0.7.8; extra == 'plugins'
Requires-Dist: fastapi; extra == 'plugins'
Requires-Dist: fastapi>=0.115; extra == 'plugins'
Requires-Dist: fastapi>=0.115.8; extra == 'plugins'
Requires-Dist: fsspec>=2024.10.0; extra == 'plugins'
Requires-Dist: nemo-platform[auditor-service] ; extra == "plugins"
Requires-Dist: gunicorn>=23.0.0; extra == 'plugins'
Requires-Dist: harbor>=0.16; extra == 'plugins'
Requires-Dist: httpx; extra == 'plugins'
Requires-Dist: httpx>=0.27; extra == 'plugins'
Requires-Dist: httpx>=0.27.2; extra == 'plugins'
Requires-Dist: jinja2>=3.1; extra == 'plugins'
Requires-Dist: langchain-aws==1.1.0; extra == 'plugins'
Requires-Dist: langchain-community<0.4,>=0.3.31; extra == 'plugins'
Requires-Dist: langchain-core>=1.4.9; extra == 'plugins'
Requires-Dist: langchain-openai>=1.3.5; extra == 'plugins'
Requires-Dist: langchain>=1.3.14; extra == 'plugins'
Requires-Dist: matplotlib>=3.8.0; extra == 'plugins'
Requires-Dist: nemo-platform[nemo-agents-example-calculator] ; extra == "plugins"
Requires-Dist: nemo-anonymizer==0.3.3; extra == 'plugins'
Requires-Dist: nemo-platform[nemo-deployments-plugin] ; extra == "plugins"
Requires-Dist: nemo-platform[nemo-evaluator-sdk] ; extra == "plugins"
Requires-Dist: nemo-fabric-adapters-deepagents==0.3.0b1; extra == 'plugins'
Requires-Dist: nemo-fabric-adapters-hermes==0.3.0b1; (python_version < '3.14') and extra == 'plugins'
Requires-Dist: nemo-fabric[claude,codex,relay]==0.3.0b1; extra == 'plugins'
Requires-Dist: nemo-platform[nemo-insights-plugin] ; extra == "plugins"
Requires-Dist: nemo-platform[nemo-optimization-plugin] ; extra == "plugins"
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "plugins"
Requires-Dist: nemo-platform[nemo-platform-sdk] ; extra == "plugins"
Requires-Dist: nemo-safe-synthesizer==0.1.7; extra == 'plugins'
Requires-Dist: nemoguardrails[tracing]==0.23.0; extra == 'plugins'
Requires-Dist: nemo-platform[automodel-service] ; extra == "plugins"
Requires-Dist: nemo-platform[nmp-customization-common] ; extra == "plugins"
Requires-Dist: nemo-platform[rl-service] ; extra == "plugins"
Requires-Dist: nemo-platform[unsloth-service] ; extra == "plugins"
Requires-Dist: nooa>=0.0.9; extra == 'plugins'
Requires-Dist: numpy>=1.26.0; extra == 'plugins'
Requires-Dist: nvidia-nat-atif<1.10,>=1.9.0a20260811; extra == 'plugins'
Requires-Dist: nvidia-nat-config-optimizer<1.10,>=1.9.0a20260811; extra == 'plugins'
Requires-Dist: nvidia-nat-core<1.10,>=1.9.0a20260811; extra == 'plugins'
Requires-Dist: nvidia-nat-eval<1.10,>=1.9.0a20260811; extra == 'plugins'
Requires-Dist: nvidia-nat-langchain<1.10,>=1.9.0a20260811; extra == 'plugins'
Requires-Dist: nvidia-nat-opentelemetry<1.10,>=1.9.0a20260811; extra == 'plugins'
Requires-Dist: opentelemetry-exporter-otlp>=1.42.1; extra == 'plugins'
Requires-Dist: opentelemetry-proto>=1.42.1; extra == 'plugins'
Requires-Dist: opentelemetry-sdk>=1.42.1; extra == 'plugins'
Requires-Dist: optuna>=4.0.0; extra == 'plugins'
Requires-Dist: pandas; extra == 'plugins'
Requires-Dist: protobuf>=6.0.0; extra == 'plugins'
Requires-Dist: pydantic-settings>=2.2.1; extra == 'plugins'
Requires-Dist: pydantic-settings>=2.6.1; extra == 'plugins'
Requires-Dist: pydantic>=2; extra == 'plugins'
Requires-Dist: pydantic>=2.10.6; extra == 'plugins'
Requires-Dist: pydantic>=2.12.0; extra == 'plugins'
Requires-Dist: pydantic[email]>=2.9.2; extra == 'plugins'
Requires-Dist: python-multipart~=0.0.9; extra == 'plugins'
Requires-Dist: python-on-whales>=0.60; extra == 'plugins'
Requires-Dist: pyyaml>=6.0; extra == 'plugins'
Requires-Dist: pyyaml>=6.0.2; extra == 'plugins'
Requires-Dist: pyyaml>=6.0.3; extra == 'plugins'
Requires-Dist: requests>=2.31.0; extra == 'plugins'
Requires-Dist: rich>=13.7.1; extra == 'plugins'
Requires-Dist: nemo-platform[switchyard-vendored] ; extra == "plugins"
Requires-Dist: tomlkit>=0.13.3; extra == 'plugins'
Requires-Dist: typer>=0.12.5; extra == 'plugins'
Requires-Dist: typer>=0.20.0; extra == 'plugins'
Requires-Dist: typer>=0.9.0; extra == 'plugins'
Requires-Dist: tzdata==2026.2; extra == 'plugins'
Requires-Dist: uvicorn>=0.32.1; extra == 'plugins'
Provides-Extra: rl-service
Requires-Dist: httpx>=0.27.0; extra == 'rl-service'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "rl-service"
Requires-Dist: nemo-platform[nemo-platform-sdk] ; extra == "rl-service"
Requires-Dist: nemo-platform[nmp-common] ; extra == "rl-service"
Requires-Dist: nemo-platform[nmp-customization-common] ; extra == "rl-service"
Requires-Dist: packaging>=24.0; extra == 'rl-service'
Requires-Dist: pydantic-settings>=2.6.1; extra == 'rl-service'
Requires-Dist: pydantic>=2.10.6; extra == 'rl-service'
Requires-Dist: tenacity>=8.5.0; extra == 'rl-service'
Provides-Extra: secrets-service
Requires-Dist: fastapi>=0.115.8; extra == 'secrets-service'
Requires-Dist: nemo-platform[nmp-common] ; extra == "secrets-service"
Requires-Dist: uvicorn>=0.34.0; extra == 'secrets-service'
Provides-Extra: services
Requires-Dist: aioboto3>=15.5.0; extra == 'services'
Requires-Dist: aiofiles>=24.1.0; extra == 'services'
Requires-Dist: aiohttp>=3.14.1; extra == 'services'
Requires-Dist: aiohttp[speedups]>=3.14.1; extra == 'services'
Requires-Dist: aiosqlite>=0.20.0; extra == 'services'
Requires-Dist: alembic<2.0.0,>=1.10.4; extra == 'services'
Requires-Dist: alembic>=1.13.1; extra == 'services'
Requires-Dist: anthropic>=0.88.0; extra == 'services'
Requires-Dist: anyio>=4.0.0; extra == 'services'
Requires-Dist: asyncpg>=0.31.0; extra == 'services'
Requires-Dist: base58>=2.1.0; extra == 'services'
Requires-Dist: base58>=2.1.1; extra == 'services'
Requires-Dist: boto3<1.40.62,>=1.40.46; extra == 'services'
Requires-Dist: botocore<1.40.62,>=1.40.46; extra == 'services'
Requires-Dist: clickhouse-connect<1.0,>=0.7; extra == 'services'
Requires-Dist: cloudpickle>=3.1.1; extra == 'services'
Requires-Dist: nemo-platform[data-designer-nemo] ; extra == "services"
Requires-Dist: data-designer==0.9.1; extra == 'services'
Requires-Dist: datasets<=4.3.0,>=3.3.1; extra == 'services'
Requires-Dist: deepagents<0.8,>=0.7.8; extra == 'services'
Requires-Dist: docker>=7.1.0; extra == 'services'
Requires-Dist: duckdb<2.0.0,>=1.1.3; extra == 'services'
Requires-Dist: duckdb>=1.1.3; extra == 'services'
Requires-Dist: fastapi; extra == 'services'
Requires-Dist: fastapi<1.0.0,>=0.115.5; extra == 'services'
Requires-Dist: fastapi>=0.100.0; extra == 'services'
Requires-Dist: fastapi>=0.109.0; extra == 'services'
Requires-Dist: fastapi>=0.115; extra == 'services'
Requires-Dist: fastapi>=0.115.8; extra == 'services'
Requires-Dist: fastapi[standard]>=0.115.4; extra == 'services'
Requires-Dist: fastmcp>=3.2.0; extra == 'services'
Requires-Dist: nemo-platform[nemo-platform-sdk] ; extra == "services"
Requires-Dist: fsspec>=2024.10.0; extra == 'services'
Requires-Dist: nemo-platform[auditor-service] ; extra == "services"
Requires-Dist: greenlet>=3.0.0; extra == 'services'
Requires-Dist: gunicorn>=23.0.0; extra == 'services'
Requires-Dist: harbor>=0.16; extra == 'services'
Requires-Dist: httpx; extra == 'services'
Requires-Dist: httpx>=0.27; extra == 'services'
Requires-Dist: httpx>=0.27.0; extra == 'services'
Requires-Dist: httpx>=0.27.2; extra == 'services'
Requires-Dist: hvac>=2.3.0; extra == 'services'
Requires-Dist: jinja2>=3.1; extra == 'services'
Requires-Dist: jsonschema>=4.23.0; extra == 'services'
Requires-Dist: kubernetes>=30.1.0; extra == 'services'
Requires-Dist: langchain-aws==1.1.0; extra == 'services'
Requires-Dist: langchain-community<0.4,>=0.3.31; extra == 'services'
Requires-Dist: langchain-core>=1.4.9; extra == 'services'
Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.4.3; extra == 'services'
Requires-Dist: langchain-openai<2.0.0,>=1.3.5; extra == 'services'
Requires-Dist: langchain-openai>=1.3.5; extra == 'services'
Requires-Dist: langchain>=1.3.14; extra == 'services'
Requires-Dist: lark>=1.1.0; extra == 'services'
Requires-Dist: matplotlib>=3.8.0; extra == 'services'
Requires-Dist: nemo-platform[nemo-agents-example-calculator] ; extra == "services"
Requires-Dist: nemo-anonymizer==0.3.3; extra == 'services'
Requires-Dist: nemo-platform[nemo-auditor-plugin] ; extra == "services"
Requires-Dist: nemo-platform[nemo-deployments-plugin] ; extra == "services"
Requires-Dist: nemo-platform[nemo-evaluator-sdk] ; extra == "services"
Requires-Dist: nemo-fabric-adapters-deepagents==0.3.0b1; extra == 'services'
Requires-Dist: nemo-fabric-adapters-hermes==0.3.0b1; (python_version < '3.14') and extra == 'services'
Requires-Dist: nemo-fabric[claude,codex,relay]==0.3.0b1; extra == 'services'
Requires-Dist: nemo-platform[nemo-insights-plugin] ; extra == "services"
Requires-Dist: nemo-platform[nemo-optimization-plugin] ; extra == "services"
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "services"
Requires-Dist: nemo-safe-synthesizer==0.1.7; extra == 'services'
Requires-Dist: nemoguardrails[tracing]==0.23.0; extra == 'services'
Requires-Dist: ngcsdk>=4.9.10; extra == 'services'
Requires-Dist: nemo-platform[auth-service] ; extra == "services"
Requires-Dist: nemo-platform[automodel-service] ; extra == "services"
Requires-Dist: nemo-platform[nmp-common] ; extra == "services"
Requires-Dist: nemo-platform[nmp-customization-common] ; extra == "services"
Requires-Dist: nemo-platform[guardrails-service] ; extra == "services"
Requires-Dist: nemo-platform[rl-service] ; extra == "services"
Requires-Dist: nemo-platform[unsloth-service] ; extra == "services"
Requires-Dist: nooa>=0.0.9; extra == 'services'
Requires-Dist: numpy>=1.26.0; extra == 'services'
Requires-Dist: nvidia-nat-atif<1.10,>=1.9.0a20260811; extra == 'services'
Requires-Dist: nvidia-nat-config-optimizer<1.10,>=1.9.0a20260811; extra == 'services'
Requires-Dist: nvidia-nat-core<1.10,>=1.9.0a20260811; extra == 'services'
Requires-Dist: nvidia-nat-eval<1.10,>=1.9.0a20260811; extra == 'services'
Requires-Dist: nvidia-nat-langchain<1.10,>=1.9.0a20260811; extra == 'services'
Requires-Dist: nvidia-nat-opentelemetry<1.10,>=1.9.0a20260811; extra == 'services'
Requires-Dist: openai>=1.61.0; extra == 'services'
Requires-Dist: opentelemetry-distro>=0.64b0; extra == 'services'
Requires-Dist: opentelemetry-exporter-otlp>=1.22.0; extra == 'services'
Requires-Dist: opentelemetry-exporter-otlp>=1.42.1; extra == 'services'
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.64b0; extra == 'services'
Requires-Dist: opentelemetry-instrumentation-httpx>=0.64b0; extra == 'services'
Requires-Dist: opentelemetry-instrumentation-requests>=0.64b0; extra == 'services'
Requires-Dist: opentelemetry-proto>=1.27.0; extra == 'services'
Requires-Dist: opentelemetry-proto>=1.28.2; extra == 'services'
Requires-Dist: opentelemetry-proto>=1.42.1; extra == 'services'
Requires-Dist: opentelemetry-sdk<2.0.0,>=1.27.0; extra == 'services'
Requires-Dist: opentelemetry-sdk>=1.42.1; extra == 'services'
Requires-Dist: optuna>=4.0.0; extra == 'services'
Requires-Dist: packaging>=24.0; extra == 'services'
Requires-Dist: pandas; extra == 'services'
Requires-Dist: pandas>=1.5.3; extra == 'services'
Requires-Dist: protobuf>=6.0.0; extra == 'services'
Requires-Dist: psycopg2-binary>=2.9.10; extra == 'services'
Requires-Dist: pydantic-settings<3.0.0,>=2.6.1; extra == 'services'
Requires-Dist: pydantic-settings>=2.0.0; extra == 'services'
Requires-Dist: pydantic-settings>=2.2.1; extra == 'services'
Requires-Dist: pydantic-settings>=2.6.1; extra == 'services'
Requires-Dist: pydantic-settings>=2.8.1; extra == 'services'
Requires-Dist: pydantic<3.0.0,>=2.9.2; extra == 'services'
Requires-Dist: pydantic>=2; extra == 'services'
Requires-Dist: pydantic>=2.0.0; extra == 'services'
Requires-Dist: pydantic>=2.10.3; extra == 'services'
Requires-Dist: pydantic>=2.10.6; extra == 'services'
Requires-Dist: pydantic>=2.12.0; extra == 'services'
Requires-Dist: pydantic[email]>=2.9.2; extra == 'services'
Requires-Dist: pyleak>=0.1.0; extra == 'services'
Requires-Dist: python-multipart~=0.0.9; extra == 'services'
Requires-Dist: python-on-whales>=0.60; extra == 'services'
Requires-Dist: pyyaml>=6.0; extra == 'services'
Requires-Dist: pyyaml>=6.0.0; extra == 'services'
Requires-Dist: pyyaml>=6.0.2; extra == 'services'
Requires-Dist: pyyaml>=6.0.3; extra == 'services'
Requires-Dist: requests>=2.31.0; extra == 'services'
Requires-Dist: rich>=13.7.1; extra == 'services'
Requires-Dist: rich>=14.1.0; extra == 'services'
Requires-Dist: sqlalchemy>=2.0.0; extra == 'services'
Requires-Dist: sqlmodel>=0.0.22; extra == 'services'
Requires-Dist: streaming-form-data>=1.19.1; extra == 'services'
Requires-Dist: nemo-platform[switchyard-vendored] ; extra == "services"
Requires-Dist: tenacity>=8.5.0; extra == 'services'
Requires-Dist: tomlkit>=0.13.3; extra == 'services'
Requires-Dist: typer>=0.12.5; extra == 'services'
Requires-Dist: typer>=0.20.0; extra == 'services'
Requires-Dist: typer>=0.9.0; extra == 'services'
Requires-Dist: types-aioboto3[s3]>=15.5.0; extra == 'services'
Requires-Dist: tzdata==2026.2; extra == 'services'
Requires-Dist: urllib3>=2.7.0; extra == 'services'
Requires-Dist: uvicorn<1.0.0,>=0.22.0; extra == 'services'
Requires-Dist: uvicorn>=0.32.1; extra == 'services'
Requires-Dist: uvicorn>=0.34.0; extra == 'services'
Requires-Dist: uvicorn[standard]>=0.12.0; extra == 'services'
Requires-Dist: uvicorn[standard]>=0.23.0; extra == 'services'
Requires-Dist: wasmtime>=20.0.0; extra == 'services'
Requires-Dist: yara-python==4.5.1; extra == 'services'
Provides-Extra: studio-service
Requires-Dist: fastapi[standard]>=0.115.4; extra == 'studio-service'
Requires-Dist: nemo-platform[nmp-common] ; extra == "studio-service"
Requires-Dist: uvicorn[standard]>=0.12.0; extra == 'studio-service'
Provides-Extra: switchyard-vendored
Requires-Dist: anthropic<1.0,>=0.99.0; extra == 'switchyard-vendored'
Requires-Dist: httpx<1.0,>=0.28.1; extra == 'switchyard-vendored'
Requires-Dist: openai<3.0,>=2.34.0; extra == 'switchyard-vendored'
Requires-Dist: pydantic<3.0,>=2.13.3; extra == 'switchyard-vendored'
Provides-Extra: unsloth-service
Requires-Dist: httpx>=0.27.0; extra == 'unsloth-service'
Requires-Dist: nemo-platform[nemo-platform-plugin] ; extra == "unsloth-service"
Requires-Dist: nemo-platform[nemo-platform-sdk] ; extra == "unsloth-service"
Requires-Dist: nemo-platform[nmp-common] ; extra == "unsloth-service"
Requires-Dist: nemo-platform[nmp-customization-common] ; extra == "unsloth-service"
Requires-Dist: pydantic-settings>=2.6.1; extra == 'unsloth-service'
Requires-Dist: pydantic>=2.10.6; extra == 'unsloth-service'
Requires-Dist: tenacity>=8.5.0; extra == 'unsloth-service'
Description-Content-Type: text/markdown

<!-- SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->
<!-- SPDX-License-Identifier: Apache-2.0 -->

# NeMo Platform

[![License](https://img.shields.io/badge/license-Apache_2.0-D22128?style=flat-square)](https://github.com/NVIDIA-NeMo/nemo-platform/blob/main/LICENSE)
[![Python](https://img.shields.io/badge/python-3.12--3.13-3776AB?style=flat-square&logo=python&logoColor=white)](https://www.python.org/)
[![Docs](https://img.shields.io/static/v1?label=docs&message=docs.nvidia.com%2Fnemo-platform&color=76B900&style=flat-square&logo=readthedocs&logoColor=white)](https://docs.nvidia.com/nemo-platform)

Make the agents you ship faster, more accurate, and safer.

NeMo Platform brings NVIDIA NeMo libraries together under one CLI, Python SDK, and web UI. Hardening, evaluation, and tuning for the agents you put in production.

## What's here today

- **Secure agents.** Guardrails (content safety, jailbreak detection, PII redaction), Auditor (red-teaming via garak), Anonymizer (PII handling for training data).
- **Evaluate agents.** LLM-as-judge, deterministic, agentic, and RAG benchmarks. Harbor-backed eval suites for regression testing.
- **Tune agents.** Skill optimization, prompt and hyperparameter tuning, Switchyard model routing.
- **Build agents.** NVIDIA NeMo Agent Toolkit (NAT) for LangGraph-based agents. Shared infrastructure: Inference Gateway, Secrets, Files, Entity Store, Jobs.
- **Generate synthetic data.** Generate synthetic data for training or evaluation purposes using Data Designer.
- **NeMo Studio (alpha).** Browser UI for chat, monitoring, and reviewing optimization suggestions. Studio's agent-focused features are still a work in progress; the CLI is the primary surface today.

## Install

**Prerequisites:** Python 3.12–3.13 and an API key for an inference provider (NVIDIA Build, OpenAI, Anthropic, Google Gemini, or a local Ollama instance).

The `nemo-platform` distribution is a convenience wrapper that bundles the SDK, shared runtime packages, default first-party plugins, and platform services into a single wheel. The `all` extra adds the platform services; drop it for the SDK and CLI alone.

Recommended — one command, `nemo` available everywhere, nothing to activate:

```bash
uv tool install "nemo-platform[all]"
```

Use a virtual environment instead when you also import the SDK from your own code. `nemo` then works only while the environment is active:

```bash
uv venv
source .venv/bin/activate
uv pip install "nemo-platform[all]"
```

Plain `pip install "nemo-platform[all]"` works in an environment you manage yourself.

Then bring up the platform:

```bash
nemo setup
```

`nemo setup` starts local services, registers your LLM provider, discovers available models, installs agent skills, and (optionally) deploys a sample agent.

Verify:

```bash
nemo services status
```

The recommended developer setup is to clone the repo and use `make bootstrap` instead of installing from PyPI — see the [setup playbook](https://github.com/NVIDIA-NeMo/nemo-platform/blob/main/SETUP.md) for the full walkthrough, including local data dir, DB reset, and troubleshooting.

## Where to go next

After `nemo setup` completes, the CLI prompts you to pick one of two paths. The same two paths are the recommended starting points if you came in via PyPI:

- **Build and optimize agents.** Open a coding agent session inside your agent's project directory and ask: _"Build and optimize an agent using NeMo Platform."_ The shipped skills will scaffold the agent, deploy it, run evaluations, suggest optimizations, and add guardrails on request.
- **Explore the platform.** From any coding agent session, ask: _"What can I do with NeMo Platform?"_ to get a guided tour of the capabilities surfaced through skills.

NeMo skills work with Claude Code, Codex, Cursor, OpenCode, and other coding agents. Install or refresh them with `nemo skills install --agent <agent>`, for example:

```bash
nemo skills install --agent claude
```

## Operating the platform

A few useful CLI commands once setup completes:

```bash
nemo --help                # All commands
nemo models list           # Available models
nemo services status       # Platform health
nemo skills list           # Skills installed on the platform
```

Every capability is also available via REST API. Model inference uses the model IDs returned from `nemo models list` and is available at:

```text
http://localhost:8080/apis/inference-gateway/v2/workspaces/default/openai/-/v1/chat/completions
```

## Links

- **Source:** https://github.com/NVIDIA-NeMo/nemo-platform
- **Documentation:** https://docs.nvidia.com/nemo-platform/
- **Setup playbook:** https://github.com/NVIDIA-NeMo/nemo-platform/blob/main/SETUP.md
- **CLI reference:** https://docs.nvidia.com/nemo-platform/documentation/reference/cli-reference
- **API reference:** https://docs.nvidia.com/nemo-platform/documentation/reference/api-reference
- **Issue tracker:** https://github.com/NVIDIA-NeMo/nemo-platform/issues

## License

NeMo Platform is licensed under the [Apache License 2.0](https://github.com/NVIDIA-NeMo/nemo-platform/blob/main/LICENSE). Third-party open-source dependencies have their own licenses; review them before use.
