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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
taiko19xx
August 10, 2024
Technology
160
1
Share
Bedrockで遊ぼう! 短期間で色々開発してみた
taiko19xx
August 10, 2024
More Decks by taiko19xx
See All by taiko19xx
Incident Managerでインシデント発生時のエスカレーションを自動化する
taiko19xx
0
270
LambdaカスタムランタイムでPHPでもサーバーレス!
taiko19xx
0
85
IoTっぽいアプリをk3s+Raspberry Piで実行する
taiko19xx
0
360
ハニーポットから見たWebサーバへの攻撃
taiko19xx
0
3k
PHPなプロダクトをAmazon ECSで開発運用してる話
taiko19xx
0
1.3k
RaspberryPi+AWSでIoT(っぽ い)GPSロガーを作ってみた
taiko19xx
0
1.7k
PHPからWin32APIをいじってみた
taiko19xx
0
1.8k
Other Decks in Technology
See All in Technology
AWS DevOps Agent or Kiro の使いどころを考える_20260402
masakiokuda
0
120
AI時代のIssue駆動開発のススメ
moongift
PRO
0
320
やさしいとこから始めるGitHubリポジトリのセキュリティ
tsubakimoto_s
3
2.1k
AgentCoreとLINEを使った飲食店おすすめアプリを作ってみた
yakumo
2
270
タスク管理も1on1も、もう「管理」じゃない - KiroとBedrock AgentCoreで変わった“判断の仕事”
yusukeshimizu
0
150
QA組織のAI戦略とAIテスト設計システムAITASの実践
sansantech
PRO
1
270
非同期・イベント駆動処理の分散トレーシングの繋げ方
ichikawaken
1
250
脳が溶けた話 / Melted Brain
keisuke69
1
1.1k
パワポ作るマンをMCP Apps化してみた
iwamot
PRO
0
260
Datadog で実現するセキュリティ対策 ~オブザーバビリティとセキュリティを 一緒にやると何がいいのか~
a2ush
0
180
Move Fast and Break Things: 10 in 20
ramimac
0
100
不確実性と戦いながら見積もりを作成するプロセス/mitsumori-process
hirodragon112
1
160
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
440
The Cult of Friendly URLs
andyhume
79
6.8k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
WENDY [Excerpt]
tessaabrams
9
37k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
290
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.5k
30 Presentation Tips
portentint
PRO
1
260
Information Architects: The Missing Link in Design Systems
soysaucechin
0
850
GraphQLとの向き合い方2022年版
quramy
50
14k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
160
Between Models and Reality
mayunak
2
250
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を利用したアプリ作成の知見も得られたので良かったです
• 是非お盆の暇つぶしにいかがでしょうか まとめ
ありがとうございました