Source: https://aiprimetech.io/ru/docs/getting-started/first-request/ [Главная](/ru/) / [Документация](/ru/docs/) / Разбор первого запроса # Разбор первого запроса Построчный разбор одного вызова Messages — назначение каждого поля и содержимое ответа. Копировать страницу [ Посмотреть в формате Markdown](/ru/docs/getting-started/first-request.md) [ Спросить ChatGPT](https://chatgpt.com/?q=Read%20https%3A//aiprimetech.io/docs/getting-started/first-request.md%20and%20answer%20questions%20about%20it.%20Start%20with%20a%20short%20summary.) [ Спросить в Claude](https://claude.ai/new?q=Read%20https%3A//aiprimetech.io/docs/getting-started/first-request.md%20and%20answer%20questions%20about%20it.%20Start%20with%20a%20short%20summary.) Краткое руководство позволяет получить ответ. Эта страница объясняет значение каждой части запроса, чтобы следующий запрос вы могли написать самостоятельно. ## Запрос ``` Copycurl https://aiprimetech.io/v1/messages \ -H "x-api-key: $CLAUDEAPIKEY" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{ "model": "claude-sonnet-4-6", "max_tokens": 1024, "messages": [{"role": "user", "content": "Hello"}] }' ``` | Поле | Обязательно | Что делает | model | да | Какую модель запускать. Значение должно совпадать с идентификатором из /v1/models в точности. | max_tokens | да | Жёсткий верхний предел для вывода. Модель останавливается на этом пределе, даже посреди предложения. Это средство контроля затрат, а не целевое значение. | messages | да | Вся история разговора, начиная с самых ранних сообщений. Каждая запись содержит role (user или assistant) и content. | system | нет | Инструкции, действующие на протяжении всего разговора. Поле верхнего уровня, а не сообщение с role: system. | temperature | нет | 0–1. Чем ниже значение, тем более детерминирован результат. Не задавайте его без необходимости. | stream | нет | true возвращает события, отправляемые сервером, вместо одного тела JSON. См. [Потоковая передача](/ru/docs/api-reference/streaming/). ## Ответ ``` Copy{ "id": "msg_01ABC...", "type": "message", "role": "assistant", "model": "claude-sonnet-4-6", "content": [{"type": "text", "text": "Hello! How can I help?"}], "stop_reason": "end_turn", "usage": {"input_tokens": 9, "output_tokens": 12} } ``` - content — это массив, а не строка. Текст находится в content[0].text. Обработка этого значения как строки — самая распространённая ошибка в клиенте. - stop_reason показывает, почему завершилась генерация: end_turn (завершена), max_tokens (достигнут заданный вами предел — ответ обрезан), stop_sequenceили tool_use. - usage — это то, на основании чего вам выставляют счёт. Записывайте это значение в журнал: это единственная надёжная основа для распределения затрат. Если stop_reason здесь является max_tokens, ваш ответ был обрезан. Увеличьте max_tokens или попросите более короткий ответ — не повторяйте запрос вслепую: за обрезанный вывод вы тоже платите. ## Многоходовые разговоры API не сохраняет состояние. Чтобы продолжить разговор, нужно повторно отправить всю историю, включая предыдущие ответы модели: ``` Copy{ "model": "claude-sonnet-4-6", "max_tokens": 1024, "messages": [ {"role": "user", "content": "What is the capital of France?"}, {"role": "assistant", "content": "Paris."}, {"role": "user", "content": "And its population?"} ] } ``` Поскольку история отправляется заново на каждом шаге, количество входных токенов растёт по мере разговора, а вместе с ним растёт и счёт. Поэтому длительные сеансы работы с агентами обходятся дорого. [Кэширование промптов](/ru/docs/guides/prompt-caching/) и [управление контекстом](/ru/docs/guides/context-management/) оба напрямую решают эту проблему. [API сообщенийПолный справочник полей](/ru/docs/api-reference/messages/)[Потоковая передачаОтветы токен за токеном](/ru/docs/api-reference/streaming/)[Python SDKТот же вызов на Python](/ru/docs/sdks/python/) [НазадБазовые URL](/ru/docs/getting-started/base-urls/)[ДалееОбзор API](/ru/docs/api-reference/overview/)