Faça uma pergunta ao seu grid Delphi em inglês simples

· Componentes
Faça uma pergunta ao seu grid Delphi em inglês simples

Seus usuários não querem uma linha de filtros. Eles querem digitar valor maior que 500 ordenado por data decrescente e ver o grid mudar. O sgcWebSockets 2026.10 adiciona o AI Data Pack ao sgcHTML: uma barra de consulta sobre o grid, a tabela de dados e o pivot, que transforma uma frase em filtros, ordenações, um agrupamento, destaques e um limite.

A parte interessante não é que ele chama um modelo. É o que acontece com a resposta antes de ela chegar aos seus dados.

Duas linhas

uses
  sgcHTML_AI;

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

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

Essa é toda a fiação. A barra aparece sobre o grid, a pergunta volta como um chip que indica o que foi entendido, e um controle a limpa de novo.

Funciona sem nenhuma chave de API

Deixe o provedor sem definir e o pacote continua respondendo. Um analisador baseado em regras na biblioteca entende as perguntas que as pessoas realmente digitam:

O mesmo analisador é o recurso de reserva quando uma chamada ao provedor falha, e é o que roda nas plataformas sem as unidades de IA. Assim, o recurso degrada para algo útil em vez de para um erro, e você pode entregá-lo a um cliente que não vai pagar por tokens.

O que sai da máquina

Por padrão, suas linhas não saem. A requisição carrega os nomes das colunas, seus rótulos, seus tipos e três valores de exemplo. Nada mais:

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

Isso importa pelo motivo óbvio, e por um menos óbvio: uma requisição menor é mais barata e mais rápida.

A validação é a fronteira de segurança

O que quer que volte é verificado contra suas próprias colunas antes de qualquer coisa ser aplicada. Cada nome de coluna contra a lista branca, cada operador contra um conjunto fechado, cada valor convertido para o tipo da sua coluna, cada limite restringido. Se nada sobrevive, o conjunto inteiro é limpo, explicação incluída, de modo que nenhum texto do modelo chega à página.

A consequência merece ser dita com clareza: uma pergunta que tenta contrabandear instruções não produz nada. Nem uma página de erro, nem um filtro parcial, nada. Testamos isso com prompts de injeção e payloads de script durante a construção, e esse é o comportamento que a suíte de QA agora garante.

Mais do que a barra de consulta

Um assistente de coluna. Uma coluna do grid pode pedir propostas, uma por linha, e cada proposta é mostrada para que uma pessoa aceite ou rejeite. Nada é escrito até que um humano decida.

Colagem inteligente em um formulário. Cole um endereço, uma assinatura de e-mail ou uma linha de uma planilha, e o formulário a mapeia para seus campos e marca o que foi preenchido.

Um prompt em linha. O novo TsgcHTMLComponent_InlineAIPrompt é um pequeno popover ao lado de um campo: pergunte, leia a resposta, aceite ou descarte.

Qual provedor

Sete, e é uma única propriedade: aiprOpenAI, aiprAnthropic, aiprGemini, aiprDeepSeek, aiprOllama, aiprGrok e aiprMistral. Com aiprOllama e uma BaseUrl, tudo roda no próprio hardware do cliente e nada sai do prédio.

Por baixo disso está a outra metade desta versão: TsgcAIChat agora pode pedir a qualquer um desses provedores que responda com JSON que segue um esquema fornecido por você, através do novo método ChatJSON, que analisa a resposta e pergunta mais uma vez com o erro de análise anexado, caso não tenha sido possível lê-la. Isso é o que transforma uma resposta estruturada em algo sobre o qual você pode agir, em vez de algo que você precisa raspar manualmente.

Veja em dados reais

A nova demo 18.AIData serve quatro páginas sobre cerca de 26.000 linhas de pedidos pré-geradas, roda sem chave de API, e imprime qual motor respondeu a cada pergunta e quantos milissegundos o servidor levou. O conjunto de dados é SQLite, criado na primeira execução, então não há nada para instalar.

Atualização

O pacote faz parte do sgcHTML e fica inerte até que um assistente seja atribuído: um grid sem AIAssistant renderiza exatamente o mesmo markup que renderizava antes.

Leia também

Assista ao vídeo

Há um vídeo curto sobre isso no canal da eSeGeCe.

Dúvidas, feedback ou ajuda com a migração? Entre em contato — você receberá uma resposta das pessoas que escreveram o código.