9 ポイント 投稿者 GN⁺ 2024-12-25 | まだコメントはありません。 | WhatsAppで共有
  • Benchling は複数のリージョンと環境でクラウドインフラを運用している。
    • Terraform Cloud で 16 万個以上のリソースを管理しており、1か月あたり約 50 人のエンジニアがインフラ変更をリリースしている。
  • 20 ページ分の膨大な FAQ ドキュメントと Slack スレッド履歴があるが、「検索の非効率性」が問題だった。
  • これを解決するため、RAG LLM を活用した Slackbot を構築した。

構築目標

  • Terraform Cloud 関連の質問をリアルタイムで解決する社内 Slackbotの開発。
  • 社内外のデータソースを結合し、ユーザーに使いやすい Slack インターフェースを通じて回答を提供。
  • 活用可能なケース:
    • HR 質問への回答
    • 顧客の問題解決事例の検索
    • ソフトウェアエラーコードの説明

動作原理

  1. ユーザークエリ分析: データベースから関連情報を検索。
  2. LLM プロンプト構成: 検索結果とガイドラインを含めて回答を生成。

技術スタック

  • RAG モデル: Amazon Bedrock を使用。
    • OpenSearch Serverless データベースで構成された知識ベースを設定。
    • Claude 3.5 Sonnet v2 モデルで回答を生成。

データソース

  • Confluence: Terraform Cloud FAQ(PDF として保存後、S3 にアップロード)。
  • Web: HashiCorp の Terraform Cloud と言語ドキュメント。
  • Slack: 解決済みの Terraform Cloud のイシューを含むスレッド(POC は手作業で収集)。
  • データはベクトルデータベースに保存され、クエリ時に検索可能。

実装アーキテクチャ

  • 構成要素:
    • Slack アプリ
    • AWS API Gateway
    • AWS Lambda(Python を使用)
    • AWS Bedrock
    • OpenSearch Serverless(ベクトルデータベース)
  • モデル利用:
    • Amazon Titan Text Embeddings v2(埋め込み生成)
    • Claude 3.5 Sonnet v2(回答生成)

制約事項と今後の改善点

制約事項

  • 画像処理不可: 画像ベースのアーキテクチャ図やスクリーンショットは含まれない。
  • Terraform のサポート不足: 現在、Terraform AWS Provider は Bedrock リソースをサポートしていない。

今後の改善点

  1. 参照リンクの追加: Slack の返信にドキュメントの出典を含める。
  2. Slack スレッドの自動保存: 「@help-terraform-cloud remember」コマンドでデータベース更新。
  3. データ同期の自動化: CloudWatch イベントを使用して週次同期。
  4. Confluence API の活用: 現在の手動 PDF アップロードを API 連携へ移行。
  5. マルチターン対話のサポート: ユーザーとの継続的な会話コンテキスト維持。

構築過程で得た知見

  1. データチャンク戦略:
    • 当初 300 トークン(約1段落)サイズを使用したが、長い回答が途切れないよう 1500 トークン(約5段落)へ調整。
  2. PDF パースの効率:
    • 画像を除けば、テキストベースのデータは安定して抽出できた。
  3. ナレッジベース構築の容易さ:
    • Amazon Bedrock を活用すると、数分で構築可能。

ユースケース

  • FAQ およびエラーコード の参照。
  • 反復的な質問の自動応答
  • チーム別のカスタムデータセット活用:
    • 会話履歴、共有ドキュメントなど。

セキュリティ上の考慮

  • データ機密性と不正確な結果のリスクを評価。
  • 組織で承認されたモデルを確認。

結論

  • LLM を活用した Slackbot は迅速なプロトタイプ開発の可能性を実証した。
  • 新しい技術実験を通じて、効率性と生産性の向上が見込まれる。
  • この事例を基に、皆さんも LLM ベースのツールを構築してみてください!

まだコメントはありません。

まだコメントはありません。