概要
今回 Google の生成 AI である Gemini を使ってみました。
機能のひとつでもある画像への質問をやってみたので紹介します。
環境 MAC
開発 Flutter
google_generative_ai 0.4.4 (2024/8)
Google AI Studio で API key を取得
https://aistudio.google.com/app/apikey使用するためには API key というものが必要です。
Google AI Studio に行きます(また新しいのが出てきた)
左上にある [Get API key] を押して控えます。
注意
API_KEY は Github に保存しないでください。
無料枠と従量課金があります。個人でテストする分には無料枠で十分そうです。
Gemini 1.5 Flash 無料枠
15 RPM(1分あたりのリクエスト数)
100 万 TPM(1分あたりのトークン数)
1,500 RPD(1日あたりのリクエスト数)
1 時間あたり最大 100 万トークンのストレージが無料
ソースコードの一部
以下はソースコードの一部です。かなりシンプルに使えます。
以前に作った Google MLKit + Tensor Flow ではパラメーターの解析なども必要でした。
import 'package:google_generative_ai/google_generative_ai.dart';
class _MainScreenState extends State<MainScreen> {
String prompt = "Are they the same person?";
File? imageFile1;
File? imageFile2;
Future<void> onGenerate() async {
final model = GenerativeModel(model: 'gemini-1.5-flash', apiKey: apiKey);
final bytes1 = await imageFile1!.readAsBytes();
final bytes2 = await imageFile2!.readAsBytes();
final content = [
Content.multi([
TextPart(prompt),
DataPart('image/png', bytes1),
DataPart('image/png', bytes2),
])
];
final res = await model.generateContent(content);
setState(() {
response = res.text ?? 'none';
});
}
}
↓ 今回のソースの全部は Github にあります。
https://github.com/koji4104/flutter_google_ai_gemini
MAC でエラー
実行しようとするとエラーが出ました。その対処法です。
flutter: -- ClientException with SocketException: Connection failed (OS Error: Operation not permitted, errno = 1), address = generativelanguage.googleapis.com, port = 443, uri=https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent
Application finished.
解決方法
macos/Runner/DebugProfile.entitlements に以下を追記します。
<key>com.apple.security.network.client</key>
<true/>
人を判別してみた
そらそうよ (´・ω・`)
他の人も参戦
ほんまか!?
適当なこと言ってんじゃないよ!
質問を変えてみた
質問を変えてその特徴を聞いてみました。応用すれば何かに使えそうな気がします。
今回はモデルがいらない
以前は Tensor Flow を使ってモデルを作成していました。
モデルの作成はめちゃくちゃ面倒です。
モデルの作成にはトレーニング画像が各100枚以上必要です。しかし今回はモデルを作ってないのです。もうモデル職人もいらない時代になるのでしょうか。
まとめ
Google AI Gemini を使って画像解析を行いました。
今回 AI Studio という新しいものが出てきました。AWS も GCP もどんどん新しいものが登場します。めげずにQiitaで頑張りたいと思います。
生成AIというとまさに生成に目が行きがちですが、今回のように解析もできちゃいます。日本語も使えます。使い方次第では何かできそうな気がします。
これには期待が持てます。機械学習モデルの作成が不要でコードの量も圧倒的に少ない。しかし作りやすい分ライバルも増えるでしょう。その中で中小企業の私は隙間産業を狙っていきたいと思います。