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

2023/06/24 技育CAMPアドバンス チーム勝成「GenieSlack」

2023/06/24 技育CAMPアドバンス チーム勝成「GenieSlack」

2023年6月24日開催 技育CAMPアドバンス
チーム勝成 発表資料

デモンストレーション:
https://www.youtube.com/watch?v=DBlnx5NhuOk

ランディングページ:
https://www.genieslack.kusshi.dev/

ブログ:
https://blog.hatena.ne.jp/kusshi/kusshi.hatenablog.jp/edit?entry=820878482943999896

Junnosuke Kushibiki

June 25, 2023
Tweet

More Decks by Junnosuke Kushibiki

Other Decks in Technology

Transcript

  1. アーキテクチャの 刷新 ユーザ Slack Nginx Slackイベント⽤ サーバ ラウンディングページ (Gatsby) esa

    OAuth⽤サーバ (Flask) esa API OpenAI API EC2 インスタンス RDS (MySQL) GitHub Pages + Actions ⼀般公開にあたり 未経験の技術にも 多数挑戦(⻘字部 分)
  2. 最新技術の導⼊ ChatGPTのFunction Calling (6/13リリース機能) を導⼊し、構造的な出⼒を 得られるようにしました Slackの メッセージ Pythonの 関数

    JSON functions = [{ 'name': 'get_summarize_info' , 'description' : '要約結果の情報を得る ', 'parameters' : { 'type': 'object', 'properties' : { 'title': { 'type': 'string', 'description' : '要約したメッセージのタイトル ', }, 'category': { 'type': 'string', 'description' : f"要約したメッセージのカテゴリ " } }, 'required': ['title', 'category'], } }] ChatGPT (Function Calling) ChatGPTに教えた関数の説明
  3. セキュリティに配慮したOAuthの実装 機能性だけでなく、セキュリティにも配慮しています ユーザのSlackが攻撃者のesaと結びつくと 情報流出につながる ユーザの Slackワーク スペース 攻撃者の esaチーム ユーザの

    esaチーム 対策 1. stateパラメータを使った CSRF対策を⾏う 2. GenieSlackインストールか らesa連携までに時間制限を 設ける 3. セッションの有効期間を 短くする 4. slackのワークスペースIDは 対応する乱数にして URLのパラメータに含める