探索AI交互:Python与ChatGPT的完美结合!

大家好!我是爱摸鱼的小鸿,人生苦短,我用Python!关注我,收看技术干货。

随着人工智能的迅速发展,AI交互正成为技术领域的一大亮点。在这个过程中,Python编程语言和ChatGPT模型的结合展现出强大的潜力,为创造性、智能的对话系统带来了新的可能性。本文将探讨如何将Python与ChatGPT完美结合,为AI交互带来全新的体验。

作者:Maker陈,本文字数:4.3k,阅读时长≈5分钟

目录

    • 一、ChatGPT简介
    • 二、Python与ChatGPT关系
    • 三、GPT各模型概览
    • 四、ChatGPT使用准备
      • 4.1 注册openAI账号
      • 4.2 获取API-Key
      • 4.3 安装openAI提供的库
    • 五、Python与ChatGPT的融合
    • 六、ChatGPT创造或赋予应用智能
    • 七、作者Info

一、ChatGPT简介

ChatGPT是由OpenAI推出的一种基于GPT(Generative Pre-trained Transformer)架构的语言模型,用于生成自然语言文本。GPT是一种预训练模型,意味着它在大规模文本数据上进行了预训练,从而学到了语言的模式和结构。

ChatGPT在训练时强调了对话数据,以更好地适应对话上下文的生成,被广泛用于各种自然语言处理任务,包括对话系统、内容生成、语言翻译等。

然而,由于它是基于大量预训练数据的通用模型,它在某些情况下可能会生成不准确或不合适的回复(就是说如果你问的问题它不会,它就会根据以往的经验胡编),因此在特定应用中需要谨慎使用。

二、Python与ChatGPT关系

在ChatGPT的开发中,Python被用于实现算法、处理数据、构建神经网络模型等方面。同时,深度学习框架,如TensorFlow和PyTorch,也是使用Python编写的,它们为构建和训练神经网络提供了便捷的工具。

因此,可以说ChatGPT的主要实现语言是Python,但在整个系统中可能还涉及其他语言或工具。

由于ChatGPT的出现,为Python和人工智能带火了一波,未来的很多职业会被AI所取代,只能说还没入坑Python的赶紧冲鸭~

三、GPT各模型概览

截止目前为止,openAI为GPT共创造出了9个大模型,我们从最开始的介绍:

  • GPT-3:一组能够理解和生成自然语言的模型,这是最原始的; GPT-base:一组无需遵循指令即可理解并生成自然语言或代码的模型;
  • Moderation:可以检测文本是否敏感或不安全的微调模型; Embeddings:一组组可以将文本转换为数字形式的模型;
  • Whisper:可以将音频转换为文本的模型; TTS:一组可以将文本转换为听起来自然的语音的模型;
  • DALL·E:可以在自然语言提示下生成和编辑图像的模型;
  • GPT-3.5 and GPT-3.5 Turbo:一组改进 GPT-3 的模型,可以理解并生成自然语言或代码;
  • GPT-4 and GPT-4 Turbo:一组改进 GPT-3.5的模型,可以理解并生成自然语言或代码。

其中GPT-3.5 系列中功能最强大且最具成本效益的型号是gpt-3.5-turbo,而GPT-4是一个大型多模态模型(接受文本或图像输入并输出文本),比之前的任何模型更能准确地解决难题,这是openAI最智能和最大的模型,还可以使用DALL·E模型进行图像生成和编辑,以及高级的数据分析等。

目前个人的项目和公司的项目也在使用gpt-3.5-turbo完成NLP任务,比较推荐,但也可根据自己的需求来定。

四、ChatGPT使用准备

4.1 注册openAI账号

要想使用ChatGPT,首先要注册一个openAI的账号,官网如下:

https://openai.com

然后学会科学上网,拥有一个能够接收openAI验证的国际邮箱,比如Gmail、Outlook等,其次要有一个接收openAI短信验证码的国外手机号,没有的话可以购买用于一次性接受短信服务的虚拟手机号也行

4.2 获取API-Key

注册成功之后,这一步就比较简单了,直接自动生成属于你的API-Key:

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

获取完成

4.3 安装openAI提供的库

pip install openai

okay,打开AI世界的钥匙已经获取,接下来就是如何使用了。

五、Python与ChatGPT的融合

此处以gpt-3.5-turbo模型为例,向大家展示ChatGPT强大的自然语言处理能力,一个简单的示例代码如下:

import openaiopenai.api_key = 'your api-key'response = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Is Python the best programming language in the world?"}]
)print(response)

这里传递了你的api-key之后,直接就可以调用相关的接口创建对话,上面的两个参数是必需的,model传入你要使用的模型,messages传入的是一个字典列表,这里我们作为user角色询问ChatGPT:Python是世界上最好的编程语言?看一下输出:

{"id": "chatcmpl-8LWai4W3jE9yHnmgPn8KcwBxvq7mu","object": "chat.completion","created": 1700140860,"model": "gpt-3.5-turbo-0613","choices": [{"index": 0,"message": {"role": "assistant","content": "As an AI assistant, I don't have personal opinions. However, Python is a highly versatile and powerful programming language that is widely used in various fields such as web development, data analysis, artificial intelligence, and more. It is known for its simplicity, readability, and vast range of libraries and frameworks. However, the \"best\" programming language ultimately depends on the specific needs and requirements of your project. There is no definitive answer as different programming languages excel in different areas."},"finish_reason": "stop"}],"usage": {"prompt_tokens": 27,"completion_tokens": 95,"total_tokens": 122}
}

返回的是一个JSON格式,若我们只要ChatGPT的回复内容,其他字段不需要,可以改一下输出格式:

print(response['choices'][0]['message']['content'])

这样最终返回的就只是ChatGPT的回复内容了:

As an AI assistant, I don't have personal opinions. However, Python is a highly versatile and powerful programming language that is widely used in various fields such as web development, data analysis, artificial intelligence, and more. It is known for its simplicity, readability, and vast range of libraries and frameworks. However, the \"best\" programming language ultimately depends on the specific needs and requirements of your project. There is no definitive answer as different programming languages excel in different areas.

在上面的代码,我们会注意到messages字典列表里有个role字段,在ChatGPT会话中通常有三种角色:system、user、assistant,你可能也注意到了在上面的回话中返回的role是assistant,表示助理

因为ChatGPT是生成式预训练模型,它对过去的对话没有记忆能力,我们这时需要给出一些提示,让它能根据上下文对话能更准确的回复,例如下面的例子:

import openaiopenai.api_key = 'your api-key'response = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Is Python the best programming language in the world?"},{"role": "assistant", "content": "As an AI assistant, I don't have personal opinions. However, Python is a highly versatile and powerful programming language that is widely used in various fields such as web development, data analysis, artificial intelligence, and more. It is known for its simplicity, readability, and vast range of libraries and frameworks. However, the \"best\" programming language ultimately depends on the specific needs and requirements of your project. There is no definitive answer as different programming languages excel in different areas."},{"role": "user", "content": "What are the advantages of the python programming language?"}]
)message = response['choices'][0]['message']['content']
print(message)

我们先给system这个role给出一些提示:你是一个有用的助理;然后将我们上次对话的内容传给user和assistant角色,最后让它根据上次的对话内容,我们再问它一个问题:Python编程语言有什么优势?

回复如下:

Python has several advantages that contribute to its popularity:1. Readability and simplicity: Python emphasizes code readability with its clean and well-structured syntax, making it easier to understand and write code quickly.2. Broad range of libraries and frameworks: Python has a vast ecosystem with numerous built-in libraries and frameworks that simplify development tasks. These libraries offer functionalities for various purposes, such as data analysis (NumPy, Pandas), web development (Django, Flask), and scientific computing (SciPy).3. Cross-platform compatibility: Python is compatible with most major operating systems, making it easy to write code that can run on multiple platforms without modifications.4. Productivity and efficiency: Python's simplicity and extensive libraries enable faster development and reduce the time spent on repetitive tasks. It has a shorter learning curve, which makes it an efficient language to pick up for beginners.5. Community and support: Python has a large and active community of developers who contribute to its growth and provide support. This means you can find a wealth of resources, tutorials, and help when needed.6. Integration capabilities: Python easily integrates with other programming languages like C++, Java, and C#, allowing developers to leverage existing codebases and libraries.7. Versatility: Python can be used for various purposes, including web development, data analysis, machine learning, scripting, and automation. It is a versatile language suitable for a wide range of applications.These advantages make Python a preferred choice for many developers and organizations.

中文翻译如下:

Python 的流行有以下几个优点:1.可读性和简单性:Python以其干净、结构良好的语法强调代码的可读性,使人更容易理解和快速编写代码。2. 广泛的库和框架:Python拥有庞大的生态系统,拥有众多内置的库和框架,可以简化开发任务。 这些库提供用于各种目的的功能,例如数据分析(NumPy、Pandas)、Web 开发(Django、Flask)和科学计算(SciPy)。3.跨平台兼容性:Python与大多数主要操作系统兼容,可以轻松编写无需修改即可在多个平台上运行的代码。4.生产力和效率:Python的简单性和广泛的库可以加快开发速度并减少重复任务所花费的时间。 它的学习曲线较短,这使其成为初学者可以有效学习的语言。5. 社区和支持:Python 拥有一个庞大且活跃的开发者社区,他们为其发展做出贡献并提供支持。 这意味着您可以在需要时找到丰富的资源、教程和帮助。6. 集成能力:Python 可以轻松地与其他编程语言(如 C++、Java 和 C#)集成,从而允许开发人员利用现有的代码库和库。7. 多功能性:Python 可用于多种用途,包括 Web 开发、数据分析、机器学习、脚本编写和自动化。 它是一种适用于多种应用的多功能语言。这些优点使 Python 成为许多开发人员和组织的首选。

如果我们不需要编程的方式嵌入到项目里面,只是日常的答复,提一些问题可以在openAI官网上直接可视化进行操作

如果是与assistant聊天,需要手动创建一个小助理:

https://platform.openai.com/assistants

创建之后还可以手动选择模型,比如gpt-3.5-turbo-16k、gpt-3.5-turbo-1106等

直接与ChatGPT聊天:

https://chat.openai.com

需要注意的是ChatGPT的请求速率是有限制的,需要根据自己的需求调整

六、ChatGPT创造或赋予应用智能

ChatGPT可以用于创造各种应用,为应用赋予自然语言处理和生成的能力。以下是一些可能的应用场景:

  • 聊天机器人:利用ChatGPT可以构建智能聊天机器人,与用户进行自然而流畅的对话。这种应用可以用于客户服务、虚拟助手等场景。

  • 智能助手:ChatGPT可以用于创建个人助手,帮助用户回答问题、提供建议,甚至执行一些简单的任务,如设置提醒、查询信息等。

  • 教育应用:将ChatGPT集成到教育应用中,帮助学生解答问题、提供解释,提供个性化的学习支持。

  • 创意写作助手:ChatGPT可以用于生成创意性的文本,为写作者提供灵感、扩展想法或生成故事情节。

  • 内容生成:ChatGPT可用于自动生成各种类型的内容,包括文章、新闻摘要、评论等。

  • 语言翻译:ChatGPT可以用于构建实时语言翻译工具,帮助用户进行跨语言交流。

  • 编程助手:ChatGPT可以用于协助程序员编写代码,回答技术问题,提供编程建议等。

  • 游戏中的虚拟角色:将ChatGPT整合到游戏中,创造更智能、交互性更强的虚拟角色。

当然,不仅是ChatGPT模型,其他GPT模型也可应用到各领域中

在使用ChatGPT时,需要注意它是一个生成式预训练模型,可能会产生不准确或不符合预期的输出。因此,在特定应用中,需要谨慎处理模型的输出,确保其符合应用场景的要求。此外,对于一些关键应用领域,可能需要额外的模型调优或结合其他技术来提高性能。


七、作者Info

Author:小鸿的摸鱼日常,Goal:让编程更有趣!

专注于算法、爬虫,Web开发,数据分析、自然语言处理,AI等,期待你的关注,让我们一起成长、一起Coding!

版权说明:本文禁止抄袭、转载,侵权必究!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/147068.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

es的使用方法以及概念

Elasticsearch(简称为ES)是一个开源的搜索引擎,它构建在Lucene搜索引擎之上。它提供了一个分布式、多租户的全文搜索引擎,具有强大的实时分析能力。以下是关于Elasticsearch的一些基本概念和使用方法: 基本概念&#…

idea查看UML类图

idea查看UML类图 一、如何查看UML类图 1.1 选择需要查看的类或者包,鼠标右键,选择Diagrams->Show Diagram 1.2 对于UML类图中的包,选中后点击鼠标右键-> Expand Nodes(展开节点) 展开前 展开后 1.3 展开后分布比较凌乱&#xff…

自动获取ip地址有什么坏处

在当今数字化时代,自动获取IP地址已经成为了日常生活的一部分。自动获取IP地址的方式可以方便地追踪用户位置、提供个性化的服务,甚至能够帮助网站防止恶意攻击。然而,自动获取IP地址也存在一些潜在的坏处,尤其是在数据隐私和法律…

带你快速掌握Linux最常用的命令(图文详解)- 最新版(面试笔试常考)

最常用的Linux指令(图文详解)- 最新版 ls:列出目录中的文件和子目录。(重点)cd:改变当前工作目录。绝对路径:相对路径 pwd:显示当前工作目录的路径。mkdir:创建一个新的目…

教你轻松解决win系统ucrtbased.dll丢失的问题,亲测有效!

ucrtbased.dll是一个动态链接库文件(DLL),它是Windows操作系统中的一部分,主要负责提供操作系统和应用程序所需的函数和接口。这个文件包含了操作系统和应用程序共同使用的通用代码,以确保不同程序之间的兼容性和稳定性…

6.2 List和Set接口

1. List接口 List接口继承自Collection接口,List接口实例中允许存储重复的元素,所有的元素以线性方式进行存储。在程序中可以通过索引访问List接口实例中存储的元素。另外,List接口实例中存储的元素是有序的,即元素的存入顺序和取…

C语言之for while语句详解

C语言之for while语句详解 文章目录 C语言之for while语句详解简介1 while语句1.1while语句的格式1.2 while语句的实践 2 for2.1 for语句格式2.2 for循环的实践 3 do while3.1 do while语句格式3.2 do while循环的实践 3 循环中break和continue3.1 while语句中的break和continu…

编写程序,要求输入x的值,输出y的值。分别用(1)不嵌套的if语句(2)嵌套的if语句(3)if-else语句(4)switch语句。

编写程序,要求输入x的值,输出y的值。分别用(1)不嵌套的if语句(2)嵌套的if语句(3)if-else语句(4)switch语句。 选择结构是编程语言中常用的一种控制结构&…

长短期记忆(LSTM)与RNN的比较:突破性的序列训练技术

长短期记忆(Long short-term memory, LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。 Why LSTM提出的动机是为了解…

C# using语句使用介绍

在C#中,using语句有两种主要用途:一是引入命名空间,二是提供一种简便的方式来处理资源的清理(主要用于实现了 IDisposable 接口的对象)。 引入命名空间:using 语句用于引入命名空间,从而可以在代…

django理解02 前后端分离中的问题

前后端分离相对于传统方式的问题 前后端数据交换的问题跨域问题 页面js往自身程序(django服务)发送请求,这是浏览器默认接受响应 而请求其它地方是浏览器认为存在潜在危险。自动隔离请求!!! 跨域问题的解决…

springcloud整合nacos实现服务注册

Nacos是一个开源的分布式系统服务和基础设施解决方案,用于实现动态服务发现、配置管理和服务治理。它可以帮助开发人员和运维团队更好地管理微服务架构中的服务实例、配置信息和服务调用。 Nacos提供了服务注册与发现、动态配置管理、服务路由和负载均衡等功能&…

C++之set/multise容器

C之set/multise容器 set基本概念 set构造和赋值 #include <iostream> #include<set> using namespace std;void PrintfSet(set<int>&s) {for(set<int>::iterator it s.begin();it ! s.end();it){cout<<*it<<" ";}cout&l…

typora使用PicGo自动上传图片到chevereto图床

typora使用PicGo自动上传图片到chevereto图床 近期发现&#xff0c;gitee图床不能用了。github又涉及科学上网。搜索了开源图床方案&#xff0c;找到了chevereto&#xff0c;使用起来还不错。分享给大家。 文章目录 typora使用PicGo自动上传图片到chevereto图床chevereto图床安…

精密云工程:智能激活业务速率 ——华为云11.11联合大促倒计时 仅剩3日

现新客3.96元起&#xff0c;下单有机会抽HUAWEI P60 Art&#xff0c;福利仅限双十一&#xff0c;机会唾手可得&#xff0c;立即行动&#xff01; 双十一购物节来临倒计时&#xff0c;华为云备上多款增值产品&#xff0c;以最优品质迸发冬日技术热浪&#xff0c;满足行业技术应用…

Mac 安装 protobuf 和Android Studio 使用

1. 安装,执行命令 brew install protoc 2. Mac 错误提示&#xff1a;zsh: command not found: brew解决方法 解决方法&#xff1a;mac 安装homebrew&#xff0c; 用以下命令安装&#xff0c;序列号选择中科大&#xff08;1&#xff09;或 阿里云 /bin/zsh -c "$(curl…

VB.net webbrowser 自定义下载接口实现

使用《VB.net webbrowser 如何实现自定义下载 IDownloadManager》中的控件ExtendedWebBrowser&#xff08;下载控件&#xff09;&#xff0c;并扩展了NewWindow2。 使用ExtendedWebBrowser_1过程中&#xff0c;遇到很多问题&#xff0c;花了几天时间&#xff0c;终于解决了所有…

MLC-LLM 支持RWKV-5推理以及对RWKV-5的一些思考

自从2023年3月左右&#xff0c;chatgpt火热起来之后&#xff0c;我把关注的一些知乎帖子都记录到了这个markdown里面&#xff0c;&#xff1a;https://github.com/BBuf/how-to-optim-algorithm-in-cuda/tree/master/large-language-model-note &#xff0c;从2023年3月左右到现…

漏洞利用工具的编写

预计更新网络扫描工具的编写漏洞扫描工具的编写Web渗透测试工具的编写密码破解工具的编写漏洞利用工具的编写拒绝服务攻击工具的编写密码保护工具的编写情报收集工具的编写 漏洞利用工具是一种常见的安全工具&#xff0c;它可以利用系统或应用程序中的漏洞来获取系统权限或者窃…

一起Talk Android吧(第五百五十二回:Retrofit的基本用法)

文章目录 1. 概念介绍2. 使用方法2.1 创建请求接口2.2 创建retrofit对象2.3 创建请求接口的对象2.4 发起请求3. 内容总结各位看官们大家好,上一回中咱们说的例子是"如何自定义SplashScreen",本章回中介绍的例子是" Retrofit的基本用法"。闲话休提,言归正…