Slide 1

Slide 1 text

AWSの生成AI「Amazon Bedrock」入門&LT会! Bun & Honoで始めるAmazon Bedrock入門 -完全版- 2023/10/27 渡邉 洋平 1

Slide 2

Slide 2 text

自己紹介 渡邉 洋平(watany) 所属とか: NTTテクノクロス株式会社 JAWS-UG東京 最近の悩み: 今回軽い気持ちで参加したけど、これ二週間後のJAWS-UG横浜用 のネタや 2

Slide 3

Slide 3 text

Bedrock GA! Full-Managedな基盤モデルのサービス PlaygroundやWorkshopは実施しましたか? 君たちはどう実装するか(画像略) ChatGPT likeなシステム システムにAPIとして組み込む ←今回 3

Slide 4

Slide 4 text

LLM + AWS王道構成 Python + Langchain 右の本は神 Bedrock Claude2、AWS Integration API Gateway + Lambda 王道のサーバレスAPI構成 4

Slide 5

Slide 5 text

王道構成……実は気になるとこ ※別に対立煽りではない Python 環境構築や型システム周りに不満はないか? Langchain アプデ早過ぎ。商用に耐えられるか? API Gateway 実は設定が複雑で変に時間を取られないか? Lambda +API Gatewayだと30秒しか持たない…… Functions URLはWAFがなァ 5

Slide 6

Slide 6 text

新たな選択肢を増やしてみよう 言語:Typescript 強めの型システム+利用者の多さ 対BedrockはあえてのSDK ローレベルでLLMを操作する人はLangchain剝がしてることも フレームワーク:AWS CDK & Hono どちらもTypescriptで一本化 IaC: AWS CDK Web API : Hono インフラ:App Runner + Docker WAFもドメイン周りも大幅強化の2023年 Dockerを載せて公開するだけなら、ほぼサーバレスAPI(諸説あり) 6

Slide 7

Slide 7 text

まあポジショントークなので話半分に 聞いてください 自己紹介で書いてなかったこと CDK Contributer(50件くらい) Hono Contributer(20件くらい) 最近の趣味記事 右記 Zennで公開した、この記事を下敷きにして います。 Bun & Honoで始めるAmazon Bedrock入門 https://zenn.dev/watany/articles/ b82029522c762c 7

Slide 8

Slide 8 text

それでは……実装 8

Slide 9

Slide 9 text

Bun TypeScript/JavaScript Runtime Typescriptネイティブの実行環境を爆速で作れる。 環境に限らずすべてが速い。 かわいい 9

Slide 10

Slide 10 text

Bun 環境の作り方 Node18以降が苦手なAmazon Linux2でも動く(重要) 10

Slide 11

Slide 11 text

Hono Small, Simple, and Ultrafast web framework. Express ライクで使いやすい Adaptorという仕組みで、動くRuntime/Platformが多い。 AWS Lambdaでも、Lambda@Edgeでも 私も色々パッチ入れてる 11

Slide 12

Slide 12 text

Hono の基本形 これが基本形。 importとエントリポイントを変えれば、可搬性が高い 12

Slide 13

Slide 13 text

SDK (InvokeModel) 注:PropmtのI/Fが適当 13

Slide 14

Slide 14 text

SDK (InvokeModelWithResponseStream) いわゆる「ヌルヌル返すやつ」 14

Slide 15

Slide 15 text

Bun + Docker 公式ImageでDistroless化も簡単 15

Slide 16

Slide 16 text

App Runner CDKでスッと書く 16

Slide 17

Slide 17 text

Bedrockを扱うためのAPI……完成! ここまで書いた素材で基本動く。 省いた詳細はこれ読もう Bun & Honoで始めるAmazon Bedrock入門 https://zenn.dev/watany/articles/b82029522c762c Docker(App Runner)+Honoなら、BunでもDenoでもNode.jsでも動く https://zenn.dev/watany/articles/194e31331a25be 17

Slide 18

Slide 18 text

想定問答 Bunはまだ使うの怖い Nodejs or Denoでどうか? App Runnerに抵抗感がある 実はStreamサポートはアンオフィシャル HonoならLambdaでもLambda@EdgeでもECSでも動く 18

Slide 19

Slide 19 text

まとめ JavaScript/TypeScript主戦場の人でもBedrockできる。 App RunnerもLambdaも選択肢になる。 みんなの非「王道構成」も、アウトプットして!! 19

Slide 20

Slide 20 text

出典 ChatGPT/LangChainによるチャットシステム構築[実践]入門 https://gihyo.jp/book/2023/978-4-297-13839-4 Bun https://bun.sh/ Hono https://hono.dev/ 20