四川建设网电话,上海网站se0优化,做网站国家大学科技园郑州,物流网站建设费用Demo介绍
本demo对接阿里云和百度的大模型API#xff0c;实现一个简单的对话应用。
DecEco Studio版本#xff1a;DevEco Studio 3.1.1 Release
HarmonyOS SDK版本#xff1a;API9
关键点#xff1a;ArkTS、ArkUI、UIAbility、网络http请求、列表布局、层叠布局 页面跳…Demo介绍
本demo对接阿里云和百度的大模型API实现一个简单的对话应用。
DecEco Studio版本DevEco Studio 3.1.1 Release
HarmonyOS SDK版本API9
关键点ArkTS、ArkUI、UIAbility、网络http请求、列表布局、层叠布局 页面跳转
在前序大模型对话应用一二中完成了接口的调试和页面的构建
想要从应用首页跳转到百度和阿里云的大大模型对话页面可以通过 router.pushUrl 方法直接进行页面之间的跳转
也可以通过跨Ability拉起其他Ability的方式从EntryAbility默认的入口Ability中启动新的Ability为了可以同时与两个大模型进行对话而不相互影响本demo才用拉起新的Ability方式进行实现。 新建Ability
ets目录下新建ability命名为 ALiYunAbility 新建成功后会自动创建对应的目录和UIAbility此处是ALiYunAbility
ALiYunAbility 中 onWindowStageCreate方法是窗口页面展示时可以简单的这么理解会触发的系统回调函数其中 windowStage.loadContent 会指明加载展示的具体页面。 同时src/main/module.json5 文件中会自动生成对应ability的配置信息 用同样的方式可以创建百度云模型对话的AbilityBaiDuYunAbility 添加点击事件拉起Ability
在首页src/main/ets/pages/Index.ets 中添加两个按钮Button组件分别实现点击事件
Entry
Component
struct Index {State message: string Hello Worldbuild() {Row() {Column({space: 20}) {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)Button(拉起文心一言).fontSize(25).onClick(() {})Button(拉起通义千问).fontSize(25).onClick(() {})}.width(100%)}.height(100%)}
}
复习一下拉起一个Ability的三个步骤
获取UIAbility上下文 UIAbilityContext构建want参数描述跳转Ability信息调用UIAbilityContext.startAbility(want:Want) 方法完成Ability的启动
根据上述步骤完善首页Index.ets按钮点击事件 Index.ets代码
import common from ohos.app.ability.common
import Want from ohos.app.ability.Want
Entry
Component
struct Index {private context getContext(this) as common.UIAbilityContextState message: string Hello Worldbuild() {Row() {Column({space: 20}) {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)Button(拉起文心一言).fontSize(25).onClick(() {let want: Want {deviceId: ,bundleName: com.example.intelligenttalk,moduleName: entry,abilityName: BaiDuYunAbility}this.context.startAbility(want)})Button(拉起通义千问).fontSize(25).onClick(() {let want: Want {deviceId: ,bundleName: com.example.intelligenttalk,moduleName: entry,abilityName: ALiYunAbility}this.context.startAbility(want)})}.width(100%)}.height(100%)}
}
页面预览效果 Preview预览器无法实现跨Ability跳转此处需要使用模拟器本机/远程均可或真机调试。 src/main/ets/pages 目录下新建一个Page注意是新建复制已有的ets文件不会自动生成路由配置文件命名为ChatPageALiYun与ChatPage区分并将ChatPage的代码复制过来。修改一下对话框头的文本即可。 修改两个UIAbility文件指定加载页面 使用模拟器或真机调试
点击首页 [ 拉起文心一言 ] 按钮页面将发生跳转此处展示远程模拟器的页面截图效果。本地模拟器、远程模拟器、真机设备均可达到调试效果 点击首页 [ 拉起通义千问 ] 按钮页面将发生跳转此处展示远程模拟器的页面截图效果。本地模拟器、远程模拟器、真机设备均可达到调试效果 打开任务栏可以看到一个应用启用了三个不同的功能界面 完成在一个Ability中启动另一个Ability的功能后我们实现了页面的跳转目前跳转的对话页面展示的对话内容是固定的。
那么下一步将在跳转至对话页面后将输入框的输入文本内容作为调用大模型接口的参数向大模型发起请求将大模型接口返回的信息作为对话内容展示在页面中完成对话效果。
相关参考文档鸿蒙官方开发指南文档中心