Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Add native provider request support for non-chat plugin model calls

オープン
#758 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
35/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
静か
技術スタック
python

調査の方向性

まず ModelFacade、ModelConfig、ColumnGeneratorWithModelRegistry を追跡して、既存の provider、ヘルスチェック、リトライ、スケジューリングの経路を理解します。public な request-hook と native-NER のオプションを比較し、次に、plugin が private フィールドなしで非 chat エンドポイントを呼び出せること、また Anonymizer が chat-completions のサポートを必要とせずにそれを使用できることを確認します。

索引モデルが issue の本文から書いたものです。

説明

task

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:

  • ModelConfig generation types are currently chat-completion, embedding, and image.
  • ModelFacade exposes chat generation, embeddings, and image generation, but no public raw provider request or native NER method.
  • ColumnGeneratorWithModelRegistry can access get_model_config() and get_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:

  1. 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.
  2. Or add a native NER generation type, e.g. GenerationType.NER, with NerInferenceParams, client/facade methods, scheduling metadata, and an appropriate health check.
  3. The hook should be usable by plugin column generators without accessing private fields like _secret_resolver or _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/completions for native NER models.
  • Scheduling metadata can distinguish non-chat request domains, or at least avoid misclassifying them as chat.
  • Anonymizer can replace its detector LLMTextColumnConfig with 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

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

NVIDIA-NeMo/DataDesigner のほかの issue

NVIDIA-NeMo/DataDesigner の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。