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
Bedrockで遊ぼう! 短期間で色々開発してみた
Search
taiko19xx
August 10, 2024
Technology
1
120
Bedrockで遊ぼう! 短期間で色々開発してみた
taiko19xx
August 10, 2024
Tweet
Share
More Decks by taiko19xx
See All by taiko19xx
Incident Managerでインシデント発生時のエスカレーションを自動化する
taiko19xx
0
200
LambdaカスタムランタイムでPHPでもサーバーレス!
taiko19xx
0
70
IoTっぽいアプリをk3s+Raspberry Piで実行する
taiko19xx
0
300
ハニーポットから見たWebサーバへの攻撃
taiko19xx
0
2.8k
PHPなプロダクトをAmazon ECSで開発運用してる話
taiko19xx
0
1.1k
RaspberryPi+AWSでIoT(っぽ い)GPSロガーを作ってみた
taiko19xx
0
1.5k
PHPからWin32APIをいじってみた
taiko19xx
0
1.6k
Other Decks in Technology
See All in Technology
CNAPPから考えるAWSガバナンスの実践と最適化
nrinetcom
PRO
1
330
カスタムインストラクションでGitHub Copilotをカスタマイズ!
07jp27
6
550
[TechNight #86] Oracle GoldenGate - 23ai 最新情報&プロジェクトからの学び
oracle4engineer
PRO
1
170
信頼性を支えるテレメトリーパイプラインの構築 / Building Telemetry Pipeline with OpenTelemetry
ymotongpoo
9
5k
2025/1/29 BigData-JAWS 勉強会 #28 (re:Invent 2024 re:Cap)/new-feature-preview-q-in-quicksight-scenarios-tried-and-tested
emiki
0
310
Tech Blog執筆のモチベート向上作戦
imamura_ko_0314
0
740
Site Reliability Engineering on Kubernetes
nwiizo
6
4.4k
srekaigi2025-hajimete-ippo-aws
masakichieng
0
240
Japan AWS Jr. Championsがお届けするre:Invent2024のハイライト ~ラスベガスで見てきた景色~
fukuchiiinu
0
1.1k
地方企業がクラウドを活用するヒント
miu_crescent
PRO
1
110
教師なし学習の基礎
kanojikajino
4
360
ソフトウェア開発現代史:製造業とソフトウェアは本当に共存できていたのか?品質とスピードを問い直す
takabow
15
5.3k
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
113
50k
Become a Pro
speakerdeck
PRO
26
5.1k
Six Lessons from altMBA
skipperchong
27
3.6k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
30
2.1k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
3
380
Code Review Best Practice
trishagee
65
17k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Transcript
JAWS-UG 秋田 勉強会@2024/08/10 #jawsug #jawsugtohoku #jawsugakita 木村俊彦 @taiko19xx Bedrockで遊ぼう! 短期間で色々開発してみた
• 木村俊彦 ◦ X: @taiko19xx • 仙台でゲームの会社に勤めてます ◦ Kubernetes(EKS)とGitHub Actionsばっかり触っています
• 技術同人誌サークルの「杜の都の開発室」をやっています • 最近のトピック ◦ 遺伝子検査を受けてみました ◦ 知り合いの作り方がよくわからない 自己紹介
• ここ1ヵ月、Bedrockを使って色々作っていました • その中で得られた知見や方針などを色々お話できればと思います • 作ったものはこちら ◦ https://github.com/taiko19xx/202408_bedrock_apps 概要
• 前日談 • 基本構成と方針 • 作ったものの紹介 • 作ってみてわかったこと 今日の内容
前日談
• 7/5にJAWS-UG 仙台で生成AIのハンズオンがあった • 懇親会で秋田への参加を誘われる • 話すネタどうしようか... • そういえばハンズオンでBedrockの話があったな... 前日談
いい機会なので いろいろ作ってみよう!
基本構成・方針
• Bedrock • Lambda ◦ Node.js 20 / arm64 •
CloudFront ◦ HTML配信用 • S3 ◦ CloudFrontのバックエンド / 画像保存先 • DynamoDB 基本構成
(8/1時点)
• Webアプリを構築 ◦ HTMLはBedrockに生成してもらう • API側はLambda ◦ 関数URLを使用 ◦ 関数は手書き
• BedrockはClaude 3 Haiku / 3.5 Sonnetを使用 ◦ そのためオレゴンかバージニア北部 基本方針
東京リージョンで使えるようになった!!
• Webアプリを構築 ◦ HTMLはBedrockに生成してもらう • API側はLambda ◦ 関数URLを使用 ◦ Lambdaは手書き
• BedrockはClaude 3 Haiku / 3.5 Sonnetを使用 ◦ そのためオレゴンかバージニア北部 • Bedrockも含め全て東京リージョン 基本方針
作ってみたもの
チャットボットくん
• 会話するだけ • 特に調整していないので素の状態 • 履歴はブラウザに保存 • とりあえずということで作ってみた ◦ コンソール入らないで済むので便利
チャットボットくん
マルチ翻訳くん
• 言語自動認識+複数言語への翻訳 • やっていることはほぼAmazon Translator • 20言語ぐらい対応 ◦ 言語コードを送っているだけなのでどんどん増やせる •
こういうツールを使う場面があったのでそれの再現 マルチ翻訳くん
文章校正くん
• 入力した文章を指定したスタイルに校正してくれる ◦ フォーマルな文章をカジュアルに、その逆も • 校正部分にハイライトし、理由も表示してくれる • 前々から欲しいと思っていたので作成 文章校正くん
画像タグ付けくん
• S3にアップロードした画像にタグ付けをする ◦ アップロードはPresigned URL経由 ◦ タグデータはDynamoDBに保存 ◦ タグによる絞り込みも可能 •
これのみデータはAWS側に保存されているため共有 画像タグ付けくん
None
作ってみてわかったこと
• API構築+HTML生成で2〜3時間あれば作れる • HTMLだけでも、API側のモックとしての利用には最適 • 簡単な内部向けツールであればサクッと作れそう スピード感は半端ない
• 書いてあることはやるが、書いてないことはやってくれない • 「いい感じにして」「よしなに」は難しい • プロジェクトのことを何も知らない人に指示するにはどうするのか、と考え るとよさそう • データ構造は文字で書くよりそのまま書いて参照してもらったほうが早い プロンプトは仕様書
• 出力される結果を前もって予想しておく ◦ APIの説明でresultというキーを使ってたらアプリ側の変数と重複し てしまい、変な結果になった • 自分が指示される側であればどうか、を考える ◦ 仕様書と合わせて AIの気持ちになる
• 例えばコード生成を任せるのであれば、ライブラリや技術自体の知識はあ る程度必要 ◦ そもそもの使い方を知らないと調整できない ◦ 間違ってるので直してと言っても100%直る訳ではない • 凝ったことをしたい場合は用語と使われ方・使い方の知識が必要 ◦
データのブラウザへの保存やロード画面の表示など 完全にお任せしない
• 作成したアプリを試しに社内で公開した • 想定外な使われ方をし出して、費用が大変なことになった • それはそれで色々勉強になった • 最悪WAFでIPブロック いたずらに気を付ける
• トークン量に応じた課金のため、トークン量の確認は必須 • 事前にトークン量の算出は難しい ◦ Haikuは気にならないが、Sonnetだとちょっと気になるレベル ◦ インプットとアウトプットで段違いなのも注意 • メトリクスとしては見られるが、モデル毎になる
◦ InputTokenCount / OutputTokenCount • トークン量は呼び出し結果内に含まれる ◦ 個別の計測もカスタムメトリクスで可能 トークン量をよく見る
• 色々作ってみた結果とそこから得た知見の共有でした • スッと作って動かせるのはやはり楽しい • 時間も限られていましたが、色々作りたいものが作れて満足 • アイディアは出そうと思えば無限に出てくる • 生成AIを利用したアプリ作成の知見も得られたので良かったです
• 是非お盆の暇つぶしにいかがでしょうか まとめ
ありがとうございました