使用 Python 的ChatGPT API 的简单指南

OpenAI 刚刚发布了 ChatGPT API.这是一个调用 GPT-3.5-Turbo 的 API,与 ChatGPT 产品中使用的模型相同。

对于那些已经熟悉 Python 中的 OpenAI API 的人来说,学习如何使用 ChatGPT API 应该很简单,但仍有一些概念是该 API 独有的,我们将在本指南中学习。

让我们探索 Python 中的 ChatGPT API.

注意:API定价为每1K代币0.002美元。不过,你可以免费使用信用卡。现在我似乎有了另一个理由 取消我的ChatGPT Plus订阅.

生成你的 API 密钥

在我们开始使用 ChatGPT API 之前,我们需要登录我们的 OpenAI 帐户和生成我们的API密钥。

 

请记住,OpenAI 不会在你生成 API 密钥后再次显示它,因此请复制你的 API 密钥并保存它。我将创建一个名为OPENAI_API_KEY的环境变量,它将包含我在本教程中的 API 密钥。

安装库

要使用 ChatGPT API,首先,我们必须通过运行以下命令来安装 OpenAI 库。

pip install openai

你可以使用 OpenAI 库,今天我们将重点关注完成gpt-3.5-turbo。更准确地说,我们将使用“ChatCompletion”gpt-3.5-turbo,它与 ChatGPT 使用的模型相同。

使用 Python 的 ChatGPT API 入门

首先,我们将使用下面我从官方文档中获得的代码片段。

import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "Tell the world about the ChatGPT API in the style of a pirate."}

print(completion.choices[0].message.content)

这是与 API 交互的一种非常简单的方式。要知道的主要一点是,该messages列表有一个包含两个键的字典:rolescontent

简单地说content就是消息的内容,主要roles有三种:“系统”、“用户”或“助手”。“用户”是给出指令并在上面的代码中使用的人。

如果我们运行上面的代码,我们将得到以下结果。

Ahoy matey, ye be lookin' for a chat API that'll blow ye away? Look no further than ChatGPT API ye ol' sea dog!

这与 ChatGPT “以web的方式向世界介绍 ChatGPT API ”功能是一样的。

 

现在,我们从文档中获取的代码片段是非常基本的,我们可以添加更多的代码来与 API 交互,就像我们在与 ChatGPT 聊天一样。此外,我们还应该添加用于设置助手行为的system角色和用于存储先前响应的assistant角色。

管理员角色

让我们添加一个系统角色来设置助手的行为。你可以告诉助理是一个“将英语翻译成法语的有用助理”或任何你想要的东西。

为了简单起见,我将通过消息列表将系统角色设置为“友好的助手”(我让 ChatGPT 在工作面试中表现为招聘人员)。

messages = [
{"role": "system", "content" : "You’re a kind helpful assistant"}

现在,我将把角色附加users到前面的列表中,并添加输入函数,以便与 API 交互,就像我们在使用 ChatGPT 一样。

import openai
content = input("User: ")
messages.append({"role": "user", "content": content})
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages

chat_response = completion.choices[0].message.content
print(f'ChatGPT: {chat_response}')

现在,如果我们问“谁是第一个登上月球的人?”,系统就会表现得像一个“有用的助手,告诉我们答案”。

User:who was the first man on the moon?
ChatGPT:The first man on the moon was Neil Armstrong on July 20,1969.

不过只有一个小细节。assistant没有存储以前的响应,因此系统可能不会记住我们以前的响应并给出正确的响应。

让我们现在问“他来自哪里?”然后“他有多高?”我现在将添加一个 while 循环来问多个问题。

 

正如你所看到的,现在系统正在回答每个新问题,但它正在从以前的答复中积累信息。

我们可以用assistant角色来解决这个问题。

助理角色

我们使用助理角色来存储先前的响应。通过存储以前的响应,我们可以建立对话历史记录,当用户指令引用以前的消息时,对话历史记录就会派上用场。

使用下面的代码,我们将助理角色添加到消息列表中。

messages.append({"role": "assistant", "content": chat_response})

请注意,在内容中,我们必须添加聊天响应,以便存储响应。

现在,我们将上一行代码添加到 while 循环中。

import openai
while True:
content = input("User: ")
messages.append({"role": "user", "content": content})
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages

chat_response = completion.choices[0].message.content
print(f'ChatGPT: {chat_response}')
messages.append({"role": "assistant", "content": chat_response})

现在,如果我们问之前问过的问题,我们会得到更好的回答。

 

就是这样!现在你知道如何使用这 3 个角色,你可以使用你想要的 API.除了请求主体中的模型和消息之外,你还可以添加其他参数来定制你的请求。

以下是一些额外的参数:

  • max_token:在完成中生成的最大标记数(here你可以看到 OpenAI 使用的提交数)

  • temperature:要使用的取样比例。接近 1 的值将给模型带来更多的风险/创造性,而接近 0 的值将产生定义明确的答案。

  • n:为每个输入消息生成的聊天完成选项的数量。

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

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

相关文章

AI 绘图新玩法:「艺术风二维码」保姆级中文教程,一分钟出图,定制你专属微信二维码!...

公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! ​最近AI绘图界又出了一个现象级的玩法,「艺术化二维码」生成,先看个网上比较火的图了解一下。 上面这个图就是今天介绍的这个「艺术化二维码」生成网站&…

华为联手“北斗”、4年打磨昆仑玻璃……揭秘 Mate 50 背后的技术故事!

整理 | 朱珂欣 出品 | CSDN(ID:CSDNnews) 近年来,华为总是自带“热搜”的体质。年初时,“华为又给员工分红了”的话题,引发不少网友的讨论热潮。 1 月 31 日,《品牌强国之路》纪录片华为篇上…

“开源”一词诞生 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 2 月 3 日,在 51 年前的今天,1972 年 2 月 3 日,第 11 届冬季奥林匹克运动会在日本札幌举行,开亚洲举办冬奥会之…

马斯克亲自下场测试 Twitter 功能,网友吐槽:他解雇了任何可以解释的工程师!...

为了检测用户反馈的 Twitter 故障,马斯克决定亲自下场做一把测试,却没想到遭到了不少网友的吐槽。 整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 2 月 1 日,Twitter CEO 埃隆马斯克发了一条推文,宣布将…

16 岁少年前往腾讯总部要求解封 QQ 账号;微软发内部信辟谣:没有关闭微软苏州的相关计划;Go 1.20 发布|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

安卓APP课程设计源码和报告——个人日记本开发

Android开发基础 题目: 个人日记本开发 题目个人日记本开发???关键技术开发过程中使用到的技术:利用SQLite存储数据 主要体现类:DbHelper类继承自SQLiteOpenHelper类,重写其构造方法、onCreate(…

ChatGPT 启示录:知识到底是什么?

知识是人类对客观世界的认识和经验,人类通过语言来表示知识,句子是语言的基本单位,一句话往往包含主谓宾,主语和宾语可被称为实体,谓语表示了主语宾语间的关系。所以,世界在人类大脑中,就是无数…

艺术签名微信小程序源码支持微信流量主

介绍: 某交易网站上卖500元的源码,免费设计艺术签名,支持微信流量主 云盘地址: http://zijieyunpan.cn/GVnCixUXtMA 阅览:

chatgpt赋能python:Python手写签名:如何用Python实现一个自动生成个性化签名的工具

Python 手写签名:如何用 Python 实现一个自动生成个性化签名的工具 Python 是一门高效的编程语言,它拥有强大的数据处理和图像处理能力。Python 还有一个优点是它的易读性,这使得 Python 成为许多程序员和数据科学家的首选语言。而今天我们要…

管理系统类毕设(六)---完善后端接口以及前端接入(接入了学生的查询 新增 修改 教师,考试,成绩类似于学生)

后端接口已经完成开发 完善后端接口以及前端接入(接入了学生的查询 新增 修改 教师,考试,成绩类似于学生) 代码已更新 https://github.com/dmhsq/edusys github代码尚未完全加注释(困) 目前效果如下 完善后端,接入前端 后端完善新增修改和新…

毕业设计-基于微信小程序的校友社区网络管理系统

目录 前言 课题背景与简介 实现设计思路 一、平台的选择与市场现状 二、系统设计 三、设计情况 实现效果样例 更多帮助 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个…

计算机毕设Python+Vue学院校友信息管理系统的(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

计算机毕设Python+Vue校园社团信息管理系统(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

计算机毕设Python+Vue校园社团管理系统(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

两周搞定计算机专业毕业设计,附源码+论文+答辩

毕设论文答辩通关法则,看这一篇,源码都在下面了!写在前面,尽管论文方法和毕设源码都有,但还是要看课自己敲完完善好。做好充分准备面对答辩。 文章目录 一、毕设二、论文2.1 论文标题2.2 确定论文大纲2.3 论文内容2.3.…

毕业设计-基于微信小程序投票系统

目录 前言 课题背景与简介 实现设计思路 一、微信投票小程序需求方法分析 二、微信投票小程序功能结果实现 三、总结 实现效果样例 更多帮助 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费…

新生报到小程序毕业设计,新生报到管理系统设计与实现,毕设作品参考

功能清单 【后台管理员功能】 广告管理:设置小程序首页轮播图广告和链接 留言列表:所有用户留言信息列表,支持删除 录入资讯:录入资讯标题、内容等信息 管理资讯:查看已录入资讯列表,支持删除和修改 学校…

如何做一个基于python校园排课选课系统毕业设计毕设作品(Django框架)

分析架构 我们开发系统,常规有两个架构,一个BS架构(浏览器/服务器模式),一个CS(客户端/服务器端模式);基于Python(Django框架)的网站开发属于B/S架构&#x…

毕业设计-基于微信小程序的实验室信息管理系统

目录 前言 课题背景与简介 实现设计思路 一、微信小程序 二、系统设计 三、系统实现 四、总结 实现效果样例 更多帮助 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个…

大数据毕业设计可视化大屏前后端项目分享

1、前言 很久没有分享过可视化大屏的项目了,距离上次分享基于Echarts的数据可视化大屏系统设计分享这篇可视化系统已经过去了整整一年有余。当时分享这篇博客没想到会收获这么多的阅读量,并且在刚发布的时候,还上了CSDN的博客热搜2&#xff…