成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

鴻蒙原生應用有問必答

系統 OpenHarmony
在配置好環境之后,可以嘗試這編寫一個較為簡單的應用程序練練手,這里選擇使用一個免費的API接口網站ALAPI來嘗試編寫一個可進行對話的GPT應用程序。

想了解更多關于開源的內容,請訪問:

51CTO 鴻蒙開發者社區

https://ost.51cto.com

運行環境

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 = 0
  message: string = ""
  data: ChatGpt = new ChatGpt()
}

export class ChatGpt {
  content: string = ""

}

由于在API網站中查看ChatGPT調用時返回的參數較少,直接寫在里面。

在網站的請求參數介紹中有這樣的內容。

名稱

必填

類型

描述

示例

token

true

string

請求token,用戶中心獲取。

用戶中心獲取token

content

string

需要對話的內容,如:幫我寫一封情書。

message

string

ChatGPT消息請求格式

max_tokens

int

最大返回的tokens限制,默認不填返回最多, 3.5默認最大是16000 tokens, 請不要超過這個限制否則會報錯

我們實現的時簡單的一對一的對話,所以message暫時可以不用管,在在線測試網站中嘗試。

token可以通過注冊本網站來獲取ALAPI。

得到響應主體。

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

可以看到我們需要的僅僅只有content內的內容。

創建輸入界面

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

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

輸入框組件。

查詢按鈕。

按鈕點擊時的事件,這里參考一篇博客,將用戶輸入內容傳遞給下一個頁面,下一個頁面我們將其命名為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
    })
  }
}

創建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, data: http.HttpResponse) => {
    
    //對網絡數據的處理    
    if (!err) {


      // data.result為HTTP響應內容,可根據業務需要進行解析
      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響應頭,可根據業務需要進行解析
      console.info('header:' + JSON.stringify(data.header));
      console.info('cookies:' + JSON.stringify(data.cookies)); // 8+
      // 當該請求使用完畢時,調用destroy方法主動銷毀
      httpRequest.destroy();
    } else {

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

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

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

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

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

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

想了解更多關于開源的內容,請訪問:

51CTO 鴻蒙開發者社區

https://ost.51cto.com

責任編輯:jianghua 來源: 51CTO 鴻蒙開發者社區
相關推薦

2011-02-22 10:51:00

ProFTPD

2011-01-21 16:06:28

Thunderbird新手

2012-11-14 09:21:34

亞馬遜Web服務EC2亞馬遜EC2

2018-10-18 06:39:01

數據中心運營電氣測試

2011-04-28 11:34:34

2023-06-13 07:50:49

Gopher格式化時間

2014-08-15 13:34:06

Linux

2009-08-26 08:58:33

思科認證CCNA思科認證網絡工程師

2024-01-12 16:02:12

鴻蒙隨機詩詞基礎組件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一级欧美一级在线播放 | 96久久久久久 | 中文字幕成人免费视频 | 91精品一区二区三区久久久久久 | 国产一区二区三区久久久久久久久 | 国产精品久久久 | 亚洲一区二区三区视频 | 一级在线毛片 | 91视频一区二区三区 | 欧美一区二区三区在线观看视频 | 日韩在线国产 | 羞羞的视频免费在线观看 | 亚洲精品在线免费观看视频 | 少妇精品亚洲一区二区成人 | 一级看片免费视频 | 毛片免费视频 | 欧美不卡 | 一级免费视频 | 精品一区二区三区四区外站 | 欧美一级片a | 岛国av免费观看 | 成人一级黄色毛片 | 欧美在线网站 | 午夜影院操 | 免费看欧美一级片 | a免费视频 | 黄色在线免费观看 | 9久9久9久女女女九九九一九 | 97精品久久 | 91综合在线视频 | 日韩一二区在线 | 国产成在线观看免费视频 | av片免费| 日本三级电影免费观看 | 在线观看国产www | 日本a级大片 | 免费观看一级特黄欧美大片 | 午夜合集| 精品国产不卡一区二区三区 | 国产亚洲精品综合一区 | 久久精品亚洲精品国产欧美 |