Flutter AI生成插件generate_ai_dart的使用
Flutter AI生成插件generate_ai_dart的使用
Google AI SDK for flutter
Google AI客户端SDK为Flutter开发者提供了使用谷歌最先进的生成式AI模型(如Gemini)来构建AI功能和应用的能力。此SDK支持以下用例:
- 仅从文本输入生成文本
- 从文本和图像输入生成文本(多模态)
- 构建多轮对话(聊天)
例如,只需几行代码,你就可以访问Gemini的多模态能力,从文本和图像输入生成文本:
const key = "你的API密钥";
final config = generationConfig((builder) {
builder.temperature = 0.7;
});
final model = GenerativeModel(Model.geminiPro, key, generationConfig: config);
model.generateContentFromText("什么是Flutter?").then((value) => print(value.text));
尝试示例Flutter应用
此仓库包含一个演示示例应用,展示了如何使用SDK访问并利用Gemini模型进行各种用例。
安装和使用
在你的Flutter项目中添加依赖项 flutter pub add generate_ai_dart
。
示例代码
以下是示例应用的代码:
import 'package:flutter/material.dart';
import 'ChatExample.dart'; // 聊天示例
import 'GeminiProExample.dart'; // Gemini Pro 示例
import 'VisionProExample.dart'; // Gemini ProVision 示例
void main() {
runApp(const MaterialApp(
home: MainPage(),
debugShowCheckedModeBanner: false,
));
}
class MainPage extends StatelessWidget {
const MainPage({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('导航'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text("Gemini ProVision 示例"),
ElevatedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => const VisionProExample()),
);
},
child: const Text('测试'),
),
const SizedBox(height: 20),
const Text("Gemini Pro 示例"),
ElevatedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => const GeminiProExample()),
);
},
child: const Text('测试'),
),
const Text("聊天 示例"),
ElevatedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => const ChatPage()),
);
},
child: const Text('测试'),
),
],
),
),
);
}
}
详细示例
VisionProExample 示例
import 'package:flutter/material.dart';
import 'package:generate_ai_dart/generate_ai_dart.dart';
class VisionProExample extends StatefulWidget {
[@override](/user/override)
_VisionProExampleState createState() => _VisionProExampleState();
}
class _VisionProExampleState extends State<VisionProExample> {
String result = "";
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Gemini ProVision 示例"),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () async {
const key = "你的API密钥";
final config = generationConfig((builder) {
builder.temperature = 0.7;
});
final model = GenerativeModel(Model.geminiPro, key, generationConfig: config);
final response = await model.generateContentFromText("描述这张图片的内容", image: "path/to/image");
setState(() {
result = response.text;
});
},
child: Text("生成文本"),
),
SizedBox(height: 20),
Text(result),
],
),
),
);
}
}
GeminiProExample 示例
import 'package:flutter/material.dart';
import 'package:generate_ai_dart/generate_ai_dart.dart';
class GeminiProExample extends StatefulWidget {
[@override](/user/override)
_GeminiProExampleState createState() => _GeminiProExampleState();
}
class _GeminiProExampleState extends State<GeminiProExample> {
String result = "";
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Gemini Pro 示例"),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () async {
const key = "你的API密钥";
final config = generationConfig((builder) {
builder.temperature = 0.7;
});
final model = GenerativeModel(Model.geminiPro, key, generationConfig: config);
final response = await model.generateContentFromText("什么是Flutter?");
setState(() {
result = response.text;
});
},
child: Text("生成文本"),
),
SizedBox(height: 20),
Text(result),
],
),
),
);
}
}
ChatPage 示例
import 'package:flutter/material.dart';
import 'package:generate_ai_dart/generate_ai_dart.dart';
class ChatPage extends StatefulWidget {
[@override](/user/override)
_ChatPageState createState() => _ChatPageState();
}
class _ChatPageState extends State<ChatPage> {
List<String> chatHistory = [];
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("聊天 示例"),
),
body: Column(
children: [
Expanded(
child: ListView.builder(
itemCount: chatHistory.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(chatHistory[index]),
);
},
),
),
Padding(
padding: EdgeInsets.all(8.0),
child: Row(
children: [
Expanded(
child: TextField(
onSubmitted: (text) async {
setState(() {
chatHistory.add("User: $text");
});
const key = "你的API密钥";
final config = generationConfig((builder) {
builder.temperature = 0.7;
});
final model = GenerativeModel(Model.geminiPro, key, generationConfig: config);
final response = await model.generateContentFromText(text);
setState(() {
chatHistory.add("AI: ${response.text}");
});
},
decoration: InputDecoration(hintText: "输入消息..."),
),
),
IconButton(
icon: Icon(Icons.send),
onPressed: () {},
),
],
),
),
],
),
);
}
}
更多关于Flutter AI生成插件generate_ai_dart的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter AI生成插件generate_ai_dart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
generate_ai_dart
是一个用于在 Flutter 项目中生成 AI 相关代码的插件。这个插件可以帮助开发者快速生成与 AI 功能相关的 Dart 代码,从而加速开发过程。以下是如何使用 generate_ai_dart
插件的基本步骤和示例。
1. 安装插件
首先,你需要在 pubspec.yaml
文件中添加 generate_ai_dart
插件的依赖。
dependencies:
flutter:
sdk: flutter
generate_ai_dart: ^1.0.0 # 请确保使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 导入插件
在你需要使用 AI 功能的 Dart 文件中导入 generate_ai_dart
插件。
import 'package:generate_ai_dart/generate_ai_dart.dart';
3. 使用插件生成代码
generate_ai_dart
插件通常提供了一些方法来生成 AI 相关的代码,例如生成模型、服务、API 调用等。
示例 1: 生成 AI 模型
假设你需要生成一个用于文本生成的 AI 模型,可以使用 generateTextModel
方法。
void main() {
// 生成文本生成模型
var textModel = generateTextModel(
modelName: 'TextGenerationModel',
input: 'String',
output: 'String',
);
print(textModel);
}
示例 2: 生成 API 调用
如果你需要通过 API 调用 AI 服务,可以使用 generateApiCall
方法。
void main() {
// 生成 API 调用代码
var apiCall = generateApiCall(
apiName: 'TextGenerationAPI',
endpoint: 'https://api.example.com/generate',
method: 'POST',
parameters: {'text': 'String'},
responseType: 'String',
);
print(apiCall);
}
4. 运行生成的代码
生成的代码可以直接在 Flutter 项目中使用。你可以将其复制到你的项目中,并根据需要进行修改。
5. 自定义生成器
generate_ai_dart
插件通常允许你自定义生成器,以满足特定的需求。你可以通过插件提供的配置选项来调整生成的代码。
void main() {
// 自定义生成器
var customGenerator = CustomGenerator(
modelName: 'CustomModel',
input: 'String',
output: 'String',
additionalParameters: {'param1': 'String', 'param2': 'int'},
);
var customModel = customGenerator.generate();
print(customModel);
}