0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙原生開發(fā)-仿ChatGPT應(yīng)用實戰(zhàn)

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-01-23 17:40 ? 次閱讀

運行環(huán)境

DAYU200:4.0.10.16

SDK:4.0.10.15

IDE:4.0.600

前言

在配置好環(huán)境之后,可以嘗試這編寫一個較為簡單的應(yīng)用程序練練手,這里選擇使用一個免費的API接口網(wǎng)站 ALAPI來嘗試編寫一個可進行對話的GPT應(yīng)用程序。

創(chuàng)建項目

創(chuàng)建好項目之后可以先把helloworld的demo在真機上跑一下,注意需要簽名

簽名方式

隨后直接點擊運行,可以看到控制臺輸出

開發(fā)板效果如圖所示

修改圖標和名稱

項目中含有文件記錄了應(yīng)用的圖標和名稱,一部分是設(shè)置里的,一部分是顯示在桌面的,需要將這兩部分均做修改。

第一部分目錄在AppScope/app.json5

如下圖所示,icon和label分別對應(yīng)圖標與名稱,我們將這里改為我們需要的內(nèi)容

此時在系統(tǒng)設(shè)置中我們的應(yīng)用圖標和名稱應(yīng)當都改過來了

修改桌面圖標和名稱

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

我們修改label的時候,修改中文目錄下的就可以,具體操作衛(wèi)按住ctrl跳轉(zhuǎn)時選擇中文路徑

更改后效果如下

對應(yīng)用添加相關(guān)權(quán)限

由于使用ChatGpt需要使用網(wǎng)絡(luò)權(quán)限,我們在這里添加網(wǎng)絡(luò)權(quán)限

在src/main/module.json5中modele中添加配置

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

自定義數(shù)據(jù)模型

本次調(diào)用GPT的API可以自定數(shù)據(jù)模型來實現(xiàn),我們可以在ets目錄下新建Model文件夾,新建GPTModel文件(ts)

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

export class ChatGpt {
  content: string = ""

}

由于在API網(wǎng)站中查看ChatGPT調(diào)用時返回的參數(shù)較少,直接寫在里面

在網(wǎng)站的請求參數(shù)介紹中有這樣的內(nèi)容

我們實現(xiàn)的時簡單的一對一的對話,所以message暫時可以不用管,在在線測試網(wǎng)站中嘗試

token可以通過注冊本網(wǎng)站來獲取[ ALAPI]

得到響應(yīng)主體

{
  "code": 200,
  "msg": "success",
  "data": {
    "content": "你好!我是一個AI助手,可以幫助您回答問題和提供服務(wù)。有什么我可以為您做的嗎?"
  },
  "time": 1704790385,
  "usage": 1,
  "log_id": "603268355937845248"
}

可以看到我們需要的僅僅只有content內(nèi)的內(nèi)容。

創(chuàng)建輸入界面

作為一款問答式GPT應(yīng)用,需要有用戶輸入的地方,我們這里簡單的做一個輸入頁面

輸入頁面可以直接在默認的index頁面中修改

輸入框組件

查詢按鈕

按鈕點擊時的事件,這里參考一篇博客,將用戶輸入內(nèi)容傳遞給下一個頁面,下一個頁面我們將其命名為ChatGpt

源代碼如下

import router from '@ohos.router'

@Entry
@Component
struct 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
    })
  }
}

創(chuàng)建HTTP請求

下面我們寫用戶點擊按鈕后的返回頁面

1.導(dǎo)入http模塊

登錄后復(fù)制

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

2.創(chuàng)建createHttp

let httpRequest = http.createHttp();

3.填寫HTTP地址

httpData() {

  // 3.每一個httpRequest對應(yīng)一個HTTP請求任務(wù),不可復(fù)用
  let httpRequest = http.createHttp();
  //4.
  httpRequest.request(// 填寫HTTP請求的URL地址,可以帶參數(shù)也可以不帶參數(shù)。URL地址需要開發(fā)者自定義。請求的參數(shù)可以在extraData中指定
    "https://v2.alapi.cn/api/chatgpt/pro",
    {
      method: http.RequestMethod.GET, // 可選,默認為http.RequestMethod.GET
      // // 開發(fā)者根據(jù)自身業(yè)務(wù)需要添加header字段
      header: [{
        'Content-Type': 'application/json'
      }],
      // 當使用POST請求時此字段用于傳遞內(nèi)容
      extraData: {
        "token": "此處替換為你的token",
        "content":this.paramsFromIndex?.['message'],
        "max_tokens":"10000"
      },
      // expectDataType: http.HttpDataType.STRING, // 可選,指定返回數(shù)據(jù)的類型
      // usingCache: true, // 可選,默認為true
      // priority: 1, // 可選,默認為1
      // connectTimeout: 60000, // 可選,默認為60000ms
      // readTimeout: 60000, // 可選,默認為60000ms
      // usingProtocol: http.HttpProtocol.HTTP1_1, // 可選,協(xié)議類型默認值由系統(tǒng)自動指定
      // usingProxy: false, //可選,默認不使用網(wǎng)絡(luò)代理,自API 10開始支持該屬性
    }, (err: BusinessError, data: http.HttpResponse) = > {
    
    //對網(wǎng)絡(luò)數(shù)據(jù)的處理    
    if (!err) {


      // data.result為HTTP響應(yīng)內(nèi)容,可根據(jù)業(yè)務(wù)需要進行解析
      console.info('Result:' + JSON.stringify(data.result));
      let ChatGptModel: ChatGptModel = JSON.parse(data.result.toString())
      this.ChatGpt = ChatGptModel.data

      console.info('code:' + JSON.stringify(data.responseCode));
      // data.header為HTTP響應(yīng)頭,可根據(jù)業(yè)務(wù)需要進行解析
      console.info('header:' + JSON.stringify(data.header));
      console.info('cookies:' + JSON.stringify(data.cookies)); // 8+
      // 當該請求使用完畢時,調(diào)用destroy方法主動銷毀
      httpRequest.destroy();
    } else {

      console.error('error:' + JSON.stringify(err));
      // 取消訂閱HTTP響應(yīng)頭事件
      httpRequest.off('headersReceive');
      // 當該請求使用完畢時,調(diào)用destroy方法主動銷毀
      httpRequest.destroy();
    }
  }
  );
}

不要忘記將頁面添加到mainpage中

路徑src/main/resources/base/profile/main_pages.json

接下來就可以嘗試運行一下代碼,在開發(fā)板中運行效果如下

點擊查詢之后的效果如下:

如此,一個簡單的GPT程序就做好了還可以讓它幫你寫情書哦

最后附上HarmonyOSOpenHarmony的技術(shù)分布曲線圖:主頁保存

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1461

    瀏覽量

    61489
  • 鴻蒙
    +關(guān)注

    關(guān)注

    56

    文章

    2267

    瀏覽量

    42484
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3548

    瀏覽量

    15735
  • ChatGPT
    +關(guān)注

    關(guān)注

    28

    文章

    1517

    瀏覽量

    6923
收藏 人收藏

    評論

    相關(guān)推薦

    軟通動力榮膺首批“鴻蒙原生應(yīng)用開發(fā)及培訓(xùn)鉆石服務(wù)商”

    近日,鴻蒙原生應(yīng)用合作交流推介會在深圳成功召開。在此次盛會上,軟通動力脫穎而出,成為鴻蒙生態(tài)的首批認證合作伙伴,并榮獲“鴻蒙原生應(yīng)用
    的頭像 發(fā)表于 05-22 10:53 ?526次閱讀

    哪吒汽車APP啟動鴻蒙原生應(yīng)用開發(fā)

    哪吒汽車正式簽約,啟動鴻蒙原生應(yīng)用開發(fā);在5月17日,在上海市經(jīng)濟和信息化委員會指導(dǎo)的“千帆競發(fā)啟航 共筑鴻蒙生態(tài)——HDD上海站·鴻蒙
    的頭像 發(fā)表于 05-18 09:48 ?1053次閱讀

    實錘!騰訊終于擁抱鴻蒙生態(tài),微信鴻蒙原生版本即將上線

    兼容,為用戶提供更好的使用體驗。微信的加入將為鴻蒙生態(tài)注入新的活力,為用戶帶來更多便利和樂趣 。此前華為宣布啟動原生應(yīng)用的布局后,美團、微博、釘釘?shù)阮^部廠商紛紛官宣啟動鴻蒙原生應(yīng)用的
    發(fā)表于 04-30 21:14

    軟通動力與鴻蒙生態(tài)服務(wù)雙方將共同聚焦鴻蒙原生應(yīng)用開發(fā)和培訓(xùn)領(lǐng)域

    3月8日,軟通動力與鴻蒙生態(tài)服務(wù)(深圳)有限公司(以下簡稱“鴻蒙生態(tài)服務(wù)公司”)簽署合作協(xié)議,雙方將共同聚焦鴻蒙原生應(yīng)用開發(fā)和培訓(xùn)領(lǐng)域
    的頭像 發(fā)表于 03-14 09:54 ?282次閱讀

    深圳市24年,實現(xiàn)鴻蒙原生應(yīng)用數(shù)占全國總量10%以上

    不吹不捧,鴻蒙自從24年的星河版發(fā)布會之后。純血鴻蒙已經(jīng)開啟大規(guī)模的行動,首批 200 + 鴻蒙原生應(yīng)用已經(jīng)在加速開發(fā),先鋒垂域齊備,覆蓋便
    發(fā)表于 03-04 21:42

    鴻蒙實戰(zhàn)項目開發(fā):【短信服務(wù)】

    、OpenHarmony 多媒體技術(shù)、Napi組件、OpenHarmony內(nèi)核、Harmony南向開發(fā)、鴻蒙項目實戰(zhàn)等等)鴻蒙(Harmony NEXT) 技術(shù)知識點 如果你是一名An
    發(fā)表于 03-03 21:29

    使用 Taro 開發(fā)鴻蒙原生應(yīng)用 —— 快速上手,鴻蒙應(yīng)用開發(fā)指南

    隨著鴻蒙系統(tǒng)的不斷完善,許多應(yīng)用廠商都希望將自己的應(yīng)用移植到鴻蒙平臺上。最近,Taro 發(fā)布了 v4.0.0-beta.x 版本,支持使用 Taro 快速開發(fā)鴻蒙
    的頭像 發(fā)表于 02-02 16:09 ?693次閱讀
    使用 Taro <b class='flag-5'>開發(fā)</b><b class='flag-5'>鴻蒙</b><b class='flag-5'>原生</b>應(yīng)用 —— 快速上手,<b class='flag-5'>鴻蒙</b>應(yīng)用<b class='flag-5'>開發(fā)</b>指南

    淘寶與華為合作將基于HarmonyOS NEXT啟動鴻蒙原生應(yīng)用開發(fā)

    1月25日,淘寶與華為舉辦鴻蒙合作簽約儀式,宣布將基于HarmonyOS NEXT啟動鴻蒙原生應(yīng)用開發(fā)。
    的頭像 發(fā)表于 01-26 16:14 ?869次閱讀

    淘寶正式啟動華為鴻蒙原生應(yīng)用開發(fā)

    華為與淘寶近日宣布,淘寶已正式啟動鴻蒙原生應(yīng)用開發(fā)。這一合作標志著鴻蒙生態(tài)在電商領(lǐng)域的布局進一步擴大,將為用戶帶來全新的全場景購物體驗。
    的頭像 發(fā)表于 01-26 15:59 ?648次閱讀

    鴻蒙原生應(yīng)用/元服務(wù)實戰(zhàn)-Web隱私聲明

    這個位置的隱私申明是需要在WEB網(wǎng)頁下完成的,ArkTS鴻蒙原生應(yīng)用與元服務(wù)開發(fā)者,不一定熟悉這塊,一些公司也不一定有自己的服務(wù)器和域名、網(wǎng)站網(wǎng)頁或者相關(guān)權(quán)限是外包,沒法進行實時操作。所以,這塊要提前準備,要不會影響提交進度。
    發(fā)表于 01-24 15:05

    多家頭部企業(yè)宣布「啟動鴻蒙原生應(yīng)用開發(fā)」,你看好鴻蒙系統(tǒng)走向「獨立」嗎?

    鴻蒙生態(tài)迎「關(guān)鍵一戰(zhàn)」,多家頭部企業(yè)宣布「啟動鴻蒙原生應(yīng)用開發(fā)」,你看好鴻蒙系統(tǒng)走向「獨立」嗎?
    的頭像 發(fā)表于 01-24 11:47 ?453次閱讀
    多家頭部企業(yè)宣布「啟動<b class='flag-5'>鴻蒙</b><b class='flag-5'>原生</b>應(yīng)用<b class='flag-5'>開發(fā)</b>」,你看好<b class='flag-5'>鴻蒙</b>系統(tǒng)走向「獨立」嗎?

    京東正式啟動鴻蒙原生應(yīng)用開發(fā)

    華為與京東于近日宣布達成一項重要合作,正式啟動鴻蒙原生應(yīng)用開發(fā)。這一合作旨在利用HarmonyOS NEXT的獨特優(yōu)勢,為消費者提供更出色的購物體驗。
    的頭像 發(fā)表于 01-18 15:02 ?661次閱讀

    京東與華為鴻蒙合作 京東啟動鴻蒙原生應(yīng)用開發(fā)

     1月10日,華為和京東宣布正式合作,共同推動鴻蒙原生應(yīng)用的開發(fā),進一步完善鴻蒙生態(tài)系統(tǒng)。
    的頭像 發(fā)表于 01-11 16:22 ?779次閱讀

    鴻蒙千帆起】《開心消消樂》完成鴻蒙原生應(yīng)用開發(fā),創(chuàng)新多端聯(lián)動用戶體驗

    《開心消消樂》已經(jīng)完成鴻蒙原生應(yīng)用開發(fā),樂元素成為率先完成鴻蒙原生應(yīng)用開發(fā)的 20+游戲廠商之一
    發(fā)表于 01-03 10:22

    米哈游宣布啟動鴻蒙原生應(yīng)用開發(fā)

    12月18日,米哈游宣布將基于HarmonyOS NEXT啟動鴻蒙原生應(yīng)用開發(fā),成為又一家啟動鴻蒙原生應(yīng)用
    的頭像 發(fā)表于 12-18 10:07 ?430次閱讀