Loading...
    • Разработка
    • Администрирование
    • Модели и цены
    • Client SDKs
    • API Reference
    Search...
    ⌘K
    Первые шаги
    Введение в ClaudeБыстрый старт
    Разработка с Claude
    Обзор функцийИспользование Messages APIClaude API skillОбработка причин остановки
    Возможности модели
    Extended thinkingAdaptive thinkingУсилиеБюджеты задач (бета)Быстрый режим (бета: исследовательский просмотр)Структурированные выходные данныеЦитированияПотоковая передача сообщенийПакетная обработкаРезультаты поискаПотоковая передача отказовПоддержка многоязычностиEmbeddings
    Инструменты
    ОбзорКак работает использование инструментовИнструмент веб-поискаИнструмент веб-выборкиИнструмент выполнения кодаИнструмент советникаИнструмент памятиИнструмент BashИнструмент управления компьютеромИнструмент текстового редактора
    Инфраструктура инструментов
    Справочник инструментовПоиск инструментовПрограммный вызов инструментовПотоковая передача инструментов с детализацией
    Управление контекстом
    Окна контекстаСжатиеРедактирование контекстаКэширование подсказокПодсчет токенов
    Работа с файлами
    Files APIПоддержка PDFИзображения и зрение
    Skills
    ОбзорБыстрый стартЛучшие практикиSkills для предприятияSkills в API
    MCP
    Удаленные MCP серверыMCP коннектор
    Инженерия подсказок
    ОбзорЛучшие практики подсказокИнструменты подсказок Console
    Тестирование и оценка
    Определение успеха и создание оценокИспользование инструмента оценки в ConsoleСнижение задержки
    Укрепление защиты
    Снижение галлюцинацийПовышение согласованности выходных данныхСмягчение взломовСнижение утечки подсказок
    Ресурсы
    Глоссарий
    ОбзорМаршрутизация билетовАгент поддержки клиентовМодерация контентаРезюме правовых документов
    Примечания к выпуску
    Claude Platform
    Console
    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
    Варианты использования

    Маршрутизация тикетов

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

    Was this page helpful?

    • Определите, стоит ли использовать Claude для маршрутизации тикетов
    • Создайте и разверните рабочий процесс поддержки на основе LLM
    • Изучите ваш текущий подход к поддержке
    • Определите категории намерений пользователей
    • Установите критерии успеха
    • Выберите подходящую модель Claude
    • Создайте эффективный промпт
    • Разверните ваш промпт
    • Оцените ваш промпт
    • Создайте функцию оценки
    • Запустите вашу оценку
    • Улучшите производительность
    • Используйте таксономическую иерархию для случаев с 20+ категориями намерений
    • Используйте векторные базы данных и поиск по сходству для обработки высоковариативных тикетов
    • Специально учитывайте ожидаемые пограничные случаи
    • Интегрируйте Claude в ваш общий рабочий процесс поддержки

    Определите, стоит ли использовать Claude для маршрутизации тикетов

    Вот несколько ключевых признаков того, что вам следует использовать LLM, такой как Claude, вместо традиционных подходов машинного обучения для вашей задачи классификации:


    Создайте и разверните рабочий процесс поддержки на основе LLM

    Изучите ваш текущий подход к поддержке

    Прежде чем приступать к автоматизации, крайне важно понять вашу существующую систему тикетов. Начните с изучения того, как ваша команда поддержки в настоящее время обрабатывает маршрутизацию тикетов.

    Рассмотрите следующие вопросы:

    • Какие критерии используются для определения применяемого SLA/предложения услуг?
    • Используется ли маршрутизация тикетов для определения того, на какой уровень поддержки или к какому специалисту по продукту направляется тикет?
    • Есть ли уже какие-либо автоматизированные правила или рабочие процессы? В каких случаях они дают сбой?
    • Как обрабатываются пограничные случаи или неоднозначные тикеты?
    • Как команда расставляет приоритеты тикетов?

    Чем больше вы знаете о том, как люди обрабатывают определённые случаи, тем лучше вы сможете работать с Claude для выполнения этой задачи.

    Определите категории намерений пользователей

    Чётко определённый список категорий намерений пользователей имеет решающее значение для точной классификации тикетов поддержки с помощью Claude. Способность Claude эффективно маршрутизировать тикеты в вашей системе прямо пропорциональна тому, насколько хорошо определены категории вашей системы.

    Вот несколько примеров категорий и подкатегорий намерений пользователей.

    Помимо намерения, маршрутизация и приоритизация тикетов также могут зависеть от других факторов, таких как срочность, тип клиента, SLA или язык. Обязательно учитывайте другие критерии маршрутизации при создании вашей автоматизированной системы маршрутизации.

    Установите критерии успеха

    Работайте с вашей командой поддержки, чтобы определить чёткие критерии успеха с измеримыми контрольными показателями, пороговыми значениями и целями.

    Вот некоторые стандартные критерии и контрольные показатели при использовании LLM для маршрутизации тикетов поддержки:

    Вот некоторые общие критерии успеха, которые могут быть полезны независимо от того, используется ли LLM:

    Выберите подходящую модель Claude

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

    Многие клиенты нашли claude-haiku-4-5-20251001 идеальной моделью для маршрутизации тикетов, поскольку она является самой быстрой и экономически эффективной моделью в семействе Claude 4, при этом обеспечивая отличные результаты. Если ваша задача классификации требует глубокой предметной экспертизы или большого объёма категорий намерений со сложным рассуждением, вы можете выбрать более крупную модель Sonnet.

    Создайте эффективный промпт

    Маршрутизация тикетов — это тип задачи классификации. Claude анализирует содержимое тикета поддержки и классифицирует его по предопределённым категориям на основе типа проблемы, срочности, необходимой экспертизы или других соответствующих факторов.

    Давайте напишем промпт для классификации тикетов. Наш начальный промпт должен содержать содержимое запроса пользователя и возвращать как обоснование, так и намерение.

    Попробуйте генератор промптов на Claude Console, чтобы Claude написал первый черновик за вас.

    Вот пример промпта для классификации маршрутизации тикетов:

    def classify_support_request(ticket_contents):
        # Define the prompt for the classification task
        classification_prompt = f"""You will be acting as a customer support ticket classification system. Your task is to analyze customer support requests and output the appropriate classification intent for each request, along with your reasoning.
    
            Here is the customer support request you need to classify:
    
            <request>{ticket_contents}</request>
    
            Please carefully analyze the above request to determine the customer's core intent and needs. Consider what the customer is asking for has concerns about.
    
            First, write out your reasoning and analysis of how to classify this request inside <reasoning> tags.
    
            Then, output the appropriate classification label for the request inside a <intent> tag. The valid intents are:
            <intents>
            <intent>Support, Feedback, Complaint</intent>
            <intent>Order Tracking</intent>
            <intent>Refund/Exchange</intent>
            </intents>
    
            A request may have ONLY ONE applicable intent. Only include the intent that is most applicable to the request.
    
            As an example, consider the following request:
            <request>Hello! I had high-speed fiber internet installed on Saturday and my installer, Kevin, was absolutely fantastic! Where can I send my positive review? Thanks for your help!</request>
    
            Here is an example of how your output should be formatted (for the above example request):
            <reasoning>The user seeks information in order to leave positive feedback.</reasoning>
            <intent>Support, Feedback, Complaint</intent>
    
            Here are a few more examples:
            <examples>
            <example 2>
            Example 2 Input:
            <request>I wanted to write and personally thank you for the compassion you showed towards my family during my father's funeral this past weekend. Your staff was so considerate and helpful throughout this whole process; it really took a load off our shoulders. The visitation brochures were beautiful. We'll never forget the kindness you showed us and we are so appreciative of how smoothly the proceedings went. Thank you, again, Amarantha Hill on behalf of the Hill Family.</request>
    
            Example 2 Output:
            <reasoning>User leaves a positive review of their experience.</reasoning>
            <intent>Support, Feedback, Complaint</intent>
            </example 2>
            <example 3>
    
            ...
    
            </example 8>
            <example 9>
            Example 9 Input:
            <request>Your website keeps sending ad-popups that block the entire screen. It took me twenty minutes just to finally find the phone number to call and complain. How can I possibly access my account information with all of these popups? Can you access my account for me, since your website is broken? I need to know what the address is on file.</request>
    
            Example 9 Output:
            <reasoning>The user requests help accessing their web account information.</reasoning>
            <intent>Support, Feedback, Complaint</intent>
            </example 9>
    
            Remember to always include your classification reasoning before your actual intent output. The reasoning should be enclosed in <reasoning> tags and the intent in <intent> tags. Return only the reasoning and the intent.
            """

    Давайте разберём ключевые компоненты этого промпта:

    • Мы используем f-строки Python для создания шаблона промпта, позволяя вставлять ticket_contents в теги <request>.
    • Мы даём Claude чётко определённую роль системы классификации, которая тщательно анализирует содержимое тикета для определения основного намерения и потребностей клиента.
    • Мы инструктируем Claude о правильном форматировании вывода: в данном случае предоставлять своё обоснование и анализ внутри тегов <reasoning>, за которыми следует соответствующая метка классификации внутри тегов <intent>.
    • Мы указываем допустимые категории намерений: «Support, Feedback, Complaint», «Order Tracking» и «Refund/Exchange».
    • Мы включаем несколько примеров (т.н. few-shot prompting) для иллюстрации того, как должен быть отформатирован вывод, что повышает точность и согласованность.

    Причина, по которой мы хотим, чтобы Claude разделял свой ответ на различные разделы XML-тегов, заключается в том, чтобы мы могли использовать регулярные выражения для отдельного извлечения обоснования и намерения из вывода. Это позволяет нам создавать целевые следующие шаги в рабочем процессе маршрутизации тикетов, например, использовать только намерение для принятия решения о том, кому направить тикет.

    Разверните ваш промпт

    Трудно знать, насколько хорошо работает ваш промпт, не развернув его в тестовой производственной среде и не запустив оценки.

    Давайте создадим структуру развёртывания. Начните с определения сигнатуры метода для обёртки нашего вызова к Claude. Мы возьмём метод, который уже начали писать, который принимает ticket_contents в качестве входных данных, и теперь вернём кортеж из reasoning и intent в качестве выходных данных. Если у вас есть существующая автоматизация с использованием традиционного машинного обучения, вам нужно следовать этой сигнатуре метода.

    Python
    import re
    
    # Create an instance of the Claude API client
    client = anthropic.Anthropic()
    
    # Set the default model
    DEFAULT_MODEL = "claude-haiku-4-5-20251001"
    
    
    def classify_support_request(ticket_contents):
        # Define the prompt for the classification task
        classification_prompt = f"""You will be acting as a customer support ticket classification system.
            ...
            ... The reasoning should be enclosed in <reasoning> tags and the intent in <intent> tags. Return only the reasoning and the intent.
            """
        # Send the prompt to the API to classify the support request.
        message = client.messages.create(
            model=DEFAULT_MODEL,
            max_tokens=500,
            temperature=0,
            messages=[{"role": "user", "content": classification_prompt}],
            stream=False,
        )
        reasoning_and_intent = message.content[0].text
    
        # Use Python's regular expressions library to extract `reasoning`.
        reasoning_match = re.search(
            r"<reasoning>(.*?)</reasoning>", reasoning_and_intent, re.DOTALL
        )
        reasoning = reasoning_match.group(1).strip() if reasoning_match else ""
    
        # Similarly, also extract the `intent`.
        intent_match = re.search(r"<intent>(.*?)</intent>", reasoning_and_intent, re.DOTALL)
        intent = intent_match.group(1).strip() if intent_match else ""
    
        return reasoning, intent

    Этот код:

    • Создаёт экземпляр клиента с использованием вашего API-ключа.
    • Определяет функцию classify_support_request, которая принимает строку ticket_contents.
    • Отправляет ticket_contents в Claude для классификации с использованием classification_prompt.
    • Возвращает reasoning и intent модели, извлечённые из ответа.

    Поскольку нам нужно дождаться генерации всего текста обоснования и намерения перед разбором, мы устанавливаем stream=False (по умолчанию).


    Оцените ваш промпт

    Промптинг часто требует тестирования и оптимизации, чтобы быть готовым к производству. Чтобы определить готовность вашего решения, оцените производительность на основе критериев успеха и пороговых значений, которые вы установили ранее.

    Для запуска оценки вам нужны тестовые случаи. В остальной части этого руководства предполагается, что вы уже разработали свои тестовые случаи.

    Создайте функцию оценки

    Наш пример оценки для этого руководства измеряет производительность Claude по трём ключевым метрикам:

    • Точность
    • Стоимость одной классификации

    Вам может потребоваться оценить Claude по другим параметрам в зависимости от того, какие факторы важны для вас.

    Для этого нам сначала нужно изменить написанный нами скрипт и добавить функцию для сравнения предсказанного намерения с фактическим намерением и вычисления процента правильных предсказаний. Нам также нужно добавить функциональность расчёта стоимости и измерения времени.

    Python
    import re
    
    # Create an instance of the Claude API client
    client = anthropic.Anthropic()
    
    # Set the default model
    DEFAULT_MODEL = "claude-haiku-4-5-20251001"
    
    
    def classify_support_request(request, actual_intent):
        # Define the prompt for the classification task
        classification_prompt = f"""You will be acting as a customer support ticket classification system.
            ...
            ...The reasoning should be enclosed in <reasoning> tags and the intent in <intent> tags. Return only the reasoning and the intent.
            """
    
        message = client.messages.create(
            model=DEFAULT_MODEL,
            max_tokens=500,
            temperature=0,
            messages=[{"role": "user", "content": classification_prompt}],
        )
        usage = message.usage  # Get the usage statistics for the API call for how many input and output tokens were used.
        reasoning_and_intent = message.content[0].text
    
        # Use Python's regular expressions library to extract `reasoning`.
        reasoning_match = re.search(
            r"<reasoning>(.*?)</reasoning>", reasoning_and_intent, re.DOTALL
        )
        reasoning = reasoning_match.group(1).strip() if reasoning_match else ""
    
        # Similarly, also extract the `intent`.
        intent_match = re.search(r"<intent>(.*?)</intent>", reasoning_and_intent, re.DOTALL)
        intent = intent_match.group(1).strip() if intent_match else ""
    
        # Check if the model's prediction is correct.
        correct = actual_intent.strip() == intent.strip()
    
        # Return the reasoning, intent, correct, and usage.
        return reasoning, intent, correct, usage

    Давайте разберём внесённые нами изменения:

    • Мы добавили actual_intent из наших тестовых случаев в метод classify_support_request и настроили сравнение для оценки того, соответствует ли классификация намерения Claude нашей эталонной классификации намерения.
    • Мы извлекли статистику использования для вызова API для расчёта стоимости на основе использованных входных и выходных токенов.

    Запустите вашу оценку

    Правильная оценка требует чётких пороговых значений и ориентиров для определения того, что является хорошим результатом. Приведённый выше скрипт даёт нам значения времени выполнения для точности, времени отклика и стоимости одной классификации, но нам всё равно нужны чётко установленные пороговые значения. Например:

    • Точность: 95% (из 100 тестов)
    • Стоимость одной классификации: снижение на 50% в среднем (по 100 тестам) по сравнению с текущим методом маршрутизации

    Наличие этих пороговых значений позволяет вам быстро и легко определять в масштабе, с беспристрастным эмпиризмом, какой метод лучше всего подходит для вас и какие изменения могут потребоваться для лучшего соответствия вашим требованиям.


    Улучшите производительность

    В сложных сценариях может быть полезно рассмотреть дополнительные стратегии для улучшения производительности помимо стандартных техник инженерии промптов и стратегий реализации защитных ограничений. Вот некоторые распространённые сценарии:

    Используйте таксономическую иерархию для случаев с 20+ категориями намерений

    По мере роста числа классов количество необходимых примеров также увеличивается, что потенциально делает промпт громоздким. В качестве альтернативы вы можете рассмотреть реализацию иерархической системы классификации с использованием смеси классификаторов.

    1. Организуйте ваши намерения в таксономическую древовидную структуру.
    2. Создайте серию классификаторов на каждом уровне дерева, обеспечивая каскадный подход к маршрутизации.

    Например, у вас может быть классификатор верхнего уровня, который широко категоризирует тикеты на «Технические проблемы», «Вопросы по выставлению счетов» и «Общие запросы». Каждая из этих категорий может затем иметь свой собственный подклассификатор для дальнейшего уточнения классификации.

    • Плюсы — большая нюансированность и точность: Вы можете создавать различные промпты для каждого родительского пути, что позволяет более целенаправленно и контекстно-специфично классифицировать. Это может привести к улучшению точности и более нюансированной обработке запросов клиентов.

    • Минусы — увеличенная задержка: Имейте в виду, что несколько классификаторов могут привести к увеличенной задержке, и мы рекомендуем реализовывать этот подход с нашей самой быстрой моделью, Haiku.

    Используйте векторные базы данных и поиск по сходству для обработки высоковариативных тикетов

    Несмотря на то что предоставление примеров является наиболее эффективным способом улучшения производительности, если запросы поддержки сильно варьируются, может быть трудно включить достаточно примеров в один промпт.

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

    Этот подход, подробно описанный в нашем руководстве по классификации, показал улучшение производительности с 71% точности до 93% точности.

    Специально учитывайте ожидаемые пограничные случаи

    Вот некоторые сценарии, в которых Claude может неправильно классифицировать тикеты (могут быть и другие, уникальные для вашей ситуации). В этих сценариях рассмотрите возможность предоставления явных инструкций или примеров в промпте о том, как Claude должен обрабатывать пограничный случай:


    Интегрируйте Claude в ваш общий рабочий процесс поддержки

    Правильная интеграция требует принятия некоторых решений относительно того, как ваш скрипт маршрутизации тикетов на основе Claude вписывается в архитектуру вашей общей системы маршрутизации тикетов. Есть два способа сделать это:

    • На основе push: Используемая вами система тикетов поддержки (например, Zendesk) запускает ваш код, отправляя событие webhook в ваш сервис маршрутизации, который затем классифицирует намерение и маршрутизирует его.
      • Этот подход более масштабируем для веба, но требует от вас открытия публичной конечной точки.
    • На основе pull: Ваш код извлекает последние тикеты по заданному расписанию и маршрутизирует их во время извлечения.
      • Этот подход проще в реализации, но может делать ненужные вызовы к системе тикетов поддержки, когда частота извлечения слишком высока, или может быть чрезмерно медленным, когда частота извлечения слишком низка.

    Для любого из этих подходов вам нужно обернуть ваш скрипт в сервис. Выбор подхода зависит от того, какие API предоставляет ваша система тикетов поддержки.


    Руководство по классификации

    Посетите наше руководство по классификации для получения дополнительного примера кода и подробного руководства по оценке.

    Claude Console

    Начните создавать и оценивать ваш рабочий процесс на Claude Console.