ChatGPT初体验:注册、API Key获取与ChatAPI调用详解

自从2022年10月,ChatGPT诞生以后,实际上已经改变了很多!其火爆程度简直超乎想象,一周的时间用户过百万,两个月的时间用户过亿。
目前ChatGPT4已经把2023年4月以前的人类的知识都学习到了,在软件工程里面,大模型已经有了非常好的应用。据统计,100多万开发者编码,已经有46%的代码是大模型生成的,预计5年以后会有80%的代码是由人工智能,大模型生成。因此,掌握如何在程序中使用ChatGPT就显得十分重要了!
这里以Python程序为例,讲解如何在Python程序中调用ChatGPT的API!

1.ChatGPT介绍

ChatGPT是OpenAI开发的一种基于大型语言模型GPT(Generative Pretrained Transformer)的聊天机器人。这种聊天机器人可以生成连贯、自然的文本回复,被广泛用于各种对话式应用。下面是关于ChatGPT的一些主要特点:

  1. 基于GPT-3或GPT-3.5模型:ChatGPT通常基于GPT-3或GPT-3.5模型,这些都是目前最先进的自然语言处理模型之一。它们能理解和生成非常自然的语言。

  2. 预训练和微调:GPT模型通过大量的数据预训练,学会了语言的基本结构和模式。然后通过特定的对话数据进行微调,以优化其在对话任务上的表现。

  3. 多领域知识:由于在广泛的文本数据上进行训练,ChatGPT能够处理各种主题和领域的对话,从日常闲聊到专业领域的咨询。

  4. 上下文理解能力:ChatGPT能够理解和记住对话的上下文,这意味着它可以在对话中保持连贯性和相关性。

  5. 生成性能力:除了回答问题,ChatGPT还能生成诸如诗歌、故事、代码或其他创造性文本的内容。

  6. 应用场景:ChatGPT可以被用于客户服务、教育辅助、娱乐、内容创作等多种场景。

  7. 持续更新:OpenAI持续对模型进行优化和更新,以提高其性能、安全性和可靠性。

ChatGPT是人工智能和自然语言处理领域的一个重要成果,展示了当前技术在理解和生成人类语言方面的能力。然而,它也有局限性,比如对错误信息的复制、对新信息的缺乏响应等。OpenAI不断在改进这些模型,以提供更准确和实用的对话体验。

2.注册OpenAI账号

要在 OpenAI 网站上注册一个账号,请按照以下步骤操作:

1.打开浏览器,在地址栏中输入 https://openai.com/ ,打开 OpenAI 网站。

2.点击网站顶部的“登录”按钮。

3.在弹出的登录页面中,点击“注册”按钮。

4.输入您的电子邮件地址和密码,然后再次输入密码以确认。

5.在“我同意 OpenAI 的服务条款和隐私政策”复选框旁边打勾。

6.点击“创建账号”按钮完成注册。

7.按照提示,检查您的电子邮件并点击邮件中的链接以验证您的电子邮件地址。

8.在验证页面输入姓名和生日。

9.最后需要绑定一个国外手机号。

这里推荐一个网站可以获取国外手机号的验证码以绑定国外手机号!获取国外手机号验证码
在这里插入图片描述

如果按照上述流程你还不能注册成功,这边建议可以参考视频openAI账号注册。

3.获得OpenAI API Key

首先点击右侧链接进入查看ChatGPT文档API网址链接,具体如下所示:然后点击网站左上角图标可以显示侧边栏菜单项!
在这里插入图片描述
之后选择点击Create new key来创建一个属于自己的私钥,点击后输入一个Test key用来创建密钥,最后,生产密钥之后一定要复制保存,因为密钥只能被查看一次,不能被反复查看!
在这里插入图片描述

4.测试程序

这段代码的作用是使用 OpenAI GPT-3.5-turbo 模型进行聊天对话。它使用 OpenAI 的 Python 客户端库进行与 OpenAI API 的交互。

代码的主要流程如下:

1. 导入所需的库,其中包括 `json` 和 `OpenAI`。2. 进入一个无限循环,直到用户输入 "end" 结束循环。3. 提示用户输入需要查询的信息或资源。4. 获取用户输入的消息。5. 创建一个 OpenAI 客户端实例,传入 API 密钥作为参数。6. 如果用户输入为 "end",则退出循环。7. 使用 OpenAI 客户端调用 `chat.completions.create` 方法,发送用户输入的消息作为对话的起始。8. 从 API 响应中提取结果,并将其解析为字典对象。9. 从结果字典中获取聊天对话的回复内容。10. 打印响应信息。

代码中的 result_dict['choices'][0]['message']['content'] 用于从 API 响应中提取聊天对话的回复内容。这段代码假设 API 响应的结构与 OpenAI GPT-3.5-turbo 模型生成的结果相匹配。

请注意,代码中的 API 密钥被隐藏了,您需要将其替换为您自己 OpenAI API 密钥。此外,确保已正确安装 OpenAI Python 客户端库,并导入了正确的模块。
具体代码如下所示:

import jsonfrom openai import OpenAI
while True:print('请你输入需要查询的信息或资源(输入end结束):')# 获取用户输入message = input()client = OpenAI(# defaults to os.environ.get("OPENAI_API_KEY")# 这里的密钥要换成自己网站中生成的 这里我的密钥隐藏了api_key="sk-**********************NP",)if message == 'end':breakchat_completion = client.chat.completions.create(messages=[{"role": "user","content": message,}],model="gpt-3.5-turbo",)response = chat_completion.json()# 获取响应结果result_dict = json.loads(response)content = result_dict['choices'][0]['message']['content']print('响应信息为:', content)

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

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

相关文章

Matplotlib不规则子图_Python数据分析与可视化

除了网格子图,matplotlib还支持不规则的多行多列子图网格。 plt.GridSpec()对象本事不能直接创建一个图形,他只是 plt.subplot()命令可以识别的简易接口。 这里创建了一个带行列间距的23网格: grid plt.GridSpec(2, 3, wspace0.4, hspace0…

mac VScode 添加PHP debug

在VScode里面添加PHP Debug 插件,根据debug描述内容操作 1: 随意在index里面写个方法,然后用浏览器访问你的hello 方法,正常会进入下边的内容 class IndexController {public function index(){return 您好!这是一个[api]示例应用;}public function hello() {phpin…

group by

引入 日常开发中,我们经常会使用到group by。你是否知道group by的工作原理呢?group by和having有什么区别呢?group by的优化思路是怎样的呢?使用group by有哪些需要注意的问题呢? 使用group by的简单例子group by 工…

java学习part12多态

99-面向对象(进阶)-面向对象的特征三:多态性_哔哩哔哩_bilibili 1.多态(仅限方法) 父类引用指向子类对象。 调用重写的方法,就会执行子类重写的方法。 编译看引用表面类型,执行看实际变量类型。 2.父子同名属性是否…

力扣226. 翻转二叉树

递归 思路: 从根开始递归遍历二叉树,叶节点开始翻转;如果遍历到的当前的 root 节点左右两棵子树已经翻转,交换左右子树即可; /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeN…

数组与链表

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 除了HashMap&#xff0…

计算机服务器中了mallox勒索病毒如何处理,mallox勒索病毒解密文件恢复

科技技术的发展推动了企业的生产运营,网络技术的不断应用,极大地方便了企业日常生产生活,但网络毕竟是一把双刃剑,网络安全威胁一直存在,近期,云天数据恢复中心接到很多企业的求助,企业的计算机…

耶鲁博弈论笔记

编辑记录: 1126:开个新坑,耶鲁大学的博弈论课程, 和专业相关不大,纯兴趣,尽量写好一点吧 1. 首先指出博弈论是一种研究策略形式的方法,对于经济学中,完全竞争市场只能被动接受均衡…

合入代码引起的一些问题记录

合入时莫名导致代码丢失 先回退代码&#xff0c;待创个测试分支来看看是什么导致的 远端分支代码还原 通过 git reset 回滚到指定 commit id&#xff1b; git reset --hard <commit_id>远程仓库代码回滚 将本地回滚的代码推送到远程仓库&#xff0c;这里需要加强制的选…

Elasticsearch 的使用

一、简介 1.Shard&#xff08;分片&#xff09; 数据分散集群的架构模式&#xff0c;Elasticsearch 将一个 Index&#xff08;索引&#xff09;中的数据切为多个 Shard&#xff08;分片&#xff09;&#xff0c;分布在不同服务器节点上。 默认每个索引会分配5个主分片和1个副本…

C#的函数

可以发现首字母一般为动词 可以看出void是返回空值 这个就不是放回空值了 例如 函数修饰符 1、如上面的实例一样——无修饰符&#xff1a;如果一个参数没有用参数修饰符标记&#xff0c;则认为它将按值进行传递&#xff0c;这将以为着被调用的方法收到原始数据的一份副本。&am…

谈谈Redis的几种经典集群模式

目录 前言 主从复制 哨兵模式 分片集群 前言 Redis集群是一种通过将多个Redis节点连接在一起以实现高可用性、数据分片和负载均衡的技术。它允许Redis在不同节点上同时提供服务&#xff0c;提高整体性能和可靠性。在Redis中提供集群方案总共有三种&#xff1a;主从复制、…

PyQt6把QTDesigner生成的UI文件转成python源码,并运行

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计18条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…

CSDN动态发了但是主页面看不见已发的动态

问题描述&#xff1a; 今天在写csdn动态的时候&#xff0c;发了五个动态&#xff0c;但是主页面的“最近”看不到我发的动态&#xff0c;我还以为是csdn动态每天的发送量有数量限制。去这个地方点我的发现 右上角全是“审核中”的字样 按理说是不可能审核这么久的&#xff08…

Linux常用命令——bc命令

在线Linux命令查询工具 bc 算术操作精密运算工具 补充说明 bc命令是一种支持任意精度的交互执行的计算器语言。bash内置了对整数四则运算的支持&#xff0c;但是并不支持浮点运算&#xff0c;而bc命令可以很方便的进行浮点运算&#xff0c;当然整数运算也不再话下。 语法 …

IO和NIO的区别 BIO,NIO,AIO 有什么区别? Files的常用方法都有哪些?

文章目录 IO和NIO的区别BIO,NIO,AIO 有什么区别?Files的常用方法都有哪些&#xff1f; 今天来对java中的io, nio, bio, aio进行了解&#xff0c;有何区别。 IO和NIO的区别 NIO与IO区别 IO是面向流的&#xff0c;NIO是面向缓冲区的Java IO面向流意味着每次从流中读一个或多个字…

酷开科技 | 酷开系统,让你与家人共度美好时光!

在日渐繁忙的生活中&#xff0c;我们常常会忽略和家人朋友的相处时光&#xff0c;有时候&#xff0c;我们亟需一种休闲方式&#xff0c;让家庭成员能够围坐在一起&#xff0c;享受无忧无虑的温馨和欢笑。酷开科技&#xff0c;致力于为消费者提供舒适的产品和服务内容&#xff0…

MVVM、MVC、MVP的区别

MVC、MVP 和 MVVM 是三种常见的软件架构设计模式&#xff0c;主要通过分离关注点的方式来组织代码结构&#xff0c;优化开发效率。 在开发单页面应用时&#xff0c;往往一个路由页面对应了一个脚本文件&#xff0c;所有的页面逻辑都在一个脚本文件里。页面的渲染、数据的获取&a…

岂曰无衣 汉家衣裳再现锦绣美景

——福州第五届1122汉服节出行盛大开幕11月25日下午&#xff0c;闽江之心海丝广场&#xff0c;一场盛大的汉服文化节——福州第五届1122汉服节出行活动在这里隆重开幕。这个被誉为“穿在身上的历史”的传统文化&#xff0c;在这片古老而神秘的土地上焕发出新的生机与活力。据了…

数组转树形结构

在制作项目中总结出的方法&#xff08;递归&#xff09;&#xff0c;适用于一些树形菜单或者是管理系统的树形结构的列表&#xff0c;增大了用户体验感&#xff0c;省时省力&#xff0c;也非常简单 代码如下&#xff1a; //数组转换 const transListDataToTreeData (list, i…