溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Flutter?ChatGPT代碼生成器怎么使用

發(fā)布時(shí)間:2023-02-10 09:31:51 來源:億速云 閱讀:147 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“Flutter ChatGPT代碼生成器怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Flutter ChatGPT代碼生成器怎么使用”吧!

ChatGPT

ChatGPT 作為一個(gè)自然語言處理工具,已經(jīng)火了一段時(shí)間。對(duì)待 ChatGPT 不同人有著不同的看法,新事物的出現(xiàn)必然如此。

1. ChatGPT 的特點(diǎn)和劣勢(shì)

ChatGPT 最大的特點(diǎn)是基礎(chǔ)的語義分析,讓計(jì)算機(jī)對(duì)自然語言進(jìn)行處理并輸出。在一段會(huì)話中,上下文是有效的,所以可以類似于交流。

問這個(gè)問題,它會(huì)怎么回答?

這種獵奇的心理,會(huì)讓一部分人期望嘗試;有稀奇古怪或愚蠢的回答,也可以滿足人類對(duì)人工智障的優(yōu)越感;分享問答,也讓 ChatGPT 擁有一絲的社交屬性。蹭熱度、獵奇、起哄三者可以用它填充一塊內(nèi)心的空虛,也僅止步于此。

ChatGPT 目前的劣勢(shì)也很明顯,由于數(shù)據(jù)是幾年前的,所以時(shí)效性不強(qiáng);對(duì)很多問題回答的精準(zhǔn)度并不高,對(duì)于盲目相信的人,或判別力較差的朋友并不友好;最后一點(diǎn),非常重要:對(duì)于工具而言,如果對(duì)其依賴性太高,脫離工具時(shí),會(huì)讓人的主觀能動(dòng)性降低。

h4>2. 代碼的生成與規(guī)則誘導(dǎo)

如下所示,讓它生成一個(gè) Dart 的 User 類:

生成一個(gè) dart 類 User, 字段為 : 可空 int 型 age 、final 非空 String 型 username 默認(rèn)值為 “unknown”

Flutter?ChatGPT代碼生成器怎么使用

雖然代碼給出了,但是可以看出,這是空安全之前的代碼??赡芎芏嗳说竭@里,覺得數(shù)據(jù)陳舊沒什么用途,就拜拜了您嘞。

Flutter?ChatGPT代碼生成器怎么使用

但它是一個(gè)有會(huì)話上下文的自然語言處理工具,你可以讓它理解一些概念。就像一個(gè)新員工,上班第一天出了一點(diǎn)小錯(cuò)誤,你是立刻開除他,還是告訴他該怎么正確處理。如下所示,給了它一個(gè)概念:

Dart 新版本中可空類型定義時(shí),其后需要加 ?

Flutter?ChatGPT代碼生成器怎么使用

如下所示,你就可以在當(dāng)前的會(huì)話環(huán)境中讓它生成更多字段的類型:

用 Dart 新版本生成一個(gè) dart 類 User,字段為: final 非空 int 型 age , final 非空 String 型 username 默認(rèn)值為 “unknown” , final 非空 int 型 height,可空 String型info,final 非空 int 型 roleId

Flutter?ChatGPT代碼生成器怎么使用

如果存在問題,可以繼續(xù)進(jìn)行指正。比如 :

用 Dart 新版本,有默認(rèn)值的字段不需要使用 required 關(guān)鍵字,其他非空字段需要

Flutter?ChatGPT代碼生成器怎么使用

所以對(duì)于 ChatGPT 而言,我們可以把它看成一個(gè)有一些基礎(chǔ)知識(shí)的,可為我們免費(fèi)服務(wù)的員工,簡(jiǎn)稱:奴隸。當(dāng)它做錯(cuò)事時(shí),你罵它,責(zé)備它,拋棄它是毫無意義的,因?yàn)樗菣C(jī)器。我們需要去 誘導(dǎo) 它理解,在當(dāng)前工作環(huán)境中正確的事。

這樣在當(dāng)前會(huì)話中,它就可以理解你訴說的規(guī)則,當(dāng)用它創(chuàng)建其他類時(shí),他就不會(huì)再犯錯(cuò)。并且不排除它會(huì)基于你的規(guī)則,去完善自身的 知識(shí)儲(chǔ)備 ,當(dāng)眾多的人用正確的規(guī)則去 誘導(dǎo) 它,這就是一個(gè)善意的正反饋。

3. 解決方案的概念

這里從生成的代碼 不支持空安全 到 支持空安全,其實(shí)只用了幾句話。第一句是反饋測(cè)試,看看它的 默認(rèn)知識(shí)儲(chǔ)備

生成一個(gè) dart 類 User, 字段為 : 可空 int 型 age 、final 非空 String 型 username 默認(rèn)值為 “unknown”

當(dāng)它的輸出不滿足我們的需求時(shí),再進(jìn)行 誘導(dǎo) :

Dart 新版本中可空類型定義時(shí),其后需要加 ?
用 Dart 新版本,有默認(rèn)值的字段不需要使用 required 關(guān)鍵字,其他非空字段需要

在誘導(dǎo)完成之后,它就可以給出滿足需求的輸出。這種誘導(dǎo)后提供的會(huì)話環(huán)境,輸出是相對(duì)穩(wěn)定的,完成特定的任務(wù)。這就是為不確定的輸出,添加規(guī)則,使其輸出趨近 冪等性 。一旦一項(xiàng)可以處理任務(wù)的工具有這種性質(zhì),就可以面向任何人使用??梢苑Q這種誘導(dǎo)過程為解決某一問題的一種 解決方案。

比如上面的三句話就是:根據(jù)類信息生成 Dart 數(shù)據(jù)類型,并支持空安全。在當(dāng)前環(huán)境下,就可以基于這種方案去處理同類的任務(wù):

用 Dart 新版本生成一個(gè) dart 類 TaskResult,字段為: final 非空 int 型 cost , final 非空 String 型 taskName 默認(rèn)值為 “unknown” , final 非空 int 型 count,可空 String型taskInfo,final 非空 String型 taskCode

Flutter?ChatGPT代碼生成器怎么使用

你拷貝代碼后,就是可用的:

Flutter?ChatGPT代碼生成器怎么使用

4. Dart 數(shù)據(jù)類生成器完善

上面生成 Dart 數(shù)據(jù)類比較簡(jiǎn)單,下面繼續(xù)拓展,比如對(duì)于數(shù)據(jù)類型而言 copyWith 、toJson 、fromJson 的方法自己寫起來比較麻煩。如果現(xiàn)在告訴它:

為上面的類提供 copyWith、toJson 、 fromJson 方法

它會(huì)進(jìn)行提供,說明它具有這個(gè) 默認(rèn)知識(shí)儲(chǔ)備 ,但可以看到 copyWith 方法中的字段不符合空安全:

Flutter?ChatGPT代碼生成器怎么使用

此時(shí)可以訓(xùn)練它的 類型可空 的意識(shí),讓它主動(dòng)處理類似的問題,也可以直白的告訴它

將上面的 copyWith 方法入?yún)㈩愋秃蠹?? 號(hào)

這樣生成的 TaskResult 類就可以使用了:

Flutter?ChatGPT代碼生成器怎么使用

class TaskResult {
  final int cost;
  final String taskName;
  final int count;
  final String? taskInfo;
  final String taskCode;
  TaskResult({
    required this.cost,
    this.taskName = 'unknown',
    required this.count,
    this.taskInfo,
    required this.taskCode,
  });
  TaskResult copyWith({
    int? cost,
    String? taskName,
    int? count,
    String? taskInfo,
    String? taskCode,
  }) {
    return TaskResult(
      cost: cost ?? this.cost,
      taskName: taskName ?? this.taskName,
      count: count ?? this.count,
      taskInfo: taskInfo ?? this.taskInfo,
      taskCode: taskCode ?? this.taskCode,
    );
  }
  Map<String, dynamic> toJson() {
    return {
      'cost': cost,
      'taskName': taskName,
      'count': count,
      'taskInfo': taskInfo,
      'taskCode': taskCode,
    };
  }
  static TaskResult fromJson(Map<String, dynamic> json) {
    return TaskResult(
      cost: json['cost'] as int,
      taskName: json['taskName'] as String,
      count: json['count'] as int,
      taskInfo: json['taskInfo'] as String,
      taskCode: json['taskCode'] as String,
    );
  }
}

5. 代碼生成字符串 與 ChatGPT 生成字符串

對(duì)于一些相對(duì)固定的代碼,可以使用代碼邏輯,拼接字符串來生成。如下所示,通過對(duì)類結(jié)構(gòu)的抽象化,使用對(duì)象進(jìn)行配置,輸出字符串。我們來思考一下,這和 ChatGPT 生成代碼的區(qū)別。

首先,使用代碼生成代碼是一種完全的 冪等行為 。也就是說任何人、在任何時(shí)間、任何空間下,使用相同的輸入,都可以獲取到相同的輸出,是絕對(duì)精準(zhǔn)的。其產(chǎn)生代碼的行為邏輯是完全可控的,人的內(nèi)心是期待確定性的。

Flutter?ChatGPT代碼生成器怎么使用

而 ChatGPT 對(duì)自然語言的理解,你可以用語言去引導(dǎo)它輸出一些你的需求,比如 :

以json 格式生成 10 句連續(xù)的中文對(duì)話,key 為 content包括。另外 time 字段為時(shí)間戳 ,type 字段1,2 隨機(jī)

Flutter?ChatGPT代碼生成器怎么使用

到此,相信大家對(duì)“Flutter ChatGPT代碼生成器怎么使用”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI