Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto
#758 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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

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

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.

Lenguaje dominante
Python
Estrellas
2.4k
Forks
234
Merge medio
22 h 5 min
PR fusionados (30 d)
70

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de NVIDIA-NeMo/DataDesigner

Todos los issues de NVIDIA-NeMo/DataDesigner

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.