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
NuxtHub で作る生成 AI アプリケーション
Search
Seiya Konno
November 04, 2024
Programming
97
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
NuxtHub で作る生成 AI アプリケーション
Seiya Konno
November 04, 2024
More Decks by Seiya Konno
See All by Seiya Konno
About node-canvas (#tng7)
nulltask
0
1.3k
Introduction of WebRTC
nulltask
1
260
Node and Face (Tokyo Node Academy #5)
nulltask
1
3.5k
Kinect Workshop
nulltask
1
170
Introduction of Perfume Hackathon
nulltask
1
460
Other Decks in Programming
See All in Programming
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
690
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
420
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
230
バグを直したら useEffect が消えた
colorful12
3
620
Cloudflare is Agents
chimame
0
170
源内ハンズオン概要編
hideg
0
190
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.7k
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
250
freeeにおけるEvalsの実践例の紹介
freee
PRO
0
120
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
1
1k
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.8k
今さら聞けない .NET CLI
htkym
0
200
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
770
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
570
It's Worth the Effort
3n
188
29k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
BBQ
matthewcrist
89
10k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
The SEO Collaboration Effect
kristinabergwall1
1
520
Building Applications with DynamoDB
mza
96
7.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
420
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
470
Transcript
NuxtHub で作る生成 AI アプリケーション Seiya KONNO - Z1 team, UNIBA
INC. | 2024/11/05 きいてくれ NIGHT
アンケート - Vue.js 使ったことある人 - Nuxt を使ったことがある人 - Cloudflare Workers
を使ったことがある人 - (Next.js / React を使っている人)
アジェンダ 1. NuxtHub とは 2. 作ったアプリのデモ 3. どうやって作ったか 4. 作ってみての課題
5. 質疑応答
NuxtHub とは Nuxt アプリを Cloudflare 上にホスティングするための仕組み - コマンドラインツール - Nuxt
用モジュール - 管理用ダッシュボード 紛らわしいけどいずれも NuxtHub と呼ばれてるので文脈で判断。Cloudflare 憑依 型ホスティングサービス。
NuxtHub とは これを使うとフルスタックの Nuxt アプリが簡単にデプロイできる! - Cloudflare Workers - SQL
Database (Cloudflare D1) - File Storage (Cloudflare R2) - Key-Value Storage - Workers AI - Vector Database 上記の機能を連携済みの Cloudflare アカウントに自動でプロビジョニング、 NuxtHub モジュールが提供する API 経由で操作。
作ったアプリのデモ 入力したプロンプトに基づいて生成 AI を使って画像を生成するアプリ https://nuxthub-ai-image-generator.nuxt.dev/
どうやって作ったか: UI 編 - Nuxt UI + Tailwind CSS を使って
UI を構築 - ここはふつうの Nuxt アプリを作る感覚で OK - 一般的な UI を作る場合は Nuxt UI が速い安い旨い - https://ui.nuxt.com/getting-started
どうやって作ったか: 画像生成編 - フロントエンドに入力されたプロンプトをサーバに送信 - hubAI() に学習モデルとプロンプトを渡して画像生成 - 今回使ったモデルは @cf/black-forest-labs/flux-1-schnell
- 指定するパラメータが少なくて楽 - バリエーションを出すのは不向きっぽい - 生成した画像をホスティングするために hubBlob() を使って R2 に保存
どうやって作ったか: 画像生成編
どうやって作ったか: プロンプト生成編 - せっかくなのでプロンプトも生成 AI で作ってみる - こちらも hubAI() を使ってテキスト生成モデルとプロンプトを指定
- プロンプトはあらかじめ組み込んでおいたものを使用する
どうやって作ったか: プロンプト生成編
どうやって作ったか: プロンプト生成編 - パラメータのチューニングをしないと生成されるプロンプトに偏りが出た - 猫のプロントばかり出る - 今回調整したのは以下のパラメータ - top_k
を増やす - top_p も増やす - temperature を上げる - 上げすぎるとめちゃくちゃな文章が生成されてしまうので 1 ぐらい に抑えた
どうやって作ったか: 保存編 - プロンプトと画像のパスを D1 にデータを保存 - 画像ファイル自体は R2 に保存済みのためパスのみ格納
- SQL で INSERT 文でも良いが今回は Drizzle ORM を使ってみた - Type Safe なのがうれしい
どうやって作ったか: 保存編 保存用のコード 取り出し用のコード
どうやって作ったか: ローカル開発&デプロイ編 - ローカル開発は miniflare がランタイムとして起動 - ローカル用に別途開発環境を準備しなくても勝手にやってくれる - D1,
R2, AI の動作もシミュレート - Nuxt DevTools がとても強力 - DB, KV, R2 に保存された値の参照・書き換えも可能 - NuxtHub のダッシュボードで GitHub repo を紐づけで自動デプロイ - push するごとにビルドしてユニークな URL を生成 - main ブランチに push で本番反映
作ってみての課題 - 画像生成モデルが日本語のプロンプトを正しく取り扱えなかった - Flux-1-schnell モデルの限界? - 画風のタッチを指定するプロンプトが英語だったから? - 他のモデルなら日本語を取り扱えるかも
- https://developers.cloudflare.com/workers-ai/models/ - 最近追加されたマイグレーション機能が正しく動かなかった - ローカル環境からリモート接続でマイグレーションで対応
Any Question?
- 何か思いついたら懇親会で質問してください! - ソースコードも公開しときます - https://github.com/nulltask/nuxthub-ai-image-generator
Thank You.