当前位置: 首页 > news >正文

HarmonyOS应用《玄象》开发实战:AiAssistantPage AI 助手:流式对话 UI + @ohos.net.socket 长连接方案

阅读时长:约 19 分钟 | 难度:★★★★☆ | 篇章:第 9 篇 · 取名乐律地理 AI 助手 对应源码:entry/src/main/ets/pages/assistant/AiAssistantPage.ets

前言

AI 助手是玄象项目“传统文化智能顾问“的入口。页面提供聊天式的对话界面,用户可提问关于八字命理、风水布局、周易卦象、取名选字等问题。本篇将深入剖析玄象项目 AI 助手页的实现:从ChatMessage数据结构、List聊天消息列表、TextInput输入框,到快速问答按钮与@ohos.net.socket长连接方案。掌握这套 AI 助手对话 UI 实现方法论,您就能为任何 HarmonyOS 应用构建 AI 对话功能。

提示:玄象项目 AI 助手包含 4 个快速问答按钮,涵盖“今日运势““家居风水”“周易起卦”“五行补缺“等常见问题。

一、ChatMessage 数据结构

1.1 消息模型

interface ChatMessage { role: string; // 'user' | 'assistant' content: string; // 消息内容 time: string; // 发送时间 }

二、聊天消息列表

2.1 消息渲染

List({ space: 12 }) { ForEach(this.messages, (msg: ChatMessage) => { ListItem() { Row() { if (msg.role === 'user') { Blank() } Column({ space: 4 }) { Text(msg.content) .fontSize(14) .fontColor(msg.role === 'user' ? Colors.BG_DARK : Colors.TEXT_PRIMARY) .backgroundColor(msg.role === 'user' ? Colors.PRIMARY_GOLD : Colors.BG_CARD) .padding(12) .borderRadius(12) Text(msg.time) .fontSize(10) .fontColor(Colors.TEXT_DIM) } .maxWidth('80%') if (msg.role === 'assistant') { Blank() } } .width('100%') } }) }

三、快速问答

3.1 快捷按钮

@State quickQuestions: string[] = [ '今日运势如何?', '如何看家居风水?', '周易起卦方法', '五行缺什么怎么补?' ];

四、AI 助手页设计总结

4.1 页面结构

区域组件内容
AI 头像Row☯ 太极图标
聊天列表List消息气泡
输入区RowTextInput + 发送按钮
快速问答Row4 个快捷问题

总结

本篇以玄象项目 AI 助手页为蓝本,深入剖析了 ArkUI AI 对话界面的实现:从ChatMessage数据结构、List聊天消息列表、TextInput输入框,到快速问答按钮与@ohos.net.socket长连接方案。掌握这套 AI 助手对话 UI 实现方法论,您就能为任何 HarmonyOS 应用构建 AI 对话功能。

如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!


相关资源:

  • HarmonyOS 官方文档:socket 网络通信
  • HarmonyOS 官方文档:List 组件
  • HarmonyOS 官方文档:TextInput 组件
  • HarmonyOS 官方文档:Scroll 组件
  • HarmonyOS 官方文档:Column 组件
  • HarmonyOS 官方文档:Row 组件
  • 开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net

六、AI 助手的完整实现

6.1 聊天消息列表

List({ space: 12 }) { ForEach(this.messages, (msg: ChatMessage) => { ListItem() { Row() { if (msg.role === 'user') { Blank() } Column({ space: 4 }) { Text(msg.content) .fontSize(14) .fontColor(msg.role === 'user' ? Colors.BG_DARK : Colors.TEXT_PRIMARY) .backgroundColor(msg.role === 'user' ? Colors.PRIMARY_GOLD : Colors.BG_CARD) .padding(12).borderRadius(12) Text(msg.time).fontSize(10).fontColor(Colors.TEXT_DIM) } .maxWidth('80%') if (msg.role === 'assistant') { Blank() } } .width('100%') } }) }

6.2 快速问答按钮

@State quickQuestions: string[] = [ '今日运势如何?', '如何看家居风水?', '周易起卦方法', '五行缺什么怎么补?' ];

6.3 输入框与发送按钮

Row() { TextInput({ placeholder: '输入您的问题...' }) .layoutWeight(1) .height(40).borderRadius(20) .backgroundColor(Colors.BG_CARD) Text('发送') .fontSize(14).fontColor(Colors.PRIMARY_GOLD) .padding(12).onClick(() => { this.sendMessage(); }) }

七、总结与最佳实践

7.1 AI 助手页开发要点

  1. 聊天消息使用List+ForEach渲染,支持动态添加
  2. 消息气泡根据角色区分样式(用户/助手)
  3. 快速问答按钮提供常见问题入口
  4. 输入框支持文本输入和发送

7.2 常见问题

问题原因解决方案
消息不显示数据未正确绑定检查 @State messages 数组
气泡样式不对角色判断错误检查 msg.role 的值
发送按钮不响应事件绑定错误检查 onClick 回调

总结

http://www.jsqmd.com/news/1273622/

相关文章:

  • 数据驱动视角下教培机构精准营销决策模型研究——BBWEYY GEO服务解决教培机构获客难题含零代码SAAS、AI编程、源码定制交付
  • 3DS游戏格式转换终极指南:5分钟掌握3dsconv工具
  • 数学要素项目实战指南:从基础数学到机器学习的完整学习路径 [特殊字符]
  • 2026上海地区装修踩过雷,第三方业主安利良心全铝定制 - 装企自媒体训练营辉哥
  • 如何在本地快速搭建实时语音转文字系统:WhisperLiveKit完整指南
  • 清远粤北厂房金属屋面修缮怎么选?4 家全域上门彩钢瓦除锈防水服务商深度测评 + 本地高湿雨季避坑攻略 - 本地便民网
  • 超图多模态大语言模型HMLLM:视频理解与认知预测新突破
  • 进销项风险管理:解析市场现状与未来趋势
  • DSP接口时序深度解析:从EMIF、McBSP到HPI的硬件设计避坑指南
  • 2026长沙持证防水补漏商家权威TOP3榜单 卫生间厨房外墙屋面天花板漏水检测靠谱师傅维修指南 - 宅安选房屋修缮
  • 数据驱动的结构健康监测技术:从原理到工程实践
  • 最小可运行示例:用curl快速验证中国护照OCR识别
  • 移动端Unity性能优化实战:从渲染、脚本到内存管理的全链路指南
  • 163MusicLyrics:高效管理音乐歌词库的跨平台开源解决方案
  • 网盘直链下载助手:2025年最全使用指南,告别网盘限速烦恼
  • KVCOMM框架:多智能体LLM系统的KV缓存共享优化
  • 为什么选择UniTask:掌握Unity异步编程的完整实践指南
  • Restormer图像修复实战指南:CVPR 2022高效Transformer模型深度解析
  • PMBus电源管理实战:基于Fusion GUI的配置、监控与调试全解析
  • 清奢黄金回收衢州市七店齐发,压箱底首饰这回真醒了 - 新芸鼎珠宝首饰
  • 3步解决Ruffle扩展性能问题:让Flash内容重获新生
  • 从纸质票到结构化数据:火车票识别API在差旅报销场景中的落地实践
  • OpenClawSparkle框架:多代理协同系统的核心架构与金融应用
  • COLM25 | PredGen:你还在说话,LLM 已经想好怎么回了
  • NLP文本向量化:从One-Hot到Embedding的实战指南
  • 2026广州代理记账全攻略:企业账务合规、报税风控、财税托管指南 - 广州慕名
  • Mistral-7B中文对话模型部署优化:从专业服务器到消费级GPU的完整解决方案
  • MVP到规模化7月实践:技术架构演进的4个关键信号
  • 六种智能算法优化BP神经网络的Matlab实现与对比
  • 风电功率预测的CNN-BiLSTM-Attention混合模型解析