flutter_ai_toolkit
適用於行動、桌面和網頁的 Flutter 應用的 AI 聊天小工具,支援文字、圖片和語音輸入。
flutter/ai open-source repository details.
^0.3.5+2^1.1.0^3.12.2{"sdk":"flutter"}^0.4.2^1.0.7^0.2.0^8.1.0^1.2.2^2.0.0^1.1.0^6.3.2^4.5.3^1.8.0^6.0.0{"sdk":"flutter"}以下為英文專案原文快照,最新內容請造訪 GitHub。
package:flutter_ai_toolkit pub package package publisher
Hello and welcome to the Flutter AI Toolkit!
The AI Toolkit is a set of AI chat-related widgets to make it easy to add an AI chat window to your Flutter app. The AI Toolkit is organized around an abstract LLM provider API that makes it easy to swap out the LLM provider that you'd like your chat provider to use. Out of the box, it comes with support for one LLM provider integration: Firebase AI.
Installation
Add the following dependencies to your pubspec.yaml file:
$ flutter pub add flutter_ai_toolkit firebase_ai firebase_core
Configuration
To use Firebase AI in your project, follow the steps described in Get started with the Gemini API using the Firebase AI Logic SDKs.
After following these instructions, you're ready to use Firebase AI in your Flutter app. Start by initializing Firebase:
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_vertexai/firebase_ai.dart';
import 'package:flutter_ai_toolkit/flutter_ai_toolkit.dart';
// Other app imports...
import 'firebase_options.dart'; // Generated by `flutterfire config`.
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
runApp(const App());
}
// Implementation of App and other widgets...
With Firebase properly initialized in your Flutter app, you're now ready to create an instance of the Firebase provider:
class ChatPage extends StatelessWidget {
const ChatPage({super.key});
@override
Widget build(BuildContext context) => Scaffold(
appBar: AppBar(title: const Text(App.title)),
body: LlmChatView(
provider: FirebaseProvider(
model: FirebaseAI.vertexAI().generativeModel(
model: 'gemini-2.0-flash'
),
),
),
);
}
The FirebaseAI class comes from the firebase_ai package. The AI Toolkit
provides the FirebaseProvider class to expose Firebase AI to the
LlmChatView. Note that you provide a model name that corresponds to one of
the available model names.
For a complete usage example, check out the vertex.dart sample.
Set up device permissions
To enable your users to take advantage of features like voice input and media attachments, ensure that your app has the necessary permissions:
To enable network access on macOS, add the following to your *.entitlements
files:
<plist version="1.0">
<dict>
...
<key>com.apple.security.network.client</key>
<true/>
</dict>
</plist>
To enable network access on Android, ensure that your AndroidManifest.xml file contains the following:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
...
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
Microphone access:
To enable voice input for users, update configs according to the
permission and setup instructions for package:record.
File selection:
To enable users to select and attach files,
follow the usage instructions for package:file_selector.
Image selection:
To enable users to take or select a picture from their device, refer to
the installation instructions for package:image_picker.
To run the example apps in the example/lib directory, first replace the
example/lib/firebase_options.dart file by running flutterfire config (you
may need to manually delete this file first). The provided
firebase_options.dart file is a placeholder for configuration needed by the
examples.
The v0.9.8 release contained breaking changes. If you have code that uses a version prior to that, please see the migration notes.
As you use this package, please log issues and feature requests as well as submit any code you'd like to contribute. We want your feedback and contributions to ensure that the AI Toolkit is as robust and useful as it can be for your real-world apps.