chatgpt代码生成 Flutter ChatGPT代码生成器方案概念
更新时间:2023年02月09日 16:58:54 作者:张风捷特烈
这篇文章主要为大家介绍了代码生成器方案概念,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
目录
作为一个自然语言处理工具,已经火了一段时间。对待不同人有着不同的看法,新事物的出现必然如此。利益相关者形成 抗拒 和狂热两极;哗众取宠者蹭蹭热度,问些花活,博人眼球;猎奇者尝尝鲜,起哄者挑挑火;实用派在思考新事物的价值和劳动力:
对于那些拿 当百科全书来用的,或询问哲学问题的朋友,我只想说:
对于一个问题,用错误的工具去处理得出错误的结果,是一件很正常的事。
1. 的特点和劣势
最大的特点是基础的语义分析,让计算机对自然语言进行处理并输出。在一段会话中,上下文是有效的,所以可以类似于交流。
问这个问题,它会怎么回答?
这种猎奇的心理,会让一部分人期望尝试;有稀奇古怪或愚蠢的回答,也可以满足人类对人工智障的优越感;分享问答,也让 拥有一丝的社交属性。蹭热度、猎奇、起哄三者可以用它填充一块内心的空虚,也仅止步于此。
目前的劣势也很明显,由于数据是几年前的,所以时效性不强;对很多问题回答的精准度并不高,对于盲目相信的人,或判别力较差的朋友并不友好;最后一点,非常重要:对于工具而言,如果对其依赖性太高,脱离工具时,会让人的主观能动性降低。
h3>2. 代码的生成与规则诱导
如下所示,让它生成一个 Dart 的 User 类:
生成一个 dart 类 User, 字段为 : 可空 int 型 age 、 非空 型 默认值为 “”
虽然代码给出了,但是可以看出,这是空安全之前的代码。可能很多人到这里,觉得数据陈旧没什么用途,就拜拜了您嘞。
但它是一个有会话上下文的自然语言处理工具,你可以让它理解一些概念。就像一个新员工,上班第一天出了一点小错误,你是立刻开除他,还是告诉他该怎么正确处理。如下所示,给了它一个概念:
Dart 新版本中可空类型定义时,其后需要加 ?
如下所示,你就可以在当前的会话环境中让它生成更多字段的类型:
用 Dart 新版本生成一个 dart 类 User,字段为: 非空 int 型 age , 非空 型 默认值为 “” , 非空 int 型 ,可空 型info, 非空 int 型
如果存在问题,可以继续进行指正。比如 :
用 Dart 新版本,有默认值的字段不需要使用 关键字,其他非空字段需要
所以对于 而言,我们可以把它看成一个有一些基础知识的,可为我们免费服务的员工,简称:奴隶。当它做错事时,你骂它,责备它,抛弃它是毫无意义的,因为它是机器。我们需要去诱导它理解,在当前工作环境中正确的事。
这样在当前会话中,它就可以理解你诉说的规则,当用它创建其他类时,他就不会再犯错。并且不排除它会基于你的规则chatgpt代码生成,去完善自身的知识储备,当众多的人用正确的规则去诱导它,这就是一个善意的正反馈。
3. 解决方案的概念
这里从生成的代码不支持空安全到支持空安全,其实只用了几句话。第一句是反馈测试,看看它的默认知识储备
生成一个 dart 类 User,字段为 : 可空 int 型 age 、 非空 型 默认值为 “”
当它的输出不满足我们的需求时chatgpt代码生成,再进行诱导:
Dart 新版本中可空类型定义时,其后需要加 ?
用 Dart 新版本,有默认值的字段不需要使用 关键字,其他非空字段需要
在诱导完成之后,它就可以给出满足需求的输出。这种诱导后提供的会话环境,输出是相对稳定的,完成特定的任务。这就是为不确定的输出,添加规则,使其输出趋近幂等性。一旦一项可以处理任务的工具有这种性质,就可以面向任何人使用。可以称这种诱导过程为解决某一问题的一种解决方案。
比如上面的三句话就是:根据类信息生成 Dart 数据类型,并支持空安全。在当前环境下,就可以基于这种方案去处理同类的任务:
用 Dart 新版本生成一个 dart 类 ,字段为: 非空 int 型 cost , 非空 型 默认值为 “” , 非空 int 型 ,可空 型, 非空 型
你拷贝代码后,就是可用的:
4. Dart 数据类生成器完善
上面生成 Dart 数据类比较简单,下面继续拓展,比如对于数据类型而言、、的方法自己写起来比较麻烦。如果现在告诉它:
为上面的类提供 、 、 方法
它会进行提供,说明它具有这个默认知识储备,但可以看到方法中的字段不符合空安全:
此时可以训练它的类型可空的意识,让它主动处理类似的问题,也可以直白的告诉它
将上面的 方法入参类型后加 ? 号
这样生成的类就可以使用了:
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, ); } MaptoJson() { return { 'cost': cost, 'taskName': taskName, 'count': count, 'taskInfo': taskInfo, 'taskCode': taskCode, }; } static TaskResult fromJson(Map 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. 代码生成字符串 与 生成字符串
对于一些相对固定的代码,可以使用代码逻辑,拼接字符串来生成。如下所示,通过对类结构的抽象化,使用对象进行配置,输出字符串。我们来思考一下,这和 生成代码的区别。
首先,使用代码生成代码是一种完全的幂等行为。也就是说任何人、在任何时间、任何空间下,使用相同的输入,都可以获取到相同的输出,是绝对精准的。其产生代码的行为逻辑是完全可控的,人的内心是期待确定性的。
而 对自然语言的理解,你可以用语言去引导它输出一些你的需求,比如 :
以json 格式生成 10 句连续的中文对话,key 为 包括。另外 time 字段为时间戳 ,type 字段1,2 随机
其实没有什么孰强孰弱,只是使用场景的不同而已。刀在不同人的手里有不同的用法,人是生产生活的主体chatgpt代码生成,工具只有服务的属性。驾驭工具,让它产生实用的价值,才是工具存在的意义。好了,本文到这里就扯完了,感谢观看 ~
以上就是 代码生成器方案概念的详细内容,更多关于 代码生成器的资料请关注脚本之家其它相关文章!
免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代表本站的观点和立场和对其真实性负责。如需转载,请联系原作者。如果来源标注有误或侵犯了您的合法权益或者其他问题不想在本站发布,来信即删。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。