Add native provider request support for non-chat plugin model calls
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- python
- 領域
- ai, backend-api-design
調査の方向性
まず ModelFacade、ModelConfig、ColumnGeneratorWithModelRegistry を追跡して、既存の provider、ヘルスチェック、リトライ、スケジューリングの経路を理解します。public な request-hook と native-NER のオプションを比較し、次に、plugin が private フィールドなしで非 chat エンドポイントを呼び出せること、また Anonymizer が chat-completions のサポートを必要とせずにそれを使用できることを確認します。
索引モデルが issue の本文から書いたものです。
説明
Priority Level
Medium
Task Summary
Enable DataDesigner column-generator plugins to call non-chat model endpoints, such as native NER/token-classification endpoints, through DataDesigner's model/provider infrastructure without requiring those models to expose a chat-completions-compatible head.
Technical Details & Implementation Plan
Anonymizer is moving custom workflow columns into DataDesigner plugins. The next desired step is to make its GLiNER detector a plugin column as well, so nvidia/gliner-pii can be served through its native NER API instead of being wrapped behind /chat/completions.
Current blockers in DataDesigner:
ModelConfiggeneration types are currentlychat-completion,embedding, andimage.ModelFacadeexposes chat generation, embeddings, and image generation, but no public raw provider request or native NER method.ColumnGeneratorWithModelRegistrycan accessget_model_config()andget_model_provider(), but a plugin cannot cleanly reuse API key resolution, retries, request admission, provider error mapping, or HTTP client lifecycle for a custom route.- If a plugin declares the detector model alias while the model remains
chat-completion, DataDesigner health checks call chat generation, which still requires the extra chat head. - If the plugin avoids declaring the alias, it loses startup validation and scheduling metadata.
Possible implementation paths:
- Add a public provider request hook to
ModelFacade, for example a JSON request method that reuses provider endpoint, resolved API key, extra headers/body, timeout, retries, request admission, and error mapping. - Or add a native NER generation type, e.g.
GenerationType.NER, withNerInferenceParams, client/facade methods, scheduling metadata, and an appropriate health check. - The hook should be usable by plugin column generators without accessing private fields like
_secret_resolveror_client.
Investigation / Context
This came up while implementing Anonymizer workflow-column plugins: https://github.com/NVIDIA-NeMo/Anonymizer/pull/192
That PR removes CustomColumnConfig from the detection post-processing path, but the detector itself remains an LLMTextColumnConfig, so it still routes through chat completion generation.
A native detector plugin in Anonymizer would be straightforward if DataDesigner exposed a clean non-chat model-call boundary. It would call the NER endpoint and emit the existing raw detector shape:
{
"entities": [
{
"text": "Alice",
"label": "first_name",
"start": 0,
"end": 5,
"score": 0.98
}
]
}
Agent Plan / Findings
Acceptance criteria:
- A plugin column generator can call a non-chat model endpoint through public DataDesigner APIs.
- The call reuses provider config, resolved API keys, extra headers/body, timeout, retry behavior, and request admission.
- Health checks do not require
/chat/completionsfor native NER models. - Scheduling metadata can distinguish non-chat request domains, or at least avoid misclassifying them as chat.
- Anonymizer can replace its detector
LLMTextColumnConfigwith a plugin column without requiring a chat-completions-compatible NER server.
Dependencies
Related downstream work: Anonymizer native detector workflow column after this DataDesigner support exists.
- 主要言語
- Python
- スター
- 2.4k
- フォーク
- 234
- 平均マージ
- 22時間 5分
- マージ済み PR(30日)
- 70
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
NVIDIA-NeMo/DataDesigner のほかの issue
-
`ValidationColumnConfig` misaligns rows and discards the whole batch after an upstream row is dropped対応中かも @suryapilla が今日担当しました。 オープンtriaged
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
NVIDIA-NeMo/DataDesigner#1073 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
docs: required_columns description is incomplete for LLM and multimodal columns対応中かも @rksharma-owg が 7 日前に担当しました。 オープンbug triaged
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
NVIDIA-NeMo/DataDesigner#1002 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
enforce \from future import annotations` via ruff FA102 rule`対応中かも @chethanuk が 42 日前に担当しました。 オープンtask
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
NVIDIA-NeMo/DataDesigner#760 ·
メンテナーはふだん 1 日以内に返信
-
Support external model providers in Slurm runs対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
NVIDIA-NeMo/DataDesigner#1079 ·
メンテナーはふだん 1 日以内に返信
-
Children forked after a run generate identical sampler data対応中かも @binaryaaron が 1 日前に担当しました。 オープンbug
難易度 3/5 1〜2日 初心者へのやさしさ 25/100
NVIDIA-NeMo/DataDesigner#1076 ·
メンテナーはふだん 1 日以内に返信
NVIDIA-NeMo/DataDesigner の issue をすべて見る
似ている issue
-
bug
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
sergey-miryanov/gcmon#230 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Azure-Samples/azure-search-openai-demo#3249 ·
メンテナーはふだん 1 日以内に返信
-
[BUG] Failed archive extraction deletes the dataset cache対応中かも @dajiaohuang が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
alibaba/GraphScope#4674 ·