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
熊懐葵
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
150
Claude Codeで進めるAWSリソースのTerraform移行
aoikumadaki
0
110
n8nで定期成果報告の資料づくりを自動化する
aoikumadaki
0
260
LangGraphとFlaskを用いた社内資料検索ボットの実装④GithubRetriever構築編
aoikumadaki
0
120
LangGraphとFlaskを用いた社内資料検索ボットの実装③アプリケーション構築編
aoikumadaki
0
170
LangGraphとFlaskを用いた社内資料検索ボットの実装②Retriever構築編
aoikumadaki
0
260
LangGraphとFlaskを用いた社内資料検索ボットの実装①AIエージェント構築編
aoikumadaki
0
490
StreamlitとLangChainを使った表画像OCRアプリの実装
aoikumadaki
3
930
LangChainでデータ分析エージェントを作ってみる
aoikumadaki
0
380
Other Decks in Technology
See All in Technology
そこにあるから地図ができる~位置を示す"モノ"を愉しむ~ - Interface 2026年6月号GPS特集オフ会 / interface_202606_GPS_offline
sakaik
1
160
認証認可だけじゃない! ID管理の構成要素と ライフサイクルを意識しよう
ritou
1
430
データレイクの「見えない問題」を可視化する
sansantech
PRO
1
260
勉強会企画をアプリで構造化してみた 〜そこで見えた、AIとの付き合い方〜 / I've structured a study group plan using an app.
pauli
0
250
SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
a_ono
0
160
Why is RC4 still being used?
tamaiyutaro
0
270
なぜ人は自分のプロジェクトを 「なんちゃってアジャイル」と 自嘲するのか
kozotaira
0
220
ご挨拶「10周年を迎える共創ラボのこれまでとこれから」
iotcomjpadmin
0
170
Text-to-SQLをAgentCoreで実現し、生成されるSQLの精度を定量的に評価する
yakumo
2
300
どうして今サーバーサイドKotlinを選択したのか
nealle
0
170
Multi-Agent並列開発を 安全に回すための技術 / Technology for Safely Multi-Agent Parallel Development
tooppoo
0
240
フロントエンドイチゲキ実装 ― Figmaデザインと画面設計書からAIに実装・テストを書かせるための”下ごしらえ” / 20260627 Yusuke Mazuka
shift_evolve
PRO
0
120
Featured
See All Featured
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
How to build a perfect <img>
jonoalderson
1
5.8k
Designing for Performance
lara
611
70k
Visualization
eitanlees
152
17k
Music & Morning Musume
bryan
47
7.3k
How to make the Groovebox
asonas
2
2.2k
Un-Boring Meetings
codingconduct
0
330
How to Talk to Developers About Accessibility
jct
2
270
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
190
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.8k
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の実装 ご清聴ありがとうございました