搜索插件、代码仓与 APP 分类

插件详情v1.0.0

flutter_ai_toolkit

适用于移动、桌面和网页的 Flutter 应用的 AI 聊天小部件,支持文本、图像和语音输入。

AndroidiOSWebmacOS
近 30 天下载
1.2万
喜欢数
246
Pub 分数
140

安装插件

flutter pub add flutter_ai_toolkit

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

Flutter AI Toolkit 是一个功能强大的 AI 驱动聊天组件,专为跨移动、桌面和 Web 平台的 Flutter 应用设计。它支持文本、图像和语音输入,可无缝集成生成式 AI 功能。该工具包专为希望提升用户交互体验、打造智能对话界面的开发者而打造,无需复杂配置即可轻松将高级 AI 能力嵌入应用。它利用现代大语言模型(LLM),提供实时响应,非常适合用于聊天机器人、虚拟助手和互动内容工具。该软件包由 Flutter Labs 维护,并托管在 GitHub 上,以确保透明度并促进社区贡献。

适合场景

  • AI 驱动的客户支持
  • 互动学习应用
  • 支持语音的虚拟助手
  • 内容生成工具
  • 实时协作聊天

主要特点

  • 支持文本、图像和语音输入
  • 跨平台兼容性
  • 实时AI回复
  • 与 Flutter 的轻松集成
  • 聊天界面的内置UI组件

适合对象

  • 开发AI聊天功能的开发者
  • 教育类应用程序创作者
  • 客户服务应用团队
  • 生产力工具构建者
  • Web 和移动应用初创公司

使用建议

  • 需要后端AI服务集成
  • 可能需要针对特定的大语言模型进行定制
  • 性能取决于网络速度
  • 有限的离线功能
  • 依赖外部API的可用性

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

package:flutter_ai_toolkit pub package package publisher

Hello and welcome to the Flutter AI Toolkit!

The AI Toolkit is a set of AI chat-related widgets to make it easy to add an AI chat window to your Flutter app. The AI Toolkit is organized around an abstract LLM provider API that makes it easy to swap out the LLM provider that you'd like your chat provider to use. Out of the box, it comes with support for one LLM provider integration: Firebase AI.

Key features

  • Multi-turn chat: Maintains context across multiple interactions.
  • Streaming responses: Displays AI responses in real-time as they're generated.
  • Rich text display: Supports formatted text in chat messages.
  • Voice input: Allows users to input prompts using speech.
  • Multimedia attachments: Enables sending and receiving various media types.
  • Custom styling: Offers extensive customization to match your app's design.
  • Chat serialization/deserialization: Store and retrieve conversations between app sessions.
  • Pluggable LLM support: Implement a simple interface to plug in your own LLM.
  • Cross-platform support: Compatible with the Android, iOS, web, and macOS platforms.

Getting started

  1. Installation

    Add the following dependencies to your pubspec.yaml file:

    $ flutter pub add flutter_ai_toolkit firebase_ai firebase_core
    
  2. Configuration

    To use Firebase AI in your project, follow the steps described in Get started with the Gemini API using the Firebase AI Logic SDKs.

    After following these instructions, you're ready to use Firebase AI in your Flutter app. Start by initializing Firebase:

    import 'package:firebase_core/firebase_core.dart';
    import 'package:firebase_vertexai/firebase_ai.dart';
    import 'package:flutter_ai_toolkit/flutter_ai_toolkit.dart';
    
    // Other app imports...
    
    import 'firebase_options.dart'; // Generated by `flutterfire config`.
    
    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
      runApp(const App());
    }
    
    // Implementation of App and other widgets...
    

    With Firebase properly initialized in your Flutter app, you're now ready to create an instance of the Firebase provider:

    class ChatPage extends StatelessWidget {
      const ChatPage({super.key});
    
      @override
      Widget build(BuildContext context) => Scaffold(
        appBar: AppBar(title: const Text(App.title)),
        body: LlmChatView(
          provider: FirebaseProvider(
            model: FirebaseAI.vertexAI().generativeModel(
              model: 'gemini-2.0-flash'
            ),
          ),
        ),
      );
    }
    

    The FirebaseAI class comes from the firebase_ai package. The AI Toolkit provides the FirebaseProvider class to expose Firebase AI to the LlmChatView. Note that you provide a model name that corresponds to one of the available model names.

    For a complete usage example, check out the vertex.dart sample.

  3. Set up device permissions

To enable your users to take advantage of features like voice input and media attachments, ensure that your app has the necessary permissions:

  • Network access:

To enable network access on macOS, add the following to your *.entitlements files:

<plist version="1.0">
    <dict>
      ...
      <key>com.apple.security.network.client</key>
      <true/>
    </dict>
</plist>

To enable network access on Android, ensure that your AndroidManifest.xml file contains the following:

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    ...
    <uses-permission android:name="android.permission.INTERNET"/>
</manifest>
  • Microphone access: To enable voice input for users, update configs according to the permission and setup instructions for package:record.

  • File selection: To enable users to select and attach files, follow the usage instructions for package:file_selector.

  • Image selection: To enable users to take or select a picture from their device, refer to the installation instructions for package:image_picker.

Samples

To run the example apps in the example/lib directory, first replace the example/lib/firebase_options.dart file by running flutterfire config (you may need to manually delete this file first). The provided firebase_options.dart file is a placeholder for configuration needed by the examples.

Breaking changes and migration

The v0.9.8 release contained breaking changes. If you have code that uses a version prior to that, please see the migration notes.

Feedback

As you use this package, please log issues and feature requests as well as submit any code you'd like to contribute. We want your feedback and contributions to ensure that the AI Toolkit is as robust and useful as it can be for your real-world apps.

所属分类

依赖

依赖清单 13 项

源码仓库

使用此插件的项目

暂无相关数据。