Anthropic Claude
A Anthropic é uma empresa de segurança em IA que constrói sistemas de IA confiáveis, interpretáveis e direcionáveis. Sua família de modelos principal é a Claude, que se destaca em diálogo ponderado, criação de conteúdo, raciocínio complexo, codificação e muito mais.
A biblioteca sgcWebSockets fornece um componente Delphi TsgcHTTP_API_Anthropic para interagir com a API Anthropic Claude.
Anthropic API
A API Anthropic fornece acesso aos modelos Claude para construir aplicações com IA. A API suporta geração de texto, vision (compreensão de imagem), uso de ferramentas (chamada de função), extended thinking, processamento de documentos/PDF, prompt caching, citations, web search, streaming, contagem de tokens e message batches.
Features
Configuração
A API da Anthropic usa chaves de API para autenticação. Visite sua página de API Keys no Console da Anthropic para recuperar a chave de API que você usará em suas requisições.
Lembre-se de que sua API key é um segredo! Não a compartilhe com outras pessoas nem a exponha em nenhum código do lado do cliente.
Esta API Key deve ser configurada na propriedade AnthropicOptions.ApiKey do componente. A propriedade AnthropicOptions.AnthropicVersion especifica a versão da API (padrão: 2023-06-01).
Anthropic := TsgcHTTP_API_Anthropic.Create(nil);
Anthropic.AnthropicOptions.ApiKey := 'YOUR_API_KEY';
Properties
AnthropicOptions
- ApiKey: A API key para autenticação com a API da Anthropic.
- AnthropicVersion: A string de versão da API (padrão: 2023-06-01).
- BetaHeaders: Cabeçalhos opcionais de recursos beta para habilitar recursos de API pré-lançamento (por exemplo, files-api-2025-04-14, mcp-client-2025-11-20).
- HttpOptions: configurações de conexão HTTP.
- ReadTimeout: Timeout em milissegundos para a leitura das respostas HTTP. O padrão é 0 (sem timeout).
- LogOptions: Configuração de logging.
- Enabled: Quando True, requisições e respostas HTTP são registradas em um arquivo.
- FileName: O caminho do arquivo onde a saída do log é escrita.
- RetryOptions: Configuração de retry automático para requisições de API que falharam.
- Enabled: Quando True, as requisições que falharam são repetidas automaticamente.
- Retries: Número máximo de tentativas de retry.
- Wait: Tempo de espera em milissegundos entre as tentativas de retry.
Messages
Envie uma lista estruturada de mensagens de entrada com conteúdo de texto e/ou imagem, e o modelo gerará a próxima mensagem na conversa.
- CreateMessage: Cria uma mensagem com o modelo e os parâmetros especificados.
- Model: O modelo a ser utilizado (por exemplo, claude-sonnet-4-20250514).
- Message: O conteúdo da mensagem do usuário.
- MaxTokens: O número máximo de tokens a serem gerados (obrigatório, padrão 4096).
- CreateMessageWithSystem: Cria uma mensagem com um system prompt.
- System: System prompt que define o comportamento do assistant.
- CreateMessageStream: Cria uma mensagem com streaming (SSE) habilitado. Os eventos são entregues através do manipulador OnHTTPAPISSE.
- CreateMessageJSON: Cria uma mensagem que retorna JSON estruturado em conformidade com um JSON Schema fornecido.
- Schema: Uma string de JSON Schema que define o formato de saída.
- CreateMessageWithThinking: Cria uma mensagem com extended thinking habilitado.
- BudgetTokens: Orçamento máximo de tokens para o thinking (mínimo 1024).
- CreateDocumentMessage: Cria uma mensagem com um documento base64 (PDF ou texto).
- DocumentBase64: Os dados do documento codificados em base64.
- MediaType: O tipo MIME (por exemplo application/pdf).
Vision
O Claude pode entender imagens passadas como blocos de conteúdo codificados em base64 dentro das mensagens.
- CreateVisionMessage: Envia uma imagem com um prompt de texto.
- ImageBase64: Os dados da imagem codificados em base64.
- MediaType: O tipo MIME (image/jpeg, image/png, image/gif, image/webp).
- Prompt: O prompt de texto que acompanha a imagem.
Uso de Ferramenta
O Claude pode utilizar ferramentas (function calling) para interagir com sistemas externos. Você define ferramentas com seus nomes, descrições e input schemas, e o Claude gerará blocos de conteúdo tool_use quando quiser chamar uma ferramenta.
Modelos
Lista e descreve os modelos Claude disponíveis.
- GetModels: Lista todos os modelos disponíveis.
- GetModel: Recupera informações sobre um modelo específico.
- ModelId: O ID do modelo a ser recuperado.
Extended Thinking
O extended thinking permite que o Claude raciocine passo a passo antes de responder, melhorando a qualidade para tarefas complexas como matemática, programação e análise.
- ThinkingType: Defina como 'enabled' para ativar o pensamento, 'disabled' para desativá-lo.
- ThinkingBudgetTokens: Orçamento de tokens para thinking (mín. 1024, deve ser menor que MaxTokens).
- CreateMessageWithAdaptiveThinking: Cria uma mensagem com thinking adaptativo, deixando o Claude decidir automaticamente a profundidade do thinking.
Documents
O Claude pode processar documentos PDF e arquivos de texto enviados como blocos de conteúdo. Suporta os tipos de fonte base64, texto e URL.
- CreateDocumentMessage: Envia um documento com um prompt de texto.
- DocumentBase64: Os dados do documento codificados em base64.
- MediaType: O tipo MIME (application/pdf, text/plain).
Prompt Caching
Armazena em cache contexto utilizado com frequência (prompts de sistema, blocos de conteúdo, definições de ferramentas) entre chamadas de API para reduzir custos em até 90% nas leituras de cache.
- SystemCacheControl: Defina como True na requisição para fazer cache do system prompt.
- CacheControl: Defina como 'ephemeral' em blocos de conteúdo ou definições de tool.
- BetaHeaders: Cabeçalhos opcionais de recursos beta em AnthropicOptions.
Citações
Quando os documentos são enviados com citations habilitadas, o Claude inclui referências de origem em sua resposta. Os tipos de citation incluem char_location (texto), page_location (PDF), content_block_location (conteúdo personalizado) e web_search_result_location (busca na web).
Web Search
O Claude pode buscar na web por informações em tempo real usando a ferramenta integrada web_search. Outras ferramentas integradas incluem code_execution e computer use.
- CreateMessageWithWebSearch: Cria uma mensagem com a busca web habilitada.
- Model: O modelo a ser usado.
- Message: A consulta do usuário.
Token Counting
Conta o número de tokens em uma mensagem antes de enviá-la.
- CountTokens: Conta o número de tokens de entrada de uma mensagem.
- Model: O modelo a ser usado para a contagem de tokens.
- Message: O conteúdo da mensagem para o qual contar tokens.
Message Batches
A Message Batches API permite que você processe grandes volumes de mensagens de forma assíncrona.
- ListBatches: Lista todos os lotes de mensagens.
- GetBatch: Recupera um lote específico por ID.
- CancelBatch: Cancela um lote que ainda está em processamento.
- GetBatchResults: Recupera os resultados de um lote concluído.
Saídas Estruturadas
Força o Claude a retornar JSON válido em conformidade com um JSON Schema fornecido. Combine com o parâmetro Effort para controlar a qualidade da saída versus o custo.
- CreateMessageJSON: Cria uma mensagem com saída de esquema JSON.
- Schema: Uma string JSON Schema que define o formato de saída.
- OutputFormatSchema: (propriedade Request) JSON Schema para saída estruturada.
- Effort: (propriedade Request) Controla qualidade vs. custo: 'low', 'medium', 'high', 'max'.
- Strict: (propriedade Tool) Quando True, as entradas da ferramenta têm garantia de corresponder ao input_schema.
Files API
Faça upload, liste, recupere, baixe e exclua arquivos. Os arquivos enviados podem ser referenciados em mensagens utilizando blocos de conteúdo de documento com tipo de origem de arquivo. Requer o header beta files-api-2025-04-14.
- UploadFile: Faz upload de um arquivo local. Retorna os metadados do arquivo.
- ListFiles: Lista os arquivos enviados com paginação.
- GetFile: Recupera os metadados de um arquivo específico.
- DownloadFile: Baixa o conteúdo do arquivo.
- DeleteFile: Exclui permanentemente um arquivo.
Parâmetros da Requisição
Parâmetros de requisição adicionais disponíveis na Messages API.
- ServiceTier: Controla o uso do tier de prioridade: 'auto' (padrão) ou 'standard_only'.
- InferenceGeo: Controla a geografia de inferência: 'global' (padrão) ou 'us'.
- Container: ID de contêiner para reutilizar ambientes de execução de código entre requisições.
- IsError: (Propriedade de bloco de conteúdo) Defina True em blocos tool_result para indicar falha na execução da ferramenta.
- CacheTTL: Tempo de vida estendido do cache: '5m' (padrão) ou '1h'.
- ThinkingType: Defina como 'adaptive' para deixar o Claude decidir a profundidade do pensamento automaticamente.
MCP Connector
Conecte o Claude a servidores MCP (Model Context Protocol) externos para acessar ferramentas de terceiros. Requer o header beta mcp-client-2025-11-20.
- CreateMessageWithMCP: Cria uma mensagem com uma conexão a um servidor MCP.
- MCPServerUrl: URL HTTPS do servidor MCP.
- MCPServerName: Nome exclusivo para o servidor.
- MCPServers: (propriedade da Request) Array de definições de servidor MCP com ServerType, Url, Name, AuthorizationToken.
- MCPServerName: (propriedade Tool) Referencia um servidor MCP quando ToolType é 'mcp_toolset'.