はじめに
画像生成AIと、ChatGPTを組み合わせたアプリを作ってみたくて、
料理の画像+レシピの生成Webアプリを開発しました。
画像生成部分のライブラリに変更があり、2023/11/24現在動いておりません。
あまりデザインは凝っていません
特にレスポンシブ対応は甘いです
レスポンスは早くないですが、ご自由に遊んでください~!
(画像生成のクレジットが枯渇したら動かなくなりますが、ご容赦ください)
技術スタック・構成
vercelにデプロイしており、バックエンドにはAWS Lambdaを使っています。
prismaをlambda layerに生成して、lambdaから呼び出す形で利用しています。
ざっくり解説
-
ChatGPTに料理のレシピを生成させる
-
ChatGPTにそのレシピを基に画像生成するためのプロンプトを生成させる
-
Dream StudioのAPIで画像を生成させています。
-
生成したレシピ・画像・プロンプトをprismaを利用して、vercelのstorage(PostgreSQL)に保存
AWS環境はaws cdkでデプロイしており、GitHub Actionsで自動デプロイを組んでいます
Prismaとは?
Prismaは、Node.jsとTypeScriptのための次世代のORM(Object-Relational Mapping)ツールです。
データベースとのやりとりを抽象化し、開発者がより簡単にデータベース操作を行えるように設計されています。
RubyOnRailsで言うところのActiveRecordですね!
主な特徴
〇 型安全
PrismaはTypeScriptとの統合が深く、データベースのスキーマから自動的に型を生成します。これにより、コード内でのデータベース操作が型安全になります。
〇 Prisma Client:
自動生成されるクライアントライブラリで、データベースへのクエリを簡単に行えます。
全件取得: .findMany()
レコード作成: .create()
...etc
もちろん型も効いてます
〇 Prisma Migrate:
データベースのマイグレーションをサポートするツール。データベースのスキーマの変更を管理し、適用することができます。:
Schemaファイルを変更し、prisma migrateを実行すると、データベースのマイグレーションをすることができます。
履歴として、migrations/**/migration.sqlが作成され、中に実行SQLが記録されます
〇 Prisma Studio:
モダンなGUIを持つデータベースエディタ。データベースの内容を直接閲覧・編集することができます。:
A5m2や、DBeaverとはおさらばだぁ!
最後に
意外とおいしそうでした