草庐IT

Python+chatGPT编程5分钟快速上手,强烈推荐!!!

测试开发技术 2023-04-28 原文

最近一段时间chatGPT火爆出圈!无论是在互联网行业,还是其他各行业都赚足了话题。

俗话说:“外行看笑话,内行看门道”,今天从chatGPT个人体验感受以及如何用的角度来分享一下。

1、chatGPT是个啥?

chatGPT是最近新出来的玩意?并不是!在国内,chatGPT最早是在2022年11月就由OpenAI于推出的。只是去年底火了一把,后力不足又遇春节,热度草草就结束了。

先讲一下,OpenAI是美国一所人工智能研究公司,chatGPT 只是 OpenAI 公司其中的一个技术产品,除了chatGPT, OpenAI也还有很多其他“有意思”的产品。

OpenAI旨在降低人工智能业务开发门槛,我们完全不需要神经网络、NLP、深度学习等人工智能领域工程师及算法工程师,就可以直接使用OpenAI训练好的强大模型为我们进行业务赋能。

具体可查阅它的官网:

https://openai.com/

再来讲一讲chatGPT是什么,chatGPT采用了 GPT(Generative Pre-trained Transformer)技术,用专业词汇来讲,是一个用于对话生成的预训练语言模型,用简单通俗来解释:是一款利用AI技术实现出来的聊天机器人

提到AI聊天机器人,这类技术应用场景在互联网行业此前并不少见,甚至很多,那为什么chatGPT能快速脱颖而出,成为爆品。得益于它的强大能力:整合信息和语言组织能力,接近于人类常识、认知。体验过chatGPT的人,想必很多人的第一感受给我是一样的:chatGPT很像一个真人!这个人还是一个业务能力很强,知无不言的行家能手,不厌其烦地为你解答各种业务问题,它的答复比其他搜索引擎更加精准,十分清楚你的搜索意图

显然易见的是,比起冷冰冷的机器,我们更愿意跟人打交道,这背后要归功于OpenAI在AI对齐问题上做出的诸多努力,致力于探索如何让语言模型遵循人类的意图、符合人类价值观,让ChatGPT表现得更有“人味儿”。

如下体验后截的两张示例图(如果你再不努力,重复低效劳力者终将AI取代

从给出来的答案中,可以发现提问方式的不同,答案也会有所不同,即便是针对同一个关键词,chatGPT给出来的答案也会有所差异,通过Regenerate response不断调优,致力生成一个更佳完美适合你提问预期需要的答案。

2、chatGPT怎么注册?

看到上面的介绍,如果你还没有体验过chatGPT,想必早已蠢蠢欲动了,我们可以通过访问:

https://chat.openai.com/chat

使用前,需要先注册,注册过程有一点点小门槛,还不会如何注册的,可以参考前几天发的推文。

注册成功后,就可以在chatGPT在线聊天界面,通过关键字提问畅所欲言了。

3、chatGPT怎么用?

chatGPT爆火后,很多行业都在探索如何将其结合到生活工作场景中。如chatGPT+医疗chatGPT+OAchatGPT+自动运维chatGPT+智能客服,甚至chatGPT如何结合应用到测试场景等等。包括在国内也有很多同类产品早在布局:

今天我们暂不聊chatGPT如何和具体场景结合,单纯从开发的角度,聊一聊chatGPT本身如何使用。

OpenAI官网提供了一套接口文档:

platform.openai.com

从目前接口文档中来看,OpenAI的原生接口支持PythonNode.js两类语言,但也同时支持RESTFul的API接口形式。所以目前其他语言可以通过Http的API请求形式来调用OpenAI的接口。

以Python为例,在编写代码之前,先安装openai环境,安装指令如下:

pip install openai

在调用openai API需要一个API_KEY, API_KEY的获取办法访问:

https://platform.openai.com/account/api-keys

在网页中,生成API_KEY

示例1:利用chatGPT API实现文本处理响应

# 公众号:测试开发技术

import os
import openai

OPENAI_API_KEY="xxxxxx"
openai.api_key = os.getenv("OPENAI_API_KEY",OPENAI_API_KEY)

prompt = "用Python写一个mock server"

response = openai.Completion.create(
  model="text-davinci-003",
  prompt=prompt,
  temperature=0.5,
  max_tokens=1024,
  n=1,
  stop=None
)

print(response.choices[0].text)

本示例是基于"text-davinci-003"模型来对text文本进行处理的,"text-davinci-003"是chatGPT最常用的模型之一。

运行结果如下:


这样就已经基于"text-davinci-003"的能力得到了我们想要的答案。

示例2: 利用chatGPT实现python代码bug自动修复

import os
import openai

openai.api_key = os.getenv("OPENAI_API_KEY")

response = openai.Completion.create(
  model="code-davinci-002",
  prompt="##### Fix bugs in the below function\n \n### Buggy Python\nimport Random\na = random.randint(1,12)\nb = random.randint(1,12)\nfor i in range(10):\n    question = \"What is \"+a+\" x \"+b+\"? \"\n    answer = input(question)\n    if answer = a*b\n        print (Well done!)\n    else:\n        print(\"No.\")\n    \n### Fixed Python",
  temperature=0,
  max_tokens=182,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
  stop=["###"]
)

从上面两者示例,大家不难看出,代码写起来并不复杂,不同功能实现起来的区别在于使用到的model以及设置参数的不同罢了,具体更多玩法,留给大家探索了。

4、小结

本篇文章算是对chatGPT一个小结,对于刚接触chatGPT的读者来讲,还是非常有帮助的。chatGP官方提供了大量的API,对于技术从业者是极大利好的,至于怎么和实际生活工作场景结合起来,将取决你的技术功底+商业嗅觉了。正如雷军之前说过一句话:“站在风口,猪都会飞!”

有关Python+chatGPT编程5分钟快速上手,强烈推荐!!!的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  3. ruby-on-rails - Rails 中的推荐引擎 - 2

    我想为我的Rails网络应用程序提供推荐功能。特别是,我想向新注册的用户推荐他可能想要关注的其他用户。Rails中是否有用于此目的的引擎/gem?如果没有,我应该从哪里开始构建它?谢谢。 最佳答案 有Coletivogemhttps://github.com/diogenes/coletivo我试了一下。在MySQL上运行。Neo4jhttp://neo4j.org真的很容易实现一个“跟随谁”。事实上,大多数展示其能力的样本都涉及“跟随谁”。快速提示-只有在JRuby上运行时,Neo4j.rb才会很酷。如果不是-使用Neograph

  4. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  5. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  6. 亚特兰蒂斯的回声(中文版): chatGPT 的杰作 - 2

    英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古

  7. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  8. python - 如何读取 MIDI 文件、更改其乐器并将其写回? - 2

    我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的

  9. 网络编程套接字 - 2

    网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识

  10. 「Python|Selenium|场景案例」如何定位iframe中的元素? - 2

    本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决

随机推荐