Pregúntale algo a tu grid de Delphi en lenguaje sencillo

· Componentes
Pregúntale algo a tu grid de Delphi en lenguaje sencillo

Tus usuarios no quieren una fila de filtros. Quieren escribir importe mayor que 500 ordenado por fecha desc y ver cómo cambia el grid. sgcWebSockets 2026.10 añade el AI Data Pack a sgcHTML: una barra de consulta sobre el grid, la tabla de datos y el pivot, que convierte una frase en filtros, ordenaciones, una agrupación, resaltados y un límite.

Lo interesante no es que llame a un modelo. Es lo que ocurre con la respuesta antes de que llegue a tus datos.

Dos líneas

uses
  sgcHTML_AI;

FAssistant := TsgcHTMLAIAssistant.Create(Self);
FAssistant.Provider := aiprOpenAI;
FAssistant.APIKey := ReadSetting('openai.key');

FGrid.AIAssistant := FAssistant;
FGrid.AIQueryEnabled := True;

Eso es todo el cableado. La barra aparece sobre el grid, la pregunta vuelve como una etiqueta que indica lo que se entendió, y un control la borra de nuevo.

Funciona sin ninguna clave de API

Deja el proveedor sin definir y el pack sigue respondiendo. Un analizador basado en reglas de la librería entiende las preguntas que la gente realmente escribe:

El mismo analizador es el respaldo cuando falla una llamada al proveedor, y es lo que se ejecuta en las plataformas sin las unidades de IA. Así que la función se degrada a algo útil en lugar de a un error, y puedes entregársela a un cliente que no vaya a pagar por tokens.

Lo que sale de la máquina

Por defecto, tus filas no salen. La solicitud lleva los nombres de columna, sus títulos, sus tipos y tres valores de muestra. Nada más:

FAssistant.AllowRowDataToProvider := False;   { the default }
FAssistant.MaxRows := 50;                     { when it is True }

Eso importa por el motivo obvio, y por uno menos obvio: una solicitud más pequeña es más barata y más rápida.

La validación es la frontera de seguridad

Todo lo que vuelve se comprueba contra tus propias columnas antes de aplicar nada. Cada nombre de columna contra la lista blanca, cada operador contra un conjunto cerrado, cada valor forzado al tipo de su columna, cada límite recortado. Si nada sobrevive, se borra el conjunto entero, explicación incluida, de modo que ningún texto del modelo llega jamás a la página.

La consecuencia merece decirse con claridad: una pregunta que intenta colar instrucciones no produce nada. Ni una página de error, ni un filtro parcial, nada. Lo probamos con prompts de inyección y payloads de script mientras lo construíamos, y ese es el comportamiento que ahora vigila la suite de QA.

Más que la barra de consulta

Un asistente de columna. Una columna del grid puede pedir propuestas, una por fila, y cada propuesta se muestra para que una persona la acepte o la rechace. No se escribe nada hasta que un humano lo decide.

Pegado inteligente en un formulario. Pega una dirección, una firma de correo o una línea de una hoja de cálculo, y el formulario la asigna a sus campos y marca lo que se rellenó.

Un prompt en línea. El nuevo TsgcHTMLComponent_InlineAIPrompt es un pequeño popover junto a un campo: pregunta, lee la respuesta, acepta o descarta.

Qué proveedor

Siete, y es una sola propiedad: aiprOpenAI, aiprAnthropic, aiprGemini, aiprDeepSeek, aiprOllama, aiprGrok y aiprMistral. Con aiprOllama y una BaseUrl, todo funciona en el propio hardware del cliente y nada sale del edificio.

Debajo está la otra mitad de esta versión: TsgcAIChat ahora puede pedir a cualquiera de esos proveedores que responda con JSON que sigue un esquema que tú proporcionas, mediante el nuevo método ChatJSON, que analiza la respuesta y vuelve a preguntar una vez más con el error de análisis adjunto si no se pudo leer. Eso es lo que convierte una respuesta estructurada en algo sobre lo que puedes actuar, en lugar de algo que tienes que extraer a mano.

Míralo con datos reales

La nueva demo 18.AIData sirve cuatro páginas sobre unas 26.000 líneas de pedido generadas, funciona sin clave de API, e imprime qué motor respondió a cada pregunta y cuántos milisegundos tardó el servidor. El conjunto de datos es SQLite, creado en el primer arranque, así que no hay nada que instalar.

Actualización

El pack forma parte de sgcHTML y permanece inerte hasta que se le asigna un asistente: un grid sin AIAssistant renderiza exactamente el mismo marcado que renderizaba antes.

Sigue leyendo

Míralo en vídeo

Hay un vídeo breve de esto en el canal de eSeGeCe.

¿Preguntas, comentarios o ayuda con la migración? Ponte en contacto — recibirás respuesta de las mismas personas que escribieron el código.