基于Flutter3.41+DeepSeek+Dio+Get搭建APP版智能生成式AI助手

举报
yxybox 发表于 2026/04/09 11:49:47 2026/04/09
【摘要】 最新研发Flutter3.41+Dart3+Dio+Getx+Markdown聚合DeepSeek-chat实战AI流式打字智能会话模板。新增深度思考模式、latex公式、mermaid图表,代码高亮/复制代码、图片预览、链接、表格等功能。

构建跨平台AI应用新范式: DeepSeek+Flutter3.41+Dart3.11+Get+Dio+Markdown实战流式AI对话应用。


未标题-pc4.png

未标题-f1.png

p2-2.gif


技术栈

  • 编辑器:Vscode
  • 跨平台框架:Flutter3.41.5+Dart3.11
  • 大模型框架:DeepSeek-V3.2
  • 网络请求:dio^5.9.2
  • 路由/状态管理:get^4.7.3
  • 本地存储:get_storage^2.1.1
  • markdown解析:flutter_markdown_plus^1.0.7
  • 高亮插件:flutter_highlight^0.7.0
  • latex插件:flutter_markdown_plus_latex^1.0.5
  • mermaid插件:flutter_mermaid^0.1.0


未标题-f2.png

p2.gif

p2-1.gif


项目结构目录

使用最新跨平台技术flutter3.41构建项目模板,集成deepseek api对话大模型。


360截图20260406221825921.png


项目下载地址:https://b23.tv/CYBD7V7


p3.gif


flutter环境变量

# 项目名称
APP_NAME = 'Flutter3-DeepSeek'

# DeepSeek API配置
DEEPSEEK_API_KEY = your apikey
DEEPSEEK_BASE_URL = https://api.deepseek.com

main.dart项目配置

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import 'package:shirne_dialog/shirne_dialog.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';

import 'controller/app.dart';
import 'controller/chat.dart';

// 引入路由配置
import 'router/index.dart';

void main() async {
  // 初始化存储服务
  await GetStorage.init();

  // 将.env文件内容加载到dotenv中
  await dotenv.load(fileName: '.env');

  // 注册GetxController
  Get.put(AppStore());
  Get.put(ChatStore());

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    // 获取AppStore实例
    final appStore = AppStore.to;
    
    return AnnotatedRegion(
      value: SystemUiOverlayStyle(
        /**
         * 修复flutter3.32以上会出现底部导航栏背景黑色
         * The bottom navigation bar is always black from flutter: 3.32.1.
         * It's working fine on flutter: 3.29.3
        */
        systemNavigationBarColor: Colors.transparent,
        systemNavigationBarIconBrightness: Brightness.dark,
      ),
      child: GetMaterialApp(
        title: 'Flutter3-DeepSeek',
        debugShowCheckedModeBanner: false,
        theme: ThemeData(
          colorScheme: ColorScheme.fromSeed(seedColor: Color(0xFF5842F2)),
          useMaterial3: true,
          fontFamily: Platform.isWindows ? 'Microsoft YaHei' : null,
        ),
        // 初始路由
        initialRoute: appStore.isLogin ? '/' : '/login',
        // 路由页面
        getPages: routePages,
        // 初始弹窗key
        navigatorKey: MyDialog.navigatorKey,
        localizationsDelegates: [
          // Add your ShirneDialogLocalizations delegate here
          ShirneDialogLocalizations.delegate,
        ],
      ),
    );
  }
}

flutter3.32以上底部导航栏背景黑色,github已经有人提issue。可以尝试通过如下方式修复。

SystemUiOverlayStyle(
    systemNavigationBarColor: Colors.transparent,
    systemNavigationBarIconBrightness: Brightness.dark,
)

未标题-f5.png

未标题-f6.png

未标题-f7.png

另外项目还支持运行到windows端,主体内容区域以750px宽度显示布局。

011360截图20260406232733335.png

012360截图20260406232924623.png

012360截图20260406232924625.png

012360截图20260406233046976.png

012360截图20260406233118843.png

012360截图20260406233250243.png

012360截图20260406233250245.png

012360截图20260406233250246.png

012360截图20260406233415165.png

013360截图20260406235949870.png

014360截图20260407000021744.png

flutter3路由管理

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

import '../controller/app.dart';

/* 引入路由页面 */
import '../pages/auth/login.dart';
import '../pages/auth/register.dart';
import '../pages/index/index.dart';
import '../pages/aihub/index.dart';
import '../pages/setting/index.dart';

// 路由地址集合
final Map<String, Widget> routes = {
  '/': Home(),
  '/aihub': Aihub(),
  '/setting': Setting(),
};

final List<GetPage> routeList = routes.entries.map((e) => GetPage(
  name: e.key, // 路由名称
  page: () => e.value, // 路由页面
  transition: Transition.rightToLeftWithFade, // 跳转路由动画
  middlewares: [RouteMiddleware()], // 路由中间件
)).toList();

final List<GetPage> routePages = [
  GetPage(name: '/login', page: () => const Login()),
  GetPage(name: '/register', page: () => const Register()),
  ...routeList,
];

// 路由中间件拦截验证
class RouteMiddleware extends GetMiddleware {
  final appStore = AppStore.to;

  @override
  RouteSettings? redirect(String? route) {
    return appStore.isLogin ? null : const RouteSettings(name: '/login');
  }
}

001360截图20260406223505973.png

002360截图20260406223714255.png

002360截图20260406223858207.png

002360截图20260406224201752.png

003360截图20260406224851371.png

003360截图20260406225310363.png

003360截图20260406234643226.png

003360截图20260406234726394.png

003360截图20260406234841367.png

004360截图20260406230818583.png

006360截图20260406231527913.png

008360截图20260406231922563.png

009360截图20260406232014706.png

010360截图20260406232109884.png

flutter3接入deepseek api流式对话

// 调用deepseek接口
final response = await dio.post(
  '$baseURL/v1/chat/completions',
  options: Options(
    // 响应超时
    receiveTimeout: const Duration(seconds: 60),
    headers: {
      "Content-Type": "application/json",
      "Authorization": "Bearer $apiKEY",
    },
    // 设置响应类型为流式响应
    responseType: ResponseType.stream,
  ),
  data: {
    // 多轮会话
    'messages': widget.multiConversation ? chatStore.historySession : [{'role': 'user', 'content': editorValue}],
    'model': chatStore.getSetting('thinkingEnabled') ? 'deepseek-reasoner' : 'deepseek-chat', // deepseek-chat对话模型 deepseek-reasoner推理模型
    'stream': true, // 流式输出
    'max_tokens': 8192, // 限制一次请求中模型生成 completion 的最大 token 数(默认使用 4096)
    'temperature': 0.4, // 严谨采样 越低越严谨(默认1)
  }
);


未标题-pc5.png

重磅自研Electron41+Vite8.0手搓DeepSeek电脑版AI智能系统

2026最新款Uniapp+DeepSeek+mphtml纯手撸跨三端ai流式输出模板

2026重磅爆肝tauri2.10+vite7.3+openai集成deepseek桌面客户端AI智能系统

首发vite8.0+vue3+deepseek+markdown手搓网页版ai流式生成模板

最新研发electron38+vite7.0+vue3客户端仿微信EXE聊天软件

Electron38.2实战客户端OS系统|vite7+vue3+electron仿mac/wins桌面

2025最新款Electron38+Vite7+Vue3+ElementPlus桌面客户端后台管理系统Exe

原创uniapp+vite5+vue3+uv-ui跨三端短视频+直播+聊天app应用

2025最新款Tauri2.9+Vite7+Vue3+ElementPlus电脑端后台管理系统Exe

最新版Vite7.1+Tauri2.8+Vue3电脑端仿QQ/微信聊天程序

Flutter3.32实战桌面端OS系统|flutter3仿macOS桌面

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。