Skip to main content
Anthropic Claude to bardzo potężny system AI do rozmów, który po wprowadzeniu podpowiedzi potrafi w ciągu kilku sekund wygenerować płynne i naturalne odpowiedzi. Claude Messages API to oficjalny natywny format API Anthropic, który różni się od formatu zgodnego z OpenAI (Chat Completion), przyjmuje własną strukturę żądań i odpowiedzi, co pozwala lepiej wykorzystać unikalne możliwości Claude’a, takie jak wejście treści multimodalnych, wywołania narzędzi, głębokie myślenie (Extended Thinking) i inne zaawansowane cechy. Dokument ten głównie opisuje proces korzystania z Claude Messages API, dzięki któremu możemy korzystać z natywnego interfejsu zgodnego z oficjalnym Anthropic do wywoływania funkcji rozmowy Claude’a.

Proces aplikacji

Aby korzystać z Claude Messages API, najpierw można przejść na stronę Claude Messages API i kliknąć przycisk „Acquire”, aby uzyskać potrzebne poświadczenia do żądania: Jeśli nie jesteś zalogowany lub zarejestrowany, automatycznie zostaniesz przekierowany na stronę logowania, aby zarejestrować się i zalogować, a po zalogowaniu lub rejestracji automatycznie wrócisz na bieżącą stronę. Podczas pierwszej aplikacji przyznawana jest darmowa pula, dzięki czemu można korzystać z tego API bezpłatnie.

Podstawowe użycie

Ścieżka żądania Claude Messages API to /v1/messages, zgodna z oficjalnym API Anthropic. Musimy podać co najmniej trzy obowiązkowe parametry:
  • model: wybór modelu Claude, np. claude-opus-4-20250514, claude-sonnet-4-20250514 itp.
  • messages: tablica wiadomości wejściowych, każda wiadomość zawiera role (rola) i content (treść), gdzie role obsługuje user i assistant.
  • max_tokens: maksymalna liczba tokenów wyjściowych, używana do ograniczenia długości pojedynczej odpowiedzi.
Często używane opcjonalne parametry:
  • system: podpowiedź systemowa, używana do ustalenia zachowania i roli modelu.
  • temperature: losowość generacji, w zakresie 0-1, im wyższa wartość, tym bardziej rozproszone odpowiedzi.
  • stream: czy używać odpowiedzi strumieniowej, ustawienie na true umożliwia zwracanie wyników słowo po słowie.
  • stop_sequences: niestandardowe sekwencje zatrzymania, model przestanie generować, gdy napotka te teksty.
  • top_p: parametr próbkowania jądra, współpracujący z temperaturą w kontrolowaniu losowości generacji.
  • top_k: próbkowanie tylko z K najwyżej prawdopodobnych opcji.
  • tools: definicja narzędzi, umożliwiająca modelowi wywoływanie zewnętrznych funkcji.
  • tool_choice: kontroluje, jak model korzysta z dostarczonych narzędzi.

Przykład cURL

Przykład w Pythonie

Po wywołaniu, zwrócony wynik wygląda następująco:
Opis pól zwróconego wyniku:
  • id: unikalny identyfikator tej wiadomości.
  • type: zawsze message.
  • role: zawsze assistant.
  • content: tablica treści odpowiedzi, każdy element zawiera type (np. text) i odpowiadającą treść.
  • model: nazwa modelu przetwarzającego żądanie.
  • stop_reason: powód zatrzymania, możliwe wartości to end_turn (normalne zakończenie), max_tokens (osiągnięcie maksymalnej długości), stop_sequence (napotkanie sekwencji zatrzymania), tool_use (wywołanie narzędzia).
  • stop_sequence: jeśli zatrzymano z powodu niestandardowej sekwencji zatrzymania, wyświetla dopasowany tekst sekwencji zatrzymania.
  • usage: statystyki użycia tokenów, zawierające input_tokens (liczba tokenów wejściowych) i output_tokens (liczba tokenów wyjściowych).

Systemowe podpowiedzi

Claude Messages API obsługuje ustawianie systemowych podpowiedzi za pomocą pola system, które służy do definiowania zachowania, roli i kontekstu modelu.

Przykład w Pythonie

Ustawiając podpowiedź system, można precyzyjnie kontrolować rolę i sposób działania Claude’a.

Odpowiedzi strumieniowe

Interfejs ten obsługuje również odpowiedzi strumieniowe, ustawiając parametr stream na true, aby uzyskać efekt stopniowego zwracania, co jest bardzo odpowiednie do implementacji wyświetlania słowo po słowie na stronie internetowej.

Przykład w Pythonie

Odpowiedzi strumieniowe są zwracane w formacie Server-Sent Events (SSE), każda linia zaczyna się od event: i data:. Typy zdarzeń strumieniowych obejmują:
  • message_start: początek wiadomości, zawierający podstawowe informacje o wiadomości i nazwę modelu.
  • content_block_start: początek bloku treści.
  • content_block_delta: inkrementalne aktualizacje bloku treści, zawierające nowo wygenerowane fragmenty tekstu.
  • content_block_stop: koniec bloku treści.
  • message_delta: inkrementalne aktualizacje na poziomie wiadomości, zawierające stop_reason i ostateczne informacje o usage.
  • message_stop: koniec wiadomości.
Efekt wyjściowy wygląda następująco:
Można zauważyć, że zdarzenia content_block_delta w odpowiedzi strumieniowej zawierają stopniowo generowaną treść tekstową, a po połączeniu wszystkich text_delta można uzyskać pełną odpowiedź.

Przykład JavaScript

Wiele rund rozmowy

Jeśli chcesz zintegrować funkcję wielu rund rozmowy, musisz na przemian umieszczać wiadomości ról user i assistant w tablicy messages, przekazując również wcześniejszą historię rozmowy.

Przykład Python

Wynik zwrócony:
Przekazując pełną historię rozmowy w messages, Claude może dokładnie odpowiadać, uwzględniając kontekst.

Model głębokiego myślenia

Claude wspiera funkcję Extended Thinking (głębokie myślenie), która pozwala modelowi na wewnętrzne rozumowanie przed udzieleniem odpowiedzi, zwiększając dokładność w rozwiązywaniu złożonych problemów. Aby skorzystać z tej funkcji, należy przekazać parametr thinking.

Przykład Python

Wynik zwrócony:
Można zauważyć, że tablica content zawiera dwa bloki treści:
  • type: "thinking": wewnętrzny proces myślenia modelu, pokazujący kroki rozumowania.
  • type: "text": ostateczny wynik odpowiedzi.
Uwagi:
  • Używając thinking, max_tokens musi być większe niż budget_tokens, ponieważ budget_tokens to budżet tokenów przeznaczony na proces myślenia.
  • Im większy budget_tokens, tym większa przestrzeń dla modelu na głębsze rozumowanie, co jest odpowiednie do rozwiązywania złożonych problemów.

Model wizualny

Claude wspiera wejścia multimodalne, mogąc jednocześnie przetwarzać tekst i obrazy. W API Messages można użyć zdolności wizualnych, ustawiając content jako format tablicy i przekazując bloki treści obrazu.

Użycie obrazu zakodowanego w Base64

Użycie obrazu z URL

cURL przykład

Obsługiwane formaty obrazów to: image/jpeg, image/png, image/gif, image/webp. Przykład odpowiedzi:

Użycie narzędzi (Tool Use)

API wiadomości Claude natywnie wspiera funkcję wywoływania narzędzi, pozwalając modelowi na wywoływanie zdefiniowanych przez Ciebie narzędzi/funkcji w razie potrzeby.

Przykład w Pythonie

Gdy model zdecyduje się na wywołanie narzędzia, odpowiedź będzie zawierać blok treści typu tool_use:
Zauważ, że stop_reason to tool_use, co oznacza, że model musi wywołać narzędzie. Po otrzymaniu tej odpowiedzi musisz wykonać funkcję narzędzia i zwrócić wynik w formie tool_result do modelu:
Model wygeneruje ostateczną odpowiedź w naturalnym języku na podstawie wyników zwróconych przez narzędzie.

Różnice między API zakończenia czatu a API wiadomości

Ace Data Cloud oferuje dwa formaty API Claude, a ich główne różnice są następujące: Jeśli Twój system już zintegrował API w formacie OpenAI, możesz użyć API zakończenia czatu do płynnego przełączenia. Jeśli potrzebujesz korzystać z pełnych natywnych możliwości Claude’a, zaleca się użycie API wiadomości.

Obsługa błędów

Podczas wywoływania API, jeśli wystąpi błąd, API zwróci odpowiedni kod błędu i informacje. Na przykład:
  • 400 token_mismatched: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
  • 400 api_not_implemented: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
  • 401 invalid_token: Nieautoryzowany, nieprawidłowy lub brakujący token autoryzacji.
  • 429 too_many_requests: Zbyt wiele żądań, przekroczono limit.
  • 500 api_error: Wewnętrzny błąd serwera, coś poszło nie tak na serwerze.

Przykład odpowiedzi błędu

Wnioski

Dzięki temu dokumentowi zrozumiałeś, jak korzystać z API Claude Messages, aby wywołać funkcje konwersacyjne Claude w natywnym formacie Anthropic. API Messages obsługuje podstawowe rozmowy, systemowe podpowiedzi, odpowiedzi strumieniowe, wieloetapowe rozmowy, głębokie myślenie, zrozumienie wizualne i wywołania narzędzi. W razie jakichkolwiek pytań, prosimy o kontakt z naszym zespołem wsparcia technicznego.