11
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ChatGPTに料理のレシピ・サムネイル画像を作成してもらうアプリを作ってみた

Last updated at Posted at 2023-09-27

はじめに

画像生成AIと、ChatGPTを組み合わせたアプリを作ってみたくて、
料理の画像+レシピの生成Webアプリを開発しました。

画像生成部分のライブラリに変更があり、2023/11/24現在動いておりません。

あまりデザインは凝っていません
特にレスポンシブ対応は甘いです

レスポンスは早くないですが、ご自由に遊んでください~!
(画像生成のクレジットが枯渇したら動かなくなりますが、ご容赦ください)

技術スタック・構成

vercelにデプロイしており、バックエンドにはAWS Lambdaを使っています。
prismaをlambda layerに生成して、lambdaから呼び出す形で利用しています。

ざっくり解説

  1. ChatGPTに料理のレシピを生成させる

  2. ChatGPTにそのレシピを基に画像生成するためのプロンプトを生成させる

  3. Dream StudioのAPIで画像を生成させています。

  4. 生成したレシピ・画像・プロンプトを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とはおさらばだぁ!

最後に

意外とおいしそうでした

カレー
image.png

11
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?