Loading...
    • Руководство разработчика
    • Справочник API
    • MCP
    • Ресурсы
    • Примечания к выпуску
    Search...
    ⌘K
    Ресурсы
    ОбзорГлоссарийСистемные промпты
    ОбзорМаршрутизация билетовАгент поддержки клиентовМодерация контентаРезюмирование юридических документов
    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
    • Catalog
    • 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
    • Catalog
    • 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 в области понимания естественного языка для классификации тикетов поддержки клиентов в масштабе на основе намерения клиента, срочности, приоритизации, профиля клиента и многого другого.
    • Определите, следует ли использовать Claude для маршрутизации тикетов
    • Создайте и разверните ваш рабочий процесс поддержки LLM
    • Поймите ваш текущий подход к поддержке
    • Определите категории намерения пользователя
    • Установите критерии успеха
    • Выберите правильную модель Claude
    • Создайте сильную подсказку
    • Разверните вашу подсказку
    • Оцените вашу подсказку
    • Создайте функцию оценки
    • Запустите вашу оценку
    • Улучшите производительность
    • Используйте таксономическую иерархию для случаев с 20+ категориями намерения
    • Используйте векторные базы данных и поиск по сходству для обработки высоко вариативных тикетов
    • Учитывайте конкретно ожидаемые граничные случаи
    • Интегрируйте Claude в ваш больший рабочий процесс поддержки

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

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


    Создайте и разверните ваш рабочий процесс поддержки 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 в качестве выходных данных. Если у вас есть существующая автоматизация, использующая традиционный ML, вы захотите следовать этой сигнатуре метода вместо этого.

    import anthropic
    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

    Этот код:

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

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


    Оцените вашу подсказку

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

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

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

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

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

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

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

    import anthropic
    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 тестов) от текущего метода маршрутизации

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


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

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

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

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

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

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

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

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

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

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

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

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

    Учитывайте конкретно ожидаемые граничные случаи

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


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

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

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

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


    Справочник по классификации

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

    Claude Console

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