Skip to main content
Anthropic Claude to bardzo potężny system AI do rozmów, który potrafi generować płynne i naturalne odpowiedzi w zaledwie kilka sekund po wprowadzeniu podpowiedzi. Claude Messages API to oficjalny natywny format API Anthropic, który różni się od formatu OpenAI (Chat Completion), ponieważ wykorzystuje własną strukturę żądań i odpowiedzi Anthropic, 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.

申请流程

Aby korzystać z Claude Messages API, najpierw przejdź do Ace Data Cloud 控制台, aby uzyskać swój token API, który należy zachować na przyszłość. Jeśli nie jesteś zalogowany lub zarejestrowany, automatycznie zostaniesz przekierowany na stronę logowania, aby zarejestrować się i zalogować, a po zakończeniu zostaniesz automatycznie przekierowany z powrotem na bieżącą stronę. Jeden token API wystarczy do wywołania wszystkich usług platformy, nie ma potrzeby składania osobnych wniosków dla każdej usługi. Pierwsze zgłoszenie otrzyma darmowy limit, aby można było skorzystać z bezpłatnej wersji; w przypadku niewystarczającego limitu można doładować saldo ogólne w kontrolerze.
📘 Pełna dokumentacja: Claude Messages API →

基本使用

Ścieżka żądania Claude Messages API to /v1/messages, zgodna z oficjalnym API Anthropic. Musimy podać co najmniej trzy wymagane parametry:
  • model:wybór modelu Claude, który ma być użyty. Najnowszy flagowy model to claude-fable-5-1 (1 milion tokenów kontekstowych, maksymalne wyjście 128K tokenów); oryginalny claude-fable-5 pozostaje w pełni kompatybilny.
  • 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:systemowa podpowiedź, 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.
  • cache_control:automatycznie tworzy punkty kontrolne pamięci podręcznej na ostatnim blokowanym do pamięci podręcznej w żądaniu; można również zapisać na konkretnym bloku treści.

cURL 示例

Python 示例

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. Stabilne wartości to end_turnmax_tokensstop_sequencetool_usepause_turn(można zwrócić aktualną treść asystenta, aby kontynuować)、refusal i model_context_window_exceeded.
  • stop_sequence:jeśli zatrzymano z powodu niestandardowej sekwencji zatrzymania, wyświetla dopasowany tekst sekwencji zatrzymania.
  • stop_details:gdy stop_reason to refusal, może zawierać kategorię i opis odmowy.
  • usage:statystyki użycia tokenów. input_tokens to niebuforowane wejście; cache_creation_input_tokens i cache_read_input_tokens to odpowiednio zapisywanie i odczytywanie pamięci podręcznej; output_tokens to liczba tokenów wyjściowych. Oficjalna stawka za odczyt pamięci podręcznej Fable 5.1 wynosi 0.25/miliontokenoˊw,astawkizazapispamięcipodręcznejprzez5minuti1godzinęwynosząodpowiednio0.25/milion tokenów, a stawki za zapis pamięci podręcznej przez 5 minut i 1 godzinę wynoszą odpowiednio 12.50 i $20/milion tokenów; rzeczywiste ceny platformy są przeliczane według zniżek pakietowych. Odpowiedzi nieliniowe mogą również zawierać cost zarejestrowany przez Ace Data Cloud.

系统提示词

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

Python 示例

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

流式响应

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

Python 示例

Strumieniowa odpowiedź jest zwracana w formacie Server-Sent Events (SSE), każda linia zaczyna się od prefiksu 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: inkrementalna aktualizacja bloku treści, zawierająca nowo wygenerowane fragmenty tekstu.
  • content_block_stop: koniec bloku treści.
  • message_delta: inkrementalna aktualizacja na poziomie wiadomości, zawierająca informacje o stop_reason i ostatecznym usage.
  • message_stop: koniec wiadomości.
Wynik wygląda następująco:
Można zauważyć, że zdarzenie content_block_delta w strumieniowej odpowiedzi zawiera stopniowo generowane treści, a poprzez połączenie 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 wcześniejszą historię rozmowy.

Przykład Python

Wynik wygląda następująco:
Przekazując pełną historię rozmowy w messages, Claude może dokładnie odpowiedzieć, uwzględniając kontekst.

Model głębokiego myślenia

Myślenie Claude’a i podsumowanie myślenia to dwa różne pojęcia: model może przeprowadzać wewnętrzne rozumowanie, ale API nie zwraca oryginalnego łańcucha myślenia. Gdy konieczne jest pokazanie procesu rozumowania, API zwraca przetworzone podsumowanie. Aktualny model zaleca użycie myślenia adaptacyjnego i kontrolowanie ogólnego wysiłku rozumowania za pomocą output_config.effort:
Blok myślenia w odpowiedzi wygląda następująco:
  • display: "summarized" zwraca czytelne podsumowanie myślenia; nie jest to oryginalny łańcuch myślenia.
  • display: "omitted" zwraca thinking: "", ale nadal zachowuje nieprzezroczysty signature, aby wspierać dalszą rozmowę.
  • Fable 5.1, Fable 5, Opus 5, Sonnet 5, Opus 4.8 i Opus 4.7 mają domyślną wartość omitted dla display; Opus 4.6, Sonnet 4.6 i wcześniejsze modele wspierające myślenie domyślnie używają summarized.
  • Display wpływa tylko na zwracane treści i opóźnienie strumieniowe, nie wyłącza rozumowania ani nie zmniejsza naliczania tokenów myślenia.
  • Czy myślenie jest domyślnie włączone oraz domyślne wartości display to dwa niezależne pytania. Opus 5, Sonnet 5 domyślnie włączają myślenie adaptacyjne; Opus 4.8, 4.7 i 4.6 muszą być jawnie włączone.
  • budget_tokens jest używane tylko w starszych modelach, które nadal wspierają stały budżet myślenia. Nowe modele powinny używać thinking.type=adaptive i output_config.effort; myślenie w Fable 5.1 jest zawsze włączone i nie można go jawnie wyłączyć.
  • W przypadku wielu rund rozmowy i wywołań narzędzi, należy zwrócić pełny blok myślenia oraz podpis zwrócony przez asystenta bez zmian; nie należy modyfikować ani samodzielnie generować podpisu.
  • Niektóre częściowo kompatybilne trasy nie mogą bezstratnie przetwarzać redacted_thinking lub jawnie wyłączać myślenia, w takim przypadku zwrócą błąd parametru, a nie cicho porzucą lub zmienią semantykę żądania.
W strumieniowym żądaniu, summarized wygeneruje thinking_delta; omitted nie wygeneruje thinking_delta, zachowując jedynie cykl życia bloku myślenia i signature_delta.

Model wizualny

Użycie obrazu z URL

Przykład cURL

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

Dokumenty i PDF

PDF używa bloku zawartości document, wspierając stabilne źródła w formacie Base64 i URL. Źródło Base64 musi używać application/pdf:
Źródło URL zapisuje się jako {"type":"url","url":"https://example.com/report.pdf"}. document wspiera również text/plain oraz źródła content składające się z bloków text/image; opcjonalne pola to title, context i citations. Źródło file_id API plików należy do niezależnej funkcji beta i nie jest objęte stabilnym kontraktem tego interfejsu.

Cache podpowiedzi

Najwyższy poziom cache_control automatycznie umieszcza punkty przerwania w ostatnim możliwym bloku do buforowania:
Gdy potrzebna jest precyzyjna kontrola pozycji, można również umieścić ten sam cache_control w blokach zawartości text, image, document, tool_use, tool_result lub definicji narzędzi. ttl wspiera 5m (domyślnie) oraz 1h; proszę ocenić zapis i trafienie bufora przez usage.cache_creation_input_tokens i usage.cache_read_input_tokens. Przykład zwracanej odpowiedzi:

Wywołanie 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, w zwróconym wyniku content będzie zawierać blok zawartości typu tool_use:
Zauważ, że stop_reason to tool_use, co oznacza, że model potrzebuje wywołać narzędzie. Po otrzymaniu tego wyniku, musisz wykonać funkcję narzędzia i zwrócić wynik w formie tool_result do modelu:
Model będzie generować ostateczną odpowiedź w naturalnym języku na podstawie wyników zwróconych przez narzędzie.

Różnice w stosunku do API Chat Completion

Ace Data Cloud oferuje dwa formaty API Claude, a główne różnice są następujące: usage.input_tokens w API Messages oznacza tylko niebuforowane wejście, cache_read_input_tokens i cache_creation_input_tokens są niezależnie rozliczane; wszystkie trzy będą rozliczane według odpowiednich cen. Jeśli Twój system już zintegrował API w formacie OpenAI, możesz użyć API Chat Completion do płynnego przełączenia. Jeśli potrzebujesz korzystać z pełnych natywnych możliwości Claude’a, zaleca się użycie API Messages.

Obsługa błędów

Odpowiedzi błędów z publicznego interfejsu używają envelope platformy Ace Data Cloud: error.code to stabilny kod błędu, error.message to opis, a trace_id służy do diagnozowania żądań. Typowe statusy HTTP obejmują:
  • 400: Nieprawidłowe parametry żądania lub treść protokołu.
  • 401: Nieprawidłowy, brakujący lub wygasły token autoryzacji.
  • 403: Zabroniony dostęp, niewystarczające saldo lub ograniczenia kwotowe.
  • 404: API lub model nie istnieje.
  • 413: Zbyt duża treść żądania.
  • 429: Zbyt wiele żądań.
  • 500 / 503 / 504: Błąd serwisu, tymczasowo niedostępny lub przekroczenie czasu przetwarzania.

Przykład odpowiedzi błędu

Ta struktura błędu jest umową czasową Ace Data Cloud, nie jest równoznaczna z oficjalnym envelope błędów Anthropic; proszę obsługiwać zgodnie z statusem HTTP i error.code.

Wnioski

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