AIChat

TsgcHTMLComponent_AIChat — een AI-assistentchat met een provider-/modelselector, live token-streaming en RAG-bronvermeldingen, in Delphi, C++ Builder en .NET.

TsgcHTMLComponent_AIChat

Een assistentvlak dat TsgcHTMLComponent_ChatBox uitbreidt met een OpenAI / Anthropic / Gemini-providerkop, gestreamde antwoorden en inklapbare RAG-bronnen. Kies een provider, verwerk OnChatSend en lees daarna de HTML-eigenschap.

Componentklasse

TsgcHTMLComponent_AIChat

Rendert

Bootstrap 5 card + scoped CSS

Familie

Chat en AI

Talen

Delphi, C++ Builder, .NET

Maak het aan, koppel OnChatSend, render het

Kies AIProvider en ModelName, verwerk OnChatSend om het antwoord te produceren en lees daarna HTML. Het event is de manier waarop een bericht uit de browser je Delphi-, C++ Builder- of .NET-code bereikt.

uses
  sgcHTML_Enums, sgcHTML_Component_AIChat;

var
  oAI: TsgcHTMLComponent_AIChat;
begin
  oAI := TsgcHTMLComponent_AIChat.Create(nil);
  try
    oAI.AIProvider := apOpenAI;
    oAI.ModelName := 'gpt-4o';
    oAI.AIName := 'Support Bot';
    oAI.SystemPrompt := 'You are a helpful assistant.';
    oAI.WelcomeMessage := 'Hi! Ask me anything.';
    oAI.StreamingEnabled := True;
    oAI.OnChatSend := DoChatSend;   // browser message -> your code

    WebModule.Response := oAI.HTML;   // Bootstrap card + AI header
  finally
    oAI.Free;
  end;
end;

// OnChatSend hands you the user message + the JSON history,
// you call your LLM and stream the answer back:
procedure TForm1.DoChatSend(Sender: TObject; const aUserMessage,
  aConversationHistory: string);
begin
  oAI.BeginStreaming;
  oAI.PushStreamChunk('Sure, ');
  oAI.PushStreamChunk('here is the answer...');
  oAI.EndStreaming;
  WebSocket.WriteData(oAI.GetStreamFragmentHTML);
end;
// includes: sgcHTML_Enums.hpp, sgcHTML_Component_AIChat.hpp

TsgcHTMLComponent_AIChat *oAI = new TsgcHTMLComponent_AIChat(NULL);
try
{
  oAI->AIProvider = apOpenAI;
  oAI->ModelName = "gpt-4o";
  oAI->AIName = "Support Bot";
  oAI->SystemPrompt = "You are a helpful assistant.";
  oAI->WelcomeMessage = "Hi! Ask me anything.";
  oAI->StreamingEnabled = true;
  oAI->OnChatSend = DoChatSend;   // browser message -> your code

  String html = oAI->HTML;   // Bootstrap card + AI header
}
__finally
{
  delete oAI;
}

// OnChatSend handler: call your LLM, then stream the reply:
void __fastcall TForm1::DoChatSend(TObject *Sender,
  const String aUserMessage, const String aConversationHistory)
{
  oAI->BeginStreaming();
  oAI->PushStreamChunk("Sure, ");
  oAI->PushStreamChunk("here is the answer...");
  oAI->EndStreaming();
}
using esegece.sgcWebSockets;

var ai = new TsgcHTMLComponent_AIChat();
ai.AIProvider = TsgcHTMLAIProvider.apOpenAI;
ai.ModelName = "gpt-4o";
ai.AIName = "Support Bot";
ai.SystemPrompt = "You are a helpful assistant.";
ai.WelcomeMessage = "Hi! Ask me anything.";
ai.StreamingEnabled = true;

// OnChatSend: browser message -> your code -> stream the reply
ai.OnChatSend += (sender, userMessage, conversationHistory) =>
{
    ai.BeginStreaming();
    ai.PushStreamChunk("Sure, ");
    ai.PushStreamChunk("here is the answer...");
    ai.EndStreaming();
};

string html = ai.HTML;   // Bootstrap card + AI header

Belangrijkste eigenschappen en methoden

De members die je het vaakst gebruikt.

Provider en model

AIProvider selecteert apOpenAI, apAnthropic, apGemini of apCustom; ModelName labelt de kop; ShowModelSelector schakelt die in of uit; AIName geeft de assistent een naam.

Gesprek

SystemPrompt en WelcomeMessage geven de chat een startpunt; UserColor en AIColor (beide TsgcHTMLColor) kleuren de bubbels; GetConversationHistoryJSON geeft de role/content-array terug voor je LLM-aanroep.

Verzend-event

OnChatSend wordt geactiveerd met het gebruikersbericht en de JSON-geschiedenis wanneer de bezoeker verstuurt — de hook waar je je model aanroept. ProcessUserMessage(aMessage) stuurt die flow vanuit code aan.

Streaming

StreamingEnabled zet het aan; BeginStreaming, PushStreamChunk(aChunk) en EndStreaming laten het antwoord token voor token groeien; GetStreamFragmentHTML geeft het htmx-fragment terug om te pushen.

RAG-bronnen

RAGEnabled met OnRAGContext injecteert opgehaalde context; RAGDisplayMode (rdInline/rdCollapsible/rdFootnotes) en AddAIMessageWithSources(aText, aSourcesHTML) renderen de bronvermeldingen.

Geërfd en uitvoer

Van ChatBox: Messages, Title, Height, InputPlaceholder en ShowTypingIndicator. HTML geeft de hele kaart terug; GetLastMessageHTML geeft alleen de nieuwste bubbel terug.

Blijf ontdekken

Alle sgcHTML-componentenVerken de volledige functiematrix met meer dan 60 componenten.
Download gratis proefversieDe proefversie van 30 dagen bevat de 60.HTML-demoprojecten.
PrijzenSingle-, Team- en Site-licenties met volledige broncode.

Klaar om te beginnen?

Download de gratis proefversie en begin met het bouwen van web-UI's in Delphi, C++ Builder en .NET.