Cliente Delphi para a API DeepSeek

· Componentes

O DeepSeek emergiu rapidamente como um dos provedores de modelos de IA mais econômicos e capazes, oferecendo poderosas capacidades de raciocínio, visão e chamada de ferramentas a uma fração do custo dos serviços concorrentes. Para desenvolvedores Delphi que desejam aproveitar os modelos do DeepSeek, o sgcWebSockets fornece o TsgcHTTP_API_DeepSeek — um componente nativo que encapsula toda a API DeepSeek com código Delphi limpo e com segurança de tipos.

Seja construindo chatbots inteligentes, processando imagens, orquestrando fluxos de trabalho com chamada de funções ou transmitindo respostas em tempo real para seus usuários, este componente oferece acesso direto a todos os recursos do DeepSeek. Sem boilerplate REST. Sem manipulação de JSON. Basta soltar o componente, definir sua chave de API e começar a construir.

Cobertura Completa da API

Todos os principais recursos da API DeepSeek são suportados imediatamente.

Chat Completions
Envie mensagens com prompts de sistema, receba respostas de forma síncrona ou em streaming. Controle total sobre temperatura, top-p, penalidades de frequência e presença.
Streaming em Tempo Real
Transmita respostas token por token usando Server-Sent Events. Crie interfaces responsivas que exibem respostas conforme são geradas.
Visão
Analise imagens enviando dados codificados em base64 ou URLs de imagens junto com prompts de texto. O DeepSeek descreve, interpreta e raciocina sobre conteúdo visual.
Uso de Ferramentas — Chamada de Funções
Defina ferramentas personalizadas com JSON Schema. O DeepSeek decide quando invocá-las, habilitando fluxos de trabalho agênticos e de múltiplas etapas.
Gerenciamento de Modelos
Liste todos os modelos DeepSeek disponíveis programaticamente. Consulte IDs de modelos, proprietários e capacidades.
Retry e Logging Integrados
Repetição automática em falhas transitórias com tentativas e intervalos de espera configuráveis. Registro completo de requisições/respostas para depuração.

Primeiros Passos

Integre o DeepSeek ao seu projeto Delphi em menos de um minuto. Solte o componente, configure sua chave de API e envie sua primeira mensagem.

// 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;

Dois estilos de API. Cada recurso oferece métodos de conveniência (baseados em strings, código mínimo) e classes tipadas de requisição/resposta (controle total, segurança de tipos). Escolha a abordagem que melhor se adapta ao seu caso de uso.

Chat Completions & Streaming

A API Chat Completions é a base de cada interação com o DeepSeek. Envie texto com prompts de sistema opcionais e receba respostas de forma síncrona ou em streaming em tempo real.

Prompts de Sistema

Controle o comportamento do DeepSeek fornecendo um prompt de sistema que define o contexto, personalidade ou restrições para a conversa.

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 em Tempo Real

Para interfaces de usuário responsivas, transmita a resposta do DeepSeek token por token usando Server-Sent Events. Atribua o manipulador de evento OnHTTPAPISSE e chame _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 Avançada

Para controle total sobre os parâmetros da requisição — temperatura, top-p, penalidade de frequência, penalidade de presença, sequências de parada — use as classes tipadas de requisição e resposta.

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;

Visão — Compreensão de Imagens

O DeepSeek pode analisar e raciocinar sobre imagens. Envie fotografias, capturas de tela, diagramas ou documentos junto com um prompt de texto e receba descrições detalhadas, extração de dados ou perguntas e respostas visuais.

// 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. Automatize o processamento de notas fiscais, extraia texto de documentos, analise gráficos e tabelas ou construa pipelines de classificação de imagens — tudo em código Delphi nativo com os preços competitivos do DeepSeek.

Uso de Ferramentas — Chamada de Funções

Defina ferramentas personalizadas com JSON Schema e o DeepSeek decidirá quando e como invocá-las. Esta é a base para construir fluxos de trabalho agênticos e de múltiplas etapas que conectam a IA à sua lógica de negócios.

// 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;

Gerenciamento de Modelos

Consulte os modelos DeepSeek disponíveis de forma programática. Liste todos os modelos para descobrir novas capacidades à medida que forem disponibilizadas.

// 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;

Configuração & Opções

Ajuste o comportamento do componente com opções de configuração abrangentes.

Propriedade Descrição
DeepSeekOptions.ApiKey Sua chave de API do DeepSeek (obrigatória)
HttpOptions.ReadTimeout Timeout de leitura HTTP em milissegundos (padrão: 60000)
LogOptions.Enabled Habilita o registro de requisições/respostas
RetryOptions.Enabled Repetição automática em falhas transitórias
RetryOptions.Retries Número máximo de tentativas de repetição (padrão: 3)
RetryOptions.Wait Tempo de espera entre tentativas em milissegundos (padrão: 3000)

Parâmetros da Requisição

Parâmetro Descrição
Temperature Temperatura de amostragem (0.0–2.0). Valores menores = mais determinístico.
TopP Amostragem nucleus (0.0–1.0). Controla o corte de probabilidade cumulativa.
MaxTokens Número máximo de tokens na resposta (padrão: 4096).
FrequencyPenalty Penaliza tokens com base na frequência no texto até o momento.
PresencePenalty Penaliza tokens com base em sua presença no texto até o momento.
ToolChoice Controla a seleção de ferramentas: 'auto', 'none' ou 'required'.

Vantagem de custo. Os modelos DeepSeek entregam qualidade competitiva a preços significativamente menores do que provedores comparáveis. Combinado com a lógica de repetição e registro integrados do componente sgcWebSockets, você obtém integração de IA pronta para produção a uma fração do custo.