LangChainで緊急ヘルプラインの音声エージェントを構築する
LangChain、AssemblyAI、OpenAIを使ってリアルタイムのAI音声エージェントを構築する方法を学びます。このエージェントは発信者の苦痛を聞き、状況を評価し、緊急サービスを派遣し、発信者を落ち着かせます。タイピングやメニューは一切不要です。
緊急時には一秒が重要です。パニック状態でキーパッドを押して担当者につなぐ従来のヘルプラインは混乱を招きます。本記事では、LangChain、AssemblyAI、OpenAIを活用して、発信者の音声による苦痛をリアルタイムで聞き取り、状況を評価し、警察・救急車・消防を自動派遣し、さらに発信者を落ち着かせるAI音声エージェントの構築方法を紹介します。
なぜ緊急ヘルプラインなのか? 一般的な音声アシスタント(注文や音楽再生)とは異なり、緊急ヘルプラインは低遅延、適切な口調、高い信頼性が要求されます。すべての設計判断が実際の救助に影響するため、AI音声システムの理想的なテストケースとなります。
パイプラインアーキテクチャ:サンドイッチモデル 3つの独立したコンポーネント(音声認識、エージェント推論、音声合成)が並行して動作します。発信者が話している間に音声認識が開始され、エージェントは前の応答に基づいて推論し、音声合成は推論中に合成を開始します。適切に実装すれば、全体の処理は10秒未満で完了し、途切れのない音声を提供できます。
第1段階:音声認識(AssemblyAI) AssemblyAIのWebSocket APIを使用し、プロデューサー・コンシューマーモデルで音声チャンクをリアルタイムに転写します。重要なイベントタイプとして、STT Chunk(部分転写、リアルタイム監視用)とSTT Output(完全転写、エージェント起動用)があります。コンテンツ安全検出フラグを有効にすることで、テキスト処理前に苦痛信号を検出できます。
第2段階:緊急トリアージエージェント(ARIA) エージェントARIAはLangChainとLangGraphで構築され、4つのツール(位置照会、緊急派遣、人間へのエスカレーション、落ち着かせるプロトコル)を持ちます。システムプロンプトは、ARIAが常に冷静に、一度に一つの質問だけをし、絵文字やマークダウンを使わないよう指示します。InMemorySaverチェックポインタにより、ARIAは通話履歴全体を記憶し、過去のやり取りを活用できます。
第3段階:音声合成(OpenAI TTS) エージェントと同じOpenAI APIキーを使用するため、統合が容易です。tts-1モデルはリアルタイムストリーミング用に最適化され、声「shimmer」は落ち着いて明瞭です。response_format='pcm'を指定すると、コンテナオーバーヘッドを回避し、生のPCMオーディオをWebSocketに直接ストリームできます。tts-1-hdは品質が高いが約200msの遅延が増えるため、緊急ヘルプラインにはtts-1が推奨されます。
テストと結論 上記のモジュールをasyncioで並列接続することで、完全な音声緊急ヘルプエージェントが構築できます。このエージェントは通話中にリアルタイムで転写、推論、応答を実行し、応答時間を大幅に短縮します。記事はさらに、詳細な意味分析や多言語サポートなどの改善を奨励しています。