Claude Platform Docs
  • Сообщения
  • Управляемые агенты
  • Администрирование

Search...
⌘K
Первые шаги
Введение в ClaudeБыстрый старт
Разработка с Claude
Обзор возможностейИспользование Messages APIПричины остановки и резервный вариантОтказы и резервный вариантРезервный кредит
Возможности модели
Расширенное мышлениеАдаптивное мышлениеУсилиеБюджеты задач (бета)Быстрый режим (исследовательская предварительная версия)Структурированные выходные данныеЦитированиеПотоковая передача сообщенийПакетная обработкаРезультаты поискаПотоковая передача отказовМногоязычная поддержкаЭмбеддинги
Инструменты
ОбзорКак работает использование инструментовРуководство: создание агента с использованием инструментовОпределение инструментовОбработка вызовов инструментовПараллельное использование инструментовTool Runner (SDK)Строгое использование инструментовСерверные инструментыИнструмент веб-поискаИнструмент веб-загрузкиИнструмент выполнения кодаИнструмент советникаИнструмент поиска инструментовИнструмент памятиИнструмент BashИнструмент текстового редактораИнструмент использования компьютераУстранение неполадок
Инфраструктура инструментов
Справочник по инструментамУправление контекстом инструментовКомбинации инструментовИспользование инструментов с кэшированием подсказокПрограммный вызов инструментовДетальная потоковая передача инструментов
Управление контекстом
Контекстные окнаСжатиеРедактирование контекстаКэширование подсказокСистемные сообщения в середине разговораСоздание режима оркестрацииДиагностика кэша (бета)Подсчёт токенов
Работа с файлами
Files APIПоддержка PDF
Навыки
ОбзорБыстрый стартРекомендацииНавыки для предприятийНавыки в API
MCP
Удалённые серверы MCPКоннектор MCP
Claude на облачных платформах
Amazon BedrockAmazon Bedrock (устаревшая версия)Claude Platform на AWSGoogle CloudMicrosoft Foundry

Log in
Потоковая передача отказов
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Claude Platform Docs

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Claude on AWS
  • Claude on Google Cloud

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Сообщения/Возможности модели

Отказы при потоковой передаче

Обнаруживайте и обрабатывайте причины остановки из-за отказа в потоковых ответах, а также повторяйте отклонённые запросы на резервной модели.

Начиная с моделей Claude 4, потоковые ответы от API Claude возвращают stop_reason: "refusal", когда классификаторы потоковой передачи вмешиваются для обработки потенциальных нарушений политики. Эта функция безопасности помогает поддерживать соответствие контента требованиям во время потоковой передачи в реальном времени.



На этой странице описано, как отказы отображаются в потоковых ответах. Все значения stop_reason и способы их обработки см. в разделе Причины остановки и резервный вариант. Чтобы повторить отклонённые запросы на другой модели Claude, см. раздел Отказы и резервный вариант.

Формат ответа API

Когда классификаторы потоковой передачи обнаруживают контент, нарушающий политики Anthropic, API возвращает следующий ответ:

{
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Hello.."
    }
  ],
  "stop_reason": "refusal"
}


Дополнительное сообщение об отказе не включается. Вы должны обработать ответ и предоставить соответствующие сообщения для пользователя.

Сброс контекста после отказа

Когда вы получаете stop_reason: refusal, вы должны сбросить контекст разговора перед продолжением. Вы можете удалить или переформулировать реплику, вызвавшую отказ, либо полностью очистить историю разговора. Попытка продолжить без сброса приведёт к повторным отказам.



Метрики использования по-прежнему предоставляются в ответе, даже если ответ был отклонён.

Если отказ поступает до того, как Claude сгенерирует какой-либо вывод, плата за запрос в API Claude не взимается, а показатели использования в этом ответе носят исключительно информационный характер. Если Claude генерирует вывод до отказа, плата за этот запрос взимается.



Сброс контекста — не единственный способ восстановления. Вы также можете повторить отклонённый запрос на другой модели Claude, и на странице Отказы и резервный вариант показано, как настроить это с помощью серверного резервного варианта, промежуточного ПО SDK или ручного повтора.

Руководство по реализации

Вот как обнаруживать и обрабатывать отказы при потоковой передаче в вашем приложении:

client = anthropic.Anthropic()
messages = []


def reset_conversation():
    """Reset conversation context after refusal"""
    global messages
    messages = []
    print("Conversation reset due to refusal")


try:
    with client.messages.stream(
        max_tokens=1024,
        messages=messages + [{"role": "user", "content": "Hello"}],
        model="claude-opus-4-8",
    ) as stream:
        for event in stream:
            # Проверка на отказ в дельте сообщения
            if event.type == "message_delta":
                if event.delta.stop_reason == "refusal":
                    reset_conversation()
                    break
except Exception as e:
    print(f"Error: {e}")

Текущие типы отказов

В настоящее время API обрабатывает отказы тремя различными способами:

Тип отказаФормат ответаКогда возникает
Отказы классификаторов потоковой передачиstop_reason: refusalВо время потоковой передачи, когда контент нарушает политики
Валидация входных данных API и авторских правКоды ошибок 400Когда входные данные не проходят проверки валидации
Отказы, сгенерированные модельюСтандартные текстовые ответыКогда модель сама решает отказать


В будущих версиях API шаблон stop_reason: refusal будет расширен для унификации обработки отказов всех типов.

Рекомендации

  • Отслеживайте отказы: включите проверки stop_reason: refusal в вашу обработку ошибок
  • Сбрасывайте автоматически: реализуйте автоматический сброс контекста при обнаружении отказов
  • Переключайтесь на другую модель: настройте серверный резервный вариант или промежуточное ПО SDK, чтобы отклонённые запросы повторялись на другой модели Claude вместо отображения отказа пользователю
  • Используйте резервный кредит при ручных повторах: если вы реализуете повтор самостоятельно, передавайте токен резервного кредита отказа, чтобы повтор не оплачивал стоимость кэша подсказок дважды
  • Предоставляйте собственные сообщения: создавайте понятные пользователю сообщения для улучшения пользовательского опыта при возникновении отказов
  • Отслеживайте закономерности отказов: отслеживайте частоту отказов, чтобы выявлять потенциальные проблемы с вашими подсказками

Примечания по миграции

Если вы реализовали обработку отказов, когда эта функция только появилась, или добавляете её в существующую интеграцию, проверьте следующее:

  • Отказы — это ответы, а не ошибки. Отказ поступает как успешный HTTP-ответ 200 с stop_reason: "refusal", поэтому мониторинг, основанный только на частоте ошибок, его не выявит. Отслеживайте отказы как отдельный сигнал.
  • Новые модели возвращают больше деталей. В Claude Fable 5 отказ также включает объект stop_details, который идентифицирует категорию политики, ставшую причиной отклонения. Полную структуру ответа см. в разделе Отказы и резервный вариант.
  • Повторяйте на другой модели. Повторная отправка отклонённого запроса той же модели обычно приводит к ещё одному отказу. Вместо того чтобы только сбрасывать контекст, повторите запрос на резервной модели с помощью серверного резервного варианта, промежуточного ПО SDK или ручного повтора и используйте резервный кредит, если реализуете повтор самостоятельно.
  • Проверяйте результаты пакетов на наличие отказов. Отклонённый запрос в пакете сообщений возвращается как успешный результат с stop_reason: "refusal", а не как результат с ошибкой.
  • Централизуйте обработку на основе stop_reason. API продолжает консолидировать обработку отказов вокруг stop_reason: "refusal", поэтому ветвитесь по причине остановки, а не по поведению конкретной модели.

Следующие шаги

Отказы и резервный вариант

Повторяйте отклонённые запросы на другой модели Claude — на стороне сервера или в вашем клиенте.


Причины остановки и резервный вариант

Все значения stop_reason и способы их обработки.


Потоковая передача сообщений

Передавайте ответы потоком и считывайте stop_reason из событий message_delta по мере их поступления.


Многоязычная поддержка

Обслуживайте пользователей на разных языках с помощью межъязыковых возможностей Claude.

Was this page helpful?

  • Формат ответа API
  • Сброс контекста после отказа
  • Руководство по реализации
  • Текущие типы отказов
  • Рекомендации
  • Примечания по миграции
  • Следующие шаги