Harness the Gemini API in your Dart and Flutter Apps【日本語訳】

訳者はじめに

Flutter 3.19とDart 3.3 だけでお腹いっぱいですが、AIを使った開発についての記事「Harness the Gemini API in your Dart and Flutter Apps」がありました。そちらも日本語訳しました。
AIの台頭でプログラムのお仕事どうなるのかしら、という不安もありますが、うまく活用して、より多くのことが、より少ない時間でできるようになればいいですね!(上司に内緒で)

Google AI Dart SDKの紹介

私たちは、Gemini APIのためのGoogle AI Dart SDKのローンチを発表できることに興奮しています。新しいpub.devパッケージであるgoogle_generative_aiサポートリソースを使用すると、Gemini APIとの慣用的なDart統合を通じて、DartおよびFlutterアプリに独自の生成AIベースの機能を組み込むことができます。これにより、単一のコードベースからAndroid、iOS、Web、macOS、Windows、Linux用のインテリジェントでパフォーマンスの高いアプリケーションを構築するための広範な可能性が開かれます。

Google AI Dart SDKを使用すると、以下を簡単に実現できます:

  • 生成AI機能を簡単に統合:最小限のセットアップで、高度なテキスト生成、要約、チャットなどをDartまたはFlutterアプリに追加します。
  • Googleの最も能力が高く汎用的なモデルを活用:Geminiモデルは、Googleの機械学習に関する広範な研究と開発に基づいており、改善し続ける生成AI機能へのアクセスを提供します。
  • AI駆動のアプリ開発を加速:アプリロジックとユーザーエクスペリエンスに集中し、SDKがAIモデルとの相互作用の複雑さを処理します。
  • クロスプラットフォームのAI駆動アプリを簡単に作成:Flutterを使用して、デスクトップ、Web、モバイルアプリケーションで生成AI機能を簡単に作成します。
  • 180か国以上の地域でGemini APIを使用:Gemini APIとGoogle AI Studio(以下で詳述)が利用可能な最新の国と地域のリストを確認してください。

何を構築できるか?

私たちは、生成AIがアプリとビジネスの目標を達成するのに大きな可能性を持っていると信じています。そして、Geminiモデルはマルチモーダル(複数のモダリティ、画像やテキストから情報を処理できる)であるため、非常に創造的になることができます。しかし、アプリ開発者から、そして私たち自身のチーム内からも、よく受ける最初の質問は「Gemini APIを使って実際に何ができるのか?」です。以下は、DartまたはFlutterアプリで作成できる機能のいくつかの例です:

  • テキストの要約:長い記事、研究論文、またはウェブサイトのコンテンツから簡潔な要約を生成します。
  • スマートチャットボット:よりエンゲージメントの高い、人間らしい会話インターフェースを構築し、アプリケーションのユーザーエクスペリエンスを向上させます。
  • ビジュアル検索エンジン:ユーザーが画像をアップロードし、アプリがGemini APIを使用して画像内の内容、スタイル、場合によっては画像の作り方までを説明する。
  • アクセシビリティのための画像説明:アップロードされた画像の詳細なテキスト説明を生成し、視覚障害のあるユーザーを支援します。
  • 図表・チャートの解釈:ユーザーが図表、チャート、グラフの画像をアップロードし、Gemini APIがデータのテキストベースの分析と説明を提供します。

このリストは続くことができますが、可能性はほぼ無限です!

入門

Dartのクイックスタートをチェックして、セットアップ方法に関する詳細なステップバイステップガイドを確認してください。高いレベルでは、以下を行います:

  1. Google AI StudioからGemini APIキーを取得します。このキーを安全に保管してください。コード内に直接キーを含めたり、キーを含むファイルをバージョン管理システムにチェックインすることは強くお勧めしません。開発中は、環境変数としてAPIキーを使用してエミュレータ/シミュレータでアプリを実行するために、flutter run -d [DEVICE NAME] — dart-define=API_KEY=[YOUR API KEY]を使用することをお勧めします。
  2. dart pub add google_generative_aiまたはflutter pub add google_generative_aiを実行して、DartまたはFlutterアプリにGoogle AI Dart SDKを追加します。これにより、pubspec.yamlファイルにgoogle_generative_aiが依存関係として追加されます。
  3. コード内で生成モデルを初期化します:
import 'package:google_generative_ai/google_generative_ai.dart';

final apiKey = Platform.environment['API_KEY'];
if (apiKey

 == null) {
  print('No \\$API_KEY environment variable');
  exit(1);
}

final model = GenerativeModel(model: 'MODEL_NAME', apiKey: apiKey);
  1. さまざまなユースケースを実装するためにGemini APIを使用して探索を開始できます。たとえば、プロンプト入力にテキストと画像の両方が含まれている場合は、gemini-pro-visionモデルとgenerateContentメソッドを使用してテキスト出力を生成します:
import 'dart:io';
import 'package:google_generative_ai/google_generative_ai.dart';

void main() async {
  final apiKey = Platform.environment['API_KEY'];
  if (apiKey == null) {
    print('No \\$API_KEY environment variable');
    exit(1);
  }

  final model = GenerativeModel(model: 'gemini-pro-vision', apiKey: apiKey);
  final (firstImage, secondImage) = await (
    File('image0.jpg').readAsBytes(),
    File('image1.jpg').readAsBytes()
  ).wait;

  final prompt = TextPart("What's different between these pictures?");
  final imageParts = [
    DataPart('image/jpeg', firstImage),
    DataPart('image/jpeg', secondImage),
  ];

  final response = await model.generateContent([
    Content.multi([prompt, ...imageParts])
  ]);

  print(response.text);
}

SDKのさまざまなユースケースの使用方法に関する詳細なガイドと例については、GeminiのAPIドキュメントを調べたり、GitHubリポジトリのDartおよびFlutterサンプルアプリを確認してください。もしくは、DartとFlutterのスニペット用の無料のオープンソースオンラインエディタであるDartPadで構築されたこのサンプルアプリをチェックしてください。generative-ai-dart GitHubリポジトリで問題を報告したり、機能リクエストについて教えてください。

Google AI Studio

SDKと並行して、Google AI Studioは生成モデルを使用したプロトタイピングのためのブラウザベースのIDEです。これにより、ユースケースのためのプロンプトを迅速に反復開発し、アプリ開発で使用するAPIキーを取得できます。GoogleアカウントでGoogle AI Studioにサインインし、無料のクォータを利用してください。これにより、1分間に60リクエストが可能になります。製品品質の向上にご協力いただくため、無料クォータを使用する際は、訓練を受けたレビュアーがGoogle AI Studioの入力と出力にアクセスできる場合があります。このデータは、GoogleアカウントおよびAPIキーから匿名化されます。

私たちは間もなくGoogle AI StudioにDartを追加しますので、発表をお待ちください!これにより、「コードを取得」をクリックし、新しいDartタブを選択(既存のサポートされている言語の横に配置されます)、そして「コピー」をクリックしてIDEに作業を転送することができるようになります。

あなたが構築したものを共有してください!
Geminiを使用して構築したものを見るのを楽しみにしています。たとえば、LeanCodeのチームはGemini APIを使用してarb_translateを構築しました。これは、Flutterアプリでのローカリゼーションを自動的に行う言語翻訳を開発者が実行するのに役立つパッケージです。

Twitter/Xでハッシュタグ#BuildWithGeminiを使用して、あなたが構築しているものを教えてください!