Loading...
  • Разработка
  • Администрирование
  • Модели и цены
  • Клиентские SDK
  • Справочник API
Search...
⌘K
Log in
Потоковые отказы
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

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

Partners

  • Amazon Bedrock
  • Google Cloud's Vertex AI

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
Разработка/Возможности модели

Потоковые отказы

Узнайте, как обрабатывать потоковые отказы в API Claude с помощью stop_reason и правильного управления контекстом.

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

Чтобы узнать больше об отказах, вызванных фильтрами безопасности API для Claude Sonnet 4.5, см. Understanding Sonnet 4.5's API Safety Filters.

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

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

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

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

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

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

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

Вам будут выставлены счета за выходные токены до отказа.

Если вы часто встречаете причины остановки refusal при использовании Claude Sonnet 4.5 или Opus 4.1, вы можете попробовать обновить вызовы API для использования Haiku 4.5 (claude-haiku-4-5-20251001), который имеет другие ограничения использования. Узнайте больше о понимании фильтров безопасности API Sonnet 4.5.

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

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

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-sonnet-4-6",
    ) as stream:
        for event in stream:
            # Check for refusal in message delta
            if hasattr(event, "type") and 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 в обработку ошибок
  • Автоматический сброс: Реализуйте автоматический сброс контекста при обнаружении отказов
  • Предоставляйте пользовательские сообщения: Создавайте удобные для пользователя сообщения для лучшего UX при возникновении отказов
  • Отслеживайте паттерны отказов: Мониторьте частоту отказов, чтобы выявить потенциальные проблемы с вашими подсказками

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

  • Будущие модели расширят этот паттерн на другие типы отказов
  • Планируйте обработку ошибок с учетом будущей унификации ответов об отказах

Was this page helpful?

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