Anthropic Claude
Anthropic to firma zajmująca się bezpieczeństwem AI, która tworzy niezawodne, interpretowalnie i sterowalne systemy AI. Jej flagową rodziną modeli jest Claude, który wyróżnia się w przemyślanym dialogu, tworzeniu treści, złożonym rozumowaniu, programowaniu i nie tylko.
Biblioteka sgcWebSockets udostępnia komponent Delphi TsgcHTTP_API_Anthropic do interakcji z Anthropic Claude API.
Anthropic API
Anthropic API zapewnia dostęp do modeli Claude do tworzenia aplikacji opartych na AI. API obsługuje generowanie tekstu, wizję (rozumienie obrazów), używanie narzędzi (wywoływanie funkcji), rozszerzone myślenie, przetwarzanie dokumentów/PDF, buforowanie monitów, cytaty, wyszukiwanie w sieci, przesyłanie strumieniowe, liczenie tokenów i partie wiadomości.
Funkcje
- Ustrukturyzowane dane wyjściowe
Konfiguracja
Anthropic API używa kluczy API do uwierzytelniania. Odwiedź stronę Klucze API w konsoli Anthropic, aby pobrać klucz API używany w żądaniach.
Należy pamiętać, że klucz API jest tajny. Nie należy udostępniać go innym osobom ani umieszczać w kodzie po stronie klienta.
Ten klucz API musi być skonfigurowany we właściwości AnthropicOptions.ApiKey komponentu. Właściwość AnthropicOptions.AnthropicVersion określa wersję API (domyślnie: 2023-06-01).
Anthropic := TsgcHTTP_API_Anthropic.Create(nil);
Anthropic.AnthropicOptions.ApiKey := 'YOUR_API_KEY';
Właściwości
AnthropicOptions
- ApiKey: Klucz API do uwierzytelniania z Anthropic API.
- AnthropicVersion: Ciąg wersji API (domyślnie: 2023-06-01).
- BetaHeaders: Opcjonalne nagłówki funkcji beta umożliwiające korzystanie z przedpremierowych funkcji API (np. files-api-2025-04-14, mcp-client-2025-11-20).
- HttpOptions: Ustawienia połączenia HTTP.
- ReadTimeout: Limit czasu w milisekundach na odczyt odpowiedzi HTTP. Wartość domyślna to 0 (brak limitu czasu).
- LogOptions: Konfiguracja rejestrowania.
- Enabled: Gdy ma wartość True, żądania i odpowiedzi HTTP są zapisywane do pliku.
- FileName: Ścieżka pliku, do którego zapisywane są dane dziennika.
- RetryOptions: Konfiguracja automatycznego ponawiania nieudanych żądań API.
- Enabled: Gdy True, nieudane żądania są automatycznie ponawiane.
- Retries: Maksymalna liczba prób ponowienia.
- Wait: Czas oczekiwania w milisekundach między próbami ponowienia.
Wiadomości
Wyślij ustrukturyzowaną listę wiadomości wejściowych z zawartością tekstową i/lub graficzną, a model wygeneruje kolejną wiadomość w konwersacji.
- CreateMessage: Tworzy wiadomość z określonym modelem i parametrami.
- Model: Model do użycia (np. claude-sonnet-4-20250514).
- Message: Treść wiadomości użytkownika.
- MaxTokens: Maksymalna liczba tokenów do wygenerowania (wymagane, domyślnie 4096).
- CreateMessageWithSystem: Tworzy wiadomość z promptem systemowym.
- System: Prompt systemowy określający zachowanie asystenta.
- CreateMessageStream: Tworzy wiadomość z włączonym strumieniowaniem (SSE). Zdarzenia są dostarczane za pośrednictwem procedury obsługi zdarzenia OnHTTPAPISSE.
- CreateMessageJSON: Tworzy wiadomość zwracającą ustrukturyzowany JSON zgodny z podanym schematem JSON.
- Schema: Ciąg znaków JSON Schema definiujący format wyjściowy.
- CreateMessageWithThinking: Tworzy wiadomość z włączonym rozszerzonym myśleniem.
- BudgetTokens: Maksymalny budżet tokenów na myślenie (minimum 1024).
- CreateDocumentMessage: Tworzy wiadomość z dokumentem zakodowanym w base64 (PDF lub tekst).
- DocumentBase64: Dane dokumentu zakodowane w base64.
- MediaType: Typ MIME (np. application/pdf).
Vision
Claude rozumie obrazy przekazywane jako bloki treści zakodowane w formacie base64 wewnątrz wiadomości.
- CreateVisionMessage: Wysyła obraz wraz z monitem tekstowym.
- ImageBase64: Dane obrazu zakodowane w base64.
- MediaType: Typ MIME (image/jpeg, image/png, image/gif, image/webp).
- Prompt: Monit tekstowy towarzyszący obrazowi.
Użycie narzędzi
Claude może używać narzędzi (function calling) do interakcji z zewnętrznymi systemami. Narzędzia definiuje się za pomocą nazw, opisów i schematów wejściowych, a Claude generuje bloki treści tool_use, gdy chce wywołać narzędzie.
Modele
Wyświetla i opisuje dostępne modele Claude.
- GetModels: Wyświetla wszystkie dostępne modele.
- GetModel: Pobiera informacje o określonym modelu.
- ModelId: Identyfikator modelu do pobrania.
Extended Thinking
Rozszerzone myślenie umożliwia Claude'owi rozumowanie krok po kroku przed udzieleniem odpowiedzi, co poprawia jakość wyników w przypadku złożonych zadań, takich jak matematyka, programowanie i analiza.
- ThinkingType: Ustaw na 'enabled', aby aktywować tryb myślenia, lub na 'disabled', aby go wyłączyć.
- ThinkingBudgetTokens: Budżet tokenów dla myślenia (minimum 1024, musi być mniejszy niż MaxTokens).
- CreateMessageWithAdaptiveThinking: Tworzy wiadomość z adaptacyjnym myśleniem, pozwalając Claude samodzielnie decydować o głębokości rozumowania.
Dokumenty
Claude może przetwarzać dokumenty PDF i pliki tekstowe wysyłane jako bloki treści. Obsługuje typy źródłowe base64, text i URL.
- CreateDocumentMessage: Wysyła dokument z monitem tekstowym.
- DocumentBase64: Dane dokumentu zakodowane w base64.
- MediaType: Typ MIME (application/pdf, text/plain).
Buforowanie promptów
Buforuj często używany kontekst (monity systemowe, bloki treści, definicje narzędzi) między wywołaniami API, aby zmniejszyć koszty nawet o 90% przy odczytach z pamięci podręcznej.
- SystemCacheControl: ustaw na True w żądaniu, aby buforować prompt systemowy.
- CacheControl: Ustaw wartość 'ephemeral' dla bloków treści lub definicji narzędzi.
- BetaHeaders: Opcjonalne nagłówki funkcji beta w AnthropicOptions.
Cytowania
Gdy dokumenty są wysyłane z włączonymi cytatami, Claude dołącza odwołania do źródeł w swojej odpowiedzi. Typy cytatów obejmują: char_location (tekst), page_location (PDF), content_block_location (treść niestandardowa) i web_search_result_location (wyniki wyszukiwania internetowego).
Wyszukiwanie w internecie
Claude może przeszukiwać Internet w celu uzyskania informacji w czasie rzeczywistym za pomocą wbudowanego narzędzia web_search. Inne wbudowane narzędzia to code_execution i computer use.
- CreateMessageWithWebSearch: Tworzy wiadomość z włączonym wyszukiwaniem w sieci.
- Model: Model do użycia.
- Message: Zapytanie użytkownika.
Zliczanie tokenów
Policz liczbę tokenów w wiadomości przed jej wysłaniem.
- CountTokens: Zlicza liczbę tokenów wejściowych dla wiadomości.
- Model: Model używany do zliczania tokenów.
- Message: Zawartość wiadomości, dla której zliczane są tokeny.
Paczki komunikatów
API wsadowego przetwarzania wiadomości umożliwia asynchroniczne przetwarzanie dużych wolumenów wiadomości.
- ListBatches: Wyświetla listę wszystkich partii wiadomości.
- GetBatch: Pobiera określoną partię według identyfikatora.
- CancelBatch: Anuluje wsad, który jest nadal przetwarzany.
- GetBatchResults: Pobiera wyniki ukończonej partii.
Wyjścia strukturyzowane
Wymusza na Claude zwrócenie prawidłowego JSON zgodnego z dostarczonym schematem JSON. Można łączyć z parametrem Effort, aby kontrolować jakość danych wyjściowych i koszty.
- CreateMessageJSON: tworzy wiadomość z wyjściem w schemacie JSON.
- Schema: ciąg JSON Schema definiujący format wyjściowy.
- OutputFormatSchema: (właściwość żądania) schemat JSON dla ustrukturyzowanego wyjścia.
- Effort: (właściwość żądania) Steruje stosunkiem jakości do kosztu: 'low', 'medium', 'high', 'max'.
- Strict: (właściwość narzędzia) Gdy wartość wynosi True, dane wejściowe narzędzia są gwarantowanie zgodne z input_schema.
Files API
Przesyłanie, wyświetlanie listy, pobieranie, pobieranie i usuwanie plików. Przesłane pliki mogą być przywoływane w wiadomościach za pomocą bloków treści dokumentów ze źródłowym typem pliku. Wymaga nagłówka beta files-api-2025-04-14.
- UploadFile: Przesyła plik lokalny. Zwraca metadane pliku.
- ListFiles: Wyświetla przesłane pliki z podziałem na strony.
- GetFile: Pobiera metadane dla określonego pliku.
- DownloadFile: Pobiera zawartość pliku.
- DeleteFile: Trwale usuwa plik.
Parametry żądania
Dodatkowe parametry żądania dostępne w Messages API.
- ServiceTier: Kontroluje użycie warstwy priorytetu: 'auto' (domyślnie) lub 'standard_only'.
- InferenceGeo: Kontroluje lokalizację geograficzną inferencji: 'global' (domyślnie) lub 'us'.
- Container: Identyfikator kontenera do ponownego użycia środowisk wykonywania kodu w kolejnych żądaniach.
- IsError: (właściwość bloku treści) Należy ustawić True w blokach tool_result, aby wskazać błąd wykonania narzędzia.
- CacheTTL: Rozszerzony czas życia pamięci podręcznej: '5m' (domyślnie) lub '1h'.
- ThinkingType: Ustaw na 'adaptive', aby Claude automatycznie decydował o głębokości myślenia.
MCP Connector
Połącz Claude z zewnętrznymi serwerami MCP (Model Context Protocol), aby uzyskać dostęp do narzędzi zewnętrznych. Wymaga nagłówka beta mcp-client-2025-11-20.
- CreateMessageWithMCP: Tworzy wiadomość z połączeniem serwera MCP.
- MCPServerUrl: Adres URL HTTPS serwera MCP.
- MCPServerName: Unikalna nazwa serwera.
- MCPServers: (właściwość Request) Tablica definicji serwerów MCP z polami ServerType, Url, Name, AuthorizationToken.
- MCPServerName: (właściwość narzędzia) Odwołuje się do serwera MCP, gdy ToolType ma wartość 'mcp_toolset'.