Skip to main content
Anthropic Claude — це дуже потужна AI система діалогу, яка може генерувати плавні та природні відповіді всього за кілька секунд, якщо ввести підказку. Claude Messages API — це офіційний рідний формат API Anthropic, який, на відміну від формату OpenAI (Chat Completion), використовує власну структуру запитів і відповідей Anthropic, що дозволяє краще використовувати унікальні можливості Claude, такі як мультимодальний вхід, виклики інструментів, глибоке мислення (Extended Thinking) та інші розширені функції. Цей документ в основному описує процес використання Claude Messages API, за допомогою якого ми можемо використовувати рідний інтерфейс, що відповідає офіційним стандартам Anthropic, для виклику діалогових функцій Claude.

Процес заявки

Щоб використовувати Claude Messages API, спочатку можна перейти на сторінку Claude Messages API та натиснути кнопку «Acquire», щоб отримати необхідні для запиту облікові дані: Якщо ви ще не увійшли в систему або не зареєстровані, вас автоматично перенаправлять на сторінку входу, запрошуючи вас зареєструватися та увійти. Після входу або реєстрації ви автоматично повернетеся на цю сторінку. При першій заявці буде надано безкоштовний ліміт, що дозволяє безкоштовно використовувати цей API.

Основне використання

Шлях запиту для Claude Messages API — /v1/messages, що відповідає офіційному API Anthropic. Ми повинні надати принаймні три обов’язкові параметри:
  • model: вибір моделі Claude, наприклад, claude-opus-4-20250514, claude-sonnet-4-20250514 тощо.
  • messages: масив вхідних повідомлень, кожне з яких містить role (роль) та content (вміст), де role підтримує user та assistant.
  • max_tokens: максимальна кількість токенів на виході, що використовується для обмеження довжини одноразової відповіді.
Звичайні необов’язкові параметри:
  • system: системна підказка, що використовується для встановлення поведінки та ролі моделі.
  • temperature: випадковість генерації, від 0 до 1, чим більше значення, тим більш розсіяні відповіді.
  • stream: чи використовувати потокову відповідь, встановивши true, можна досягти ефекту повернення по словах.
  • stop_sequences: користувацькі послідовності зупинки, при зустрічі з якими модель зупинить генерацію.
  • top_p: параметр ядерного вибірки, що в поєднанні з temperature контролює випадковість генерації.
  • top_k: вибірка лише з K найбільш ймовірних варіантів.
  • tools: визначення інструментів, що дозволяє моделі викликати зовнішні функції.
  • tool_choice: контроль за тим, як модель використовує надані інструменти.

cURL приклад

Python приклад

Після виклику, результат буде таким:
Опис полів результату:
  • id: унікальний ідентифікатор цього повідомлення.
  • type: завжди message.
  • role: завжди assistant.
  • content: масив вмісту відповіді, кожен елемент містить type (наприклад, text) та відповідний вміст.
  • model: назва моделі, що обробляє запит.
  • stop_reason: причина зупинки, можливі значення включають end_turn (нормальне завершення), max_tokens (досягнуто максимальну довжину), stop_sequence (зустріч з послідовністю зупинки), tool_use (виклик інструменту).
  • stop_sequence: якщо зупинка сталася через користувацьку послідовність зупинки, відображається текст відповідної зупиненої послідовності.
  • usage: статистика використання токенів, що містить input_tokens (кількість вхідних токенів) та output_tokens (кількість вихідних токенів).

Системні підказки

Claude Messages API підтримує встановлення системних підказок через поле system, що використовується для визначення поведінки, ролі та контексту моделі.

Python приклад

Встановивши системну підказку, можна точно контролювати роль і поведінку Claude.

Потокова відповідь

Цей інтерфейс також підтримує потокову відповідь, встановивши параметр stream в true, можна отримати поступове повернення, що дуже підходить для реалізації по словах на веб-сторінці.

Python приклад

Потокова відповідь повертається у форматі Server-Sent Events (SSE), кожен рядок має префікси event: та data:. Типи потокових подій включають:
  • message_start: початок повідомлення, що містить основну інформацію про повідомлення та назву моделі.
  • content_block_start: початок блоку вмісту.
  • content_block_delta: інкрементне оновлення блоку вмісту, що містить новостворені текстові фрагменти.
  • content_block_stop: кінець блоку вмісту.
  • message_delta: інкрементне оновлення на рівні повідомлення, що містить stop_reason та остаточну інформацію про usage.
  • message_stop: кінець повідомлення.
Вихідний ефект виглядає наступним чином:
Можна побачити, що в потоці відповіді подія content_block_delta містить поступово згенерований текст, шляхом з’єднання всіх text_delta можна отримати повну відповідь.

Приклад JavaScript

Багатокрокова розмова

Якщо ви хочете підключити функцію багатокрокової розмови, потрібно чергувати повідомлення ролей user та assistant в масиві messages, передавши попередню історію розмови.

Приклад Python

Результат буде таким:
Передаючи повну історію розмови в messages, Клод може враховувати контекст для точних відповідей.

Модель глибокого мислення

Клод підтримує функцію Розширеного Мислення, яка дозволяє моделі спочатку проводити внутрішнє міркування перед відповіддю, підвищуючи точність обробки складних питань. Для використання цієї функції потрібно передати параметр thinking.

Приклад Python

Результат буде таким:
Можна побачити, що масив content містить два блоки контенту:
  • type: "thinking": внутрішній процес мислення моделі, що демонструє етапи міркування.
  • type: "text": остаточний результат відповіді.
Зверніть увагу на такі моменти:
  • Використовуючи thinking, max_tokens має бути більшим за budget_tokens, оскільки budget_tokens - це бюджет токенів, виділений для процесу мислення.
  • Чим більший budget_tokens, тим більше простору для глибшого міркування має модель, що підходить для обробки складних питань.

Візуальна модель

Клод підтримує мультимодальний ввід, може одночасно обробляти текст та зображення. У Messages API, передавши content у форматі масиву та включивши блоки зображення, можна використовувати візуальні можливості.

Використання Base64 кодування зображення

Використання URL зображення

cURL приклад

Підтримувані формати зображень включають: image/jpeg, image/png, image/gif, image/webp. Приклад відповіді:

Використання інструментів (Tool Use)

API повідомлень Claude нативно підтримує функцію виклику інструментів, що дозволяє моделі викликати заздалегідь визначені вами інструменти/функції за потреби.

Приклад Python

Коли модель вирішує викликати інструмент, у відповіді content буде містити блок вмісту типу tool_use:
Зверніть увагу, що stop_reason є tool_use, що вказує на те, що моделі потрібно викликати інструмент. Отримавши цей результат, вам потрібно виконати функцію інструменту та повернути результат у формі tool_result моделі:
Модель буде генерувати остаточну відповідь природною мовою на основі результатів, повернених інструментом.

Відмінності з API завершення чату

Ace Data Cloud одночасно надає два формати API Claude, основні відмінності між якими наведені нижче: Якщо ваша система вже інтегрована з API формату OpenAI, ви можете використовувати Chat Completion API для безшовного переходу. Якщо вам потрібно використовувати всі нативні можливості Claude, рекомендується використовувати Messages API.

Обробка помилок

При виклику API, якщо виникає помилка, API поверне відповідний код помилки та інформацію. Наприклад:
  • 400 token_mismatched: Неправильний запит, можливо, через відсутні або недійсні параметри.
  • 400 api_not_implemented: Неправильний запит, можливо, через відсутні або недійсні параметри.
  • 401 invalid_token: Неавторизовано, недійсний або відсутній токен авторизації.
  • 429 too_many_requests: Занадто багато запитів, ви перевищили ліміт запитів.
  • 500 api_error: Внутрішня помилка сервера, щось пішло не так на сервері.

Приклад відповіді з помилкою

Висновок

За допомогою цього документа ви дізналися, як використовувати Claude Messages API для виклику діалогових функцій Claude в рідному форматі Anthropic. Messages API підтримує основний діалог, системні підказки, потокові відповіді, багатократні діалоги, глибоке мислення, візуальне розуміння та виклики інструментів тощо. Якщо у вас є будь-які питання, будь ласка, звертайтеся до нашої команди технічної підтримки.