MooerAi 组件使用文档

flutter pub publish --server=https://pub.dev

简介

MooerAi 是一个封装了AI相关功能的组件,提供了初始化配置、图片列表加载、提示信息获取及AI界面展示等功能,可快速集成到项目中使用。

快速使用步骤

1. 导入依赖

import 'package:your_project/mooer_ai.dart';
import 'package:your_project/ai_config.dart';

2. 初始化配置(必选)

使用前必须先通过 initAiConfig 方法初始化配置,传入 AIConfig 实例:

// 创建配置实例
AIConfig config = AIConfig(
  aiTaskImagesKey: "your_images_key",  // 存储图片列表的本地键名
  aiTaskTipsKey: "your_tips_key",      // 存储提示信息的本地键名
  checkLogin: () {
    // 实现登录状态检查逻辑,返回bool值
    return true; // true表示已登录,false表示未登录
  },
  toLogin: () {
    // 实现跳转登录页面的逻辑
    // 例如:Navigator.push(context, MaterialPageRoute(builder: (context) => LoginPage()));
  },
  getDataFromLocal: (String key) {
    // 实现从本地存储获取数据的逻辑
    // 例如:return SharedPreferences.getInstance().then((prefs) => prefs.getString(key));
    return "";
  },
  saveDataToLocal: (String key, String value) {
    // 实现保存数据到本地存储的逻辑
    // 例如:SharedPreferences.getInstance().then((prefs) => prefs.setString(key, value));
  },
);

// 初始化MooerAi
MooerAi.instance.initAiConfig(config);

3. 展示AI界面(必选)

初始化完成后,调用 show 方法展示AI功能界面:

// 展示AI底部弹窗界面
MooerAi.instance.show();

完整示例代码

import 'package:flutter/material.dart';
import 'package:your_project/mooer_ai.dart';
import 'package:your_project/ai_config.dart';

class AiDemoWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
      onPressed: () {
        // 1. 创建并配置AIConfig
        final aiConfig = AIConfig(
          aiTaskImagesKey: "ai_task_images",
          aiTaskTipsKey: "ai_task_tips",
          checkLogin: () {
            // 实际项目中替换为真实的登录检查逻辑
            return true;
          },
          toLogin: () {
            // 实际项目中替换为真实的登录页面跳转逻辑
            Navigator.pushNamed(context, '/login');
          },
          getDataFromLocal: (key) async {
            // 实际项目中替换为真实的本地存储读取逻辑
            return "";
          },
          saveDataToLocal: (key, value) async {
            // 实际项目中替换为真实的本地存储写入逻辑
          },
        );

        // 2. 初始化配置
        MooerAi.instance.initAiConfig(aiConfig);

        // 3. 展示AI界面
        MooerAi.instance.show();
      },
      child: Text("打开AI功能"),
    );
  }
}

核心方法说明

方法名 说明 参数
initAiConfig 初始化AI配置,加载本地存储的图片列表和提示信息,并从网络更新最新数据 AIConfig config - 配置实例
show 展示AI功能界面(底部弹窗),会先检查登录状态和数据完整性,未登录时触发登录跳转
getImageList 从网络获取AI预设图片列表并更新本地存储 onResult - 加载完成回调函数
getTips 从网络获取AI提示信息并更新本地存储 onResult - 加载完成回调函数
createTask 创建AI任务 callback - 任务创建完成后的回调函数
getDownLoadUrl 获取文件下载的完整URL(自动拼接前缀) url - 文件相对路径

注意事项

  1. 必须先调用 initAiConfig 初始化配置,否则 show 方法会失效
  2. show 方法会自动检查登录状态,未登录时会调用 AIConfig 中的 toLogin 方法
  3. 首次使用时会从网络加载图片列表和提示信息,若数据为空会自动重新请求
  4. 界面展示形式为底部弹窗(Get.bottomSheet),需确保项目中已集成 GetX 框架
  5. AIConfig 中的抽象方法必须实现,否则会导致功能异常

属性说明

属性名 类型 说明
aiConfig AIConfig 已初始化的配置实例
aiImageList List<String> AI预设图片列表
tips Map<String, dynamic> AI提示信息集合
fileUrlPrefix String 文件下载URL前缀
taskId int 当前AI任务ID