Совместим с Anthropic Messages API. Если ваш код уже работает через anthropic.Anthropic или официальный TypeScript SDK, поменяйте base_url и api_key — больше ничего трогать не нужно.
Anthropic SDK передаёт ключ в заголовке X-Api-Key. Этот API принимает X-Api-Key наравне с Authorization: Bearer — менять код авторизации в SDK не нужно.
Идентификатор модели нужно взять из GET /api/v1/models и подставить как есть. Если модель неизвестна, придёт 404 not_found_error. Идентификатор в примерах ниже конкретный, чтобы их можно было скопировать; в рабочем коде получайте его из каталога — состав моделей меняется.
Потолок выходных токенов. Обязателен по контракту Anthropic, применяется только при значении больше нуля
Каждый элемент messages[] — объект с role (user или assistant) и content. content принимает три формы:
Форма
Пример
Строка
"Привет"
Массив блоков
[{"type": "text", "text": "Привет"}]
Один блок-объект
{"type": "text", "text": "Привет"} — оборачивается в массив автоматически
Принимаемые типы блоков на входе: text, image, document, tool_use, tool_result, thinking, redacted_thinking, search_result, а также блоки с результатами серверных инструментов.
Роль system в messages[] не используется — передавайте системную инструкцию в отдельное поле system. Роли, отличные от user и assistant, приведут к ошибке.
tool_choice — объект {type: auto | any | tool | none}, где any и tool дополнительно требуют name. Есть поле disable_parallel_tool_use: true запрещает несколько вызовов за один шаг.Вызов приходит в content как блок tool_use, а stop_reason равен tool_use. Отправьте результат обратно блоком tool_result с тем же tool_use_id:
Включает рассуждение; без budget_tokens — уровень high
between_tools
Рассуждение между вызовами инструментов
disabled
Выключает рассуждение (уровень none)
budget_tokens переводится в уровень глубины рассуждения: чем больше бюджет, тем выше уровень. display: "omitted" убирает краткий пересказ рассуждений из ответа, само рассуждение при этом остаётся.Текст рассуждений приходит блоком thinking в content, а его объём — в usage.output_tokens_details.thinking_tokens.
stop_reason — одно из end_turn, max_tokens, stop_sequence, tool_use, pause_turn, refusal, model_context_window_exceeded, compaction либо null, если генерация ещё не закончилась.
Счётчики токенов здесь считаются не так, как в OpenAI, и их нельзя складывать напрямую. input_tokensне включает кэш-токены — их нужно прибавить отдельно. thinking_tokens — подмножествоoutput_tokens, их не прибавляют. Итоговый вход: input_tokens + cache_creation_input_tokens + cache_read_input_tokens. Итоговый выход — это output_tokens.
При stream: true приходит поток SSE. Каждый кадр — безымянное событие data:; отдельного поля event: сервер не пишет, поэтому клиенты, разбирающие поток по event:, работать не будут. Тип события лежит в поле type самого объекта.
Начало сообщения, несёт входные токены и пустой content
content_block_start
Начался блок контента с указанным index
content_block_delta
Очередная порция блока
content_block_stop
Блок с указанным index закрыт
message_delta
Финальные метаданные: stop_reason, stop_sequence, полный usage
message_stop
Конец сообщения
ping
Проверка живости соединения
error
Ошибка в середине потока
Типы дельт внутри content_block_delta:
Тип
Поле
Что несёт
text_delta
text
Очередной кусок текста
input_json_delta
partial_json
Очередной кусок аргументов инструмента
thinking_delta
thinking
Очередной кусок рассуждения
signature_delta
signature
Подпись блока рассуждения
citations_delta
citation
Ссылка на источник
Блоки собираются по index: пока не пришёл content_block_stop с этим index, блок не закончен.
Деньги списываются на терминальном кадре message_delta — именно там приходит полный usage. Если поток оборвался раньше, этого кадра не будет, а значит, не будет и списания по этому запросу: сверяйтесь с балансом через GET /api/v1/balance.
После последнего события сервер дописывает кадр data: [DONE]. Его нет в спецификации Anthropic Messages API: строгий клиент попытается распарсить [DONE] как JSON и упадёт. Обработайте эту строку как конец потока и завершайте чтение.
Обрабатывайте неизвестные типы событий без ошибки: они могут появляться без изменения основного контракта.
Недостаток денег здесь отдаётся как 400, а не как 402. Это осознанное отличие от Запрос чату: код ответа следует за контрактом Anthropic, чтобы SDK не выбрасывали для него исключение другого типа. Проверяйте баланс заранее через GET /api/v1/balance.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Документация SpeShu.AI","colors":{"primary":"#ff7819","light":"#ff9038","dark":"#ff7819"},"logo":{"light":"https://mintcdn.com/speshu/HiupqL5TwnvMFufM/logo/speshu_logo.png?fit=max\u0026auto=format\u0026n=HiupqL5TwnvMFufM\u0026q=85\u0026s=fd0fe3cc5f642899ca9d4e8bdee6a0f0","dark":"https://mintcdn.com/speshu/HiupqL5TwnvMFufM/logo/speshu_logo.png?fit=max\u0026auto=format\u0026n=HiupqL5TwnvMFufM\u0026q=85\u0026s=fd0fe3cc5f642899ca9d4e8bdee6a0f0"},"favicon":"https://mintcdn.com/speshu/4vy74SrUrHtVMEav/favicon.svg?fit=max\u0026auto=format\u0026n=4vy74SrUrHtVMEav\u0026q=85\u0026s=3fe1d515b10b46d55add95c515686b24","api":{"mdx":{"auth":{"method":"bearer","name":"Authorization"},"server":"https://speshu.ai"}},"appearance":{"default":"light"},"navbar":{"links":[{"href":"/support","label":"Поддержка"}],"primary":{"type":"button","label":"Профиль","href":"https://speshu.ai/profile"}},"footer":{"links":[{"items":[{"label":"Сотрудничество","href":"mailto:info@speshu.ai"},{"label":"Написать в ТГ","href":"https://t.me/sprt_speshu_ai"},{"label":"Клуб AI-Профи","href":"https://t.me/+9Fkgdpnm3axlN2Ji"}]}]},"contextual":{"options":["copy","view"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Модели","icon":"microchip","href":"/api-reference/media/models"},{"anchor":"Каталог","icon":"list","href":"/models"},{"anchor":"Профиль","icon":"gauge","href":"https://speshu.ai/profile"},{"anchor":"Поддержка","icon":"headset","href":"/support"}]},"languages":[{"language":"ru","href":""}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"speshu","hasAudioNarration":false,"actualSubdomain":"speshu","customDomains":["speshu.ai"],"gitSource":{"type":"github","owner":"laoboost","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ad74369dcf1b2c01a0bc747","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"ru","tag":"Руководства","count":41},{"language":"ru","tag":"API Reference","count":23},{"language":"ru","tag":"Документация","count":13},{"language":"ru","tag":"Фреймворки","count":12},{"language":"ru","tag":"Текстовая генерация","count":7},{"language":"ru","tag":"Агенты и редакторы","count":7},{"language":"ru","tag":"Медиа","count":6},{"language":"ru","tag":"О сервисе","count":6},{"language":"ru","tag":"Возможности моделей","count":6},{"language":"ru","tag":"Начало","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/messages/create","slug":"/api-reference/messages/create","pageMetadata":{"title":"Anthropic Messages","description":"POST /api/v1/messages — Anthropic-совместимый эндпоинт с вызовом инструментов и потоком событий","openapi":"api-reference/openapi.json POST /api/v1/messages","icon":"a","href":"/api-reference/messages/create"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"POST /api/v1/messages — Anthropic-совместимый эндпоинт с вызовом инструментов и потоком событий\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Card,CardGroup,CodeBlock,CodeGroup,Heading,Note,Table,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Совместим с Anthropic Messages API. Если ваш код уже работает через `,_jsx(_components.code,{children:`anthropic.Anthropic`}),` или официальный TypeScript SDK, поменяйте `,_jsx(_components.code,{children:`base_url`}),` и `,_jsx(_components.code,{children:`api_key`}),` — больше ничего трогать не нужно.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Anthropic SDK передаёт ключ в заголовке `,_jsx(_components.code,{children:`X-Api-Key`}),`. Этот API принимает `,_jsx(_components.code,{children:`X-Api-Key`}),` наравне с `,_jsx(_components.code,{children:`Authorization: Bearer`}),` — менять код авторизации в SDK не нужно.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`минимальный-запрос`,children:`Минимальный запрос`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`8`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://speshu.ai/api/v1/messages`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"X-Api-Key: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$SPESHU_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"model\": \"gpt-4o\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"max_tokens\": 1024,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"messages\": [{\"role\": \"user\", \"content\": \"Привет!\"}]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,numberOfLines:`13`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`13`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` anthropic `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Anthropic`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Anthropic(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` api_key`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sk-...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` base_url`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://speshu.ai/api/v1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`message `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` client.messages.create(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` model`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"gpt-4o\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` max_tokens`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1024`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` messages`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[{`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"role\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"content\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Привет!\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(message.content[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`].text)`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`TypeScript`,numberOfLines:`13`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`13`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Anthropic`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@anthropic-ai/sdk\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Anthropic`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` apiKey:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"sk-...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` baseURL:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://speshu.ai/api/v1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` message`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`messages`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`create`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` model:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"gpt-4o\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` max_tokens:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1024`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` messages:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [{ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`role:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"user\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`content:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Привет!\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`content`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]);`})]}),`\n`]})})})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Идентификатор модели нужно взять из `,_jsx(_components.code,{children:`GET /api/v1/models`}),` и подставить `,_jsx(_components.strong,{children:`как есть`}),`. Если модель неизвестна, придёт `,_jsx(_components.code,{children:`404 not_found_error`}),`. Идентификатор в примерах ниже конкретный, чтобы их можно было скопировать; в рабочем коде получайте его из каталога — состав моделей меняется.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`поля-запроса`,children:`Поля запроса`}),`\n`,_jsx(Heading,{level:`3`,id:`обязательные`,children:`Обязательные`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Поле`}),_jsx(_components.th,{children:`Тип`}),_jsx(_components.th,{children:`Описание`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`model`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`Идентификатор из `,_jsx(_components.code,{children:`GET /api/v1/models`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`messages`})}),_jsx(_components.td,{children:`array`}),_jsx(_components.td,{children:`Непустой массив сообщений`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`max_tokens`})}),_jsx(_components.td,{children:`integer`}),_jsx(_components.td,{children:`Потолок выходных токенов. Обязателен по контракту Anthropic, применяется только при значении больше нуля`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Каждый элемент `,_jsx(_components.code,{children:`messages[]`}),` — объект с `,_jsx(_components.code,{children:`role`}),` (`,_jsx(_components.code,{children:`user`}),` или `,_jsx(_components.code,{children:`assistant`}),`) и `,_jsx(_components.code,{children:`content`}),`. `,_jsx(_components.code,{children:`content`}),` принимает три формы:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Форма`}),_jsx(_components.th,{children:`Пример`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Строка`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`\"Привет\"`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Массив блоков`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`[{\"type\": \"text\", \"text\": \"Привет\"}]`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Один блок-объект`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`{\"type\": \"text\", \"text\": \"Привет\"}`}),` — оборачивается в массив автоматически`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Принимаемые типы блоков на входе: `,_jsx(_components.code,{children:`text`}),`, `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`document`}),`, `,_jsx(_components.code,{children:`tool_use`}),`, `,_jsx(_components.code,{children:`tool_result`}),`, `,_jsx(_components.code,{children:`thinking`}),`, `,_jsx(_components.code,{children:`redacted_thinking`}),`, `,_jsx(_components.code,{children:`search_result`}),`, а также блоки с результатами серверных инструментов.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Роль `,_jsx(_components.code,{children:`system`}),` в `,_jsx(_components.code,{children:`messages[]`}),` не используется — передавайте системную инструкцию в отдельное поле `,_jsx(_components.code,{children:`system`}),`. Роли, отличные от `,_jsx(_components.code,{children:`user`}),` и `,_jsx(_components.code,{children:`assistant`}),`, приведут к ошибке.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`генерация`,children:`Генерация`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Поле`}),_jsx(_components.th,{children:`Тип`}),_jsx(_components.th,{children:`Описание`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`system`})}),_jsx(_components.td,{children:`string | array`}),_jsx(_components.td,{children:`Системная инструкция. Строка или массив блоков. Подставляется в начало диалога как системное сообщение`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`stream`})}),_jsx(_components.td,{children:`boolean`}),_jsx(_components.td,{children:`Потоковая передача через SSE`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`temperature`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`top_p`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`top_k`})}),_jsx(_components.td,{children:`integer`}),_jsx(_components.td,{children:`Передаётся провайдеру без изменений`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`stop_sequences`})}),_jsx(_components.td,{children:`string[]`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`service_tier`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`metadata.user_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`mcp_servers`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`Внешние MCP-серверы`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`инструменты`,children:`Инструменты`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`14`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"tools\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"get_weather\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Погода в городе\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"input_schema\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"object\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"properties\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"city\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"string\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"required\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"city\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"tool_choice\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"auto\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`tool_choice`}),` — объект `,_jsx(_components.code,{children:`{type: auto | any | tool | none}`}),`, где `,_jsx(_components.code,{children:`any`}),` и `,_jsx(_components.code,{children:`tool`}),` дополнительно требуют `,_jsx(_components.code,{children:`name`}),`. Есть поле `,_jsx(_components.code,{children:`disable_parallel_tool_use`}),`: `,_jsx(_components.code,{children:`true`}),` запрещает несколько вызовов за один шаг.`]}),`\n`,_jsxs(_components.p,{children:[`Вызов приходит в `,_jsx(_components.code,{children:`content`}),` как блок `,_jsx(_components.code,{children:`tool_use`}),`, а `,_jsx(_components.code,{children:`stop_reason`}),` равен `,_jsx(_components.code,{children:`tool_use`}),`. Отправьте результат обратно блоком `,_jsx(_components.code,{children:`tool_result`}),` с тем же `,_jsx(_components.code,{children:`tool_use_id`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"role\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"content\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"tool_result\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"tool_use_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"toolu_...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"content\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"+18°C, ясно\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`рассуждения`,children:`Рассуждения`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"thinking\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"enabled\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"budget_tokens\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`8192`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"display\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"omitted\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:_jsx(_components.code,{children:`type`})}),_jsx(_components.th,{children:`Что делает`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`enabled`})}),_jsx(_components.td,{children:`Включает рассуждение`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`adaptive`})}),_jsxs(_components.td,{children:[`Включает рассуждение; без `,_jsx(_components.code,{children:`budget_tokens`}),` — уровень `,_jsx(_components.code,{children:`high`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`between_tools`})}),_jsx(_components.td,{children:`Рассуждение между вызовами инструментов`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`disabled`})}),_jsxs(_components.td,{children:[`Выключает рассуждение (уровень `,_jsx(_components.code,{children:`none`}),`)`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`budget_tokens`}),` переводится в уровень глубины рассуждения: чем больше бюджет, тем выше уровень. `,_jsx(_components.code,{children:`display: \"omitted\"`}),` убирает краткий пересказ рассуждений из ответа, само рассуждение при этом остаётся.`]}),`\n`,_jsxs(_components.p,{children:[`Текст рассуждений приходит блоком `,_jsx(_components.code,{children:`thinking`}),` в `,_jsx(_components.code,{children:`content`}),`, а его объём — в `,_jsx(_components.code,{children:`usage.output_tokens_details.thinking_tokens`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`ответ`,children:`Ответ`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`21`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`21`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"msg_...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"role\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"assistant\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"model\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"gpt-4o\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"content\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Привет! Чем помочь?\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"stop_reason\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"end_turn\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"stop_sequence\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"usage\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"input_tokens\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"cache_creation_input_tokens\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"cache_read_input_tokens\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"output_tokens\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`8`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"output_tokens_details\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"thinking_tokens\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"stop_details\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"container\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"diagnostics\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`stop_reason`}),` — одно из `,_jsx(_components.code,{children:`end_turn`}),`, `,_jsx(_components.code,{children:`max_tokens`}),`, `,_jsx(_components.code,{children:`stop_sequence`}),`, `,_jsx(_components.code,{children:`tool_use`}),`, `,_jsx(_components.code,{children:`pause_turn`}),`, `,_jsx(_components.code,{children:`refusal`}),`, `,_jsx(_components.code,{children:`model_context_window_exceeded`}),`, `,_jsx(_components.code,{children:`compaction`}),` либо `,_jsx(_components.code,{children:`null`}),`, если генерация ещё не закончилась.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Счётчики токенов здесь считаются не так, как в OpenAI, и их нельзя складывать напрямую. `,_jsx(_components.code,{children:`input_tokens`}),` `,_jsx(_components.strong,{children:`не включает`}),` кэш-токены — их нужно прибавить отдельно. `,_jsx(_components.code,{children:`thinking_tokens`}),` — `,_jsx(_components.strong,{children:`подмножество`}),` `,_jsx(_components.code,{children:`output_tokens`}),`, их не прибавляют. Итоговый вход: `,_jsx(_components.code,{children:`input_tokens + cache_creation_input_tokens + cache_read_input_tokens`}),`. Итоговый выход — это `,_jsx(_components.code,{children:`output_tokens`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`потоковая-передача`,children:`Потоковая передача`}),`\n`,_jsxs(_components.p,{children:[`При `,_jsx(_components.code,{children:`stream: true`}),` приходит поток SSE. Каждый кадр — безымянное событие `,_jsx(_components.code,{children:`data:`}),`; отдельного поля `,_jsx(_components.code,{children:`event:`}),` сервер не пишет, поэтому клиенты, разбирающие поток по `,_jsx(_components.code,{children:`event:`}),`, работать не будут. Тип события лежит в поле `,_jsx(_components.code,{children:`type`}),` самого объекта.`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`16`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`16`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`data: {\"type\":\"message_start\",\"message\":{\"id\":\"msg_...\",\"type\":\"message\",\"role\":\"assistant\",\"content\":[],\"model\":\"gpt-4o\",\"stop_reason\":null,\"stop_sequence\":null,\"usage\":{\"input_tokens\":10,\"output_tokens\":1}}}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`data: {\"type\":\"content_block_start\",\"index\":0,\"content_block\":{\"type\":\"text\",\"text\":\"\"}}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`data: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"Привет\"}}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`data: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"!\"}}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`data: {\"type\":\"content_block_stop\",\"index\":0}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`data: {\"type\":\"message_delta\",\"delta\":{\"stop_reason\":\"end_turn\",\"stop_sequence\":null},\"usage\":{\"output_tokens\":8}}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`data: {\"type\":\"message_stop\"}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`data: [DONE]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`3`,id:`события`,children:`События`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Событие`}),_jsx(_components.th,{children:`Когда приходит`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`message_start`})}),_jsxs(_components.td,{children:[`Начало сообщения, несёт входные токены и пустой `,_jsx(_components.code,{children:`content`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`content_block_start`})}),_jsxs(_components.td,{children:[`Начался блок контента с указанным `,_jsx(_components.code,{children:`index`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`content_block_delta`})}),_jsx(_components.td,{children:`Очередная порция блока`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`content_block_stop`})}),_jsxs(_components.td,{children:[`Блок с указанным `,_jsx(_components.code,{children:`index`}),` закрыт`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`message_delta`})}),_jsxs(_components.td,{children:[`Финальные метаданные: `,_jsx(_components.code,{children:`stop_reason`}),`, `,_jsx(_components.code,{children:`stop_sequence`}),`, полный `,_jsx(_components.code,{children:`usage`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`message_stop`})}),_jsx(_components.td,{children:`Конец сообщения`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ping`})}),_jsx(_components.td,{children:`Проверка живости соединения`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`error`})}),_jsx(_components.td,{children:`Ошибка в середине потока`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Типы дельт внутри `,_jsx(_components.code,{children:`content_block_delta`}),`:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Тип`}),_jsx(_components.th,{children:`Поле`}),_jsx(_components.th,{children:`Что несёт`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`text_delta`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`text`})}),_jsx(_components.td,{children:`Очередной кусок текста`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`input_json_delta`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`partial_json`})}),_jsx(_components.td,{children:`Очередной кусок аргументов инструмента`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`thinking_delta`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`thinking`})}),_jsx(_components.td,{children:`Очередной кусок рассуждения`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`signature_delta`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`signature`})}),_jsx(_components.td,{children:`Подпись блока рассуждения`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`citations_delta`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`citation`})}),_jsx(_components.td,{children:`Ссылка на источник`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Блоки собираются по `,_jsx(_components.code,{children:`index`}),`: пока не пришёл `,_jsx(_components.code,{children:`content_block_stop`}),` с этим `,_jsx(_components.code,{children:`index`}),`, блок не закончен.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Деньги списываются на терминальном кадре `,_jsx(_components.code,{children:`message_delta`}),` — именно там приходит полный `,_jsx(_components.code,{children:`usage`}),`. Если поток оборвался раньше, этого кадра не будет, а значит, не будет и списания по этому запросу: сверяйтесь с балансом через `,_jsx(_components.code,{children:`GET /api/v1/balance`}),`.`]})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`После последнего события сервер дописывает кадр `,_jsx(_components.code,{children:`data: [DONE]`}),`. Его `,_jsx(_components.strong,{children:`нет`}),` в спецификации Anthropic Messages API: строгий клиент попытается распарсить `,_jsx(_components.code,{children:`[DONE]`}),` как JSON и упадёт. Обработайте эту строку как конец потока и завершайте чтение.`]})}),`\n`,_jsx(_components.p,{children:`Обрабатывайте неизвестные типы событий без ошибки: они могут появляться без изменения основного контракта.`}),`\n`,_jsx(Heading,{level:`2`,id:`ошибки`,children:`Ошибки`}),`\n`,_jsx(_components.p,{children:`Ошибки возвращаются в формате Anthropic, а не OpenAI:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"invalid_request_error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"messages is required\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Типы `,_jsx(_components.code,{children:`error.type`}),`: `,_jsx(_components.code,{children:`invalid_request_error`}),`, `,_jsx(_components.code,{children:`authentication_error`}),`, `,_jsx(_components.code,{children:`permission_error`}),`, `,_jsx(_components.code,{children:`not_found_error`}),`, `,_jsx(_components.code,{children:`rate_limit_error`}),`, `,_jsx(_components.code,{children:`api_error`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Ситуация`}),_jsx(_components.th,{children:`Ответ`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Нет ключа`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`401 authentication_error`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Модель неизвестна`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`404 not_found_error`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Не хватает денег`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`400 invalid_request_error`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Плохой JSON или параметры`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`400 invalid_request_error`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Превышен лимит запросов`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`429 rate_limit_error`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Провайдер недоступен`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`503 api_error`})})]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Недостаток денег здесь отдаётся как `,_jsx(_components.code,{children:`400`}),`, а не как `,_jsx(_components.code,{children:`402`}),`. Это осознанное отличие от `,_jsx(_components.a,{href:`/api-reference/chat/completions`,children:`Запрос чату`}),`: код ответа следует за контрактом Anthropic, чтобы SDK не выбрасывали для него исключение другого типа. Проверяйте баланс заранее через `,_jsx(_components.code,{children:`GET /api/v1/balance`}),`.`]})}),`\n`,_jsxs(_components.p,{children:[`Полная таблица кодов — на странице `,_jsx(_components.a,{href:`/errors`,children:`Ошибки`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`что-дальше`,children:`Что дальше`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Запрос чату`,icon:`message`,href:`/api-reference/chat/completions`,children:_jsx(_components.p,{children:`Тот же набор моделей в формате Chat Completions`})}),_jsx(Card,{title:`Responses`,icon:`list`,href:`/api-reference/responses/create`,children:_jsx(_components.p,{children:`Более современный интерфейс с элементами вывода`})}),_jsx(Card,{title:`Каталог моделей`,icon:`microchip`,href:`/models`,children:_jsx(_components.p,{children:`Идентификаторы и цены`})}),_jsx(Card,{title:`Ошибки`,icon:`triangle-exclamation`,href:`/errors`,children:_jsx(_components.p,{children:`Полная таблица кодов`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Anthropic Messages","description":"POST /api/v1/messages — Anthropic-совместимый эндпоинт с вызовом инструментов и потоком событий","openapi":"api-reference/openapi.json POST /api/v1/messages","icon":"a","href":"/api-reference/messages/create"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Минимальный запрос","slug":"минимальный-запрос","depth":2,"children":[]},{"title":"Поля запроса","slug":"поля-запроса","depth":2,"children":[{"title":"Обязательные","slug":"обязательные","depth":3,"children":[]},{"title":"Генерация","slug":"генерация","depth":3,"children":[]},{"title":"Инструменты","slug":"инструменты","depth":3,"children":[]},{"title":"Рассуждения","slug":"рассуждения","depth":3,"children":[]}]},{"title":"Ответ","slug":"ответ","depth":2,"children":[]},{"title":"Потоковая передача","slug":"потоковая-передача","depth":2,"children":[{"title":"События","slug":"события","depth":3,"children":[]}]},{"title":"Ошибки","slug":"ошибки","depth":2,"children":[]},{"title":"Что дальше","slug":"что-дальше","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Текст"],"operationId":"createMessage","summary":"Anthropic Messages API","description":"POST /api/v1/messages — Anthropic-совместимый эндпоинт с вызовом инструментов и потоком событий","requestBody":"ef7ae6d1-4267-4a9d-9dd4-de918b4d7fb3","responses":{"200":"c9d58d03-5c5b-479a-8130-ffc1e9e5075b","400":"e3c6d4e0-277a-40eb-9120-5bba300f94b1","401":"fa4a1a0d-df19-4894-9c83-fbecbf92bdc7","402":"46ebe632-2bd1-42e1-8bc5-45d62064c53e","422":"74ef5054-3c56-4c16-ac44-2289a56d920d","429":"087adee9-0d74-4b66-8c80-d1ab5a14b5af","500":"a60f820e-ae86-472e-ae77-c9cd38a119f5","503":"2a1d9750-f751-4e12-8054-49519f4e4fec"},"method":"post","type":"path","servers":["8a2807ef-ac4b-47e6-8d72-307eede96316"],"security":["e2ba089c-3a25-43cf-af05-e084bb9608e5"],"path":"/api/v1/messages","baseUrlOptions":["https://speshu.ai"],"title":"Anthropic Messages API","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","examples":["gpt-4o"],"isRequired":true,"uniqueKey":"model","typeLabel":"string"},"messages":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["user","assistant"],"isRequired":true,"uniqueKey":"messages.items.[INDEX].role","typeLabel":"enum\u003cstring>"},"content":{"oneOf":[{"type":"string","uniqueKey":"messages.items.[INDEX].content.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"object","additionalProperties":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX]","typeLabel":"object"},"uniqueKey":"messages.items.[INDEX].content.oneOf.1","typeLabel":"object[]"}],"uniqueKey":"messages.items.[INDEX].content","typeLabel":"string | object[]"}},"required":["role"],"uniqueKey":"messages.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"messages","typeLabel":"object[]"},"max_tokens":{"type":"integer","description":"Обязательный параметр в Anthropic API.","uniqueKey":"max_tokens","typeLabel":"integer"},"system":{"oneOf":[{"type":"string","uniqueKey":"system.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"object","additionalProperties":true,"uniqueKey":"system.oneOf.1.items.[INDEX]","typeLabel":"object"},"uniqueKey":"system.oneOf.1","typeLabel":"object[]"}],"uniqueKey":"system","typeLabel":"string | object[]"},"stream":{"type":"boolean","default":false,"uniqueKey":"stream","typeLabel":"boolean"},"temperature":{"type":"number","uniqueKey":"temperature","typeLabel":"number"},"top_p":{"type":"number","uniqueKey":"top_p","typeLabel":"number"},"top_k":{"type":"integer","uniqueKey":"top_k","typeLabel":"integer"},"stop_sequences":{"type":"array","items":{"type":"string","uniqueKey":"stop_sequences.items.[INDEX]","typeLabel":"string"},"uniqueKey":"stop_sequences","typeLabel":"string[]"},"tools":{"type":"array","items":{"type":"object","additionalProperties":true,"uniqueKey":"tools.items.[INDEX]","typeLabel":"object"},"uniqueKey":"tools","typeLabel":"object[]"},"tool_choice":{"type":"object","additionalProperties":true,"uniqueKey":"tool_choice","typeLabel":"object"},"thinking":{"type":"object","properties":{"type":{"type":"string","enum":["enabled","disabled","adaptive","between_tools"],"uniqueKey":"thinking.type","typeLabel":"enum\u003cstring>"},"budget_tokens":{"type":"integer","uniqueKey":"thinking.budget_tokens","typeLabel":"integer"},"display":{"type":"string","uniqueKey":"thinking.display","typeLabel":"string"}},"uniqueKey":"thinking","typeLabel":"object"},"metadata":{"type":"object","additionalProperties":true,"uniqueKey":"metadata","typeLabel":"object"}},"required":["model","messages"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"model":"gpt-4o","messages":[{"content":"\u003cstring>"}],"max_tokens":123,"system":"\u003cstring>","stream":false,"temperature":123,"top_p":123,"top_k":123,"stop_sequences":["\u003cstring>"],"tools":[{}],"tool_choice":{},"thinking":{"budget_tokens":123,"display":"\u003cstring>"},"metadata":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"c9d58d03-5c5b-479a-8130-ffc1e9e5075b":{"description":"Успешный ответ. При `stream: true` — поток SSE с событиями Anthropic (`message_start`, `content_block_delta`, `message_delta`, `message_stop`), завершающийся кадром `data: [DONE]`.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"type":{"type":"string","examples":["message"],"isRequired":true,"uniqueKey":"type","typeLabel":"string"},"role":{"type":"string","examples":["assistant"],"isRequired":true,"uniqueKey":"role","typeLabel":"string"},"model":{"type":"string","isRequired":true,"uniqueKey":"model","typeLabel":"string"},"content":{"type":"array","items":{"type":"object","additionalProperties":true,"uniqueKey":"content.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"content","typeLabel":"object[]"},"stop_reason":{"oneOf":[{"type":"string","enum":["end_turn","max_tokens","stop_sequence","tool_use","pause_turn","refusal",null],"uniqueKey":"stop_reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["end_turn","max_tokens","stop_sequence","tool_use","pause_turn","refusal",null],"uniqueKey":"stop_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"stop_reason","typeLabel":"enum\u003cstring> | null"},"stop_sequence":{"oneOf":[{"type":"string","uniqueKey":"stop_sequence.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"stop_sequence.oneOf.1","typeLabel":"null"}],"uniqueKey":"stop_sequence","typeLabel":"string | null"},"usage":{"type":"object","description":"Внимание: `input_tokens` не включает кеш-токены — их нужно складывать отдельно. `thinking_tokens` входят в `output_tokens` и не прибавляются к нему.","properties":{"input_tokens":{"type":"integer","uniqueKey":"usage.input_tokens","typeLabel":"integer"},"cache_creation_input_tokens":{"type":"integer","uniqueKey":"usage.cache_creation_input_tokens","typeLabel":"integer"},"cache_read_input_tokens":{"type":"integer","uniqueKey":"usage.cache_read_input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","uniqueKey":"usage.output_tokens","typeLabel":"integer"},"output_tokens_details":{"type":"object","properties":{"thinking_tokens":{"type":"integer","uniqueKey":"usage.output_tokens_details.thinking_tokens","typeLabel":"integer"}},"uniqueKey":"usage.output_tokens_details","typeLabel":"object"}},"uniqueKey":"usage","typeLabel":"object"}},"required":["id","type","role","model","content"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","type":"message","role":"assistant","model":"\u003cstring>","content":[{}],"stop_reason":"end_turn","stop_sequence":"\u003cstring>","usage":{"input_tokens":123,"cache_creation_input_tokens":123,"cache_read_input_tokens":123,"output_tokens":123,"output_tokens_details":{"thinking_tokens":123}}}}},"exampleType":"generated"},"text/event-stream":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Тип события, например `content_block_delta`.","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"index":{"type":"integer","uniqueKey":"index","typeLabel":"integer"},"delta":{"type":"object","additionalProperties":true,"uniqueKey":"delta","typeLabel":"object"}},"required":["type"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","index":123,"delta":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"e3c6d4e0-277a-40eb-9120-5bba300f94b1":{"description":"Ошибка в формате Anthropic.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","examples":["error"],"isRequired":true,"uniqueKey":"type","typeLabel":"string"},"error":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["type","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["type","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"error","error":{"type":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"fa4a1a0d-df19-4894-9c83-fbecbf92bdc7":{"description":"Ошибка в формате Anthropic.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","examples":["error"],"isRequired":true,"uniqueKey":"type","typeLabel":"string"},"error":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["type","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["type","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"error","error":{"type":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"46ebe632-2bd1-42e1-8bc5-45d62064c53e":{"description":"Ошибка в формате Anthropic.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","examples":["error"],"isRequired":true,"uniqueKey":"type","typeLabel":"string"},"error":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["type","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["type","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"error","error":{"type":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"74ef5054-3c56-4c16-ac44-2289a56d920d":{"description":"Ошибка в формате Anthropic.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","examples":["error"],"isRequired":true,"uniqueKey":"type","typeLabel":"string"},"error":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["type","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["type","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"error","error":{"type":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"087adee9-0d74-4b66-8c80-d1ab5a14b5af":{"description":"Ошибка в формате Anthropic.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","examples":["error"],"isRequired":true,"uniqueKey":"type","typeLabel":"string"},"error":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["type","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["type","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"error","error":{"type":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"a60f820e-ae86-472e-ae77-c9cd38a119f5":{"description":"Ошибка в формате Anthropic.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","examples":["error"],"isRequired":true,"uniqueKey":"type","typeLabel":"string"},"error":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["type","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["type","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"error","error":{"type":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"2a1d9750-f751-4e12-8054-49519f4e4fec":{"description":"Ошибка в формате Anthropic.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","examples":["error"],"isRequired":true,"uniqueKey":"type","typeLabel":"string"},"error":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["type","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["type","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"error","error":{"type":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"e2ba089c-3a25-43cf-af05-e084bb9608e5":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API-ключ в формате `sk-...`. Альтернативно — заголовок `X-Api-Key: sk-...` (совместимо с Anthropic SDK).","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"8a2807ef-ac4b-47e6-8d72-307eede96316":{"url":"https://speshu.ai","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API-ключ в формате `sk-...`. Альтернативно — заголовок `X-Api-Key: sk-...` (совместимо с Anthropic SDK).","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API-ключ в формате `sk-...`. Альтернативно — заголовок `X-Api-Key: sk-...` (совместимо с Anthropic SDK).","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"speshu","siteName":"Документация SpeShu.AI","title":"Anthropic Messages - Документация SpeShu.AI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"ru":{"href":"/api-reference/messages/create","matchLevel":0}}},"lastModified":"2026-10-02T04:29:21.541Z","originalFileLocation":"api-reference/messages/create.mdx","locale":"ru"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"POST /api/v1/messages — Anthropic-совместимый эндпоинт с вызовом инструментов и потоком событий\">\u003cmeta data-mint-head name=\"application-name\" content=\"Документация SpeShu.AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/speshu/h8uCrMo0u7Pj0sRw/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/speshu/h8uCrMo0u7Pj0sRw/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/speshu/h8uCrMo0u7Pj0sRw/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/speshu/h8uCrMo0u7Pj0sRw/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/speshu/h8uCrMo0u7Pj0sRw/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/speshu/h8uCrMo0u7Pj0sRw/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/speshu/h8uCrMo0u7Pj0sRw/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/speshu/h8uCrMo0u7Pj0sRw/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/speshu/h8uCrMo0u7Pj0sRw/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Anthropic Messages - Документация SpeShu.AI\">\u003cmeta data-mint-head property=\"og:description\" content=\"POST /api/v1/messages — Anthropic-совместимый эндпоинт с вызовом инструментов и потоком событий\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Документация SpeShu.AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://speshu.ai/docs/api-reference/messages/create\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://speshu.mintlify.site/docs/_mintlify/api/og/v2?division=%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D0%B0%D1%8F+%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F\u0026amp;title=Anthropic+Messages\u0026amp;description=POST+%2Fapi%2Fv1%2Fmessages+%E2%80%94+Anthropic-%D1%81%D0%BE%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D0%BC%D1%8B%D0%B9+%D1%8D%D0%BD%D0%B4%D0%BF%D0%BE%D0%B8%D0%BD%D1%82+%D1%81+%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%BE%D0%BC+%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2+%D0%B8+%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BC+%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9\u0026amp;theme=e30006b63b476fd6b922259f\u0026amp;signature=ed8631e5e39e6349f13c5166d71001680351620419c8ec9c9b2a532b1367e4bc\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Anthropic Messages - Документация SpeShu.AI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"POST /api/v1/messages — Anthropic-совместимый эндпоинт с вызовом инструментов и потоком событий\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://speshu.mintlify.site/docs/_mintlify/api/og/v2?division=%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D0%B0%D1%8F+%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F\u0026amp;title=Anthropic+Messages\u0026amp;description=POST+%2Fapi%2Fv1%2Fmessages+%E2%80%94+Anthropic-%D1%81%D0%BE%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D0%BC%D1%8B%D0%B9+%D1%8D%D0%BD%D0%B4%D0%BF%D0%BE%D0%B8%D0%BD%D1%82+%D1%81+%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%BE%D0%BC+%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2+%D0%B8+%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BC+%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9\u0026amp;theme=e30006b63b476fd6b922259f\u0026amp;signature=ed8631e5e39e6349f13c5166d71001680351620419c8ec9c9b2a532b1367e4bc\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/speshu/h8uCrMo0u7Pj0sRw/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Документация SpeShu.AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ff7819\">\u003clink data-mint-head rel=\"canonical\" href=\"https://speshu.ai/docs/api-reference/messages/create\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/messages/create.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://speshu.ai/#organization\",\"name\":\"Документация SpeShu.AI\",\"url\":\"https://speshu.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/speshu/HiupqL5TwnvMFufM/logo/speshu_logo.png?fit=max\u0026auto=format\u0026n=HiupqL5TwnvMFufM\u0026q=85\u0026s=fd0fe3cc5f642899ca9d4e8bdee6a0f0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://speshu.ai/docs#website\",\"name\":\"Документация SpeShu.AI\",\"url\":\"https://speshu.ai/docs\",\"publisher\":{\"@id\":\"https://speshu.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://speshu.ai/docs/api-reference/messages/create#webpage\",\"url\":\"https://speshu.ai/docs/api-reference/messages/create\",\"name\":\"Anthropic Messages\",\"description\":\"POST /api/v1/messages — Anthropic-совместимый эндпоинт с вызовом инструментов и потоком событий\",\"dateModified\":\"2026-10-02T04:29:21.541Z\",\"isPartOf\":{\"@id\":\"https://speshu.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://speshu.ai/docs/api-reference/messages/create#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://speshu.ai/docs/api-reference/messages/create#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Текстовая генерация\",\"item\":\"https://speshu.ai/docs/api-reference/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Anthropic Messages\",\"item\":\"https://speshu.ai/docs/api-reference/messages/create\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://speshu.ai/docs/api-reference/messages/create#apireference\",\"headline\":\"Anthropic Messages\",\"name\":\"Anthropic Messages\",\"description\":\"POST /api/v1/messages — Anthropic-совместимый эндпоинт с вызовом инструментов и потоком событий\",\"url\":\"https://speshu.ai/docs/api-reference/messages/create\",\"mainEntityOfPage\":{\"@id\":\"https://speshu.ai/docs/api-reference/messages/create#webpage\"},\"dateModified\":\"2026-10-02T04:29:21.541Z\",\"publisher\":{\"@id\":\"https://speshu.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://speshu.ai/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Документация SpeShu.AI\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Документация SpeShu.AI\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/api-reference/messages/create.md","siteName":"Документация SpeShu.AI","nav":{"global":{"anchors":[{"anchor":"Модели","icon":"microchip","href":"/api-reference/media/models"},{"anchor":"Каталог","icon":"list","href":"/models"},{"anchor":"Профиль","icon":"gauge","href":"https://speshu.ai/profile"},{"anchor":"Поддержка","icon":"headset","href":"/support"}]},"languages":[{"language":"ru","tabs":[{"tab":"Документация","pages":[{"title":"Документация","href":""}]},{"tab":"Руководства","pages":[{"title":"Руководства","href":"/gaidy/getting-started"}]},{"tab":"API Reference","groups":[{"group":"Текстовая генерация","pages":[{"title":"Введение в API","icon":"book","href":"/api-reference/introduction"},{"title":"Запрос чату","openapi":"api-reference/openapi.json POST /api/v1/chat/completions","playground":"interactive","icon":"message","href":"/api-reference/chat/completions"},{"title":"Responses","description":"POST /api/v1/responses — Responses API: элементы вывода, инструменты, поток событий","openapi":"api-reference/openapi.json POST /api/v1/responses","icon":"list","href":"/api-reference/responses/create"},{"title":"Anthropic Messages","openapi":"api-reference/openapi.json POST /api/v1/messages","icon":"a","href":"/api-reference/messages/create"},{"title":"Оценка решений","description":"POST /api/v1/decisions — именованные вопросы о состоянии, ответы типа noul, choice и score","openapi":"api-reference/openapi.json POST /api/v1/decisions","playground":"interactive","icon":"scale-balanced","href":"/api-reference/decisions/create"},{"title":"Эмбеддинги","openapi":"api-reference/openapi.json POST /api/v1/embeddings","playground":"interactive","icon":"circle-nodes","href":"/api-reference/embeddings/create"},{"title":"Ранжирование","openapi":"api-reference/openapi.json POST /api/v1/rerank","playground":"interactive","icon":"arrow-down-short-wide","href":"/api-reference/rerank/create"}]},{"group":"Инструменты","pages":[{"title":"Поиск в интернете","openapi":"api-reference/openapi.json POST /api/v1/tools/search","playground":"interactive","icon":"magnifying-glass","href":"/api-reference/tools/search"},{"title":"Загрузка страницы","openapi":"api-reference/openapi.json POST /api/v1/tools/fetch","playground":"interactive","icon":"file-lines","href":"/api-reference/tools/fetch"}]},{"group":"Аудио","pages":[{"title":"Синтез речи","openapi":"api-reference/openapi.json POST /api/v1/audio/speech","playground":"interactive","icon":"volume-high","href":"/api-reference/audio/speech"},{"title":"Распознавание речи","openapi":"api-reference/openapi.json POST /api/v1/audio/transcriptions","playground":"interactive","icon":"microphone","href":"/api-reference/audio/transcriptions"}]},{"group":"Медиа","pages":[{"title":"Создать задачу","openapi":"api-reference/openapi.json POST /api/v1/async/media/tasks","playground":"interactive","icon":"plus","href":"/api-reference/media/create"},{"title":"Статус задачи","openapi":"api-reference/openapi.json GET /api/v1/async/media/tasks/{task_id}","icon":"magnifying-glass","href":"/api-reference/media/status"},{"title":"Список задач","openapi":"api-reference/openapi.json GET /api/v1/async/media/tasks","icon":"list","href":"/api-reference/media/list"},{"title":"Жизненный цикл задачи","openapi":"/api-reference/openapi.json","icon":"rotate","href":"/api-reference/media/tasks"},{"title":"Медиа-сессии","icon":"folder","href":"/api-reference/media/sessions"},{"title":"Каталог медиа-моделей","openapi":"api-reference/openapi.json GET /api/v1/media/models","icon":"microchip","href":"/api-reference/media/models"}]},{"group":"Хранилище","pages":[{"title":"Загрузить файл","openapi":"api-reference/openapi.json POST /api/v1/storage/upload","playground":"interactive","icon":"upload","href":"/api-reference/storage/upload"},{"title":"Список файлов","openapi":"api-reference/openapi.json GET /api/v1/storage","playground":"interactive","icon":"list","href":"/api-reference/storage/list"},{"title":"Метаданные файла","openapi":"api-reference/openapi.json GET /api/v1/storage/{id}","playground":"interactive","icon":"magnifying-glass","href":"/api-reference/storage/get"},{"title":"Удалить файл","openapi":"api-reference/openapi.json DELETE /api/v1/storage/{id}","icon":"trash","href":"/api-reference/storage/delete"}]},{"group":"Модели и баланс","pages":[{"title":"Каталог моделей","openapi":"api-reference/openapi.json GET /api/v1/models","playground":"interactive","icon":"microchip","href":"/api-reference/models/list"},{"title":"Баланс","openapi":"api-reference/openapi.json GET /api/v1/balance","playground":"interactive","icon":"wallet","href":"/api-reference/other/balance"}]}]}]}]},"basePath":"","title":"Anthropic Messages - Документация SpeShu.AI","buildId":"dpl_2AK98Hxhwu4fUXpx9atbv41cC328","deploymentId":"dpl_2AK98Hxhwu4fUXpx9atbv41cC328","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-EBSrFTg1.js","utils-Y_7TcRh4.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D1wvvkPH.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-aT0ty6oN.js","snippetPresets-DoNRuyJc.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-DCFaZE46.js","ApiExamples-CXRajFpn.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BAyOsINj.js","shallow-CIcHqV1v.js","getApiPlaygroundDisplay-C5igZwEf.js","CodeSnippet-BFWnQLNh.js","CodeSnippets-Cx2mFgZW.js","getPastedJson-BOy09PZp.js","icon-BwmYtB6R.js","MethodPill-DAIhq-iu.js","DuplicateIcon-DFM8Q3ph.js","createIcon-0UdvzB4Z.js","DynamicMarkdown-DYYZTGpa.js","SectionHeading-BFCDRUuH.js","axios-vUo_bRtp.js","Markdown-C6TcKjiR.js","clsx-Y_UC780V.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-PCbBHBTv.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-D4q_oRML.js"]}