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
97
Bedrockで遊ぼう! 短期間で色々開発してみた
taiko19xx
August 10, 2024
Tweet
Share
More Decks by taiko19xx
See All by taiko19xx
Incident Managerでインシデント発生時のエスカレーションを自動化する
taiko19xx
0
190
LambdaカスタムランタイムでPHPでもサーバーレス!
taiko19xx
0
69
IoTっぽいアプリをk3s+Raspberry Piで実行する
taiko19xx
0
290
ハニーポットから見たWebサーバへの攻撃
taiko19xx
0
2.7k
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
私なりのAIのご紹介 [2024年版]
qt_luigi
1
120
Turing × atmaCup #18 - 1st Place Solution
hakubishin3
0
480
UI State設計とテスト方針
rmakiyama
2
580
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
540
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
290
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
240
MLOps の現場から
asei
6
640
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
160
PHPからGoへのマイグレーション for DMMアフィリエイト
yabakokobayashi
1
170
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
110
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
780
Oracle Cloud Infrastructure:2024年12月度サービス・アップデート
oracle4engineer
PRO
0
180
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
RailsConf 2023
tenderlove
29
940
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Visualization
eitanlees
146
15k
Docker and Python
trallard
42
3.1k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Site-Speed That Sticks
csswizardry
2
190
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Optimising Largest Contentful Paint
csswizardry
33
3k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Automating Front-end Workflow
addyosmani
1366
200k
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を利用したアプリ作成の知見も得られたので良かったです
• 是非お盆の暇つぶしにいかがでしょうか まとめ
ありがとうございました