InlineAIPrompt

TsgcHTMLComponent_InlineAIPrompt: kullanıcının çalıştığı yerde, bir memonun, zengin bir düzenleyicinin yanında ya da bir ızgara sütununun başlığında asistana soran bir popover, Delphi, C++ Builder ve .NET'te. Neyin saklanacağına bir kişi karar verir.

TsgcHTMLComponent_InlineAIPrompt

Döngüde insan bulunan bir denetim. İstem popover içinde yazılır, yanıt yine orada gösterilir ve yanıtı yalnızca Kabul Et, OnAIAccept aracılığıyla uygulamanıza bildirir. Bileşen hiçbir zaman bir veri kümesine, bir alana ya da sayfaya yazmaz. Yanıtı AIAssistant özelliği üzerinden alır; bu özellik bir TsgcHTMLAIAssistant nesnesidir.

Bileşen sınıfı

TsgcHTMLComponent_InlineAIPrompt (sgcHTML_Component_InlineAIPrompt birimi)

İşler

Bir tetikleyici düğme ve istem kutusunu, yanıtı, Kabul Et ve Yoksay düğmelerini içeren bir popover kartı

Diller

Delphi, C++ Builder, .NET

Asistanı atayın, dört eylemi yönlendirin, yanıtı kabul edin

Popover'a bir PromptID ve bir TargetName verin, AIAssistant özelliğini atayın, Context değerini asistanın görebileceği satırlarla doldurun ve gönderdiği dört eylemi Open, ProcessPrompt, Accept ve Discard yöntemlerine yönlendirin. Kabul edilen, size OnAIAccept içinde ulaşır.

uses
  sgcHTML_AI, sgcHTML_Component_InlineAIPrompt;

FAI := TsgcHTMLAIAssistant.Create(Self);
FAI.Provider := aiprOpenAI;
FAI.APIKey := 'API_KEY';
FAI.AllowRowDataToProvider := True;   // the answer is drafted over Context

FPrompt := TsgcHTMLComponent_InlineAIPrompt.Create(Self);
FPrompt.PromptID := 'notePrompt';
FPrompt.TargetName := 'Note';
FPrompt.Title := 'Draft the note';
FPrompt.Placeholder := 'e.g. write a short delivery note';
FPrompt.AIAssistant := FAI;
FPrompt.Context.Add('Customer=Northwind');   // the rows the assistant may see
FPrompt.OnAIAccept := PromptAccept;

Response := FPrompt.HTML;   // the trigger, and the popover while IsOpen

// only when a human presses Accept, aValue is the answer that was on screen
procedure TMain.PromptAccept(Sender: TObject; const aValue: string);
begin
  SaveNote(aValue);   // your application writes it where it belongs
end;

// in the message handler, one call for each action the popover posts
if vAction = 'inlineAIOpen' then
  FPrompt.Open
else if vAction = 'inlineAIAsk' then
  FPrompt.ProcessPrompt(vText)
else if vAction = 'inlineAIAccept' then
  FPrompt.Accept
else if vAction = 'inlineAIDiscard' then
  FPrompt.Discard;
oHTMX.PushFragment(vGuid, FPrompt.HTML);
// includes: sgcHTML_AI.hpp, sgcHTML_Component_InlineAIPrompt.hpp

FAI = new TsgcHTMLAIAssistant(this);
FAI->Provider = aiprOpenAI;
FAI->APIKey = "API_KEY";
FAI->AllowRowDataToProvider = true;   // the answer is drafted over Context

FPrompt = new TsgcHTMLComponent_InlineAIPrompt(this);
FPrompt->PromptID = "notePrompt";
FPrompt->TargetName = "Note";
FPrompt->Title = "Draft the note";
FPrompt->Placeholder = "e.g. write a short delivery note";
FPrompt->AIAssistant = FAI;
FPrompt->Context->Add("Customer=Northwind");   // the rows the assistant may see
FPrompt->OnAIAccept = PromptAccept;

String html = FPrompt->HTML;   // the trigger, and the popover while IsOpen

// only when a human presses Accept, aValue is the answer that was on screen
void __fastcall TMain::PromptAccept(TObject *Sender, const String aValue)
{
  SaveNote(aValue);   // your application writes it where it belongs
}

// in the message handler, one call for each action the popover posts
if (vAction == "inlineAIOpen")
  FPrompt->Open();
else if (vAction == "inlineAIAsk")
  FPrompt->ProcessPrompt(vText);
else if (vAction == "inlineAIAccept")
  FPrompt->Accept();
else if (vAction == "inlineAIDiscard")
  FPrompt->Discard();
oHTMX->PushFragment(vGuid, FPrompt->HTML);
using esegece.sgcWebSockets;

var ai = new TsgcHTMLAIAssistant();
ai.Provider = TsgcHTMLAIAssistant.TsgcHTMLAIProvider.aiprOpenAI;
ai.APIKey = "API_KEY";
ai.AllowRowDataToProvider = true;   // the answer is drafted over Context

var prompt = new TsgcHTMLComponent_InlineAIPrompt();
prompt.PromptID = "notePrompt";
prompt.TargetName = "Note";
prompt.Title = "Draft the note";
prompt.Placeholder = "e.g. write a short delivery note";
prompt.AIAssistant = ai;
prompt.Context.Add("Customer=Northwind");   // the rows the assistant may see
prompt.OnAIAccept += PromptAccept;

string html = prompt.HTML;   // the trigger, and the popover while IsOpen

// only when a human presses Accept, value is the answer that was on screen
void PromptAccept(object sender, string value)
{
    SaveNote(value);   // your application writes it where it belongs
}

// in the message handler, one call for each action the popover posts
if (action == "inlineAIOpen")
    prompt.Open();
else if (action == "inlineAIAsk")
    prompt.ProcessPrompt(text);
else if (action == "inlineAIAccept")
    prompt.Accept();
else if (action == "inlineAIDiscard")
    prompt.Discard();
htmx.PushFragment(guid, prompt.HTML);

Temel özellikler & yöntemler

En sık başvurduğunuz üyeler.

Döngüde insan

İstem popover içinde yazılır, yanıt yine orada gösterilir ve yanıtı yalnızca Accept, OnAIAccept aracılığıyla uygulamanıza bildirir. Discard popover'ı kapatır ve yanıtı atar. Bileşen hiçbir zaman bir veri kümesine, bir alana ya da sayfaya yazmaz: geri gelenle ne yapılacağına uygulamanız karar verir. Model metni düğüm katmanı üzerinden yazılır, bu yüzden kaçışlanır ve hiçbir zaman işaretlemeye dönüşemez.

Yöntemler

Open, popover'ı henüz hiçbir istem yazılmamış olarak açar. ProcessPrompt(aPrompt) önce OnAIPrompt olayına, bu olay işlemediyse Context üzerinden asistana sorar ve popover'ı yanıt ResultText içinde olacak şekilde açık bırakır. Accept, ResultText değerini OnAIAccept aracılığıyla bildirir ve popover'ı kapatır, yanıt yoksa hiçbir şey bildirmez. Discard onu kapatır.

Etkinlikler

OnAIPrompt(Sender, aPrompt, aResult, aHandled) uygulamanızın kendisi yanıtlamasını sağlar: aResult ve aHandled değerlerini ayarlayın. aHandled değerini False bırakırsanız bunun yerine asistana sorulur. OnAIAccept(Sender, aValue) bir kişi Kabul Et düğmesine bastığında tetiklenir ve aValue ekrandaki yanıttır.

Asistan ve Context

Bir TsgcHTMLAIAssistant öğesini AIAssistant özelliğine atayın, bkz. AIAssistant. Popover, SuggestColumnValues yöntemini Context üzerinde çağırır; bu, her satır için bir satır içeren bir TStringList nesnesidir. Bunlar satır verileridir: asistanın AllowRowDataToProvider özelliği False iken hiçbir şey gönderilmez ve Context boşsa ve OnAIPrompt yanıtlamadıysa hiçbir şey sorulmaz.

Özellikler

PromptID (varsayılan sgcInlineAI) popover'ın kimliğidir ve prompt alanında gönderilen değerdir. TargetName, kabul edilen yanıtın ait olduğu denetimi adlandırır ve target alanında gönderilir, böylece onu yönlendirebilirsiniz. Title, Placeholder ve ButtonText metinleri belirler, IsOpen paneli gösterir, PromptText ve ResultText ise sorulanı ve yanıtlananı tutar.

Gönderdiği eylemler

HTTP rotası yoktur. Her denetim bir data-sgc-ws-send formudur: inlineAIOpen (prompt, target alanları), inlineAIAsk (ek olarak text), inlineAIAccept ve inlineAIDiscard. action değerine göre dağıtın, hangi popover'ın gönderdiğini anlamak için prompt alanına bakın ve yeniden işlenen bileşeni geri gönderin. Yanıtı akış olarak ileten bir host, bileşeni daha fazla ResultText ile yeniden işler.

Çıktı

Tetikleyici her zaman işlenir. IsOpen açıkken yanında başlığı, istem kutusunu, sor düğmesini ve bir yanıt olduğunda yanıtı ile bir Kabul Et ve bir Yoksay denetimini içeren bir kart işlenir. Metinler AIAsk, AIAccept ve AIDiscard yerelleştirilmiş dizelerinden gelir.

Örnek başına bir kullanıcı

Bileşen soruyu ve bekleyen yanıtı iki ileti arasında tutar, bu yüzden bir örnek bir kullanıcıdır: çok kullanıcılı bir uygulamada her oturum için ayrı bir örnek kullanın. İletiler, diğer tüm htmx WebSocket iletileri gibi CSRF denetiminden geçmez, bu yüzden OnAIAccept işleminin yetkilendirmesini sunucuda yapın.

Sürümler ve platformlar

Birim, SGC_HTML tanımlı olduğunda derlenir; sgcVer.inc bunu Android ve iOS için tanımlamaz. Bir sağlayıcı, Enterprise ya da All-Access sürümünün ya da sgcAI paketinin AI birimlerini gerektirir ve bunlar yalnızca Windows'tadır. Bu bileşenin kural tabanlı bir yedeği yoktur, bu yüzden diğer platformlarda ya da sağlayıcı yokken yanıtı OnAIPrompt içinde kendiniz verin.

Keşfetmeye devam edin

Çevrimiçi yardımBu bileşen için tam API referansı ve kullanım kılavuzu.
AI Data Pack kılavuzuAsistanın, işlem modelinin ve veri bileşenlerinin birbirine nasıl uyduğu ve makineden neyin çıktığı.
Tüm sgcHTML Bileşenleri80'den fazla bileşenin tam özellik matrisine göz atın.
Ücretsiz Deneme Sürümünü İndirin30 günlük deneme sürümü, bir popover'ın bir formun notunu taslak olarak yazdığı 18.AIData dahil olmak üzere 60.HTML demo projelerini içerir.
FiyatlandırmaTam kaynak kodlu Single, Team ve Site lisansları.
En avantajlı seçenek: All-AccessTüm eSeGeCe ürünleri, Premium Destek dahil, yılda €1,059'dan itibaren.
All-Access fiyatlarına bakın

Başlamaya Hazır mısınız?

Ücretsiz deneme sürümünü indirin ve Delphi, C++ Builder ve .NET'te web arayüzleri oluşturmaya başlayın.