Commit Graph

15 Commits

Author SHA1 Message Date
Tzu-Ling Kan 0ce3461a9e
feat: Add runtime.endpoint() method to eliminate namespace chaining (#6386)
Signed-off-by: tzulingk@nvidia.com <tzulingk@nvidia.com>
2026-02-19 16:02:37 -05:00
Tzu-Ling Kan 5624d14481
Rename fetch_llm to fetch_model (#6268)
Signed-off-by: tzulingk@nvidia.com <tzulingk@nvidia.com>
2026-02-13 23:22:35 +00:00
Graham King bbe82f182a
chore: Remove dynamo-run and mistral-rs engine (#6203)
Signed-off-by: Graham King <grahamk@nvidia.com>
2026-02-12 21:50:58 +00:00
Tushar Sharma cf433e6825
chore: update all copyright headers in repo to 2026 (#5130)
Signed-off-by: Tushar Sharma <tusharma@nvidia.com>
2026-01-02 22:08:23 +00:00
Graham King 69797b5ab3
feat: Only monitor NATS metrics if using NATS request plane (#4442)
Signed-off-by: Graham King <grahamk@nvidia.com>
2025-11-19 17:48:49 +00:00
Graham King e1af3af6ee
chore: Remove static mode (#4235)
Signed-off-by: Graham King <grahamk@nvidia.com>
2025-11-11 19:25:12 +00:00
Biswa Panda 960dc8967e
fix: replace hard coded dynamo namespace with env var (#3048)
Signed-off-by: Biswa Panda <biswa.panda@gmail.com>
2025-09-16 14:56:51 -07:00
Olga Andreeva 27fad26faf
refactor: Split ModelType to ModelInput for request and response type; ModelType for the supported workloads (#2714)
Signed-off-by: Guan Luo <gluo@nvidia.com>
Signed-off-by: GuanLuo <41310872+GuanLuo@users.noreply.github.com>
Co-authored-by: Guan Luo <gluo@nvidia.com>
Co-authored-by: GuanLuo <41310872+GuanLuo@users.noreply.github.com>
2025-09-03 22:22:37 +00:00
Graham King edf00c5c71
fix(bindings): Default router config in bindings (#1716)
* Added a default temperature value for text generation requests when no temperature is specified.
  * Improved handling of missing configuration values to prevent errors during model initialization.
2025-07-01 14:53:32 +00:00
Graham King aeb79e6277
feat: Support multiple models on single ingress node (#1127)
We can now do this:

- Node 1:

```
dynamo-run in=http out=dyn
```

- Node 2 and 3, two instances of component 'backend' in the nemotron_ultra pipeline:

```
dynamo-run in=dyn://nemotron_ultra.backend.generate out=vllm /data/models/NemotronUltra
```

- Node 4 and 5, two instances of the 'backend' component in nemotron_super pipeline:

```
dynamo-run in=dyn://nemotron_super.backend.generate out=vllm /data/models/NemotronSuper
```

The ingress node will discover all four instances and route correctly. We have been planning for this for a long time now.

As part of this auto-discovery is now always `out=dyn`, with no extra URL parts. Previously it could only route to a single pipeline.

Also:
- Refactor endpoint / instance naming now that I understand them
- Fix removing models when their instance stops.
2025-05-19 18:41:07 -04:00
Graham King 2981350880
feat(dynamo-run): KV-aware routing (#1064)
Router:
```
dynamo-run in=http out=dyn://dynamo.endpoint.generate --router-mode kv
```

Worker (* N):
```
dynamo-run in=dyn://dynamo.endpoint.generate out=vllm /data/llms/Qwen/Qwen3-4B
```

You need patched vllm and the C bindings `.so`. Full docs in the updated guide: `docs/guides/dynamo_run.md`.

This gives us a pure-Rust ingress node: OpenAI compliant HTTP server + Pre-processor + KV-aware router.
2025-05-14 15:21:46 -04:00
Graham King c7bb1e8346
fix(bindings): serve_endpoint no longer takes a lease (#1014) 2025-05-09 16:18:19 +00:00
Graham King 92bbbc3923
fix: Fix vllm/sglang engine model name if using HF repo (#986)
Signed-off-by: Graham King <graham@gkgk.org>
Co-authored-by: Ryan McCormick <rmccormick@nvidia.com>
2025-05-07 23:20:51 +00:00
Graham King 28fd481c9a
feat(dynamo-run): vllm and sglang subprocess engines (#954)
New vllm and sglang engines that run in a sub-process. Will hopefully replace the existing embedded python engines.
    
Why?
    
  - Pure Python, does not require knowing Rust to work on it. Much simpler to maintain.
  - No embedded Python interpreter which avoids linking libpython and avoids the MacOS virtualenv issues.
  - Should have better performance as it's "native" vllm / sglang.
  - Works with any version of vllm (including v1!) and sglang. Less upgrade struggle.
2025-05-06 16:03:31 -04:00
Graham King 99cd9d85a9
feat: dynamo-run <-> python interop (#934)
Adding this to a Python script makes it register on the network so that `dynamo-run` can discover it and send it requests:
```
from dynamo.llm import register_llm

MODEL = "Qwen/Qwen2.5-0.5B-Instruct"
await register_llm(endpoint, MODEL, 3)
```

Full vllm example, with pre-processing in dynamo:
- `dynamo-run in=text out=dyn://dynamo.backend.generate`
- `cd lib/bindings/python/examples/hello_world`
- `python server_vllm.py`

This builds on top of the work to move pre-processor to ingress side. It means we can decouple Rust and Python using NATS as the bus.

The `register_llm` call does this:

- Download the model from HF if necessary
- Load the model deployment card from the HF folder or extract from GGUF
- Push the tokenizer config etc into NATS object store so ingress can access it from a different machine
- Publish the model deployment card to ETCD
2025-05-05 20:49:19 -04:00