当前位置: 首页 > news >正文

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)

相关文章:

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

自从2022年10月,ChatGPT诞生以后,实际上已经改变了很多!其火爆程度简直超乎想象,一周的时间用户过百万,两个月的时间用户过亿。 目前ChatGPT4已经把2023年4月以前的人类的知识都学习到了,在软件工程里面&am…...

TCP/IP协议、三次握手、四次挥手

TCP/IP TCP/IP协议分层TCP头部三次握手TCP四次挥手常见问题1、什么是TCP网络分层2、TCP为什么是三次握手,不是两次或者四次?3、TCP为什么是四次挥手,为什么不能是三次挥手将第二次挥手和第三次挥手合并?4、四次挥手时为什么TIME_W…...

Android U 匹配不到APN,无法发起数据建立的问题分析

问题 打开数据开关后,没有data PDN请求发起,因此无法上网。 根据日志确定是没有找到合适的data profile,原因一般有: 1、APN 没有配置 2、APN 类型/网络能力不满足——APN type或bearer 3、APN 配置了但被disable了——APN p…...

如何打造“面向体验”的音视频能力——对话火山引擎王悦

编者按:随着全行业视频化的演进,我们置身于一个充满创新与变革的时代。在这个数字化的浪潮中,视频已经不再只是传递信息的媒介,更是重塑了我们的交互方式和体验感知。作为字节跳动的“能力溢出”,火山引擎正在飞速奔跑…...

什么是NoOps

过去几年,自动化一直在推动整个 IT 行业向前发展。通过自动化某些任务,开发团队可以提高其能力,而无需感受到雇用新团队成员的预算压力。自动化还保证了更高的效率,特别是在操作和维护方面。 传统的软件开发工作流程涉及开发团队…...

Unity - Graphic解析

Gpahic 的作用 Graphic 是 Unity最基础的图形基类。主要负责UGUI的显示部分。 由上图可以看你出我们经常使用的Image,Text,都是继承自Graphic。 Graphic的渲染流程 在Graphic的源码中有以下属性 [NonSerialized] private CanvasRenderer m_CanvasRend…...

哈希思想的应用

目录 1.位图 位图的实现 题目变形一 题目变形二 题目变形三 总结: 2.布隆过滤器 概念 布隆过滤器的实现 3.哈希切割的思想 1.位图 哈希表和位图是数据结构中常用的两种技术。哈希表是一种数据结构,通过哈希函数把数据和位置进行映射&#xff0c…...

React入门使用 (官方文档向 Part1)

文章目录 React组件:万物皆组件 JSX: 将标签引入 JavaScriptJSX 规则1. 只能返回一个根元素2. 标签必须闭合3. 使用驼峰式命名法给 ~~所有~~ 大部分属性命名!高级提示:使用 JSX 转化器 在 JSX 中通过大括号使用 JavaScript使用引号传递字符串使用大括号&…...

87基于matlab的双卡尔曼滤波算法

基于matlab的双卡尔曼滤波算法。第一步使用了卡尔曼滤波算法,用电池电压来修正SOC,然后将修正后的SOC作为第二个卡尔曼滤波算法的输入,对安时积分法得到的SOC进行修正,最终得到双卡尔曼滤波算法SOC估计值。结合EKF算法和安时积分法…...

Jacobi迭代与SOR迭代求解希尔伯特矩阵

给出线性方程组 Hn*x b,其中系数矩阵Hn为希尔伯特矩阵: 假设 x ∗ (1, 1, . . . , 1)T,b Hnx ∗。若取 n 6,8, 10,分别用 Jacobi 迭代法及 SOR迭代(ω 1, 1:25,1:5)求解,比较计算结果。…...

【云备份】配置加载文件模块

文章目录 配置信息设计配置文件加载cloud.conf配置文件单例模式的使用ReadConfigFile —— 读取配置文件GetInstance —— 创建对象其他函数的实现 具体实现cloud.confconfig.hpp 配置信息设计 使用文件配置加载一些程序运行的关键信息 可以让程序的运行更加灵活 配置信息&am…...

sqlserver写入中文乱码问题

sqlserver写入中文乱码问题解决方案 首先查看sqlserver数据库编码 首先查看sqlserver数据库编码 查询语句:SELECT COLLATIONPROPERTY(Chinese_PRC_Stroke_CI_AI_KS_WS, CodePage); 对应的编码: 936 简体中文GBK 950 繁体中文BIG5 437 美国/加…...

【亚马逊云】基于EC2以 All-in-One 模式快速部署 KubeSphere 和 Kubernetes

文章目录 1. 云实例配置说明2. SSH连接云实例3. 查看系统版本4. 修改主机名5. 安装依赖项6. 安全组和DNS修改7. 下载KubeKey8. 同时安装Kubesphere和Kubernetes[可选]单独安装Kubernetes[可选]单独安装KubeSphere9. 验证KubeSphere安装结果10. 登录KubeSphere控制台[可选]安装K…...

使用 ChatGPT 创建 Makefile 构建系统:从 Docker 开始

使用 Docker 搭配 ChatGPT 创建 Makefile 构建系统 Makefile 构建系统是嵌入式软件团队实现其开发流程现代化的基础。构建系统不仅允许开发人员选择各种构建目标,还可以将这些构建集成到持续集成/持续部署 (CI/CD) 流程中。使用诸如 ChatGPT 这样的人工智能 (AI) 工…...

嵌入式设备摄像头基础知识

工作原理 摄像头的工作原理是,当光线通过镜头聚焦到图像传感器上时,传感器会将光信号转换为电信号,并将其传输给处理器进行处理。处理器通过算法对图像信号进行增强、去噪、压缩等操作,并将其转换为数字信号输出给计算机或其他设…...

使用Pytorch从零开始构建Normalizing Flow

归一化流 (Normalizing Flow) (Rezende & Mohamed,2015)学习可逆映射 f : X → Z f: X \rightarrow Z f:X→Z, 在这里X是我们的数据分布,Z是选定的潜在分布。 归一化流是生成模型家族的一部分,其中包括变分自动编…...

一个tomcat中部署的多个war,相当于几个jvm

请直接去看原文 原文链接:一个tomcat有几个jvm-CSDN博客 --------------------------------------------------------------------------------------------------------------------------------- 前几天向unmi提问,今天他答复了。我觉得答复很清楚,…...

2023年第十六届中国系统架构师大会(SACC2023)-核心PPT资料下载

一、峰会简介 本届大会以“数字转型 架构演进”为主题, 涵盖多个热门领域,如多云多活、海量分布式存储、容器、云成本、AIGC大数据等,同时还关注系统架构在各个行业中的应用,如金融、制造业、互联网、教育等。 与往届相比&#…...

高校大学校园后勤移动报修系统 微信小程序uniapp+vue

本文主要是针对线下校园后勤移动报修传统管理方式中管理不便与效率低的缺点,将电子商务和计算机技术结合起来,开发出管理便捷,效率高的基于app的大学校园后勤移动报修app。该系统、操作简单、界面友好、易于管理和维护;而且对后勤…...

docker常见问题汇总

docker常见问题 ❓问题1:启动docker容器时,报错Unknown runtime specified nvidia. 当我启动一个容器时,运行以下命令: docker run --runtimenvidia 。。。。 后面一部分命令没写出来,此时报错的信息如下:…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...

LLM基础1_语言模型如何处理文本

基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) ​遍历字符串​:通过外层循环逐一检查每个字符。​遇到 ? 时处理​: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: ​与…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...