Zadaj pytanie swojej siatce Delphi prostym językiem angielskim

· Komponenty
Zadaj pytanie swojej siatce Delphi prostym językiem angielskim

Twoi użytkownicy nie chcą wiersza filtrów. Chcą wpisać kwota większa niż 500 posortowane malejąco według daty i zobaczyć, jak zmienia się siatka. sgcWebSockets 2026.10 dodaje do sgcHTML AI Data Pack: pasek zapytań nad siatką, tabelą danych i tabelą przestawną, który zamienia zdanie na filtry, sortowania, grupowanie, podświetlenia i limit.

Interesująca część nie polega na tym, że wywołuje model. Chodzi o to, co dzieje się z odpowiedzią, zanim dotrze do Twoich danych.

Dwie linijki

uses
  sgcHTML_AI;

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

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

To całe okablowanie. Pasek pojawia się nad siatką, pytanie wraca jako etykieta mówiąca, co zostało zrozumiane, a jeden element sterujący czyści je ponownie.

Działa całkowicie bez klucza API

Zostaw dostawcę niezdefiniowanego, a pakiet i tak odpowie. Oparty na regułach parser w bibliotece rozumie pytania, które ludzie naprawdę wpisują:

Ten sam parser jest rozwiązaniem awaryjnym, gdy wywołanie dostawcy zawiedzie, i to on działa na platformach bez jednostek AI. Funkcja degraduje się więc do czegoś użytecznego zamiast do błędu, i możesz dostarczyć ją klientowi, który nie zapłaci za tokeny.

Co opuszcza maszynę

Domyślnie Twoje wiersze nie. Żądanie niesie nazwy kolumn, ich etykiety, ich typy i trzy przykładowe wartości. Nic więcej:

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

To ma znaczenie z oczywistego powodu i z jednego mniej oczywistego: mniejsze żądanie jest tańsze i szybsze.

Walidacja jest granicą bezpieczeństwa

Cokolwiek wraca, jest sprawdzane względem Twoich własnych kolumn, zanim cokolwiek zostanie zastosowane. Każda nazwa kolumny względem białej listy, każdy operator względem zamkniętego zbioru, każda wartość wymuszona do typu swojej kolumny, każdy limit przycięty. Jeśli nic nie przetrwa, cały zestaw zostaje wyczyszczony, wraz z wyjaśnieniem, dzięki czemu żaden tekst modelu nigdy nie dociera do strony.

Konsekwencję warto powiedzieć wprost: pytanie, które próbuje przemycić instrukcje, nie daje nic. Ani strony błędu, ani częściowego filtra, nic. Testowaliśmy to promptami wstrzykującymi i ładunkami skryptowymi podczas budowy, i to właśnie to zachowanie teraz pilnuje pakiet testów QA.

Więcej niż pasek zapytań

Asystent kolumny. Kolumna siatki może poprosić o propozycje, jedną na wiersz, a każda propozycja jest pokazywana, aby osoba mogła ją zaakceptować lub odrzucić. Nic nie jest zapisywane, dopóki nie zdecyduje o tym człowiek.

Inteligentne wklejanie do formularza. Wklej adres, podpis e-mail lub wiersz z arkusza kalkulacyjnego, a formularz zmapuje go na swoje pola i oznaczy, co zostało wypełnione.

Podpowiedź w linii. Nowy TsgcHTMLComponent_InlineAIPrompt to mały dymek obok pola: zapytaj, przeczytaj odpowiedź, zaakceptuj lub odrzuć.

Który dostawca

Siedmiu, i to jedna właściwość: aiprOpenAI, aiprAnthropic, aiprGemini, aiprDeepSeek, aiprOllama, aiprGrok i aiprMistral. Z aiprOllama i BaseUrl, całość działa na sprzęcie samego klienta i nic nie opuszcza budynku.

Pod spodem znajduje się druga połowa tej wersji: TsgcAIChat może teraz poprosić dowolnego z tych dostawców o odpowiedź w postaci JSON zgodnego ze schematem, który dostarczasz, poprzez nową metodę ChatJSON, która analizuje odpowiedź i pyta ponownie z dołączonym błędem parsowania, jeśli nie dało się jej odczytać. To właśnie sprawia, że strukturalna odpowiedź staje się czymś, na czym możesz działać, zamiast czymś, co musisz wyskrobać ręcznie.

Zobacz to na prawdziwych danych

Nowe demo 18.AIData serwuje cztery strony na około 26 000 wygenerowanych wierszy zamówień, działa bez klucza API i wypisuje, który silnik odpowiedział na każde pytanie oraz ile milisekund zajęło to serwerowi. Zbiór danych to SQLite, tworzony przy pierwszym uruchomieniu, więc nie ma nic do zainstalowania.

Aktualizacja

Pakiet jest częścią sgcHTML i pozostaje bezczynny, dopóki nie zostanie przypisany asystent: siatka bez AIAssistant renderuje dokładnie taki sam znacznik jak wcześniej.

Czytaj dalej

Zobacz wideo

Jest na ten temat krótkie wideo na kanale eSeGeCe.

Pytania, uwagi lub pomoc przy migracji? Skontaktuj się z nami — otrzymasz odpowiedź od osób, które napisały ten kod.