Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS LambdaとLangSmithを使った社内レポート添削システムMinervaの実装
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
熊懐葵
August 31, 2024
Technology
410
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS LambdaとLangSmithを使った社内レポート添削システムMinervaの実装
機械学習の社会実装勉強会 第38回 (
https://machine-learning-workshop.connpass.com/event/328440/
) の発表資料です。
熊懐葵
August 31, 2024
More Decks by 熊懐葵
See All by 熊懐葵
AI時代のインターン研修再設計 コーディング力から課題創出・業務遂行力へ
aoikumadaki
0
140
Claude Codeで進めるAWSリソースのTerraform移行
aoikumadaki
0
110
n8nで定期成果報告の資料づくりを自動化する
aoikumadaki
0
250
LangGraphとFlaskを用いた社内資料検索ボットの実装④GithubRetriever構築編
aoikumadaki
0
120
LangGraphとFlaskを用いた社内資料検索ボットの実装③アプリケーション構築編
aoikumadaki
0
170
LangGraphとFlaskを用いた社内資料検索ボットの実装②Retriever構築編
aoikumadaki
0
250
LangGraphとFlaskを用いた社内資料検索ボットの実装①AIエージェント構築編
aoikumadaki
0
480
StreamlitとLangChainを使った表画像OCRアプリの実装
aoikumadaki
3
930
LangChainでデータ分析エージェントを作ってみる
aoikumadaki
0
380
Other Decks in Technology
See All in Technology
GoとSIMDとWasmの今。
askua
3
520
Databricks における 生成AIガバナンスの実践
taka_aki
1
360
「気づいたら仕事が終わっている」バクラクAIエージェント本番運用の裏側 / layerx-bakuraku-aie2026
yuya4
19
11k
"何を作るか"を任される エンジニアは、どう育つのか
yutaokafuji
1
270
Dario Amodi『Policy on the AI Exponential』を理解する
nagatsu
0
210
社内 AI エージェント Synapse と セマンティックレイヤーの育て方
hiroakis
1
1.1k
AIソロプレナー時代に2ヶ月で20人増員した事業創造会社の開発組織の話
miyatakoji
0
270
protovalidate-es を導入してみた
bengo4com
0
160
ABEMA の Datadog × OTel 基盤、 中から見るか? 外から見るか?
tetsuya28
0
110
Agentic ERPをどう設計するか ー 受発注エージェントを動かす、現場の知見と設計思想ー
recerqainc
1
2k
データ基盤をDataformで整えた話 〜 開発環境を添えて 〜
takapy
0
130
なぜ Platform Engineering の土台に Kubernetes を選ぶのか
r4ynode
1
350
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
250
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Documentation Writing (for coders)
carmenintech
77
5.4k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
160
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Writing Fast Ruby
sferik
630
63k
Transcript
AWS LambdaとLangSmithを使った社 内レポート添削システム Minervaの実装 2024/08/31 機械学習の社会実装勉強会 第38回 熊懐 葵
目次 • Minervaについて • AWS Lambda・LangSmithとは • Minervaの実装 • Minervaの概念図
• Lambda関数(添削機能本体)の実装 • システム環境構築 • Minervaの応用 • プロンプトの改善 • 料金の概算の仕方
Minervaとは AWS LambdaとLangSmithを使った 社内レポート添削システム ※由来…知恵の女神・魔法学校の先生
Minervaが作られた経緯 背景 • 業務でデータ解析レポートを書いている 課題 • レポートのレビューには時間と労力がかかる 解決策 • 社内レポート添削システムを作り、Minervaと命名
• 一回およそ7.5円でレポートを添削 Confluence→ (社内資料共有ツール)
Minervaの使用感 1~2分後、資料のコメン ト欄にレビュー内容が出 力される
目次 • Minervaについて • AWS Lambda・LangSmithとは • Minervaの実装 • Minervaの概念図
• Lambda関数(添削機能本体)の実装 • システム環境構築 • Minervaの応用 • プロンプトの改善 • 料金の概算の仕方
AWS Lambdaとは 概要 • サーバーを管理することなく コードを実行できるコン ピューティングサービス • サーバー管理の手間を省き、 コスト効率の高い開発を可能
にする 特徴 • イベント駆動型: イベントを トリガーとしてコードを実行 する • 従量課金制: 実行時間に応じ て課金され、使用していない 間はコストが発生しない
LangSmithとは 概要 • 大規模言語モデル (LLM) の プロンプトエンジニアリン グを効率化するツール • プロンプトの設計、テスト、
改善をサポートする 特徴 • バージョン管理: 異なるプロ ンプトを保存、比較できる • テスト環境: プロンプトのテ スト、結果の確認が高い自 由度で簡単にできる
目次 • Minervaについて • AWS Lambda・LangSmithとは • Minervaの実装 • Minervaの概念図
• Lambda関数(添削機能本体)の実装 • システム環境構築 • Minervaの応用 • プロンプトの改善 • 料金の概算
Minervaの概念図 Amazon API Gateway AWS Lambda Confluence(社内資料共有アプリ) Document User Bot
/minerva URL • 資料データ • プロンプト • 出力結果
Lambda関数の実装 minerva-impl minerva Document 資料の内容を取得 GPTによるレビュー レビュー結果を投稿 minerva-implを呼び出す Amazon API
Gateway 1 2 3 4
なぜminervaとminerva-implに分けるのか API Gateway minerva Slack 3秒以内にリクエスト 結果が返ってこない といけない Slackの制約 全体処理に1~2分
↓ リクエスト結果を返す API Gateway minerva Slack minerva-impl 全体処理に 1~2分 Slackの制約をクリア リクエスト結果を返す リクエスト送信 リクエスト送信
Lambdaの実装 minerva-impl Document 資料の内容を取得 GPTによるレビュー レビュー結果を投稿 Amazon API Gateway 2
3 4 minerva minerva-implを呼び出す 1
Lambda関数の実装 ❶ minerva: minerva-implを呼び出す • HTTPリクエストデータ • Slack 認証トークン •
資料ページのURL • 環境変数 Slack 認証トークン 用いるデータ • リクエストの認証 • 添削資料のページIDの抽出 • minerva-implを呼び出す • リクエスト結果をslackに返す 処理内容 ▼ リクエストの認証 ▼ ページIDの抽出 資料のURLから ページIDを抽出
Lambda関数の実装 ❶ minerva: minerva-implを呼び出す • HTTPリクエストデータ • Slack 認証トークン •
資料ページのURL • 環境変数 Slack 認証トークン 用いるデータ • リクエストの認証 • 添削資料のページIDの抽出 • minerva-implを呼び出す • リクエスト結果をslackに返す 処理内容 ▼ minerva-implを呼び出す ▼ リクエスト結果の出力
minerva minerva-implを呼び出す 1 Lambdaの実装 GPTによるレビュー レビュー結果を投稿 Amazon API Gateway 3
4 資料の内容を取得 2 Document minerva-impl Confluence API Keyを 発行しておく
Lambda関数の実装 ❷ minerva-impl: 資料の内容の取得 • 添削資料のページID • Confluence API Key
用いるデータ • リクエストの準備 • リクエストの送信 • リクエスト結果を取得 • テキスト情報を抽出 処理内容 ▼ リクエストの準備 ▼ リクエストの送信
Lambda関数の実装 ❷ minerva-impl: 資料の内容の取得 • 添削資料のページID • Confluence API Key
用いるデータ • リクエストの準備 • リクエストの送信 • リクエスト結果を取得 • レポート情報を抽出 処理内容 ▼ リクエスト結果を取得 ▼ レポート情報を抽出
資料の内容を取得 2 minerva minerva-implを呼び出す 1 Lambdaの実装 Document レビュー結果を投稿 Amazon API
Gateway 4 minerva-impl それぞれAPI Keyを 発行しておく GPTによるレビュー 3
• 抽出したレポート情報 • LangSmith API Key • OpenAI API Key
用いるデータ • LangSmithと紐付ける • GPTにプロンプトを投げる • レビュー結果を出力する 処理内容 Lambda関数の実装 ❸ minerva-impl: GPTによるレビュー ▼ LangSmithと紐づける これらの環境変数を設定するだけで 情報が自動的にLangSmithに送られる
• 抽出したレポート情報 • LangSmith API Key • OpenAI API Key
用いるデータ • LangSmithと紐付ける • GPTにプロンプトを投げる • レビュー結果を出力する 処理内容 Lambda関数の実装 ❸ minerva-impl: GPTによるレビュー ▼ GPTにプロンプトを投げ、レビュー結果を出力する 命令+レポート情報 GPTにプロンプトを投げる レビュー結果を出力する
資料の内容を取得 2 minerva minerva-implを呼び出す 1 Lambdaの実装 GPTによるレビュー Amazon API Gateway
3 minerva-impl レビュー結果を投稿 4 Document
Lambda関数の実装 ❹ minerva-impl: レビュー結果を投稿 • GPTのレビュー結果 • Confluence API Key
用いるデータ • リクエストの準備 • リクエストの送信 →資料のコメント欄に レビュー結果が出力される 処理内容 ▼ リクエストの準備 ▼ リクエストの送信
Lambda関数の実装 ❹ minerva-impl:レビュー結果を投稿 • GPTのレビュー結果 • Confluence API key 用いるデータ
• リクエストの準備 • リクエストの送信 →資料のコメント欄に レビュー結果が出力される 処理内容 ▼ レビュー結果が出力される(Confluence画面)
システム環境構築 Amazon API Gateway AWS Lambda Confluence(社内資料共有アプリ) Document User Bot
/minerva URL • 資料データ • プロンプト • 出力結果 1 2
❶Slack ⇄ API Gateway ▼ API Gateway REST APIを作成 ▼
Slack Appを作成 ▼ Appのスラッシュコマンド設定 API Gateway REST APIの エンドポイント
システム環境構築 Amazon API Gateway AWS Lambda Confluence(社内資料共有アプリ) Document User Bot
/minerva URL • 資料データ • プロンプト • 出力結果 1 2
❷API Gateway ⇄ Lambda(minerva) ▼ minervaのトリガーにAPI Gatewayを設定 作成したREST APIをア タッチ
システム環境構築 補足 minerva-implはx84_64 ▼ Lambdaの初期設定 AWS IAMの設定 (Lambdaのアクセス権限) ▼ API
Gateway マッピングテンプレートを設定 SlackのHTTPリクエストのデータ (HTML形式)をJSON形式に変換 その他 AWS CloudWatchも使用
目次 • 自己紹介 • AWS Lambda・Langsmithとは • Minervaの概略 • Minervaの実装
• 環境整備 • Lambda関数(添削機能)の実装 • Minervaの応用 • プロンプトの改善 • 料金の概算の仕方
プロンプトの改善 レポート 資料 プロンプト 以下の指示 に従って添 削して 指示1 指示2 …
LLM 回答 回答 レビュー結果 をコメント 回答の質を上げるにはどうすれば良いか
現状のプロンプトの問題点 レポート 資料 プロンプト 以下の指示 に従って添 削して 指示1 指示2 …
LLM 回答 回答 レビュー結果 をコメント 一つのプロンプトに複数指示があると 指示ごとに回答の質がばらつく
指示ごとにプロンプトを分ける レポート 資料 プロンプト 指示1 指示2 指示3 LLM 回答 回答1
回答2 回答3 レビュー結果 をコメント どのようなプロンプトにすれば良いか
LangSmithがプロンプト改善をサポート Amazon API Gateway AWS Lambda Confluence(社内資料共有アプリ) Document User Bot
/minerva URL • 資料データ • プロンプト • 出力結果 本番環境と同様のデータ、 モデルで簡単に テスト実行ができる
LangSmithがプロンプト改善をサポート プロンプトを調整 ▼ LangSmithのテスト環境でテスト⇄改善 ▼ Lambdaにて完成プロンプトを反映 プロンプト ごとに 回答を生成 回答を
まとめる 非公開の社内資料も 使用可能 プロンプト改善が 一画面で完結
料金の概算 -1,000回/月の場合- • Slack, Confluence, LangSmith(フリープラン): 考慮しない • API Gateway
• 1,000 x 0.00000425 USD = 0.0043 USD • Lambda • 処理時間 5 s/回 • メモリー使用 128 MB/回 = 0.125 GB/回 • 1,000 x 5s x 0.125 GB x 2 x 0.0000166667 USD = 0.02 USD • Open AI API • モデル gpt-4o • 入力 4,000トークン/回 • 出力 2,000トークン/回 • 1,000 x (4,000 x 0.000005 USD + 2,000 x 0.000015 USD) = 50 USD • 合計 約7500 円/月 (ほぼOpenAI APIの使用料) AWS使用料はほぼ かかっていない 1添削あたり7.5円
AWS LambdaとLangSmithを使った社 内レポート添削システム Minervaの実装 ご清聴ありがとうございました