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

怎么计算一个类的大小 (C++)

怎么计算一个类的大小 (C++)

怎么计算一个类的大小 (C++) 文章目录 * 怎么计算一个类的大小 (C++) * 图文版 * 文字版 * 核心结论速览 * 详细计算步骤与示例 * 1. 基础计算:空类 * 2. 只有成员变量(考虑内存对齐) * 3. 有虚函数(引入虚表指针) * 4. 继承关系 * 5. 特殊情况:虚继承 * 总结清单 * 总结 图文版 文字版 这是一个非常经典的C++面试题。在C++中,计算一个类的大小并不是简单地将成员变量的大小相加,而是涉及内存对齐、虚函数、继承等多个因素的影响。 以下是计算类大小的核心规则和详细步骤: 核心结论速览 1. 非静态成员变量 是影响大小的主体。 2. 静态成员变量 不属于类实例,存在全局数据区,不计入sizeof。 3. 成员函数 存在代码段,不计入sizeof。 4.

By Ne0inhk
基于C++构建DeepSeek大模型推理SDK:从架构设计到工程落地

基于C++构建DeepSeek大模型推理SDK:从架构设计到工程落地

这里写目录标题 * 前言 * 一、 云端环境配置与鉴权机制 * 二、 C++ SDK 核心数据结构设计 * 1. 消息与配置实体 * 2. 模型信息与会话管理 * 三、 抽象接口层设计:策略模式的应用 * 四、 DeepSeek 适配器实现 * 1. 初始化逻辑 * 2. 信息查询接口 * 五、 单元测试与质量保证 * 1. 测试环境构建 * 2. 日志系统 * 六、 CMake 构建系统配置 * 1. 依赖管理 * 2. 编译目标与链接 * 七、 编译与调试过程 前言 在高性能计算与大模型(LLM)应用开发的浪潮中,C++凭借其卓越的内存管理能力和运行时效率,成为了构建底层推理SDK的首选语言。本文将深入剖析如何从零开始,设计并实现一个能够调用DeepSeek模型的C++ SDK。全通过程涵盖了云端鉴权、面向对象架构设计、多态接口封装、

By Ne0inhk
Java-Spring入门指南(二十三)俩万字超详细讲解利用IDEA手把手教你实现SSM(Spring + SpringMVC + MyBatis)整合,并构建第一个SSM基础系统

Java-Spring入门指南(二十三)俩万字超详细讲解利用IDEA手把手教你实现SSM(Spring + SpringMVC + MyBatis)整合,并构建第一个SSM基础系统

Java-Spring入门指南(二十三)俩万字超详细讲解利用IDEA手把手教你实现SSM(Spring + SpringMVC + MyBatis)整合,并构建第一个SSM基础系统 * 前言 * 一、初始化项目与导入Maven依赖 * 二、接着导入Spring + SpringMVC + MyBatis相关的依赖包 * 1. 导入依赖包 * 1. 核心依赖包 * 2. 所有依赖包一览 * 三、创建SSM项目文件架构 * 1. 搭建web环境 * 2. 创建并链接数据库,并在完成MyBatis链接 * 四、运行测试 * 5.1 配置Tomcat 前言 * 在上一篇博客中,我们理清了SSM整合的核心逻辑——让Spring作为“总指挥”统一管理组件,SpringMVC处理请求,MyBatis操作数据库,解决单独使用框架时“衔接繁琐、配置混乱”的痛点。但“理论懂了”还不够,实际开发中最关键的是“把代码跑通”

By Ne0inhk
深入解剖STL map/multimap:接口使用与核心特性详解

深入解剖STL map/multimap:接口使用与核心特性详解

❤️@燃于AC之乐 来自重庆 计算机专业的一枚大学生 ✨专注 C/C++ Linux 数据结构 算法竞赛 AI 🏞️志同道合的人会看见同一片风景! 👇点击进入作者专栏: 《算法画解》 ✅ 《linux系统编程》✅ 《C++》 ✅ 🌟《算法画解》算法相关题目点击即可进入实操🌟 感兴趣的可以先收藏起来,请多多支持,还有大家有相关问题都可以给我留言咨询,希望希望共同交流心得,一起进步,你我陪伴,学习路上不孤单! 文章目录 * 前言(map系列容器概述) * 一、map类介绍 * 1.1 map的类模板声明 * 二、pair类型介绍 * 2.1 pair的结构定义 * 2.2 pair的使用要点 * 三、map的构造与迭代器 * 3.1 构造接口 * 3.2 迭代器接口 * 四、map的增删查操作

By Ne0inhk