鸿蒙原生运行有问必答

想了解更多对于开源的内容,请访问:

鸿蒙开发者社区

运转环境

DAYU200:4.0.10.16

SDK:4.0.10.15

IDE:4.0.600

前言

在性能好环境之后,可以尝试这编写一个较为便捷的运行程序练练手,这里选用经常使用一个收费的API接口网站ALAPI来尝试编写一个可启动对话的GPT运行程序。

创立名目

创立好名目之后可以先把helloworld的demo在真机上跑一下,留意须要签名。

签名模式:

随后间接点击运转,可以看到控制台输入。

开发板成果如图所示:

修正图标和称号

名目中含有文件记载了运行的图标和称号,一局部是设置里的,一局部是显示在桌面的,须要将这两局部均做修正。

第一局部目录在AppScope/app.json5。

如下图所示,icon和label区分对应图标与称号,咱们将这里改为咱们须要的内容。

此时在系统设置中咱们的运行图标和称号应当都改上来了。

修正桌面图标和称号

修正src/main/module.json5中如图所示的label和icon。

咱们修正label的时刻,修正中文目录下的就可以,详细操作卫按住ctrl跳转时选用中文门路。

更改后成果如下:

对运行减少相关权限

因为经常使用ChatGpt须要经常使用网络权限,咱们在这里减少网络权限。

在src/main/module.json5中modele中减少性能。

"requestPermissions": [{"name": "ohos.permission.INTERNET"}],

自定义数据模型

本次调用GPT的API可以自定数据模型来成功,咱们可以在ets目录下新建Model文件夹,新建GPTModel文件(ts)。

export class ChatGptModel {code: number = 0message: string = ""data: ChatGpt = new ChatGpt()}export class ChatGpt {content: string = ""}

因为在API网站中检查ChatGPT调用时前往的参数较少,间接写在外面。

在网站的恳求参数引见中有这样的内容。

称号

必填

类型

形容

示例

token

true

恳求token,用户核心失掉。

用户核心失掉token

content

string

须要对话的内容,如:帮我写一封情书。

message

string

ChatGPT信息恳求格局

max_tokens

int

最大前往的tokens限度,自动不填前往最多, 3.5自动最大是16000 tokens, 请不要超越这个限度否则会报错

咱们成功的时便捷的一对一的对话,所以message临时可以不用管,在在线测试网站中尝试。

token可以经过注册本网站来失掉ALAPI。

失掉照应主体。

    "你好!我是一个AI助手,可以协助您回答疑问和提供服务。有什么我可以为您做的吗?"   

可以看到咱们须要的仅仅只要content内的内容。

创立输入界面

作为一款问答式GPT运行,须要有用户输入的中央,咱们这里便捷的做一个输入页面。

输入页面可以间接在自动的index页面中修正。

输入框组件。

查问按钮。

按钮点击时的事情,这里参考一篇博客,将用户输入内容传递给下一个页面,下一个页面咱们将其命名为ChatGpt。

源代码如下:

import router from '@ohos.router'@Entry@Componentstruct Login {@State message: string = '欢迎经常使用ChatGpt'build() {Column() {TextInput({placeholder: "请输入您的疑问"}).onChange((value: string) => {console.info("输入的疑问是" + value)this.message = value}).type(InputType.Normal)Button("查问").width("100%").backgroundColor(Color.Orange).fontColor(Color.Black).margin({bottom: 10}).onClick(() => {router.pushUrl({url: "pages/ChatGpt",params: {message: this.message}}, router.RouterMode.Single)})}.width("100%").height("100%").justifyContent(FlexAlign.Center).padding({left: "10", right: 10})}}

创立HTTP恳求

上方咱们写用户点击按钮后的前往页面。

导入http模块。

import http from '@ohos.net.http';import { BusinessError } from '@ohos.base';

创立createHttp。

let httpRequest = http.createHttp();

填写HTTP地址。

httpData() {// 3.每一个httpRequest对应一个HTTP恳求义务,无法复用let httpRequest = http.createHttp();//4.httpRequest.request(// 填写HTTP恳求的URL地址,可以带参数也可以不带参数。URL地址须要开发者自定义。恳求的参数可以在extraData中指定"https://v2.alapi.cn/api/chatgpt/pro",{method: http.RequestMethod.GET, // 可选,默以为http.RequestMethod.GET// // 开发者依据自身业务须要减少header字段header: [{'Content-Type': 'application/json'}],// 当经常使用POST恳求时此字段用于传递内容extraData: {"token": "此处交流为你的token","content":this.paramsFromIndex?.['message'],"max_tokens":"10000"},// expectDataType: http.HttpDataType.STRING, // 可选,指定前往数据的类型// usingCache: true, // 可选,默以为true// priority: 1, // 可选,默以为1// connectTimeout: 60000, // 可选,默以为60000ms// readTimeout: 60000, // 可选,默以为60000ms// usingProtocol: http.HttpProtocol.HTTP1_1, // 可选,协定类型自动值由系统智能指定// usingProxy: false, //可选,自动不经常使用网络代理,自API 10开局允许该属性}, (err: BusinessError,>

不要遗记将页面减少到mainpage中

门路src/main/resources/base/profile/main_pages.json。

接上去就可以尝试运转一下代码,在开发板中运转成果如下:

点击查问之后的成果如下:

如此,一个便捷的GPT程序就做好了还可以让它帮你写情书哦。

想了解更多对于开源的内容,请访问:

鸿蒙开发者社区

您可能还会对下面的文章感兴趣: