Flutter for OpenHarmony:Flutter 三方库 dart_openai — 激发鸿蒙应用的 AIGC (AI 大模型/ChatGPT、Deepseek等) 无限创意(适配鸿蒙

Flutter for OpenHarmony:Flutter 三方库 dart_openai — 激发鸿蒙应用的 AIGC (AI 大模型/ChatGPT、Deepseek等) 无限创意(适配鸿蒙

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net

Flutter for OpenHarmony:Flutter 三方库 dart_openai — 激发鸿蒙应用的 AIGC (AI 大模型/ChatGPT、Deepseek等) 无限创意(适配鸿蒙 HarmonyOS Next ohos)

请添加图片描述

前言

随着生成式 AI(AIGC)浪潮席卷全球,将大语言模型(LLM)的智慧集成到移动应用中已成为大势所趋。无论是智能对话、代码生成,还是图像创作,AI 正在重塑我们的交互方式。

Flutter for OpenHarmony 开发中,我们如何让鸿蒙应用直接对话全球顶尖的 AI 模型?dart_openai 库通过对 OpenAI API 的完美封装,为我们提供了从文本(GPT-4)到图片(DALL·E)的全栈 AI 能力。今天,我们将实战如何在鸿蒙设备上构建一个具备思考能力的智能体。

一、为什么集成 OpenAI 到鸿蒙生态?

1.1 万物互联的“大脑”

鸿蒙系统主打分布式协同,而 AI 能作为这些逻辑的中枢。比如用户在鸿蒙手机上说:“根据我现在的健康数据(来自手表),给我制定一份晚餐食谱”,AI 能即时生成人性化的建议。

1.2 为什么在鸿蒙上使用该库?

  • 异步响应式流(Stream):天然支持 OpenAI 的流式输出(Streaming),让鸿蒙应用的聊天回显像打字机一样丝滑。
  • 配置极简:支持自定义 Base URL。这对于鸿蒙开发者在中国大陆环境下使用国内代理转发服务至关重要。
  • 功能完备:除了聊天,还涵盖了 Embedding、音频转文字、文件上传等所有官方能力。

1.3 AI 交互链路模型(Mermaid)

用户输入问题

OpenAI 客户端

代理/BaseURL 转换

OpenAI 核心服务器

LLM 推理引擎

生成结果流

JSON 解析与拦截

UI 状态自增刷新

鸿蒙页面打字机效果展示

二、核心 API 与功能讲解

2.1 引入依赖

pubspec.yaml 中配置:

dependencies:# OpenAI 官方协议封装dart_openai: ^5.1.0 

2.2 初始化与代理配置(重点)

在鸿蒙应用入口处设置 API Key 和端点。

import'package:dart_openai/dart_openai.dart';voidsetupAI(){OpenAI.apiKey ="YOUR_API_KEY";// 💡 适配鸿蒙国内开发:设置代理基准地址OpenAI.baseUrl ="https://your-custom-proxy.com";}
在这里插入图片描述

2.3 核心功能:流式聊天

让 AI 像人一样一个词一个词地蹦出来,拒绝等待长文时的“转圈圈”。

voidchatWithAi(String prompt){// 🎨 创建流式对话Stream<OpenAIStreamChatCompletionModel> chatStream =OpenAI.instance.chat.createStream( model:"gpt-4o", messages:[OpenAIChatCompletionChoiceMessageModel( content:[OpenAIChatCompletionChoiceMessageContentItemModel.text(prompt),], role:OpenAIChatMessageRole.user,),],); chatStream.listen((event){// ✅ 实战:获取当前片段并更新鸿蒙 UIfinal content = event.choices.first.delta.content;print(content?.first.text ??"");});}
在这里插入图片描述

三、鸿蒙应用实战场景

3.1 场景一:分布式智慧办公助手

在鸿蒙智慧屏(电视)上发起语音指令。通过 dart_openai 解析意图,AI 返回结构化的操作建议。随后应用通过鸿蒙的分布式总线,自动控制手机打开对应的文档。

在这里插入图片描述

3.2 场景二:个性化情感健康教练

结合鸿蒙穿戴设备捕获的压力指数。应用调用 OpenAI 的接口,让 AI 以“心理疏导员”的角色给用户发送安慰和呼吸训练建议。

在这里插入图片描述

四、OpenHarmony 平台适配建议

4.1 网络稳定性与超时重连

  • ✅ 建议:移动端网络环境复杂。在 listen Stream 时,务必包裹 onError 处理。在网络闪断后,利用 dart_openai 的断点续传思想或简单的重试机制,防止用户对话中断。

4.2 隐私合规与数据过滤

  • 📌 提醒:涉及到个人隐私(如身份证、家庭地址)时,在发送给 OpenAI 之前,建议在鸿蒙端利用本地正则库先进行脱敏处理。

4.3 UI 线程性能管控

  • ⚠️ 警告:Markdown 的实时解析是一项耗电操作。当 AI 快速输出带代码块的长文时,建议对 Markdown 刷新频率进行“节流”(Throttling),确保鸿蒙手机在 120Hz 下依然冰凉丝滑。

五、完整示例:简易 AI 问答器

演示如何在鸿蒙端快速建立一条 AI 对话逻辑。

import'package:flutter/material.dart';import'package:dart_openai/dart_openai.dart';voidmain(){OpenAI.apiKey ="YOUR_KEY";// 此处替换真实 KeyrunApp(constMaterialApp(home:OpenAIQLab()));}classOpenAIQLabextendsStatefulWidget{constOpenAIQLab({super.key});@overrideState<OpenAIQLab>createState()=>_OpenAIQLabState();}class _OpenAIQLabState extendsState<OpenAIQLab>{String _answer ='问问我任何关于鸿蒙开发的问题吧!';void_askAi()async{setState(()=> _answer ='AI 正在深度思考中...');try{// ✅ 实战:单次完整对话请求final completion =awaitOpenAI.instance.chat.create( model:"gpt-3.5-turbo", messages:[OpenAIChatCompletionChoiceMessageModel( content:[OpenAIChatCompletionChoiceMessageContentItemModel.text("解释什么是鸿蒙系统")], role:OpenAIChatMessageRole.user,),],);setState(()=> _answer = completion.choices.first.message.content!.first.text!);}catch(e){setState(()=> _answer ='连接 AI 实验室失败:$e');}}@overrideWidgetbuild(BuildContext context){returnScaffold( appBar:AppBar(title:constText('dart_openai 鸿蒙实验室')), body:Center( child:Padding( padding:constEdgeInsets.all(16.0), child:Column( mainAxisAlignment:MainAxisAlignment.center, children:[constIcon(Icons.auto_awesome, size:80, color:Colors.teal),constSizedBox(height:20),Text(_answer, textAlign:TextAlign.center, style:constTextStyle(fontSize:16)),constSizedBox(height:30),ElevatedButton(onPressed: _askAi, child:constText('向 AI 提问')),],),),),);}}
在这里插入图片描述

六、总结

在鸿蒙生态万物合一的构想中,AI 是点亮智慧的关键火种。通过 dart_openai,我们将世界顶尖的推理算力带到了 Flutter for OpenHarmony 开发者面前。从极简的对话到复杂的创意生成,AI 的加入让鸿蒙应用不再仅仅是单纯的工具,而是懂人、助人的智慧伙伴。

核心要点回顾:

  1. 全协议覆盖:从 Chat 到 Image,拥抱 OpenAI 全场景能力。
  2. 鸿蒙代理支持:灵活的 Base URL 配置,满足复杂网络环境。
  3. 响应式体验:利用 Stream 机制实现丝滑的打字机交互。
  4. 安全合规:重视数据预处理,守护鸿蒙用户隐私。

让 AI 的灵魂,赋予您的鸿蒙应用无限的可能!

Read more

从0到1快速学会Linux操作系统(基础),这一篇就够了!

从0到1快速学会Linux操作系统(基础),这一篇就够了!

目录在左侧或者右侧,可以根据需求点击快速跳转对应章节进行学习。 一、认识Linux 1.1什么是操作系统? 软件的一种,用户和计算机硬件之间的桥梁。 操作系统是计算机软件的一种,它主要负责: 作为用户和计算机硬件之间的桥梁,调度和管理计算机硬件进行工作。 而计算机,如果没有操作系统,就是一堆无法使用的垃圾而已。 用户控制操作系统,操作系统安排硬件干活。不管是PC操作系统还是移动操作系统其功能都是:调度硬件进行工作,充当用户和硬件之间的桥梁。 1.2 什么是linux?保护模式下的操作系统 创始人 : 林纳斯 托瓦兹,Linux 诞生于 1991 年,作者上大学期间。因为创始人在上大学期间经常需要浏览新闻和处理邮件,发现现有的操作系统不好用 , 于是他决心自己写一个保护模式下的操作系统,这就是 Linux 的原型, 当时他 21 岁,后来经过全世界网友的支持 , 现在能够兼容多种硬件,成为最为流行的服务器操作系统之一。 1.3 什么是Linux内核?毛坯房 内核是 Linux

By Ne0inhk
未来的鸿蒙 App,还需要“首页”吗?

未来的鸿蒙 App,还需要“首页”吗?

子玥酱(掘金 / 知乎 / ZEEKLOG / 简书 同名) 大家好,我是子玥酱,一名长期深耕在一线的前端程序媛 👩‍💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚焦于业务型系统的工程化建设与长期维护。 我持续输出和沉淀前端领域的实战经验,日常关注并分享的技术方向包括前端工程化、小程序、React / RN、Flutter、跨端方案, 在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。 技术方向:前端 / 跨端 / 小程序 / 移动端工程化 内容平台:掘金、知乎、ZEEKLOG、简书 创作特点:实战导向、源码拆解、少空谈多落地 文章状态:长期稳定更新,大量原创输出 我的内容主要围绕 前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读 展开。文章不会停留在“API 怎么用”,而是更关注为什么这么设计、在什么场景下容易踩坑、

By Ne0inhk
Linux--epoll(ET)实现Reactor模式

Linux--epoll(ET)实现Reactor模式

Linux–多路转接之epoll Reactor反应堆模式 Reactor反应堆模式是一种事件驱动的设计模式,通常用于处理高并发的I/O操作,尤其是在服务器或网络编程中。 基本概念 Reactor模式又称之为响应器模式,基于事件多路复用机制,使得单个线程能够同时管理大量并发连接,而不需要为每个连接创建一个独立的线程。它通过一个事件分发器(Reactor)来监听和管理不同的I/O事件,当事件发生时,分发器会将该事件分发给对应的事件处理器来处理。 核心组件 * 事件分发器(Reactor):负责监听各种事件源(如socket、文件描述符)并将事件分发给相应的处理器。事件分发器通常使用I/O多路复用机制(如select、poll、epoll)来同时监听多个I/O事件。 * 事件处理器(Event Handler):定义了如何处理特定事件。当事件分发器检测到某个事件时,就会触发相应的事件处理器中的回调函数。 * 同步事件分离器(Demultiplexer):本质上是系统调用,用于监听事件源上的事件,并将事件通知给事件分发器。例如,在Linux中,可以使用select、p

By Ne0inhk
ARM Linux 驱动开发篇--- Linux 并发与竞争实验(互斥体实现 LED 设备互斥访问)--- Ubuntu20.04互斥体实验

ARM Linux 驱动开发篇--- Linux 并发与竞争实验(互斥体实现 LED 设备互斥访问)--- Ubuntu20.04互斥体实验

🎬 渡水无言:个人主页渡水无言 ❄专栏传送门: 《linux专栏》《嵌入式linux驱动开发》《linux系统移植专栏》 ❄专栏传送门: 《freertos专栏》《STM32 HAL库专栏》 ⭐️流水不争先,争的是滔滔不绝  📚博主简介:第二十届中国研究生电子设计竞赛全国二等奖 |国家奖学金 | 省级三好学生 | 省级优秀毕业生获得者 | ZEEKLOG新星杯TOP18 | 半导纵横专栏博主 | 211在读研究生 在这里主要分享自己学习的linux嵌入式领域知识;有分享错误或者不足的地方欢迎大佬指导,也欢迎各位大佬互相三连 目录 前言  一、实验基础说明 1.1、互斥体简介 1.2 本次实验设计思路 二、硬件原理分析(看过之前博客的可以忽略) 三、实验程序编写 3.1 互斥体 LED 驱动代码(mutex.c) 3.2.1、设备结构体定义(28-39

By Ne0inhk