Upgrade to Pro — share decks privately, control downloads, hide ads and more …

生成AIで構築する自律型企業調査アシスタント

 生成AIで構築する自律型企業調査アシスタント

Classmethod Odyssey DevelopersIO 2024 Online セッションで登壇した内容です。

・セッション概要
企業名からLLMがクローリングを行い、企業情報をリサーチするSlackBotを開発しました。
生成AIを組み込んだアプリ開発の実践的ノウハウを、技術選定、インフラ構成、開発・デバッグ方法などの観点からご紹介します。

ShuyaKinjo

July 11, 2024
Tweet

More Decks by ShuyaKinjo

Other Decks in Technology

Transcript

  1. 業務における⽣成AIの活⽤度合い 5 • AIをシステムに統合 • ビジネス固有ニーズへ対応 • タスクに特化したAIツールを選択 • 複数のAIを組み合わせる

    • 基本的な対話型AI活⽤ • 幅広い⽤途に対応 • タスクに応じてAIをカスタマイズ • GPTs、OpenAI Assistants APIを利⽤して 独⾃のアプリ開発 タスクに応じた AIのカスタマイズ タスク毎にツール/ モデルを使い分け ChatGPTの利⽤
  2. 業務における⽣成AIの活⽤度合い 6 • タスクに特化したAIツールを選択 • 複数のAIを組み合わせる • 基本的な対話型AI活⽤ • 幅広い⽤途に対応

    • タスクに応じてAIをカスタマイズ • GPTs、OpenAI Assistants APIを利⽤して 独⾃のアプリ開発 タスクに応じた AIのカスタマイズ タスク毎にツール/ モデルを使い分け ChatGPTの利⽤ • AIをシステムに統合 • ビジネス固有ニーズへ対応
  3. • ⾔語:Python • フレームワーク ◦ LangChain、SlackBolt • インフラ(AWS) ◦ Lambda、CloudFront、AWS

    WAF ◦ Amazon Bedrock ◦ AWS CDK • ⾔語モデル ◦ Claude 3 Haiku, Sonnet 採⽤した技術スタック 26
  4. LLMと外部リソースの統合 • Web検索を統合 ◦ Google Search API ▪ Google検索のAPI版 ◦

    Tavily Search API ▪ LLMとRAGに最適化された検索エンジン ◦ SerpAPI ▪ Google、Bingなど数⼗種類の検索エンジンから データ取得 34
  5. ⽣成AIアプリ実装時のTips 1. Agent vs Chain 2. ⽣成AIで処理 or ⾃前実装の判断 3.

    ⼩さく始める 4. プロンプトの調整 5. 完璧を⽬指さない 6. クローラー実装時の注意点 58
  6. Agent と Chainの⽐較 • Agent ◦ LLMにツールを与え、LLM⾃⾝に動的に⾏動を決定させる ▪ 例)思考→⾏動(ツール)決定→実⾏→結果を元に再考→...出⼒ ◦

    汎⽤的なタスクを実⾏可能 ▪ 処理フローがLLMの出⼒結果に左右される ▪ LLMの呼び出し回数が増える(コスト‧レイテンシー増) • Chain ◦ 事前定義した⼀連のアクションを実⾏する ▪ 例)プロンプト⽣成→データ収集→推論 ◦ 特定のタスクに特化 ▪ 従来のプログラミングに⼀部AIを組み込む形 ▪ 動作が安定し、コスト‧レイテンシーも実装次第で下げられる 59
  7. Agent と Chainの⽐較 • Agent ◦ LLMにツールを与え、LLM⾃⾝に動的に⾏動を決定させる ▪ 例)思考→⾏動(ツール)決定→実⾏→結果を元に再考→...出⼒ ◦

    汎⽤的なタスクを実⾏可能 ▪ 処理フローがLLMの出⼒結果に左右される ▪ LLMの呼び出し回数が増える(コスト‧レイテンシー増) • Chain ◦ 事前定義した⼀連のアクションを実⾏する ▪ 例)プロンプト⽣成→データ収集→推論 ◦ 特定のタスクに特化 ▪ 従来のプログラミングに⼀部AIを組み込む形 ▪ 動作が安定し、コスト‧レイテンシーも実装次第で下げられる 60 今回はChainで実装
  8. ⽣成AIアプリ実装時のTips 1. Agent vs Chain 2. ⽣成AIで処理 or ⾃前実装の判断 3.

    ⼩さく始める 4. 完璧を⽬指さない 5. クローラー実装時の注意点 65
  9. ⽣成AIアプリ実装時のTips 1. Agent vs Chain 2. ⽣成AIで処理 or ⾃前実装の判断 3.

    ⼩さく始める 4. 完璧を⽬指さない 5. クローラー実装時の注意点 69
  10. ⽣成AIアプリ実装時のTips 1. Agent vs Chain 2. ⽣成AIで処理 or ⾃前実装の判断 3.

    ⼩さく始める 4. 完璧を⽬指さない 5. クローラー実装時の注意点 71
  11. クローラー実装時の注意点 • 対象サイトのrobots.txtを遵守する ◦ クローリング可能な範囲、リクエスト間隔を守る • サーバーへ負荷を与えない ◦ 10秒以上のクールダウンが推奨 ◦

    Lambdaの同時実⾏数やSQSで多重度を制御可能 • エラーハンドリングを適切に実装する ◦ 無限ループ、意図せぬリクエスト増を防ぐ 72
  12. まとめ • LangChainで開発⼯数を⼤幅に削減できる • インフラはサーバレスを推奨 ◦ Lambda Function URLsだとシンプルな構成に •

    AWSで作るならAmazon Bedrockの採⽤を推奨 • ⽣成AIの組み込みは本当に必要な箇所のみ • 最初は⼩さく検証を始める • 全てをAIで完璧にこなそうとしない • クローラーは節度を持って実装する 75