Using GPT⑶.5 and GPT⑷ via the OpenAI API in Python(from openai import openai)
一、OpenAI模块概述
A. OpenAI简介
- OpenAI的背景和目标:
– OpenAI是一个人工智能研究实验室,致力于推动人工智能的发展和利用。
– OpenAI提供了开发者平台和云端服务,为开发者提供便捷的访问AI模型的方式。
B. 安装和导入OpenAI模块
- 安装OpenAI模块:
– 开发者可使用pip命令进行安装:pip install openai。
- 导入OpenAI模块:
– 示例代码:import openai。
二、使用OpenAI模块的基础知识
A. 配置API密钥
- 设置API密钥:
– 示例代码:openai.api_key = ‘YOUR_API_KEY’。
B. 使用OpenAI的功能
- 生成文本:
– 示例代码:response = openai.Completion.create(engine=’davinci’, prompt=’…’)。
- 生成图片:
– 示例代码:response = openai.Image.create(prompt=’…’, n=1, size=’…’)。
- 其他功能介绍:
– OpenAI模块支持调用区别的模型和引擎,开发者可以根据需求选择区别的参数和选项。
三、进阶技能和利用场景
A. 自定义模型训练
- 创建自定义数据集:
– 开发者需要搜集和整理与特定任务相关的数据,以便进行模型训练。
- 训练自定义模型:
– 开发者可使用OpenAI提供的工具和平台进行模型训练。
B. 结合其他Python库和工具
- 导入其他Python库:
– 示例代码:import os, pandas, numpy。
- 结合其他工具和技术:
– 开发者可以将OpenAI模块与数据处理、机器学习等领域的库和工具相结合使用,以实现更多功能。
四、最好实践和注意事项
A. API使用限制和注意事项
- 计费和要求配额:
– 使用OpenAI的API会产生费用,开发者需要关注每月的要求配额。
- 安全和隐私保护:
– 开发者在使用OpenAI的API时,需要注意保护用户数据和隐私。
B. 资源和文档
- OpenAI官方资源:
– 开发者可以参考OpenAI官方提供的文档、教程和示例代码,还可使用开发者平台和参与社区支持。
- 外部资源和案例研究:
– 开发者可以参考其他开发者的经验和分享,来探索更多OpenAI的可能性。
五、总结
A. OpenAI模块的优势和利用场景回顾
B. 使用OpenAI模块的基本步骤和注意事项
C. 探索更多OpenAI的可能性和发展方向
from openai import openai的进一步展开说明
标题:ChatGPT 通过 API 与 ChatGPT 进行交互:从入门到实战
介绍
ChatGPT 是一种先进的大型语言模型,可用于生成文本。它已在几近所有类型的文本写作中发挥了重要作用,从本教程中的教程,到自动生成的产品描写,再到必应搜索引擎的结果,和在 ChatGPT 数据科学速查表中描写的许多数据用例。
对交互使用,ChatGPT 的网络界面非常理想。但是,OpenAI(ChatGPT 背后的公司)还提供了一个允许您使用代码与 ChatGPT 及其其他模型进行交互的利用程序编程接口(API)。
本教程将介绍怎样使用 openai Python 包来以编程方式与 ChatGPT 进行对话。
什么时候使用 API 而不是 Web 界面?
ChatGPT 的 Web 利用程序是与 GPT 模型的最好接口。但是,如果您想将 AI 整合到数据流程或软件中,则 API 更适合。数据从业人员的一些可能用例包括:
从数据库或其他 API 中获得数据,然后要求 GPT 对其进行总结或生成报告
将 GPT 功能嵌入仪表板,自动提供结果的文本摘要
为数据市场提供自然语言界面
通过学术(PyPI、Conda)包拉取期刊论文进行研究,并让 GPT 对结果进行摘要
设置 OpenAI 开发者帐户
要使用 API,您需要在 OpenAI 上创建开发者帐户。您需要准备好自己的电子邮件地址、电话号码和借记卡或信用卡详细信息。
依照以下步骤操作:
1. 转到 API 注册页面。
2. 创建您的帐户(您需要提供电子邮件地址和电话号码)。
3. 转到 API 密钥页面。
4. 创建一个新的秘密密钥。
5. 复制此密钥(如果您丢失密钥,请删除密钥并创建一个新的)。
6. 转到付款方式页。
7. 点击“添加付款方式”并填写您的卡片详细信息。
安全存储您的帐户凭证
秘密密钥需要保密!否则,其他人可使用它访问 API,您将为此支付费用。以下步骤描写了怎样使用 DataCamp Workspace 安全存储您的密钥。如果您使用的是其他平台,请查阅该平台的文档。您也能够向 ChatGPT 寻求建议。以下是一个建议的提示:
> 你是一名 IT 安全专家。你正在和一名数据科学家交谈。请向他解释安全存储用于 API 访问的私钥的最好实践。
在工作区中,单击“Integrations”(集成)。
单击“Create integration”(创建集成)的加号按钮。
选择“Environment Variables”(环境变量)集成。
在“Name”(名称)字段中键入“OPENAI”。
在“Value”(值)字段中粘贴您的密钥。
单击“Create”(创建),然后连接新的集成。
设置 Python
要使用 API,您需要导入 os 和 openai Python 包。
如果您使用的是 Jupyter Notebook(如 DataCamp Workspace),还可导入 IPython.display 中的一些函数。
一个示例还使用 yfinance 包来获得股票价格。
“`python
# 导入 os 包
import os
# 导入 openai 包
import openai
# 从 IPython.display 包中导入 display 和 Markdown
from IPython.display import display, Markdown
# 导入 yfinance 作为 yf
import yfinance as yf
“`
设置 API 密钥
将刚刚创建的环境变量放在 openai 包可以看到的位置。
“`python
# 将 openai.api_key 设置为 OPENAI 环境变量
openai.api_key = os.environ[“OPENAI”]
“`
通过 API 调用 GPT 的代码模式
调用 OpenAI API 并获得聊天响应的代码模式以下:
“`python
response = openai.ChatCompletion.create(
model=”MODEL_NAME”,
messages=[
{“role”: “system”, “content”: ‘SPECIFY HOW THE AI ASSISTANT SHOULD BEHAVE’},
{“role”: “user”, “content”: ‘SPECIFY WANT YOU WANT THE AI ASSISTANT TO SAY’}
])
“`
这里有几件事情需要理解。
GPT 的 OpenAI API 模型名称
模型名称列在开发者文档的模型概述页面上。在本教程中,我们将使用 gpt⑶.5-turbo,这是 ChatGPT 使用的最新模型,具有公然的 API 访问权限。(一旦广泛可用,您将切换到 gpt⑷。)
OpenAI API GPT 消息类型
在 Chat 文档的介绍中,有三种消息类型:
系统消息(system messages)描写 AI 助手的行动。对数据科学用例,一个有用的系统消息是“您是一名了解数据科学的有益助手”。
用户消息(user messages)描写您想让 AI 助手说甚么。我们将在本教程的区别部份介绍用户消息的示例。
助手消息(assistant messages)描写了对话中之前的响应。我们将在后面的任务中介绍如何进行互动对话。
首条消息应是系统消息。附加消息应在用户和助手之间交替。
您的第一个对话:生成数据集
生成样本数据集对对区别数据场景的代码进行测试或向他人演示代码都很有用。为了从 GPT 取得有用的响应,您需要具体说明数据集的详细信息,包括:
行数和列数
列的名称
每列包括的内容的描写
数据集的输出格式
以下是一个创建数据集的用户消息示例。
“`python
Create a small dataset about total sales over the last year. The format of the dataset should be a data frame with 12 rows and 2 columns. The columns should be called “month” and “total_sales_usd”. The “month” column should contain the shortened forms of month names from “Jan” to “Dec”. The “total_sales_usd” column should contain random numeric values taken from a normal distribution with mean 100000 and standard deviation 5000. Provide Python code to generate the dataset, then provide the output in the format of a markdown table.
“`
让我们将这条消息包括到前面的代码模式中。
“`python
# 定义系统消息
system_msg = ‘You are a helpful assistant who understands data science.’
# 定义用户消息
user_msg = ‘Create a small dataset about total sales over the last year. The format of the dataset should be a data frame with 12 rows and 2 columns. The columns should be called “month” and “total_sales_usd”. The “month” column should contain the shortened forms of month names from “Jan” to “Dec”. The “total_sales_usd” column should contain random numeric values taken from a normal distribution with mean 100000 and standard deviation 5000. Provide Python code to generate the dataset, then provide the output in the format of a markdown table.’
# 使用 GPT 创建数据集
response = openai.ChatCompletion.create(model=”gpt⑶.5-turbo”, messages=[{“role”: “system”, “content”: system_msg}, {“role”: “user”, “content”: user_msg}])
“`
检查 GPT 会不会正确响应
API 调用是“有风险”的,由于问题可能产生在笔记本以外,如互联网连接问题,或向您发送数据的服务器问题,或由于您的 API 信用用完了。您应当检查所取得的响应会不会正确。
GPT 模型返回的状态代码有四个值,在 Chat 文档的响应格式部份有详细说明。
stop:API 返回完全的模型输出
length:由于最大标记参数或标记限制而致使的不完全模型输出
content_filter:由于我们的内容挑选器的标志而省略的内容
null:API 响应仍处于进展中或不完全
GPT API 将数据以 JSON 格式发送到 Python,因此响应变量包括有深度嵌套的列表和字典。这对我们来讲有点麻烦!
对名为 response 的响应变量,状态代码存储在以下位置:
“`python
response[“choices”][0][“finish_reason”]
“`
提取 AI 助手的消息
在响应变量中,我们要生成的文本被隐藏其中。荣幸的是,它始终位于相同的位置。
“`python
response[“choices”][0][“message”][“content”]
“`
响应内容可以像平常一样打印出来,使用 `print(content)`,但这是 Markdown 内容,Jupyter 笔记本可以通过 display(Markdown(content)) 进行渲染。
这是生成数据集的 Python 代码:
“`python
import numpy as np
import pandas as pd
np.random.seed(42)
sales_data = np.random.normal(loc=100000, scale=5000, size=12)
month_abbr = [‘Jan’, ‘Feb’, ‘Mar’, ‘Apr’, ‘May’, ‘Jun’, ‘Jul’, ‘Aug’, ‘Sep’, ‘Oct’, ‘Nov’, ‘Dec’]
sales_df = pd.DataFrame({‘month’: month_abbr, ‘total_sales_usd’: sales_data})
print(sales_df)
“`
这是 markdown 格式的输出:
“`
| month | total_sales_usd |
|——-|—————-|
| Jan | 98313.883548 |
| Feb | 100947.084817 |
| Mar | 102881.871875 |
| Apr | 104553.752374 |
| May | 98887.442521 |
| Jun | 100280.360661 |
| Jul | 106727.433483 |
| Aug | 98496.183569 |
| Sep | 98470.965125 |
| Oct | 99436.692995 |
| Nov | 101441.603387 |
| Dec | 98612.548464 |
“`
使用帮助函数调用 GPT
为了履行这三个简单任务,您需要编写许多重复的样板代码。将这些无聊的部份抽象为一个包装器函数是有用的。这样,我们就能够专注于数据科学用例。
希望 OpenAI 能够改进他们的 Python 包的接口,使得这类事情可之内置。在此期间,可以随便在自己的代码中使用此函数。
该函数接受两个参数。
system:包括系统消息的字符串。
user_assistant:一个字符串交替的数组,消息内容是用户消息然后助手消息。
返回值是生成的内容。
“`python
def chat(system, user_assistant):
assert isinstance(system, str), “`system` should be a string”
assert isinstance(user_assistant, list), “`user_assistant` should be a list”
system_msg = [{“role”: “system”, “content”: system}]
user_assistant_msgs = [
{“role”: “assistant”, “content”: user_assistant[i]}
if i % 2
else {“role”: “user”, “content”: user_assistant[i]}
for i in range(len(user_assistant))
]
msgs = system_msg + user_assistant_msgs
response = openai.ChatCompletion.create(model=”gpt⑶.5-turbo”, messages=msgs)
status_code = response[“choices”][0][“finish_reason”]
assert status_code == “stop”, f”The status code was {status_code}.”
return response[“choices”][0][“message”][“content”]
“`
将此函数示例用法是
“`python
response_fn_test = chat(“You are a machine learning expert.”,[“Explain what a neural network is.”])
display(Markdown(response_fn_test))
“`
一个神经网络是一种遭到人脑结构启发的机器学习模型。它由相互连接的处理单元(称为神经元)的层组成,这些神经元一起处理和分析数据。每一个神经元接收来自其他神经元或外部来源的输入,使用数学函数处理该输入,然后产生一个输出传递给网络中的其他神经元。神经网络的结构和行动可以通过更改神经元之间的连接的权重和偏差来调剂。在训练进程中,网络可以学会辨认模式并基于其接收的输入进行预测。神经网络经常使用于图象分类、语音辨认和自然语言处理等任务,并且已被证明对解决传统基于规则的编程方法难以解决的复杂问题非常有效。
重用 AI 助手的响应
在许多情况下,您希望与 AI 构成更长的对话。也就是说,您发送一个提示给 GPT,收到一个响应后,再发送另外一个提示以继续对话。在这类情况下,您需要在第二次调用 API 时包括来自 GPT 的先前响应,以便 GPT 具有完全的上下文。这将提高响应的准确性,并增加对话间的一致性。
为了重复使用 GPT 的消息,您从响应中检索它,然后将其传递给 chat 的新调用。
例如:分析样例数据集
让我们尝试计算之前生成的数据集的销售列的平均值。请注意,由于我们第一次没有使用 chat() 函数,所以我们一定要使用更长的子集代码来获得之前的响应文本。如果使用 chat(),代码会更简单。
“`python
# 将响应中的内容分配给 assistant_msg
assistant_msg = response[“choices”][0][“message”][“content”]
# 定义一个新的用户消息
user_msg2 = ‘Using the dataset you just created, write code to calculate the mean of the `total_sales_usd` column. Also include the result of the calculation.’
# 创建一个用户和助手对话的数组
user_assistant_msgs = [user_msg, assistant_msg, user_msg2]
# 让 GPT 履行要求
response_calc = chat(system_msg, user_assistant_msgs)
# 显示生成的内容
display(Markdown(response_calc))
“`
固然!这是计算 `total_sales_usd` 列平均销售额的代码:
“`python
mean_sales = sales_df[‘total_sales_usd’].mean()
print(“Mean sales: $”, round(mean_sales, 2))
“`
这是此代码的输出:
“`shell
Mean sales: $ 100077.57
“`
因此,过去一年总销售额的均值约为 100077.57 美元。
在管道中使用 GPT
使用 API 而不是 Web 界面的一个巨大优势是您可以将 GPT 与其他 API 结合使用。从一个或多个源拉取数据,然后利用 AI 就是一个强大的工作流。
将 GPT AI 利用于天气数据
在这里,我们将使用 weather2 包(PyPI)获得天气预报,并使用 GPT 提供活动建议。
“`python
# 导入 weather2 包
import weather
# 获得迈阿密的天气预报
location = “Miami”
forecast = weather.forecast(location)
# 提取明天中午的预报数据
fcast = forecast.tomorrow[“12:00″]
# 创建一个提示
user_msg_weather = f”In {location} at midday tomorrow, the temperature is forecast to be {fcast.temp}, the wind speed is forecast to be {fcast.wind.speed} m/s, and the amount of precipitation is forecast to be {fcast.precip}. Make a list of suitable leisure activities.”
# 调用 GPT
response_activities = chat(“You are a travel guide.”, [user_msg_weather])
# 显示生成的内容
display(Markdown(response_activities))
“`
明天中午,迈阿密的温度预计为 XXX 摄氏度,风速预计为 XXX m/s,降水量预计为 XXX。以下是一些建议的休闲活动:
1. 访问迈阿密的海滩,享受阳光或在海洋中游泳!
2. 探索迈阿密的艺术场景,参观佩雷斯艺术博物馆迈阿密或温伍德墙壁(Wynwood Walls)。
3. 漫步迈阿密著名的海洋大道(Ocean Drive),欣赏色采斑斓的艺术装潢艺术。
4. 前往小哈瓦那,体验古巴文化和美食。
5. 在迈阿密的许多公园,如Bayfront Park或South Pointe Park,漫步或骑自行车。
6. 参观迈阿密海洋馆,近距离观赏一些使人难以置信的海洋生物。
7. 参加船上之旅,从水上欣赏使人惊叹的迈阿密天际线。
8. 购物爱好者可以探索许多高级精品店和户外购物中心,如Lincoln Road Mall。
9. 吃货可之前往全年举行的许多美食节。
10. 最后,有大量的夜总会和现场音乐场地可让夜生活延续下去。
太棒了!部份我希望明天能在迈阿密!
从入门到实战
您可以在《ChatGPT 介绍》课程中了解有关使用 GPT 的更多信息。(有关使用 OpenAI API 的完全课程行将推出!)
要了解更多您刚刚学到的内容,请复制OpenAI API 在 Python 中的备忘录或观看入门 OpenAI API 和 ChatGPT 的直播培训录相。
如果您有兴趣进行文本转语音转录,请浏览《使用 OpenAI Whisper API 进行语音转文本转录》的教程。
from openai import openai的常见问答Q&A
问题1:Python中的open是甚么?
答案:在Python中,open是一个用于打开文件的内置函数。它允许我们以区别的模式(比如读取模式、写入模式、追加模式等)打开文件并对其进行操作。
- 示例:
file = open("example.txt", "r")
content = file.read()
print(content)
file.close()
- open函数还可以接受额外的参数,比如指定编码方式、处理二进制文件等。
- 在打开文件后,我们可使用read、write等方法来读取或写入文件的内容。
- 打开文件后,记得使用close方法来关闭文件,释放资源。
问题2:怎样使用Python中的openai模块?
答案:要使用Python中的openai模块,首先需要安装该模块。可使用pip命令来安装:pip install openai
。
- 示例:
import openai
openai.api_key = 'YOUR_API_KEY'
response = openai.Completion.create(engine="davinci", prompt="Once upon a time")
print(response.choices[0].text)
- 在使用openai模块之前,需要先获得API密钥,并将其设置为
openai.api_key
的值。 - 使用openai模块可以方便地访问OpenAI API,从而实现各种人工智能任务,比如自然语言处理、图象生成等。
- 可以根据具体需求,使用区别的方法和参数来调用openai模块中的函数。
问题3:怎样使用Python中的openai模块生成图片?
答案:要使用Python中的openai模块生成图片,首先需要设置API密钥,并将其赋值给openai.api_key
。
- 示例:
import openai
openai.api_key = 'YOUR_API_KEY'
response = openai.Image.create(prompt="A fluffy white cat with blue eyes")
print(response)
- 在使用openai模块生成图片之前,需要提供相应的提示信息,以便模型能够根据提示生成图片。
- 通过调剂参数可以控制生成图片的样式、内容等。
- 生成图片后,可以根据需要进行保存、展现或进一步处理。