Flutter & ChatGPT | Code-Generator

ChatGPT ist als Tool zur Verarbeitung natürlicher Sprache seit einiger Zeit beliebt. Behandeln Sie ChatGPTverschiedene Menschen mit unterschiedlichen Ansichten, und die Entstehung neuer Dinge muss so sein. Interessengruppen bilden sich 抵制und 狂热Pole; Sensationsmenschen faseln herum und fragen nach Tricks, um die Aufmerksamkeit der Leute zu erregen; Neuheitenjäger probieren neue Dinge aus, und diejenigen, die Lärm machen, provozieren; Pragmatiker denken über den Wert und die Arbeitskraft von neuen Dingen nach:

Bild.png

Für diejenigen, die ChatGPT als Enzyklopädie verwenden oder philosophische Fragen stellen, möchte ich nur sagen:

Bei einem Problem ist es normal, das falsche Werkzeug zu verwenden, um mit dem falschen Ergebnis fertig zu werden.


1. Merkmale und Nachteile von ChatGPT

Das größte Feature von ChatGPT ist die grundlegende semantische Analyse, die es dem Computer ermöglicht, natürliche Sprache zu verarbeiten und auszugeben. In einem Gespräch ist der Kontext gültig, daher kann es ähnlich wie bei einer Kommunikation sein.

Stellen Sie diese Frage, wie wird sie antworten?

Diese nach Neuheiten strebende Psychologie wird einige Leute dazu bringen, sich darauf zu freuen, es auszuprobieren; seltsame oder dumme Antworten können auch das Überlegenheitsgefühl der Menschen gegenüber künstlicher geistiger Behinderung befriedigen; das Teilen von Fragen und Antworten verleiht ChatGPT auch einen Hauch von sozialen Attributen. Die drei können es benutzen, um die Leere in deinem Herzen zu füllen, aber dabei bleibt es nicht.


Die derzeitigen Nachteile von ChatGPT liegen ebenfalls auf der Hand: Da die Daten einige Jahre zurückliegen, ist die Aktualität nicht hoch, die Genauigkeit bei der Beantwortung vieler Fragen ist nicht hoch und es ist nicht freundlich zu Menschen, die blind glauben oder Freunde mit schlechtem Urteilsvermögen sind; Der letzte Punkt ist sehr wichtig: Wenn die Abhängigkeit von Werkzeugen zu hoch ist, wird die subjektive Initiative der Menschen reduziert, wenn sie die Werkzeuge verlassen.

Bild.png


2. Codegenerierung und Regelinduktion

Lassen Sie es wie folgt eine Dart-Benutzerklasse generieren:

Generieren Sie einen Dart-Klassenbenutzer, die Felder sind: nullable int type age, final non-null String type username default value is "unknown"

Bild.png

Obwohl der Code angegeben ist, ist ersichtlich, dass dies der Code vor der Nullsicherheit ist. Viele Leute kommen vielleicht hierher und haben das Gefühl, dass die Daten alt und nutzlos sind, also werde ich mich von Ihnen verabschieden.

Bild.png


Aber es ist ein Tool zur Verarbeitung natürlicher Sprache mit einem Konversationskontext, und Sie können es dazu bringen, einige Konzepte zu verstehen. Genauso wie einem neuen Mitarbeiter, dem am ersten Arbeitstag ein kleiner Fehler unterlaufen ist, sollten Sie ihn sofort entlassen oder ihm sagen, wie er richtig damit umgeht. Geben Sie ihm ein Konzept wie dieses:

Dart 新版本中可空类型定义时,其后需要加 ?

Bild.png


如下所示,你就可以在当前的会话环境中让它生成更多字段的类型:

用 Dart 新版本生成一个 dart 类 User,字段为: final 非空 int 型 age , final 非空 String 型 username 默认值为 “unknown” , final 非空 int 型 height,可空 String型info,final 非空 int 型 roleId

Bild.png

如果存在问题,可以继续进行指正。比如 :

用 Dart 新版本,有默认值的字段不需要使用 required 关键字,其他非空字段需要

Bild.png

所以对于 ChatGPT 而言,我们可以把它看成一个有一些基础知识的,可为我们免费服务的员工,简称:奴隶。当它做错事时,你骂它,责备它,抛弃它是毫无意义的,因为它是机器。我们需要去 诱导 它理解,在当前工作环境中正确的事。

这样在当前会话中,它就可以理解你诉说的规则,当用它创建其他类时,他就不会再犯错。并且不排除它会基于你的规则,去完善自身的 知识储备 ,当众多的人用正确的规则去 诱导 它,这就是一个善意的正反馈。


3. 解决方案的概念

这里从生成的代码 不支持空安全支持空安全,其实只用了几句话。第一句是反馈测试,看看它的 默认知识储备

生成一个 dart 类 User, 字段为 : 可空 int 型 age 、final 非空 String 型 username 默认值为 “unknown”

当它的输出不满足我们的需求时,再进行 诱导

Dart 新版本中可空类型定义时,其后需要加 ?
用 Dart 新版本,有默认值的字段不需要使用 required 关键字,其他非空字段需要

在诱导完成之后,它就可以给出满足需求的输出。这种诱导后提供的会话环境,输出是相对稳定的,完成特定的任务。这就是为不确定的输出,添加规则,使其输出趋近 幂等性 。一旦一项可以处理任务的工具有这种性质,就可以面向任何人使用。可以称这种诱导过程为解决某一问题的一种 解决方案

比如上面的三句话就是:根据类信息生成 Dart 数据类型,并支持空安全。在当前环境下,就可以基于这种方案去处理同类的任务:

用 Dart 新版本生成一个 dart 类 TaskResult,字段为: final 非空 int 型 cost , final 非空 String 型 taskName 默认值为 “unknown” , final 非空 int 型 count,可空 String型taskInfo,final 非空 String型 taskCode

Bild.png

你拷贝代码后,就是可用的:

Bild.png


4. Dart 数据类生成器完善

上面生成 Dart 数据类比较简单,下面继续拓展,比如对于数据类型而言 copyWithtoJsonfromJson 的方法自己写起来比较麻烦。如果现在告诉它:

为上面的类提供 copyWith、toJson 、 fromJson 方法

它会进行提供,说明它具有这个 默认知识储备 ,但可以看到 copyWith 方法中的字段不符合空安全:

Bild.png

此时可以训练它的 类型可空 的意识,让它主动处理类似的问题,也可以直白的告诉它

将上面的 copyWith 方法入参类型后加 ? 号

Die resultierende TaskResultKlasse ist einsatzbereit:

Bild.png

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. Codegenerierte Strings und ChatGPT-generierte Strings

Für einige relativ feste Codes kann Codelogik verwendet werden, um sie durch Verketten von Zeichenfolgen zu generieren. Wie unten gezeigt, verwenden Sie durch die Abstraktion der Klassenstruktur Objekte zum Konfigurieren und Ausgeben von Zeichenfolgen. Lassen Sie uns über den Unterschied zwischen diesem und dem von ChatGPT generierten Code nachdenken.

Erstens ist die Verwendung von Code zum Generieren von Code ein völlig idempotentes Verhalten . Das heißt, jeder kann zu jeder Zeit und an jedem Ort die gleiche Ausgabe mit der gleichen Eingabe erhalten, was absolut genau ist. Die Verhaltenslogik beim Generieren von Code ist vollständig kontrollierbar, und die Menschen erwarten Gewissheit in ihrem Herzen.

Bild.png

Was das Verständnis von ChatGPT für natürliche Sprache betrifft, können Sie Sprache verwenden, um es zu leiten, um einige Ihrer Bedürfnisse auszugeben, wie zum Beispiel:

Generieren Sie 10 aufeinanderfolgende chinesische Dialoge im json-Format, der Schlüssel ist der Inhalt. Außerdem ist das Zeitfeld ein Zeitstempel und das Typfeld 1, 2 ist zufällig

Bild.png

Tatsächlich gibt es kein stark oder schwach, es ist nur ein Unterschied in den Nutzungsszenarien. Messer haben unterschiedliche Verwendungszwecke in den Händen verschiedener Menschen.Menschen sind der Hauptkörper der Produktion und des Lebens , und Werkzeuge haben nur die Eigenschaft des Dienstes. Das Werkzeug zu kontrollieren und es praktischen Wert erzeugen zu lassen, ist die Bedeutung der Existenz des Werkzeugs. Nun, dieser Artikel ist hier drüben, danke fürs Ansehen~

Ich denke du magst

Origin juejin.im/post/7197584339213762619
Empfohlen
Rangfolge