DeepSeek se ha convertido rápidamente en uno de los proveedores de modelos de IA más rentables y capaces, ofreciendo potentes capacidades de razonamiento, visión y llamada a herramientas a una fracción del coste de los servicios competidores. Para los desarrolladores Delphi que quieran aprovechar los modelos de DeepSeek, sgcWebSockets ofrece TsgcHTTP_API_DeepSeek — un componente nativo que envuelve toda la API de DeepSeek con código Delphi limpio y tipado.
Tanto si estás construyendo chatbots inteligentes, procesando imágenes, orquestando flujos de llamada a funciones o haciendo streaming de respuestas en tiempo real a tus usuarios, este componente te da acceso directo a todas las funciones de DeepSeek. Sin código REST repetitivo. Sin lidiar con JSON. Solo suelta el componente, configura tu clave API y empieza a construir.
Cobertura completa de la API
Todas las funciones principales de la API de DeepSeek son compatibles desde el primer momento.
|
Chat Completions Envía mensajes con system prompts y recibe respuestas de forma síncrona o en streaming. Control total sobre temperature, top-p y penalizaciones de frecuencia y presencia. |
Streaming en tiempo real Recibe respuestas token a token mediante Server-Sent Events. Construye interfaces de usuario reactivas que muestran las respuestas a medida que se generan. |
Visión Analiza imágenes enviando datos codificados en base64 o URLs de imagen junto a prompts de texto. DeepSeek describe, interpreta y razona sobre el contenido visual. |
|
Uso de herramientas — Function Calling Define herramientas personalizadas con JSON Schema. DeepSeek decide cuándo invocarlas, permitiendo flujos agentivos de varios pasos. |
Gestión de modelos Lista todos los modelos de DeepSeek disponibles de forma programática. Consulta IDs de modelo, propietarios y capacidades. |
Reintentos y logging integrados Reintentos automáticos ante fallos transitorios con intentos e intervalos configurables. Logging completo de petición/respuesta para depuración. |
Primeros pasos
Integra DeepSeek en tu proyecto Delphi en menos de un minuto. Suelta el componente, configura tu clave API y envía tu primer mensaje.
// Create the component and configure the API key
var
DeepSeek: TsgcHTTP_API_DeepSeek;
vResponse: string;
begin
DeepSeek := TsgcHTTP_API_DeepSeek.Create(nil);
Try
DeepSeek.DeepSeekOptions.ApiKey := 'YOUR_API_KEY';
// Send a simple message to DeepSeek
vResponse := DeepSeek._CreateMessage(
'deepseek-chat', 'Hello, DeepSeek!');
ShowMessage(vResponse);
Finally
DeepSeek.Free;
End;
end;
Dos estilos de API. Cada función ofrece tanto métodos de conveniencia (basados en strings, con mínimo código) como clases tipadas de petición/respuesta (control total y seguridad de tipos). Elige el enfoque que mejor se adapte a tu caso de uso.
Chat Completions y streaming
La API de Chat Completions es la base de toda interacción con DeepSeek. Envía texto con system prompts opcionales y recibe respuestas síncronas o en streaming en tiempo real.
System prompts
Controla el comportamiento de DeepSeek proporcionando un system prompt que establezca el contexto, la personalidad o las restricciones de la conversación.
vResponse := DeepSeek._CreateMessageWithSystem(
'deepseek-chat',
'You are a helpful assistant that responds in Spanish.',
'What is the capital of France?');
// Returns: "La capital de Francia es París."
Streaming en tiempo real
Para interfaces de usuario reactivas, transmite la respuesta de DeepSeek token a token mediante Server-Sent Events. Asigna el manejador de eventos OnHTTPAPISSE y llama a _CreateMessageStream.
// Enable streaming via SSE
DeepSeek.OnHTTPAPISSE := OnSSEEvent;
DeepSeek._CreateMessageStream('deepseek-chat',
'Explain the theory of relativity.');
procedure TForm1.OnSSEEvent(Sender: TObject;
const aEvent, aData: string; var Cancel: Boolean);
begin
// aData: JSON payload with generated content
Memo1.Lines.Add(aData);
end;
API tipada avanzada
Para control total sobre los parámetros de petición — temperature, top-p, frequency penalty, presence penalty, secuencias de parada — usa las clases tipadas de petición y respuesta.
var
oRequest: TsgcDeepSeekClass_Request_ChatCompletion;
oMessage: TsgcDeepSeekClass_Request_Message;
oResponse: TsgcDeepSeekClass_Response_ChatCompletion;
begin
oRequest := TsgcDeepSeekClass_Request_ChatCompletion.Create;
Try
oRequest.Model := 'deepseek-chat';
oRequest.MaxTokens := 2048;
oRequest.Temperature := 0.7;
oRequest.TopP := 0.9;
oRequest.FrequencyPenalty := 0.5;
oMessage := TsgcDeepSeekClass_Request_Message.Create;
oMessage.Role := 'user';
oMessage.Content := 'Explain quantum computing in simple terms.';
oRequest.Messages.Add(oMessage);
oResponse := DeepSeek.CreateMessage(oRequest);
Try
if Length(oResponse.Choices) > 0 then
ShowMessage(oResponse.Choices[0].MessageContent);
Finally
oResponse.Free;
End;
Finally
oRequest.Free;
End;
end;
Visión — Comprensión de imágenes
DeepSeek puede analizar y razonar sobre imágenes. Envía fotografías, capturas de pantalla, diagramas o documentos junto a un prompt de texto y recibe descripciones detalladas, extracción de datos o Q&A visual.
// Load an image and ask DeepSeek to analyze it
var
vBase64: string;
begin
vBase64 := sgcBase64Encode(LoadFileToBytes('invoice.png'));
ShowMessage(DeepSeek._CreateVisionMessage(
'deepseek-chat',
'Extract all line items and totals from this invoice.',
vBase64, 'image/png'));
end;
Caso de uso. Automatiza el procesamiento de facturas, extrae texto de documentos, analiza tablas y gráficos o construye pipelines de clasificación de imágenes — todo desde código Delphi nativo con los precios competitivos de DeepSeek.
Uso de herramientas — Function Calling
Define herramientas personalizadas con JSON Schema y DeepSeek decidirá cuándo y cómo invocarlas. Esta es la base para construir flujos agentivos de varios pasos que conectan la IA con tu lógica de negocio.
// Define a tool with JSON Schema
oTool := TsgcDeepSeekClass_Request_Tool.Create;
oTool.Name := 'get_stock_price';
oTool.Description := 'Get the current stock price for a ticker symbol';
oTool.Parameters :=
'{"type":"object","properties":{"symbol":{"type":"string",' +
'"description":"Stock ticker symbol"}},"required":["symbol"]}';
oRequest.Tools.Add(oTool);
oResponse := DeepSeek.CreateMessage(oRequest);
// Check if DeepSeek wants to call a tool
if oResponse.Choices[0].FinishReason = 'tool_calls' then
begin
for i := 0 to Length(oResponse.Choices[0].ToolCalls) - 1 do
begin
vToolId := oResponse.Choices[0].ToolCalls[i].Id;
vFuncName := oResponse.Choices[0].ToolCalls[i].FunctionName;
vFuncArgs := oResponse.Choices[0].ToolCalls[i].FunctionArguments;
// Execute the tool and return the result
end;
end;
Gestión de modelos
Consulta los modelos de DeepSeek disponibles de forma programática. Lista todos los modelos para descubrir nuevas capacidades a medida que se publican.
// List all available DeepSeek models
vModels := DeepSeek._GetModels;
// Typed API: access model properties directly
var
oModels: TsgcDeepSeekClass_Response_Models;
i: Integer;
begin
oModels := DeepSeek.GetModels;
Try
for i := 0 to Length(oModels.Data) - 1 do
Memo1.Lines.Add(oModels.Data[i].Id);
Finally
oModels.Free;
End;
end;
Configuración y opciones
Afina el comportamiento del componente con opciones de configuración completas.
| Propiedad | Descripción |
|---|---|
DeepSeekOptions.ApiKey |
Tu clave API de DeepSeek (obligatoria) |
HttpOptions.ReadTimeout |
Timeout de lectura HTTP en milisegundos (por defecto: 60000) |
LogOptions.Enabled |
Habilita el logging de petición/respuesta |
RetryOptions.Enabled |
Reintentos automáticos ante fallos transitorios |
RetryOptions.Retries |
Número máximo de reintentos (por defecto: 3) |
RetryOptions.Wait |
Tiempo de espera entre reintentos en milisegundos (por defecto: 3000) |
Parámetros de petición
| Parámetro | Descripción |
|---|---|
Temperature |
Temperatura de muestreo (0,0–2,0). Valores más bajos = más determinista. |
TopP |
Muestreo nuclear (0,0–1,0). Controla el corte de probabilidad acumulada. |
MaxTokens |
Número máximo de tokens en la respuesta (por defecto: 4096). |
FrequencyPenalty |
Penaliza tokens en función de la frecuencia con la que aparecen en el texto hasta el momento. |
PresencePenalty |
Penaliza tokens en función de si aparecen en el texto hasta el momento. |
ToolChoice |
Controla la selección de herramientas: 'auto', 'none' o 'required'. |
Ventaja en coste. Los modelos DeepSeek ofrecen calidad competitiva a precios significativamente más bajos que proveedores comparables. Combinado con la lógica de reintentos y logging integrada del componente sgcWebSockets, obtienes integración de IA lista para producción a una fracción del coste.
