はじめに
このたび、カロリーやトレーニング記録、体重記録などボディメイクで必要な機能がある「ボディノート」というアプリをリリースしました。
このアプリを開発する上で商品の栄養成を画像で撮ってカロリーなどの栄養として記録したいと思いました。
- Android
- iOS
画像認識でやったこと
画像認識を利用して、下記のようないろんな栄養成分の情報を画像で入力しなくても反映できるようになっています
!
AIを使っているので、これ以外にも英語の栄養成分なども読み取ってくれます
使用した技術
アプリの構成は下記のような形です
| 項目 | 使用技術 |
|---|---|
| iOS/Android | Flutter |
| データベース | Drift (SQLite) |
| 画像認識API | 自作API (Express + Genkit) |
なぜGenkitを使ったか?
単純にAPI実装→デプロイまでが全てチュートリアルがしっかりあるのですぐに開発できる!!
Genkitに関してはチュートリアル、express.js、cloud-runへのデプロイが全てドキュメントに載っているため、こちらを全て参考にして、APIを作成しました。
- チュートリアル
- express.jsへの導入
- サーバーへのデプロイ
チュートリアルのない部分の実装については、
画像ファイルをフォームデータで受け取りたいためにmulterライブラリを使用してフォームデータを扱えるようにしました。
作ってみてのメリット
- チュートリアルが充実しているため、チュートリアルに従ってさえいればAIを使ったAPIなどの作成がとても簡単にできました
- 扱えるAIのモデルが豊富(Google、 OpenAI、 Anthropic、OllamaのAI)なので、意図通りにならなければすぐに切り替えることができる
- 専用の開発者用のUIが存在するため、いちいちリクエストを投げたりしなくてもこのUIを使えば手っ取り早く確認ができる