Posez une question à votre grille Delphi en anglais simple

· Composants
Posez une question à votre grille Delphi en anglais simple

Vos utilisateurs ne veulent pas d'une ligne de filtres. Ils veulent taper montant supérieur à 500 trié par date décroissante et voir la grille changer. sgcWebSockets 2026.10 ajoute l'AI Data Pack à sgcHTML : une barre de requête au-dessus de la grille, du tableau de données et du tableau croisé, qui transforme une phrase en filtres, tris, un regroupement, des surlignages et une limite.

La partie intéressante n'est pas qu'elle appelle un modèle. C'est ce qui arrive à la réponse avant qu'elle n'atteigne vos données.

Deux lignes

uses
  sgcHTML_AI;

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

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

C'est tout le câblage. La barre apparaît au-dessus de la grille, la question revient sous forme d'étiquette indiquant ce qui a été compris, et un contrôle l'efface à nouveau.

Ça fonctionne sans aucune clé API

Laissez le fournisseur non défini, et le pack répond quand même. Un analyseur basé sur des règles dans la bibliothèque comprend les questions que les gens tapent réellement :

Le même analyseur sert de repli quand un appel au fournisseur échoue, et c'est lui qui tourne sur les plateformes sans les unités d'IA. La fonctionnalité se dégrade donc vers quelque chose d'utile plutôt que vers une erreur, et vous pouvez la livrer à un client qui ne paiera pas pour des tokens.

Ce qui quitte la machine

Par défaut, pas vos lignes. La requête transporte les noms de colonnes, leurs libellés, leurs types et trois valeurs d'exemple. Rien d'autre :

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

Cela compte pour la raison évidente, et pour une raison moins évidente : une requête plus petite est moins chère et plus rapide.

La validation est la frontière de sécurité

Tout ce qui revient est vérifié par rapport à vos propres colonnes avant que quoi que ce soit ne soit appliqué. Chaque nom de colonne face à la liste blanche, chaque opérateur face à un ensemble fermé, chaque valeur convertie au type de sa colonne, chaque limite plafonnée. Si rien ne survit, l'ensemble est entièrement effacé, explication comprise, de sorte qu'aucun texte du modèle n'atteint jamais la page.

La conséquence mérite d'être dite clairement : une question qui tente de glisser des instructions ne produit rien. Ni page d'erreur, ni filtre partiel, rien. Nous l'avons testé avec des prompts d'injection et des payloads de script pendant la construction, et c'est ce comportement que la suite de QA verrouille désormais.

Plus que la barre de requête

Un assistant de colonne. Une colonne de la grille peut demander des propositions, une par ligne, et chaque proposition est affichée pour qu'une personne l'accepte ou la rejette. Rien n'est écrit tant qu'un humain ne l'a pas décidé.

Collage intelligent dans un formulaire. Collez une adresse, une signature d'e-mail ou une ligne issue d'un tableur, et le formulaire la répartit sur ses champs et marque ce qui a été rempli.

Une invite en ligne. Le nouveau TsgcHTMLComponent_InlineAIPrompt est une petite bulle à côté d'un champ : posez la question, lisez la réponse, acceptez ou rejetez.

Quel fournisseur

Sept, et c'est une seule propriété : aiprOpenAI, aiprAnthropic, aiprGemini, aiprDeepSeek, aiprOllama, aiprGrok et aiprMistral. Avec aiprOllama et un BaseUrl, tout tourne sur le matériel du client lui-même et rien ne quitte le bâtiment.

En dessous se trouve l'autre moitié de cette version : TsgcAIChat peut désormais demander à n'importe lequel de ces fournisseurs de répondre avec du JSON qui suit un schéma que vous fournissez, via la nouvelle méthode ChatJSON, qui analyse la réponse et redemande une fois de plus, avec l'erreur d'analyse jointe, si elle n'a pas pu être lue. C'est ce qui transforme une réponse structurée en quelque chose que vous pouvez exploiter, plutôt qu'en quelque chose que vous devez extraire à la main.

Voyez-le sur des données réelles

La nouvelle démo 18.AIData sert quatre pages sur environ 26 000 lignes de commande préchargées, tourne sans clé API, et affiche quel moteur a répondu à chaque question et combien de millisecondes le serveur a mis. Le jeu de données est en SQLite, créé au premier démarrage, il n'y a donc rien à installer.

Mise à niveau

Le pack fait partie de sgcHTML et reste inerte tant qu'aucun assistant n'est affecté : une grille sans AIAssistant restitue exactement le même balisage qu'auparavant.

À lire aussi

Voir la vidéo

Il existe une courte vidéo à ce sujet sur la chaîne eSeGeCe.

Des questions, un retour ou besoin d'aide pour la migration ? Contactez-nous — vous recevrez une réponse des personnes qui ont écrit le code.