Add native provider request support for non-chat plugin model calls
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- python
- Área
- ai, backend-api-design
Línea de trabajo
Empieza siguiendo ModelFacade, ModelConfig y ColumnGeneratorWithModelRegistry para entender las rutas existentes del proveedor, las comprobaciones de estado, los reintentos y la planificación. Compara las opciones públicas de request-hook y native-NER; después, verifica que un plugin pueda llamar a un endpoint que no sea de chat sin campos privados y que Anonymizer pueda usarlo sin requerir compatibilidad con chat-completions.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Python
- Estrellas
- 2.4k
- Forks
- 234
- Merge medio
- 22 h 5 min
- PR fusionados (30 d)
- 70
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de NVIDIA-NeMo/DataDesigner
-
`ValidationColumnConfig` misaligns rows and discards the whole batch after an upstream row is droppedPosiblemente ocupada @suryapilla la tomó hoy. Abiertotriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
NVIDIA-NeMo/DataDesigner#1073 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
docs: required_columns description is incomplete for LLM and multimodal columnsPosiblemente ocupada @rksharma-owg la tomó hace 6 días. Abiertobug triaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
NVIDIA-NeMo/DataDesigner#1002 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
enforce \from future import annotations` via ruff FA102 rule`Posiblemente ocupada @chethanuk la tomó hace 42 días. Abiertotask
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
NVIDIA-NeMo/DataDesigner#760 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
NVIDIA-NeMo/DataDesigner#1079 ·
Los mantenedores suelen responder en 1 día
-
Children forked after a run generate identical sampler dataPosiblemente ocupada @binaryaaron la tomó hoy. Abiertobug
Dificultad 3/5 1-2 días Aptitud para principiantes 25/100
NVIDIA-NeMo/DataDesigner#1076 ·
Los mantenedores suelen responder en 1 día
Todos los issues de NVIDIA-NeMo/DataDesigner
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
foxglove/mcap#1907 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
namespace operations
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
EclipseFdn/open-vsx.org#14623 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
developmentseed/titiler-cmr#261 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
andrewyng/openworker#774 ·
Los mantenedores suelen responder en 1 día
-
aggfuncAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
worldbank/blackmarblepy#160 ·