概要
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F253995%2F3da301e7-8733-e712-f516-91c025578406.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=d5ff757aac90eab0b34094e5690499ca)
今回 Google の生成 AI である Gemini を使ってみました。
機能のひとつでもある画像への質問をやってみたので紹介します。
環境 MAC
開発 Flutter
google_generative_ai 0.4.4 (2024/8)
Google AI Studio で API key を取得
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F253995%2F91f53e07-d66f-a60b-f01b-3e60bf791f0e.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=480dc16249461d5515cf244c347346e7)
使用するためには 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/>
人を判別してみた
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F253995%2Ffc8498cb-728a-7788-c7f2-10d3dad41dea.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ffe34f509327d153d2758b1127a99e60)
そらそうよ (´・ω・`)
他の人も参戦
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F253995%2F564534a9-4287-c2a4-251d-53ef1491fa78.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=763a6234889bf9cb375304991b7ee777)
ほんまか!?
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F253995%2Fa9a15af4-64db-9dd2-6e0d-c755231d65b5.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=8aeb7cd43bbc88bcdb97df9ce6774d58)
適当なこと言ってんじゃないよ!
質問を変えてみた
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F253995%2F5e871058-e39f-c028-63db-2001e0f418fb.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ab63e70f5600c697a1d437caceb03c4d)
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F253995%2F9b340c93-7223-1703-4cd5-cd97a6d0dced.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=400e57f87d33cb9ce36077bc4fca5d79)
質問を変えてその特徴を聞いてみました。応用すれば何かに使えそうな気がします。
今回はモデルがいらない
以前は Tensor Flow を使ってモデルを作成していました。
モデルの作成はめちゃくちゃ面倒です。
モデルの作成にはトレーニング画像が各100枚以上必要です。しかし今回はモデルを作ってないのです。もうモデル職人もいらない時代になるのでしょうか。
まとめ
Google AI Gemini を使って画像解析を行いました。
今回 AI Studio という新しいものが出てきました。AWS も GCP もどんどん新しいものが登場します。めげずにQiitaで頑張りたいと思います。
生成AIというとまさに生成に目が行きがちですが、今回のように解析もできちゃいます。日本語も使えます。使い方次第では何かできそうな気がします。
これには期待が持てます。機械学習モデルの作成が不要でコードの量も圧倒的に少ない。しかし作りやすい分ライバルも増えるでしょう。その中で中小企業の私は隙間産業を狙っていきたいと思います。