Flutter聊天机器人插件anhsin_chatbot的使用

Flutter聊天机器人插件anhsin_chatbot的使用

特性

此包可以无缝集成Anhsin聊天机器人到Flutter项目中,并调用Anhsin聊天机器人查询特定信息。

开始使用

在你的Flutter项目中添加anhsin_chatbot包:

flutter pub add anhsin_chatbot

使用方法

初始化SDK

首先,创建一个AnhsinChatbotSDK实例并传入ChatCredentials对象,其中包含API ID和API Secret。

// 创建SDK实例
final sdk = AnhsinChatbotSDK(ChatCredentials(apiId: "123", apiSecret: "xyz"));

启动会话

调用getChatId方法以启动会话。返回的response包含会话ID (chatId)。

// 获取会话ID
final response = await sdk.getChatId();
String chatId = response.chatId; // 存储会话ID以便后续使用

发送消息并获取响应

通过调用getChatResponse方法与聊天机器人进行对话。传入会话ID和用户输入的消息。

// 发送消息并获取回复
final response = await sdk.getChatResponse(chatId, "Explain earth.");
print(response.response); // 打印聊天机器人的回复

结束会话

当对话结束时,调用endChat方法结束会话。

// 结束会话
await sdk.endChat(chatId);

完整示例Demo

以下是一个完整的示例,展示如何使用anhsin_chatbot插件实现一个简单的聊天界面。

import 'package:flutter/material.dart';
import 'package:anhsin_chatbot/anhsin_chatbot.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: ChatBotScreen(),
    );
  }
}

class ChatBotScreen extends StatefulWidget {
  [@override](/user/override)
  _ChatBotScreenState createState() => _ChatBotScreenState();
}

class _ChatBotScreenState extends State<ChatBotScreen> {
  final TextEditingController _controller = TextEditingController();
  String _message = "";
  String _response = "";

  late AnhsinChatbotSDK _sdk;
  String? _chatId;

  [@override](/user/override)
  void initState() {
    super.initState();
    // 初始化SDK
    _sdk = AnhsinChatbotSDK(ChatCredentials(apiId: "123", apiSecret: "xyz"));
  }

  Future<void> _startSession() async {
    // 启动会话
    final response = await _sdk.getChatId();
    setState(() {
      _chatId = response.chatId;
    });
  }

  Future<void> _sendMessage() async {
    if (_chatId == null) {
      return;
    }
    // 发送消息并获取回复
    final response = await _sdk.getChatResponse(_chatId!, _controller.text);
    setState(() {
      _message = _controller.text;
      _response = response.response;
      _controller.clear(); // 清空输入框
    });
  }

  Future<void> _endSession() async {
    // 结束会话
    if (_chatId != null) {
      await _sdk.endChat(_chatId!);
      setState(() {
        _chatId = null;
      });
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Anhsin Chatbot"),
      ),
      body: Padding(
        padding: const EdgeInsets.all(8.0),
        child: Column(
          children: [
            Expanded(
              child: ListView.builder(
                itemCount: 2, // 假设只有两条消息
                itemBuilder: (context, index) {
                  if (index == 0) {
                    return ListTile(
                      title: Text("User: $_message"),
                    );
                  } else {
                    return ListTile(
                      title: Text("Bot: $_response"),
                    );
                  }
                },
              ),
            ),
            TextField(
              controller: _controller,
              decoration: InputDecoration(
                hintText: "Type a message...",
              ),
            ),
            SizedBox(height: 10),
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: [
                ElevatedButton(
                  onPressed: _startSession,
                  child: Text("Start Session"),
                ),
                ElevatedButton(
                  onPressed: _sendMessage,
                  child: Text("Send"),
                ),
                ElevatedButton(
                  onPressed: _endSession,
                  child: Text("End Session"),
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter聊天机器人插件anhsin_chatbot的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter聊天机器人插件anhsin_chatbot的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


anhsin_chatbot 是一个用于在 Flutter 应用中集成聊天机器人的插件。它可以帮助你快速实现一个聊天界面,并与后端服务进行交互。以下是如何使用 anhsin_chatbot 插件的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 anhsin_chatbot 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  anhsin_chatbot: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 导入插件

在你的 Dart 文件中导入 anhsin_chatbot 插件:

import 'package:anhsin_chatbot/anhsin_chatbot.dart';

3. 使用 AnhsinChatbot 组件

AnhsinChatbot 是一个可以直接使用的组件,你可以在你的应用中的任何地方使用它。以下是一个简单的示例:

import 'package:flutter/material.dart';
import 'package:anhsin_chatbot/anhsin_chatbot.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Chatbot Example'),
        ),
        body: AnhsinChatbot(
          apiKey: 'your_api_key_here',  // 替换为你的 API Key
          onMessageReceived: (String message) {
            print('Received message: $message');
          },
          onError: (String error) {
            print('Error: $error');
          },
        ),
      ),
    );
  }
}

4. 配置 API Key

AnhsinChatbot 需要一个 API Key 来与后端服务进行通信。你需要将 apiKey 参数替换为你的实际 API Key。

5. 处理消息和错误

AnhsinChatbot 提供了两个回调函数:

  • onMessageReceived: 当接收到新消息时触发。
  • onError: 当发生错误时触发。

你可以在这些回调函数中处理接收到的消息或错误。

6. 自定义 UI

AnhsinChatbot 组件允许你自定义聊天界面的外观。你可以通过传递不同的参数来调整颜色、字体、按钮样式等。

AnhsinChatbot(
  apiKey: 'your_api_key_here',
  primaryColor: Colors.blue,
  secondaryColor: Colors.white,
  textColor: Colors.black,
  onMessageReceived: (String message) {
    print('Received message: $message');
  },
  onError: (String error) {
    print('Error: $error');
  },
)
回到顶部