AI Chat
TsgcAIChat es un único cliente de chat para siete proveedores de modelos de lenguaje. Asigna Provider, indica una clave de API y un modelo, y llama a Chat. Cambiar de proveedor es una sola asignación, el resto de tu código no cambia.
TsgcAIChat es un único cliente de chat para siete proveedores de modelos de lenguaje. Asigna Provider, indica una clave de API y un modelo, y llama a Chat. Cambiar de proveedor es una sola asignación, el resto de tu código no cambia.
Un componente de chat independiente del proveedor. Mantiene el historial de la conversación, construye el cuerpo JSON propio de cada proveedor, gobierna el cliente de API HTTP correspondiente y te devuelve el texto del asistente, en una sola llamada o token a token.
TsgcAIChat
Chat LLM independiente del proveedor
Win32 y Win64
sgcAI es autónomo. Este componente se incluye dentro de sgcAI junto con el runtime sgcWebSockets Core sobre el que está construido, así que no hay ninguna licencia base que comprar.
Elige el proveedor, indica la clave y el modelo, llama a Chat. Las variantes en streaming y asíncronas usan la misma configuración.
uses
sgcAI, sgcAI_Chat;
var
oChat: TsgcAIChat;
vAnswer: string;
begin
oChat := TsgcAIChat.Create(nil);
oChat.Provider := aicpAnthropic;
oChat.ChatOptions.ApiKey := 'sk-ant-...';
oChat.ChatOptions.Model := 'claude-sonnet-4-5';
oChat.ChatOptions.MaxTokens := 4096;
oChat.SystemMessage := 'You are a Delphi expert.';
oChat.MaxHistoryMessages := 20;
// Blocking call, returns the assistant text.
vAnswer := oChat.Chat('How do I keep a WebSocket connection alive?');
// Token by token, delivered on OnChatStream.
oChat.OnChatStream := OnChatStreamHandler;
oChat.ChatStream('Now explain it to a beginner.');
end;
procedure TForm1.OnChatStreamHandler(Sender: TObject;
const aChunk: string; var Cancel: Boolean);
begin
Memo1.Text := Memo1.Text + aChunk;
Cancel := StopRequested; // abort a long generation
end;
// includes: sgcAI.hpp, sgcAI_Chat.hpp
TsgcAIChat *oChat = new TsgcAIChat(NULL);
oChat->Provider = aicpOpenAI;
oChat->ChatOptions->ApiKey = "sk-...";
oChat->ChatOptions->Model = "gpt-4o";
oChat->SystemMessage = "You are a Delphi expert.";
String vAnswer = oChat->Chat("How do I keep a WebSocket connection alive?");
// Local models: same code, no data leaves the machine.
oChat->Provider = aicpOllama;
oChat->ChatOptions->BaseUrl = "http://127.0.0.1:11434";
oChat->ChatOptions->Model = "llama3";
vAnswer = oChat->Chat("Same question, local model.");
Los miembros que usarás más a menudo.
Provider selecciona el proveedor: aicpOpenAI, aicpAnthropic, aicpGemini, aicpDeepSeek, aicpOllama, aicpGrok o aicpMistral. Al cambiarlo se libera el cliente en caché del proveedor anterior.
ApiKey, Model, MaxTokens, Temperature, TopP y BaseUrl. Si dejas Temperature y TopP en su valor por defecto, se omiten de la petición y se aplica el valor por defecto del proveedor.
SystemMessage fija la personalidad en cada turno. MaxHistoryMessages limita cuántos mensajes anteriores se reenvían, lo que acota el coste en tokens. ClearHistory y GetHistory reinician y leen la transcripción.
Chat bloquea y devuelve la respuesta. ChatStream transmite por SSE. ChatWithSystem sustituye el prompt de sistema durante un solo turno. ChatAsync devuelve un future en Delphi 2010 y posteriores.
OnChatMessage notifica cada mensaje completado con su rol. OnChatStream entrega cada fragmento e incluye un indicador Cancel. OnChatError expone los errores del proveedor y del transporte.
Con Provider igual a aicpOllama, ChatOptions.BaseUrl apunta el componente a tu propio host Ollama, de modo que los prompts y las respuestas nunca salen de la máquina.
Fuentes oficiales de los servicios y protocolos que utiliza este componente.
| Ayuda en líneaReferencia completa de la API y guía de uso de los componentes sgcAI. | Abrir | |
| Todos los componentes sgcAIConsulta la matriz completa de características de los 15 componentes. | Abrir | |
| Descargar prueba gratuitaPrueba los siete proveedores con tus propias claves de API. | Abrir | |
| PreciosLicencias Single, Team y Site, código fuente completo, sin producto base necesario. | Abrir |