chatgpt是从什么时候开始火的 chatgpt是什么时候火起来的
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
现在的朋友圈几乎全部是有关于chatgpt的消息,好多微信公众号都围绕chatgpt发布各种帖子。
有人说chatgpt就是一个聊天工具,它回复的内容,都是一本正经的胡说八道。还有人说chatgpt的诞生预示着一场更大的工业革命正在发生。
我们心中不免疑问,chatgpt到底是什么?它究竟有怎样不为人知的故事、真的像传说中的那样无所不能吗?
读了刘琼老师编著的《chatgpt AI革命》这本书才明白,chatgpt通俗一点讲就是用于处理对话数据的GPT模型。只是它比早期的聊天机器人更成熟,更加开放和多元化,不仅仅局限于特定的应用场景罢了。
chatgpt当下凭什么这么“火”?
原来,chatgpt具备早期机器人没有的特点:它是一种可以实时与用户进行交互、不用人工介入,可以分析用户提出的需求或疑问,很好的理解情感,实施个性化的客户自助服务,能够更快更好的提升客户体验。
它还支持多种聊天渠道,比如:微信、Skype等。因此,对于刚开始接触chatgpt的人来说,把它看作是一个聊天机器人就好了。
chatgpt的另一个亮点,它的核心技术是人工神经网络的自然语言处理技术,也就是说它使用了GPT的大型深度学习模型。
GPT模型可以通过提供的种子文本生成新的文本,并对文本进行特征提取来进行分类,将源语言文本编码为向量,然后生成目标语言文本,还可以通过对询问文本进行编码并在大量文本库中搜索匹配结果。
形象地说,GPT模型就像一个具备强大的语言学习能力的人。不同的是,它不需要专门背单词和学语法,就能自己通过阅读大量的文本材料来掌握一门语言,达到接近母语者的水平,这听起来真是觉得很不可思议。
如此神奇的chatgpt是谁发明的?
它是由埃隆・马斯克、萨姆・奥尔特曼、格雷格・布罗克曼等知名的技术大佬共同投资,于2015年创建的一家提供人工智能技术服务的公司,名字叫OpenAI。
chatgpt作为OpenAI最新推出的研究成果,它“火”起来的原因不仅在于它的核心技术功能强大,还有越来越逼近人类自然语言的能力。
真的不敢想象,以后凡是人类智慧产生的成果是不是都可能被AI替代?像写作、绘图纸、编程序,制定工作计划等都是当下人们的主要活动。
尤其是以chatgpt为代表的AI生成内容(AIGC)对教育领域的应用和优势,让人不容忽视。好在教师和学生之间有着密切的情感链接,暂时是人工智能所无法取代的,不然真的不知道又会有多少岗位要被替代了。
读完这本书后不由得陷入沉思,人工智能技术通过一次次更新迭代,相信在不远的将来,它拥有的能量估计要用“可怕”来形容了。
《chatgpt AI革命》是一本不可多得的AI类工具书,作者以风趣幽默的语言,把专业的事写的普通人也能轻松看懂,这本书特别适合文字工作者使用,推荐这本书!
golang goroutine 单元测试 golang test编写详解
golang语言和JAVA对比,golang是前端还是后端,golang是什么意思,golang面试前言
目前gpt本质上是续写,所以在待测函数函数定义清晰的情况下,单元测试可以适当依赖它进行生成。
收益是什么:
辅助生成测试用例&测试代码,降低单元测试编写的心智成本
辅助code review,帮助发现代码显式/潜在问题
本文测试环境:
gpt: gpt-3.5-turbo
go:go 1.17
本文实践场景:企业微信美图鉴赏机器人
生成单元测试的工作流如下:
选定你的待测函数
分析函数的依赖:结构体定义、repo依赖、repo interface抽象(用fx和wire等依赖注入框架的话会方便很多)
组织prompt,准备施法
吟唱魔法,得到输出单元测试代码
copy到ide里面缝缝补补,与预期出入太多的话,调整prompt重来/要求gpt按照某个标准重写(比如:请按照testCases的写法重写组织测试数据)
运行测试用例
话不多说,先上基础prompt:
下面的部分,我按照工作流的繁杂程度,简单区分了下easy/normal/hard情况。
单个函数,并且外部依赖都是开源库,那么直接把代码贴上去就行。
这里我们用图片压缩的独立函数举例: (prompt前摇咒语 + 代码片段)
ChatGPT输出的代码块如下:
放到ide里,完美运行,说明简单函数的单元测试生成还是很强的~
Part2 normal :里面有一些外部import
有外部定义引入的时候,最好把外部定义直接贴上(不涉及mock)。
这里举例的函数出现了外部依赖 entity.Archichatgpt等定义,所以最好要加上外部定义在输入中:
下面是生成的代码,经过少量修改后可以直接运行:
(因为少输入了一个结构体的定义,导致它猜测了一些字段)
Part3 hard:对外部repo进行mock(gomock举例)
外部依赖越多,prompt template的构建可能就越复杂
ps.实际上gomonkey它也可以写
外部依赖repo的部分,要求gpt使用gomock进行对应repo的mock即可。
外部定义最好进行剪枝。
输出:
生成的代码太长,几点总结:
1.gomock代码可以正常生成,但是外部repo定义最好清晰明了,可以直接把interface定义贴上去,会被认知到。
2.粘贴到ide中,发现主要问题是包名导入问题,简单修改即可
修改后运行成功:
如果需要生成后人工修改量更低的话,需要更精确的上下文信息(包名、函数定义、描述等)
一些痛点
1.需要外部 repo mock的待测函数,需要的上下文很多,并且引入的无关字段需要剪枝避免污染输入
2.一些复杂的私有包,看起来是比较不好支持的(尝试过在prompt中教会他,但是效果不好)
3.一些复杂逻辑和边界情况,ai可能口是心非(写的用例和表述不一致,比如经典的20%*20%=400%,但是他知道这是错的)
4.对于分层不是很清晰的项目,对函数/repo打桩可能很困难,这个时候要描述清楚就比较困难了,gomonkey可能比较适用
其他用法
1.写好测试方法,让gpt帮助扩充用例集
2.code review,下面的代码就是gpt给出的代码建议
ChatGPT给出的优化建议: