Flutter即时通讯插件gigachat_dart的使用
Flutter即时通讯插件gigachat_dart的使用
欢迎来到gigachat_dart,这是一个用于GigaChat API的Dart实现。该项目允许你使用Dart编程语言与GigaChat API进行交互。
特性
- ✅ 完成度通过Stream
- ✅ 获取模型列表
- ✅ 自动刷新令牌
- ✅ 完成度通过Future
- ✅ 嵌入功能
- ❌ 生成图像(未测试)
- ❌ 获取图像(未测试)
- ❌ 函数(未测试)
安装
要安装gigachat_dart,请在你的pubspec.yaml
文件中添加以下依赖:
dependencies:
gigachat_dart: ^0.1.2
使用
要使用gigachat_dart,首先初始化一个新的GigaChat客户端:
import 'package:gigachat_dart/gigachat_dart.dart';
final client = GigachatClient(
clientId: '<你的uuid v4 id>',
clientSecret: '<你的uuid v4 secret>');
# 或者
final client = GigachatClient.fromBase64(base64token: '<你的base64 token>');
然后,你可以使用客户端与GigaChat API进行交互:
final response = await client.generateAnswer(prompt: 'What is the capital of Russia?');
print(response.answer); // 输出文本: Moscow
对于通过对话生成答案,你可以使用generateChatCompletionStream
,其中event.choices![0].delta!.content
包含生成的文本:
final r = await (c
.generateChatCompletionStream(
request: Chat(model: "GigaChat", messages: [
Message(role: MessageRole.user, content: "Почему небо голубое?")
]))
.listen((event) {
// event -- 包含对象的消息块,生成的文本在event.choices![0].delta!.content
}) // Stream
或者你可以使用Future:
final r = await c.generateChatCompletion(
request: Chat(model: 'GigaChat', messages: [
Message(role: MessageRole.user, content: 'Why sky is blue?'),
Message(role: MessageRole.assistant, content: "Because!!!"),
Message(role: MessageRole.user, content: "Tell me more")
])); // 生成的文本
示例
更多示例可以在测试中查看。
许可证
此项目采用MIT许可证。
更多关于Flutter即时通讯插件gigachat_dart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter即时通讯插件gigachat_dart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中集成和使用 gigachat_dart
插件来实现即时通讯功能的示例代码。假设你已经有一个Flutter项目,并且已经配置好了基本的开发环境。
1. 添加依赖
首先,在你的 pubspec.yaml
文件中添加 gigachat_dart
插件的依赖:
dependencies:
flutter:
sdk: flutter
gigachat_dart: ^最新版本号 # 请替换为实际的最新版本号
然后运行 flutter pub get
来获取依赖。
2. 配置 Android 和 iOS 权限
由于即时通讯功能通常需要网络权限,确保在 AndroidManifest.xml
和 Info.plist
中配置了必要的权限。
Android (AndroidManifest.xml):
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
iOS (Info.plist):
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
3. 初始化 Gigachat
在你的 main.dart
或其他主文件中,初始化 gigachat_dart
插件。
import 'package:flutter/material.dart';
import 'package:gigachat_dart/gigachat_dart.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Gigachat Demo'),
),
body: GigachatDemo(),
),
);
}
}
class GigachatDemo extends StatefulWidget {
@override
_GigachatDemoState createState() => _GigachatDemoState();
}
class _GigachatDemoState extends State<GigachatDemo> {
GigachatClient? gigachatClient;
@override
void initState() {
super.initState();
// 初始化Gigachat客户端
initializeGigachat();
}
void initializeGigachat() async {
// 替换为你的Gigachat配置
final config = GigachatConfig(
apiKey: 'YOUR_API_KEY',
secret: 'YOUR_SECRET',
serverUrl: 'YOUR_SERVER_URL',
);
gigachatClient = await GigachatClient.init(config);
// 监听连接状态变化
gigachatClient?.connectionStateStream.listen((state) {
print('Connection state changed: $state');
});
// 监听消息
gigachatClient?.messageStream.listen((message) {
print('Received message: ${message.toJson()}');
});
}
@override
Widget build(BuildContext context) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Gigachat Demo'),
ElevatedButton(
onPressed: () async {
if (gigachatClient != null && gigachatClient!.isConnected) {
final message = GigachatMessage(
text: 'Hello, Gigachat!',
toUserId: 'RECIPIENT_USER_ID', // 替换为接收者的用户ID
);
await gigachatClient?.sendMessage(message);
} else {
print('Gigachat client is not initialized or not connected.');
}
},
child: Text('Send Message'),
),
],
),
);
}
}
4. 运行应用
确保你已经替换了 YOUR_API_KEY
, YOUR_SECRET
, YOUR_SERVER_URL
, 和 RECIPIENT_USER_ID
为实际的值。然后运行你的Flutter应用:
flutter run
注意事项
- API 密钥和秘密:确保你使用的是有效的Gigachat API密钥和秘密。
- 服务器 URL:确保服务器URL是正确配置的,并且服务器是可访问的。
- 用户 ID:在发送消息时,确保使用正确的用户ID。
这个示例展示了如何初始化Gigachat客户端,监听连接状态变化和消息流,以及发送消息。根据具体需求,你可能需要实现更多的功能,如用户注册、登录、联系人管理等。请参考Gigachat的官方文档获取更多详细信息。