Flutter y ChatGPT | Generador de código

ChatGPT, como herramienta de procesamiento de lenguaje natural, ha sido popular por un tiempo. Trate a ChatGPTdiferentes personas con diferentes puntos de vista, y la aparición de cosas nuevas debe ser así. Las partes interesadas forman 抵制y 狂热polos; los sensacionalistas están divagando, pidiendo algunos trucos para captar la atención de la gente; los cazadores de novedades están probando cosas nuevas, y los que hacen ruido son provocadores; los pragmáticos están pensando en el valor y la fuerza de trabajo de las cosas nuevas:

imagen.png

Para aquellos que usan ChatGPT como una enciclopedia o hacen preguntas filosóficas, solo quiero decir:

Para un problema, es normal usar la herramienta incorrecta para tratar con el resultado incorrecto.


1. Características y desventajas de ChatGPT

La característica más importante de ChatGPT es el análisis semántico básico, que permite que la computadora procese y genere lenguaje natural. En una conversación, el contexto es válido, por lo que puede ser similar a la comunicación.

Haz esta pregunta, ¿cómo responderá?

Esta psicología de búsqueda de novedades hará que algunas personas deseen intentarlo; las respuestas extrañas o estúpidas también pueden satisfacer el sentido de superioridad de los seres humanos sobre el retraso mental artificial; compartir preguntas y respuestas también le da a ChatGPT un toque de atributos sociales. Los tres pueden usarlo para llenar el vacío en tu corazón, pero no se detiene ahí.


Las desventajas actuales de ChatGPT también son obvias. Dado que los datos son de hace unos años, la puntualidad no es fuerte, la precisión de responder muchas preguntas no es alta y no es amigable para las personas que creen ciegamente o amigos con poco juicio; El último punto es muy importante: en lo que respecta a las herramientas, si la dependencia de ellas es demasiado alta, la iniciativa subjetiva de las personas se verá reducida cuando dejen las herramientas.

imagen.png


2. Generación de código e inducción de reglas

Deje que genere una clase de usuario de Dart de la siguiente manera:

Genere un usuario de clase dart, los campos son: edad de tipo int anulable, valor predeterminado de nombre de usuario de tipo de cadena final no nulo es "desconocido"

imagen.png

Aunque se da el código, se puede ver que este es el código antes de la seguridad nula. Muchas personas pueden venir aquí y sentir que los datos son viejos e inútiles, así que me despediré de ustedes.

imagen.png


Pero es una herramienta de procesamiento de lenguaje natural con un contexto conversacional, y puedes hacer que entienda algunos conceptos. Al igual que un nuevo empleado que cometió un pequeño error el primer día de trabajo, debe despedirlo de inmediato o decirle cómo manejarlo correctamente. Dale un concepto como este:

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

imagen.png


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

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

imagen.png

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

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

imagen.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

imagen.png

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

imagen.png


4. Dart 数据类生成器完善

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

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

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

imagen.png

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

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

La TaskResultclase está lista para usar:

imagen.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. Cadenas generadas por código y cadenas generadas por ChatGPT

Para algunos códigos relativamente fijos, se puede usar la lógica del código para generarlos mediante la concatenación de cadenas. Como se muestra a continuación, a través de la abstracción de la estructura de clases, use objetos para configurar y generar cadenas. Pensemos en la diferencia entre este y el código generado por ChatGPT.

Primero, usar código para generar código es un comportamiento completamente idempotente . Es decir, cualquier persona, en cualquier momento y en cualquier espacio, puede obtener la misma salida con la misma entrada, lo cual es absolutamente exacto. La lógica de comportamiento de generar código es completamente controlable, y la gente espera certeza en sus corazones.

imagen.png

En cuanto a la comprensión del lenguaje natural de ChatGPT, puede usar el lenguaje para guiarlo y generar algunas de sus necesidades, como:

Genera 10 diálogos chinos consecutivos en formato json, la clave es el contenido. Además, el campo de tiempo es una marca de tiempo y el campo de tipo 1, 2 es aleatorio

imagen.png

De hecho, no existe tal cosa como fuerte o débil, es solo una diferencia en los escenarios de uso. Los cuchillos tienen diferentes usos en manos de diferentes personas, las personas son el cuerpo principal de producción y vida , y las herramientas solo tienen el atributo de servicio. Controlar la herramienta y hacer que produzca valor práctico es el significado de la existencia de la herramienta. Bueno, este artículo está aquí, gracias por mirar ~

Supongo que te gusta

Origin juejin.im/post/7197584339213762619
Recomendado
Clasificación