Flutter即时通讯插件gigachat_dart的使用

发布于 1周前 作者 songsunli 来自 Flutter

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

1 回复

更多关于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.xmlInfo.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的官方文档获取更多详细信息。

回到顶部