Dokumentacja
Kluczowe właściwości i metody
Składniki, po które sięgasz najczęściej.
Człowiek w pętli
Prompt jest wpisywany w popoverze, odpowiedź jest w nim pokazywana, a tylko Accept zgłasza odpowiedź Twojej aplikacji, przez OnAIAccept. Discard zamyka popover i wyrzuca odpowiedź. Komponent nigdy nie zapisuje do zestawu danych, pola ani strony: Twoja aplikacja decyduje, co zrobić z tym, co wróci. Tekst modelu jest zapisywany przez warstwę węzłów, więc jest escapowany i nigdy nie może stać się znacznikami.
Metody
Open otwiera popover bez wpisanego jeszcze promptu. ProcessPrompt(aPrompt) pyta najpierw OnAIPrompt, a gdy ten tego nie obsłużył, asystenta na podstawie Context, i zostawia popover otwarty z odpowiedzią w ResultText. Accept zgłasza ResultText przez OnAIAccept i zamyka popover, a gdy nie ma odpowiedzi, niczego nie zgłasza. Discard go zamyka.
Wydarzenia
OnAIPrompt(Sender, aPrompt, aResult, aHandled) pozwala Twojej aplikacji odpowiedzieć samodzielnie: ustaw aResult i aHandled. Zostaw aHandled jako False, a zamiast tego zostanie zapytany asystent. OnAIAccept(Sender, aValue) jest wywoływane, gdy człowiek naciśnie Akceptuj, a aValue to odpowiedź, która była na ekranie.
Asystent i Context
Przypisz TsgcHTMLAIAssistant do AIAssistant, zobacz AIAssistant. Popover wywołuje jego SuggestColumnValues na Context, czyli TStringList z jedną linią na każdy wiersz. To są dane wierszy: nic nie jest wysyłane, dopóki asystent ma AllowRowDataToProvider równe False, a gdy Context jest pusty i OnAIPrompt nie odpowiedziało, nie jest zadawane żadne pytanie.
Właściwości
PromptID (domyślnie sgcInlineAI) to identyfikator popovera i wartość odsyłana w polu prompt. TargetName nazywa kontrolkę, do której należy zaakceptowana odpowiedź, i jest odsyłane w polu target, dzięki czemu możesz ją skierować. Title, Placeholder i ButtonText ustawiają teksty, IsOpen pokazuje panel, a PromptText i ResultText przechowują to, o co zapytano, i odpowiedź.
Akcje, które odsyła
Nie ma trasy HTTP. Każda kontrolka to formularz data-sgc-ws-send: inlineAIOpen (pola prompt, target), inlineAIAsk (plus text), inlineAIAccept i inlineAIDiscard. Rozdziel według action, sprawdź prompt, aby wiedzieć, który popover to wysłał, i wypchnij z powrotem ponownie wyrenderowany komponent. Host, który przesyła odpowiedź strumieniowo, renderuje go ponownie z większą ilością ResultText.
Wynik
Wyzwalacz jest zawsze renderowany. Przy włączonym IsOpen obok niego renderowana jest karta z tytułem, polem promptu, przyciskiem zapytania i, gdy jest już odpowiedź, odpowiedzią z kontrolkami Akceptuj i Odrzuć. Teksty pochodzą ze zlokalizowanych napisów AIAsk, AIAccept i AIDiscard.
Jeden użytkownik na instancję
Komponent przechowuje pytanie i oczekującą odpowiedź między dwoma komunikatami, więc jedna instancja to jeden użytkownik: w aplikacji wieloużytkownikowej utwórz osobną instancję dla każdej sesji. Komunikaty nie są sprawdzane pod kątem CSRF, jak każdy inny komunikat WebSocket htmx, więc autoryzację tego, co robi OnAIAccept, zachowaj po stronie serwera.
Jednostka kompiluje się, gdy zdefiniowane jest SGC_HTML, czego sgcVer.inc nie robi dla Androida i iOS. Dostawca wymaga jednostek AI z edycji Enterprise lub All-Access albo pakietu sgcAI, a działają one tylko w Windows. Ten komponent nie ma zapasowego mechanizmu opartego na regułach, więc na innych platformach lub bez dostawcy odpowiedz samodzielnie w OnAIPrompt.