
こんにちは、プロダクトAI開発の宮後(@miya10kei)です。
最近は暑さにやられて、自宅に引きこもっている今日この頃です💦
今回はコールセンターの通話内容を通話終了後に、ニアリアルタイムで要約する仕組みを構築したので紹介します。
はじめに
ニーリーでは月間数万件の通話が発生する社内コールセンターを運営しています。カスタマー(駐車場の借主様)とクライアント(不動産管理会社様)からの問い合わせに対応する中で、オペレーターの業務効率化が課題となっていました。
オペレーターは通話が終わるたびに内容をテキストでチケット管理システムに記録する必要があります。 慣れた方なら通話しながらメモを取って、電話を切ると同時に記録も完成させられますが、そうでない方は、通話内容をまとめるのに数分かかってしまうこともあります。 その間、次の電話を受けることができないため、あまり長引いてしまうと受電率にも影響がでてしまいます。
そこで、生成AIを使って通話内容を自動で要約する仕組みを構築することで、記録作業を代替することにしました。
実現にあたっての要件
- ニーリーのコールセンターはAmazon Connectで構築しているため、当然Amazon Connectと連携する必要があります。
- また、通話終了後にオペレータが履歴を確認するケースもあるため、10秒以内には要約結果がチケットに記録されている必要があります。
- 月の通話件数が数万件発生するため、これに耐えうる構成にする必要があります。
全体構成

通話内容を要約するためには、通話を文字起こしし、そのデータを受け取る必要があります。 Amazon Connect Contact Lens とAmazon Kinesis Data Streams を組み合わせることでこれらを実現する方法がAWSから紹介されており、こちらを採用しました。
文字起こし済みのデータを受け取った後が自分で実現した部分になるので、いくつかポイントを紹介します。
文字起こし結果の一時記録と要約処理の分離
Amazon Connect Contact Lens から Amazon Kinesis Data Streams を通って流れてくるデータには次の3つのイベントがあり、複数の通話が混ざった形で送られてきます。
| イベント | 説明 |
|---|---|
| STARTED | 通話開始のイベント |
| SEGMENTS | 文字起こし結果のイベント(文字起こしされたものから順次発行される) |
| COMPLETED | 通話終了のイベント |
通話終了後に要約をかけるためにはSTARTED〜COMPLETEDを受け取るまでに流れてくるSEGMENTSデータを一時的に記録しておく必要があり、ここにはDynamoDBを採用しました。
COMPLETEDを受け取ったタイミングでDynamoDBから一連の文字起こし結果を取得し、生成AIに要約をおこなわせるのですが、生成AIの処理時間がネックになってきます。 要約にはどんなに早くても3~5秒かかるため、そこで処理がスタックしてしまい後続のイベント処理が遅延してしまいます。
そこで、COMPLETEDイベントをAmazon SQSに流し、別のLambdaで生成AIによる要約処理をおこなわせることでこの問題を回避しました。 当然、Amazon SQSを挟む分、全体のレイテンシーは悪化してしまいますが、後述のレイテンシー最適化推論を使用することで上手く吸収することができました。
Claude 3.5 Haikuの採用
要約には Anthropic Claude 3.5 Haikuを採用しました。
当時、最新だったClaude 3 HaikuとClaude 3.5 Sonnetの2つを候補として検証しましたが、Claude 3 Haikuは要約精度、Claude 3.5 Sonnetはレイテンシーとコストの面で課題がありました。
そんな中、ちょうど良いタイミングでClaude 3.5 Haikuがリリースされ、精度、レイテンシー、コストをバランス良く実現できたのとても良いタイミングでした🙌
また、RateLimit対策としてクロスリージョン推論、レイテンシー対策としてレイテンシー最適化推論も採用しています。(レイテンシー最適化推論もちょうどpreviewで登場したタイミングでしたので上手く噛み合いました🙌)
文字起こし結果と要約結果の保存
チケットへの要約結果の書き込み後に、S3バケットに文字起こし結果と要約結果をそれぞれ保存するようにしています。どちらの情報もAmazonConnctとチケットに記録はされていますが、まとめて保存しておけば今後何かの役に立つだろうと思い保存をしています。
それから、半年ほど経ったタイミングで事業企画の方から過去の通話内容の分析をおこないたいという話があり、すぐに記録を提供することができたので当時の自分を褒めてあげたいですね☺️
まとめ
最後に現在の自動要約の状況を紹介して締めたいと思います。
2025年1月から段階的に導入し、現在は月に数万回の通話要約をおこなっています。 また、レイテンシーも5~7秒くらいで推移しているので順調に動いてくれています!

要約精度についても実際に利用いただいている方から「質が高い」との声をいただいているので、十二分に役割を果たしていると思います。

(引用:働くうちに、会社が好きになる。派遣のCSRからステップアップした2人の選択と現在地|株式会社ニーリー公式note)
1件1件は数分の作業ですが、ちりつもで全体では大きな工数がかかっていた作業なので、生成AIで代替することができたのは大きな効果だったと思います。
同じようにコールセンターを運営されている方は是非参考にしてていだければと思います!