チケットルーティング
このガイドでは、Claudeの高度な自然言語理解能力を活用して、顧客の意図、緊急性、優先順位、顧客プロファイルなどに基づいて大規模にカスタマーサポートチケットを分類する方法を説明します。
チケットルーティングにClaudeを使用するかどうかを判断する
以下は、分類タスクに従来のML手法ではなく、ClaudeのようなLLMを使用すべき主な指標です:
ラベル付き訓練データが限られている場合
ラベル付き訓練データが限られている場合
従来のMLプロセスでは膨大なラベル付きデータセットが必要です。Claudeの事前訓練済みモデルは、わずか数十のラベル付き例でチケットを効果的に分類でき、データ準備の時間とコストを大幅に削減できます。
分類カテゴリが時間とともに変化または進化する可能性がある場合
分類カテゴリが時間とともに変化または進化する可能性がある場合
従来のMLアプローチが確立されると、それを変更するのは労力とデータを大量に必要とする作業になります。一方、製品や顧客のニーズが進化するにつれて、Claudeは訓練データの広範な再ラベル付けなしに、クラス定義の変更や新しいクラスに簡単に適応できます。
複雑で非構造化テキスト入力を処理する必要がある場合
複雑で非構造化テキスト入力を処理する必要がある場合
従来のMLモデルは非構造化データの処理に苦労することが多く、広範な特徴量エンジニアリングが必要です。Claudeの高度な言語理解により、厳密な存在論的構造に依存するのではなく、コンテンツとコンテキストに基づいた正確な分類が可能になります。
分類ルールが意味的理解に基づいている場合
分類ルールが意味的理解に基づいている場合
従来のMLアプローチは、多くの場合、単語の袋モデルや単純なパターンマッチングに依存しています。Claudeは、クラスが例ではなく条件によって定義されている場合、基礎となるルールを理解して適用することに優れています。
分類決定に対する解釈可能な理由付けが必要な場合
分類決定に対する解釈可能な理由付けが必要な場合
多くの従来のMLモデルは、その意思決定プロセスについてほとんど洞察を提供しません。Claudeは分類決定に対する人間が読める説明を提供でき、自動化システムへの信頼を構築し、必要に応じて容易な適応を促進します。
エッジケースや曖昧なチケットをより効果的に処理したい場合
エッジケースや曖昧なチケットをより効果的に処理したい場合
従来のMLシステムは外れ値や曖昧な入力の処理に苦労することが多く、誤分類したり、包括的なカテゴリにデフォルト設定したりすることがよくあります。Claudeの自然言語処理能力により、サポートチケット内のコンテキストとニュアンスをより適切に解釈でき、手動介入が必要な誤ルーティングまたは未分類のチケット数を減らす可能性があります。
別々のモデルを維持せずに多言語サポートが必要な場合
別々のモデルを維持せずに多言語サポートが必要な場合
従来のMLアプローチでは、通常、サポートされる各言語に対して別々のモデルまたは広範な翻訳プロセスが必要です。Claudeの多言語機能により、別々のモデルや広範な翻訳プロセスを必要とせずに、様々な言語でチケットを分類でき、グローバルな顧客ベースのサポートを合理化できます。
LLMサポートワークフローの構築とデプロイ
現在のサポートアプローチを理解する
自動化に取り組む前に、既存のチケットシステムを理解することが重要です。まず、サポートチームが現在どのようにチケットルーティングを処理しているかを調査することから始めましょう。
以下のような質問を検討してください:
- どのような基準でSLA/サービス提供が適用されるかを決定していますか?
- チケットルーティングは、チケットがどのサポートレベルまたは製品スペシャリストに行くかを決定するために使用されていますか?
- すでに自動化されたルールやワークフローはありますか?どのような場合に失敗しますか?
- エッジケースや曖昧なチケットはどのように処理されていますか?
- チームはどのようにチケットに優先順位をつけていますか?
人間がどのようにして特定のケースを処理しているかについて知れば知るほど、Claudeとともにタスクを行うことがより良くできるようになります。
ユーザー意図カテゴリを定義する
明確に定義されたユーザー意図カテゴリのリストは、Claudeによる正確なサポートチケット分類に不可欠です。Claudeがシステム内でチケットを効果的にルーティングする能力は、システムのカテゴリがどれだけ明確に定義されているかに直接比例します。
以下はユーザー意図カテゴリとサブカテゴリの例です。
技術的な問題
技術的な問題
- ハードウェアの問題
- ソフトウェアのバグ
- 互換性の問題
- パフォーマンスの問題
アカウント管理
アカウント管理
- パスワードのリセット
- アカウントアクセスの問題
- 請求に関する問い合わせ
- サブスクリプションの変更
製品情報
製品情報
- 機能に関する問い合わせ
- 製品の互換性に関する質問
- 価格情報
- 利用可能性に関する問い合わせ
ユーザーガイダンス
ユーザーガイダンス
- 使い方の質問
- 機能使用のサポート
- ベストプラクティスのアドバイス
- トラブルシューティングガイダンス
フィードバック
フィードバック
- バグレポート
- 機能リクエスト
- 一般的なフィードバックや提案
- 苦情
注文関連
注文関連
- 注文状況の問い合わせ
- 配送情報
- 返品と交換
- 注文の変更
サービスリクエスト
サービスリクエスト
- インストールサポート
- アップグレードリクエスト
- メンテナンススケジューリング
- サービスキャンセル
セキュリティの懸念
セキュリティの懸念
- データプライバシーに関する問い合わせ
- 不審なアクティビティの報告
- セキュリティ機能のサポート
コンプライアンスと法務
コンプライアンスと法務
- 規制コンプライアンスに関する質問
- 利用規約に関する問い合わせ
- 法的文書のリクエスト
緊急サポート
緊急サポート
- 重大なシステム障害
- 緊急のセキュリティ問題
- 時間に敏感な問題
トレーニングと教育
トレーニングと教育
- 製品トレーニングのリクエスト
- ドキュメントに関する問い合わせ
- ウェビナーやワークショップの情報
統合とAPI
統合とAPI
- 統合サポート
- API使用に関する質問
- サードパーティの互換性に関する問い合わせ
意図に加えて、チケットのルーティングと優先順位付けは、緊急性、顧客タイプ、SLA、または言語などの他の要因によっても影響を受ける場合があります。自動ルーティングシステムを構築する際には、他のルーティング基準も考慮してください。
成功基準を確立する
サポートチームと協力して、測定可能なベンチマーク、しきい値、および目標を持つ明確な成功基準を定義してください。
以下は、サポートチケットルーティングにLLMを使用する際の標準的な基準とベンチマークです:
分類の一貫性
分類の一貫性
この指標は、Claudeが時間の経過とともに類似したチケットをどれだけ一貫して分類するかを評価します。ルーティングの信頼性を維持するために重要です。標準化された入力セットを使用してモデルを定期的にテストし、95%以上の一貫性率を目指して測定します。
適応速度
適応速度
これは、Claudeが新しいカテゴリや変化するチケットパターンにどれだけ迅速に適応できるかを測定します。新しいチケットタイプを導入し、モデルがこれらの新しいカテゴリで満足のいく精度(例:>90%)を達成するまでの時間を測定します。50〜100のサンプルチケット内での適応を目指します。
多言語処理
多言語処理
これは、Claudeが複数の言語でチケットを正確にルーティングする能力を評価します。異なる言語間でのルーティング精度を測定し、非主要言語の精度低下が5〜10%以下になることを目指します。
エッジケース処理
エッジケース処理
これは、異常または複雑なチケットに対するClaudeのパフォーマンスを評価します。エッジケースのテストセットを作成し、ルーティング精度を測定し、これらの難しい入力に対して少なくとも80%の精度を目指します。
バイアス軽減
バイアス軽減
これは、異なる顧客層全体でのルーティングにおけるClaudeの公平性を測定します。潜在的なバイアスについてルーティング決定を定期的に監査し、すべての顧客グループ間で一貫したルーティング精度(2〜3%以内)を目指します。
プロンプト効率
プロンプト効率
トークン数の最小化が重要な状況では、この基準は最小限のコンテキストでClaudeがどれだけうまく機能するかを評価します。提供されるコンテキストの量を変えながらルーティング精度を測定し、チケットのタイトルと簡単な説明だけで90%以上の精度を目指します。
説明可能性スコア
説明可能性スコア
これは、Claudeのルーティング決定に対する説明の質と関連性を評価します。人間の評価者は説明を(例えば1〜5の)スケールでスコア付けでき、平均スコア4以上を達成することを目標とします。
以下は、LLMが使用されているかどうかに関わらず有用な一般的な成功基準です:
ルーティング精度
ルーティング精度
ルーティング精度は、チケットが最初の試みで適切なチームまたは個人に正しく割り当てられる頻度を測定します。これは通常、正しくルーティングされたチケットの総チケット数に対する割合として測定されます。業界のベンチマークでは通常90〜95%の精度を目指していますが、サポート構造の複雑さによって異なる場合があります。
割り当て時間
割り当て時間
この指標は、チケットが提出された後、どれだけ迅速に割り当てられるかを追跡します。より速い割り当て時間は一般的に、より迅速な解決と顧客満足度の向上につながります。最高クラスのシステムでは、平均割り当て時間が5分未満であることが多く、多くは瞬時のルーティングを目指しています(LLM実装では可能です)。
再ルーティング率
再ルーティング率
再ルーティング率は、初期ルーティング後にチケットが再割り当てされる頻度を示します。低い率は、より正確な初期ルーティングを示唆します。10%未満の再ルーティング率を目指し、トップパフォーマンスのシステムでは5%以下の率を達成しています。
初回接触解決率
初回接触解決率
これは、顧客との最初のやり取りで解決されたチケットの割合を測定します。高い率は効率的なルーティングと十分に準備されたサポートチームを示します。業界のベンチマークは通常70〜75%の範囲で、トップパフォーマーは80%以上の率を達成しています。
平均処理時間
平均処理時間
平均処理時間は、チケットを最初から最後まで解決するのにかかる時間を測定します。効率的なルーティングはこの時間を大幅に短縮できます。ベンチマークは業界と複雑さによって大きく異なりますが、多くの組織は非重要な問題の平均処理時間を24時間未満に保つことを目指しています。
顧客満足度スコア
顧客満足度スコア
通常、インタラクション後のアンケートを通じて測定され、これらのスコアはサポートプロセス全体に対する顧客の満足度を反映しています。効果的なルーティングはより高い満足度に貢献します。CSAT(顧客満足度)スコアで90%以上を目指し、トップパフォーマーは多くの場合95%以上の満足度を達成しています。
エスカレーション率
エスカレーション率
これは、チケットが上位レベルのサポートにエスカレーションされる頻度を測定します。低いエスカレーション率は、より正確な初期ルーティングを示すことが多いです。20%未満のエスカレーション率を目指し、最高クラスのシステムでは10%以下の率を達成しています。
エージェント生産性
エージェント生産性
この指標は、ルーティングソリューションを実装した後、エージェントが効果的に処理できるチケット数を調べます。改善されたルーティングは生産性を向上させるはずです。これは、エージェントあたりの1日または1時間あたりの解決チケット数を追跡し、新しいルーティングシステムを実装した後に10〜20%の改善を目指して測定します。
セルフサービス迂回率
セルフサービス迂回率
これは、ルーティングシステムに入る前にセルフサービスオプションを通じて解決される潜在的なチケットの割合を測定します。高い率は効果的な事前ルーティングトリアージを示します。20〜30%の迂回率を目指し、トップパフォーマーは40%以上の率を達成しています。
チケットあたりのコスト
チケットあたりのコスト
この指標は、各サポートチケットを解決するための平均コストを計算します。効率的なルーティングは、時間の経過とともにこのコストを削減するのに役立つはずです。ベンチマークは大きく異なりますが、多くの組織は改善されたルーティングシステムを実装した後、チケットあたりのコストを10〜15%削減することを目指しています。
適切なClaudeモデルを選択する
モデルの選択は、コスト、精度、応答時間のトレードオフによって異なります。
多くの顧客は、claude-3-5-haiku-20241022
がチケットルーティングに理想的なモデルであると考えています。これはClaude 3ファミリーの中で最も高速でコスト効率が良いモデルでありながら、優れた結果を提供します。分類問題が深い専門知識や大量の意図カテゴリの複雑な推論を必要とする場合は、より大きなSonnetモデルを選択することもできます。
強力なプロンプトを構築する
チケットルーティングは分類タスクの一種です。Claudeはサポートチケットの内容を分析し、問題のタイプ、緊急性、必要な専門知識、またはその他の関連要因に基づいて、事前定義されたカテゴリに分類します。
チケット分類プロンプトを作成しましょう。初期プロンプトには、ユーザーリクエストの内容を含め、推論と意図の両方を返すようにします。
Anthropic Consoleのプロンプトジェネレーターを試して、Claudeに最初の草案を書いてもらいましょう。
以下はチケットルーティング分類プロンプトの例です:
このプロンプトの主要な構成要素を分解してみましょう:
- Pythonのf文字列を使用してプロンプトテンプレートを作成し、
ticket_contents
を<request>
タグ内に挿入できるようにしています。 - Claudeに顧客の核心的な意図とニーズを慎重に分析するチケット内容を分類システムとしての明確に定義された役割を与えています。
- Claudeに適切な出力フォーマットを指示し、この場合は
<reasoning>
タグ内に理由と分析を提供し、その後に<intent>
タグ内に適切な分類ラベルを提供するよう指示しています。 - 有効な意図カテゴリを指定しています:「サポート、フィードバック、苦情」、「注文追跡」、「返金/交換」。
- 出力がどのようにフォーマットされるべきかを示すためにいくつかの例(いわゆるfew-shotプロンプティング)を含めており、これにより精度と一貫性が向上します。
Claudeに様々なXMLタグセクションに応答を分割させたい理由は、正規表現を使用して出力から理由と意図を別々に抽出できるようにするためです。これにより、チケットルーティングワークフローで次のステップを対象とすることができます。例えば、チケットをルーティングする人を決定するために意図のみを使用するなどです。
プロンプトをデプロイする
テスト生産環境にデプロイして評価を実行せずに、プロンプトがどれだけうまく機能するかを知ることは難しいです。
デプロイ構造を構築しましょう。まず、Claudeへの呼び出しをラップするメソッドシグネチャを定義します。すでに書き始めているメソッドを使用し、入力としてticket_contents
を取り、出力としてreasoning
とintent
のタプルを返します。従来のMLを使用した既存の自動化がある場合は、代わりにそのメソッドシグネチャに従ってください。
このコードは:
- Anthropicライブラリをインポートし、APIキーを使用してクライアントインスタンスを作成します。
ticket_contents
文字列を取るclassify_support_request
関数を定義します。classification_prompt
を使用して分類のためにticket_contents
をClaudeに送信します。- レスポンスから抽出した
reasoning
とintent
を返します。
生成全体の理由と意図のテキストを解析する前に待つ必要があるため、stream=False
(デフォルト)を設定しています。
プロンプトを評価する
プロンプティングは、本番環境に対応するためにテストと最適化が必要なことがよくあります。ソリューションの準備状況を判断するには、先に確立した成功基準としきい値に基づいてパフォーマンスを評価します。
評価を実行するには、テストケースが必要です。このガイドの残りの部分では、すでにテストケースを開発していることを前提としています。
評価関数を構築する
このガイドの例の評価では、Claudeのパフォーマンスを3つの主要な指標に沿って測定します:
- 精度
- 分類あたりのコスト
あなたにとって重要な要素に応じて、他の軸でClaudeを評価する必要があるかもしれません。
これを評価するために、まず私たちが書いたスクリプトを修正し、予測された意図と実際の意図を比較して正確な予測の割合を計算する関数を追加する必要があります。また、コスト計算と時間測定機能も追加する必要があります。
行った編集を分解してみましょう:
- テストケースから
actual_intent
をclassify_support_request
メソッドに追加し、Claudeの意図分類が私たちのゴールデン意図分類と一致するかどうかを評価するための比較を設定しました。 - 入力および出力トークンの使用に基づいてコストを計算するために、APIコールの使用統計を抽出しました。
評価を実行する
適切な評価には、何が良い結果かを判断するための明確なしきい値とベンチマークが必要です。上記のスクリプトは精度、応答時間、分類あたりのコストのランタイム値を提供しますが、明確に確立されたしきい値が必要です。例えば:
- 精度: 95%(100テスト中)
- 分類あたりのコスト: 現在のルーティング方法から平均50%削減(100テスト全体)
これらのしきい値があれば、どの方法があなたに最適か、そしてあなたの要件により適合させるためにどのような変更が必要かを、規模を拡大しても偏りのない実証的な方法で迅速かつ簡単に判断できます。
パフォーマンスを向上させる
複雑なシナリオでは、標準的なプロンプトエンジニアリング技術やガードレール実装戦略を超えて、パフォーマンスを向上させるための追加戦略を検討することが役立つ場合があります。以下はいくつかの一般的なシナリオです:
20以上の意図カテゴリがある場合は分類階層を使用する
クラスの数が増えるにつれて、必要な例の数も増加し、プロンプトが扱いにくくなる可能性があります。代替案として、分類器の混合を使用した階層的分類システムの実装を検討できます。
- 意図を分類木構造で整理します。
- ツリーのすべてのレベルで一連の分類器を作成し、カスケードルーティングアプローチを可能にします。
例えば、チケットを「技術的な問題」、「請求に関する質問」、「一般的な問い合わせ」に大まかに分類するトップレベルの分類器を持つことができます。これらの各カテゴリには、分類をさらに絞り込むための独自のサブ分類器があります。
-
メリット - より大きなニュアンスと精度: 各親パスに対して異なるプロンプトを作成でき、より対象を絞ったコンテキスト固有の分類が可能になります。これにより、精度が向上し、顧客リクエストのより微妙な処理が可能になります。
-
デメリット - レイテンシーの増加: 複数の分類器によりレイテンシーが増加する可能性があることに注意してください。このアプローチは最も高速なモデルであるHaikuで実装することをお勧めします。
高度に可変なチケットを処理するためにベクトルデータベースと類似性検索検索を使用する
例を提供することがパフォーマンスを向上させる最も効果的な方法ですが、サポートリクエストが非常に多様な場合、単一のプロンプトに十分な例を含めるのが難しい場合があります。
このシナリオでは、ベクトルデータベースを使用して例のデータセットから類似性検索を行い、特定のクエリに最も関連性の高い例を取得することができます。
この分類レシピで詳細に説明されているこのアプローチは、精度を71%から93%に向上させることが示されています。
予想されるエッジケースを特に考慮する
以下は、Claudeがチケットを誤分類する可能性のあるシナリオです(あなたの状況に固有の他のシナリオもあるかもしれません)。これらのシナリオでは、Claudeがエッジケースをどのように処理すべきかについて、プロンプトに明示的な指示や例を提供することを検討してください:
顧客が暗黙的なリクエストをする
顧客が暗黙的なリクエストをする
顧客は多くの場合、間接的にニーズを表現します。例えば、「2週間以上も荷物を待っています」は、注文状況に対する間接的なリクエストかもしれません。
- 解決策: Claudeにこのような種類のリクエストの実際の顧客例をいくつか提供し、基礎となる意図が何であるかを示します。特に微妙なチケットの意図に対して分類の根拠を含めると、さらに良い結果が得られます。これにより、Claudeは論理を他のチケットにより適切に一般化できます。
Claudeが意図よりも感情を優先する
Claudeが意図よりも感情を優先する
顧客が不満を表明すると、Claudeは根本的な問題を解決するよりも感情に対応することを優先する場合があります。
- 解決策: Claudeに顧客の感情を優先するかどうかについての指示を提供します。「すべての顧客の感情を無視してください。顧客のリクエストの意図と顧客が求めている可能性のある情報の分析にのみ集中してください。」というような単純なものでも構いません。
複数の問題が優先順位の混乱を引き起こす
複数の問題が優先順位の混乱を引き起こす
顧客が単一のやり取りで複数の問題を提示すると、Claudeは主要な懸念事項を特定するのに困難を感じる場合があります。
- 解決策: 意図の優先順位付けを明確にして、Claudeが抽出された意図をより適切にランク付けし、主要な懸念事項を特定できるようにします。
Claudeをより大きなサポートワークフローに統合する
適切な統合には、Claude ベースのチケットルーティングスクリプトがより大きなチケットルーティングシステムのアーキテクチャにどのように適合するかについて、いくつかの決定を行う必要があります。これには2つの方法があります:
- プッシュベース: 使用しているサポートチケットシステム(例:Zendesk)が、ルーティングサービスにウェブフックイベントを送信することでコードをトリガーし、そのサービスが意図を分類してルーティングします。
- このアプローチはウェブスケーラビリティが高いですが、パブリックエンドポイントを公開する必要があります。
- プルベース: コードが特定のスケジュールに基づいて最新のチケットをプルし、プル時にそれらをルーティングします。
- このアプローチは実装が容易ですが、プル頻度が高すぎると不必要なサポートチケットシステムへの呼び出しが発生したり、プル頻度が低すぎると過度に遅くなる可能性があります。
これらのアプローチのいずれについても、スクリプトをサービスにラップする必要があります。アプローチの選択は、サポートチケットシステムが提供するAPIによって異なります。