0%

【文章翻譯】Harness the Gemini API in your Dart and Flutter Apps

【文章內容使用 Gemini 1.5 Pro 自動產生】

介紹 Google AI Dart SDK

我們很興奮地宣布推出 Google AI Dart SDK,用於 Gemini API。新的 pub.dev 套件,google_generative_ai,以及 支援資源 讓您可以透過與 Gemini API 的慣用 Dart 整合,將您自己的基於生成式 AI 的功能建立到 Dart 和 Flutter 應用程式中。它為從單一程式碼庫為 Android、iOS、網頁、macOS、Windows 和 Linux 建立智慧、高效能的應用程式開闢了廣泛的可能性。

使用 Google AI Dart SDK,您可以:

  • 輕鬆整合生成式 AI 功能:透過最少的設定,將進階文字生成、摘要、聊天等功能添加到您的 Dart 或 Flutter 應用程式中。
  • 利用 Google 目前最具能力和通用性的模型:Gemini 模型汲取了 Google 在機器學習方面的廣泛研究和開發成果,讓您可以使用持續改進的生成式 AI 功能。
  • 加速您的 AI 驅動應用程式開發:專注於您的應用程式邏輯和使用者體驗,而 SDK 則處理與 AI 模型互動的複雜細節。
  • 建立跨平台的 AI 驅動應用程式:使用 Flutter,輕鬆地在桌面、網頁和行動應用程式中建立生成式 AI 功能。
  • 在 180 多個國家和地區使用 Gemini API:查看 可用區域 以獲取 Gemini API 和 Google AI Studio(以下將進一步說明)目前可用的國家和地區清單。

您可以建立什麼?

我們相信生成式 AI 具有巨大潛力,可以幫助您實現應用程式和業務目標。由於 Gemini 模型是多模態的(它能夠處理來自多種方式的資訊,包括圖片和文字),因此它讓您發揮極大的創造力。然而,我們經常從應用程式開發人員那裡(甚至從我們自己的團隊內部)得到的第一个問題是「我實際上可以使用 Gemini API 做些什麼?」以下是一些您可能為您的 Dart 或 Flutter 應用程式建立的功能範例:

  • 文字摘要:從文字輸入中生成長文章、研究論文或網站內容的簡潔摘要。
  • 智慧聊天機器人:建立更具吸引力且更像人類的對話介面,增強您的應用程式中的使用者體驗。
  • 視覺搜尋引擎:使用者可以上傳圖片,應用程式使用 Gemini API 傳回圖片中內容、樣式,甚至如何製作圖片中內容的描述。
  • 為無障礙使用生成圖片描述:生成上傳圖片的詳細文字描述,以幫助視障使用者。
  • 圖表和圖表解析:使用者可以上傳圖表、圖表或圖形的圖片,Gemini API 可以提供資料的文字分析和說明。

這個清單可以一直列下去,因為可能性幾乎是無限的!

A screenshot of the Flutter sample app that uses the Google AI Dart SDK
使用 Google AI Dart SDK 的 Flutter 範例應用程式的螢幕截圖

入門

查看 Dart 快速入門 以獲取有關如何建立設定的詳細分步指南。總體而言,以下是您將執行的操作:

  1. 從 Google AI Studio 獲取 Gemini API 金鑰。確保此金鑰安全。我們強烈建議您不要將金鑰直接包含在您的程式碼中,也不要將包含金鑰的文件检入版本控制系統。在開發過程中,我們建議使用 flutter run -d [DEVICE NAME] — dart-define=API_KEY=[YOUR API KEY] 在模擬器/模擬器中運行應用程式,使用您的 API 金鑰作為環境變數。
  2. 透過分別運行 dart pub add google_generative_aiflutter pub add google_generative_ai,將 Google AI Dart SDK 添加到您的 Dart 或 Flutter 應用程式中。這會將 google_generative_ai 添加為 pubspec.yaml 檔案中的相依性。
  3. 在您的程式碼中初始化生成式模型:
1
2
3
4
5
6
7
8
9
10
import 'package:google_generative_ai/google_generative_ai.dart';

// 將您的 API 金鑰作為環境變數存取(見上述第一步)
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 方法,以生成文字輸出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import 'dart:io';

import 'package:google_generative_ai/google_generative_ai.dart';

void main() async {
// 將您的 API 金鑰作為環境變數存取(見上述第一步)
final apiKey = Platform.environment['API_KEY'];
if (apiKey == null) {
print('No $API_KEY environment variable');
exit(1);
}
// 對於文字和圖片輸入(多模態),使用 gemini-pro-vision 模型
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);
}

探索 Gemini API 文檔,並查看 GitHub 儲存庫中的 Dart 和 Flutter 範例應用程式,以獲取有關如何為各種用例使用 SDK 的詳細指南和範例,或者在 DartPad 中的此範例應用程式 中查看,DartPad 是用於 Dart 和 Flutter 片段的免費開源線上編輯器,現在使用 Flutter 建立。請在 generative-ai-dart GitHub 儲存庫 中報告任何問題,或告訴我們有關功能要求。

Google AI Studio

除了 SDK 之外,Google AI Studio 是一個基於瀏覽器的 IDE,用於使用生成式模型進行原型設計。它讓您可以快速迭代以開發用例的提示,然後獲取 API 金鑰以在您的應用程式開發中使用。您可以使用您的 Google 帳戶登入 Google AI Studio,並利用免費配額,允許每分鐘 60 次請求。為了幫助我們提高產品品質,當您使用免費配額時,您的 Google AI Studio 輸入和輸出可能會被訓練有素的審閱者存取。這些資料會與您的 Google 帳戶和 API 金鑰脱钩。

我們將很快將 Dart 添加到 Google AI Studio,請密切關注我們的公告!這將讓您可以簡單地點擊「取得程式碼」,選擇新的 Dart 標籤(它將與現有支援的語言並列),然後「複製」Dart 程式碼以將您的工作傳輸到您選擇的 IDE。

A screenshot of Google AI Studio
Google AI Studio

分享您的成果!

我們期待看到您使用 Gemini 建立的成果,例如 LeanCode 團隊使用 Gemini API 建立的 arb_translate。它是一個套件,可以幫助開發人員自動執行語言翻譯,簡化 Flutter 應用程式中的本地化。

在 Twitter/X 上使用標籤 #BuildWithGemini 告訴我們您正在建立什麼!


在您的 Dart 和 Flutter 應用程式中利用 Gemini API 最初發佈在 Flutter 上的 Medium,人們在那裡透過突出顯示和回應這個故事來繼續討論。