在 Python 中使用 OpenAI API
您是否厌倦了编写无法生成所需结果的代码?您是否正在寻找一种提高代码自然语言处理能力的方法?看看 OpenAI API 就是您的最佳选择!在这篇博客中,我们将讨论如何使用 Python 中的 OpenAI API 来增强代码的语言理解能力。
但在我们深入研究之前,让我们来看看什么是 OpenAI,以及它的 API 可以为你做什么。
什么是 OpenAI?
OpenAI 是一个人工智能研究实验室,由营利性公司 OpenAI LP 及其母公司非营利性 OpenAI Inc.组成。
该组织由一群科技行业领导者于 2015 年创立,包括 Elon Musk,Sam Altman,Greg Brockman 和 Ilya Sutskever。OpenAI 的目标是以造福全人类的方式推进人工智能。
OpenAI 的研究重点是开发和改进自然语言处理,机器人和机器学习等技术。该组织的使命是创建安全、有益的人工智能系统,帮助解决世界上一些最紧迫的问题。
他们在人工智能领域做出了重大贡献。他们最著名的一些项目包括 GPT-3,一种能够生成类似人类文本的语言模型,以及 DALL-E,一种能够从文本描述中生成原始图像的 AI 系统。
现在让我们探索一下 OpenAI API 是什么,并更好地了解其功能。
什么是 OpenAI API?
OpenAI API 是一个功能强大的工具,可为代码提供自然语言处理 (NLP) 功能。它是一种基于云的服务,允许您访问可以分析和理解文本数据的最新 (SOTA) 语言模型。
OpenAI API 提供了多种语言模型,每种模型都有自己的优点和缺点。
现在让我们看看你真正可以用 OpenAI API 做什么。
OpenAI API 能做什么?
OpenAI 的 API 可以为你做的一些神奇的事情:
使用 GPT 生成文本
GPT-4(生成预训练转换器 4)是 OpenAI 开发的最强大的语言模型之一。它是一种深度学习模型,使用无监督学习来生成类似人类的文本。
该模型已经用 10 万亿个参数进行了训练,它是目前最大的语言模型,能够完成复杂的任务,例如:
- 文本完成:OpenAI API 可以为给定提示生成文本完成。这在从聊天机器人到文本编辑器的广泛应用程序中都很有用。
- 文本分类:OpenAI API 可以将文本分类为情绪、主题和意图等类别。这在垃圾邮件过滤、内容审核和客户支持等应用程序中非常有用。
- 语言翻译:OpenAI API 可以将文本从一种语言翻译成另一种语言。这在国际交流、文档翻译和语言学习等应用中非常有用。
- 问答:OpenAI API 可以根据给定的上下文回答问题。这在虚拟助手、客户支持和教育资源等应用程序中非常有用。
- 文本摘要:OpenAI API 可以将长文本块汇总为较短的摘要。这在新闻文章、研究论文和法律文档等应用程序中非常有用。
- 语言生成:OpenAI API 可以根据给定的提示生成连贯的文本段落。这在创意写作、聊天机器人和虚拟助手等应用程序中非常有用。
使用 DALL-E 生成图像
OpenAI API 还可以根据您提供给模型的描述生成图像。这是使用 DALL-E(发音像“dal-eye”)模型完成的,该模型是一种神经网络,可以从文本描述中生成高质量的图像。
DALL-E 是由 OpenAI 开发的语言模型,可从文本描述生成图像。它以艺术家萨尔瓦多·达利和皮克斯电影中的角色瓦力命名。
DALL-E 可以从文本描述中生成各种图像,包括对象、场景和生物,使其成为创意应用程序的强大工具。
使用 CLIP 理解图像
CLIP(对比语言-图像预训练)是由 OpenAI 开发的语言模型,可以理解文本和视觉信息。
它在大型图像数据集及其相应的标题上进行训练,使其能够根据文本描述识别图像中的对象、场景和概念。
这使得 CLIP 成为图像分类、对象检测、形状检测和其他计算机视觉任务的宝贵工具。
使用 Whisper 进行语音到文本的转换
OpenAI API 不仅限于使用文本进行自然语言处理。它还提供了一个名为 Whisper 的独特语音识别工具。
Whisper 是一种基于深度学习的端到端语音识别系统,可以将音频文件转录为文本。
使用 Codex 编程
Codex 是 OpenAI 专门为编程任务开发的语言模型。它可以理解代码的自然语言描述并生成相应的代码片段。
Codex 已经在大型代码数据集上进行了训练,可以使用各种编程语言生成代码,包括 Python、JavaScript、Ruby 和 Go。
现在你已经了解了 OpenAI 模型和 API,让我们开始学习如何在 Python 中使用它。
在 Python 中设置 OpenAI API
在 Python 项目中使用 OpenAI API 之前,您需要设置 OpenAI 帐户、安装 OpenAI Python 包并验证您的 API 密钥。
- 注册一个 OpenAI 帐户
要注册 OpenAI 帐户,请访问 OpenAI 网站并单击“注册”按钮。系统将提示您输入电子邮件地址并创建密码。
输入信息后,单击“创建帐户”按钮。
- 创建 API 密钥
创建 OpenAI 帐户后,您需要创建一个 API 密钥。要创建 API 密钥,请转到 OpenAI 网站上的“API”选项卡,然后单击“创建 API 密钥”按钮。
系统将提示您命名 API 密钥并选择它应具有的权限。创建 API 密钥后,将其复制到剪贴板。
- 安装 OpenAI Python 软件包
要安装 OpenAI Python 包,您可以使用 pip,即 Python 包管理器。打开命令提示符或终端并运行以下命令:
pip install openai
这将在您的系统中安装 OpenAI Python 包及其所有依赖项。
- 验证您的 API 密钥
要验证您的 OpenAI API 密钥,您需要将其设置为 OpenAI Python 包的默认 API 密钥。
您可以通过在 Python 脚本中运行以下命令来执行此操作:
import openai
openai.api_key = "YOUR_API_KEY"
将“YOUR_API_KEY”替换为您在步骤 2 中复制到剪贴板的 API 密钥。
设置您的 OpenAI API 密钥
为了确保 API 密钥的安全,应避免将其硬编码到代码中。相反,请考虑以下任一情况:
- 将 OpenAI API 密钥存储为环境变量,或
- 使用
openai_secret_manager
库安全地管理 API 密钥
使用环境变量
要使用环境变量设置 API 密钥,请执行以下步骤:
- 打开终端或命令提示符窗口。
- 键入以下命令:
export OPENAI_API_KEY=<your-api-key>
- 替换为
<your-api-key>
实际的 API 密钥并执行命令。
您的 API 密钥现在作为环境变量存储在您的系统上。
容易吧?现在让我们验证我们的 API 密钥是否已正确设置。
要在代码中访问 API 密钥,您可以使用以下代码:
import os
api_key = os.environ["OPENAI_API_KEY"]
此代码检索 OPENAI_API_KEY
环境变量的值,并将其存储在名为 api_key
的变量中。现在,您可以使用该 api_key
变量对您的 OpenAI API 请求进行身份验证。
使用 OpenAI 机密管理器
该 openai_secret_manager
库提供了一种安全的方式来管理 API 密钥。
若要使用此库,请按照下列步骤操作:
- 通过使用命令在终端或命令提示符下运行以下命令来安装
openai_secret_manager
库:pip install openai_secret_manager
- 使用以下代码在代码中导入
openai_secret_manager
库:from openai_secret_manager import get_secret
- 使用
openai_secret_manager
库提供的get_secret()
函数检索您的 API 密钥。
可以通过向项目添加以下代码来执行此操作:
import openai_secret_manager
assert "openai" in openai_secret_manager.get_services()
secrets = openai_secret_manager.get_secret("openai")
openai.api_key = secrets["api_key"]
完成这些步骤后,您就可以开始在 Python 项目中使用 OpenAI API 了。
现在让我们学习如何向 API 发送请求并处理我们将收到的响应。
在 Python 中向 OpenAI API 发送请求
要使用 Python 向 OpenAI API 发送请求,您需要创建一个请求对象并设置适当的参数。
该 openai
包提供了一种便捷的创建请求对象的方法 Completion.create()
。
例:
import openai
openai.api_key = "YOUR_API_KEY"
prompt = "Hello, my name is"
response = openai.Completion.create(
engine="davinci",
prompt=prompt,
max_tokens=5,
n=1,
stop=None,
temperature=0.5,
)
OpenAI Completion Create 参数
engine
参数指定用于完成的语言模型。prompt
参数指定要完成的提示。max_tokens
参数指定完成中的最大标记数。n
参数指定要生成的完成次数。stop
参数指定完成的停止顺序。temperature
参数控制生成的完成的多样性。
在 Python 中处理 OpenAI API 响应
当您向 OpenAI API 发送请求时,您将收到一个响应对象。
响应对象包含生成的完成以及其他元数据。
以下是访问生成的完成项的方法:
completion_text = response.choices[0].text
在此示例中,我们通过获取 text
响应对象 choices
列表中第一个元素的属性来访问生成的完成。
如果指定了要生成的多个完成,则可以通过循环访问 choices
列表来访问其他完成。
响应对象还包含其他元数据,例如生成完成所花费的时间、请求的 ID 以及所使用的语言模型的 ID。您可以使用响应对象的相应属性访问此元数据。
在 Python 中使用 ChatGPT API
现在你已经正确理解了如何发送和处理 OpenAI API 响应,你可以开始在你的 Python 代码中使用 ChatGPT API。
使用 API 的基本工作流程如下:
- 创建 OpenAI API 客户端对象
- 调用该方法
openai.Completion.create()
以生成自然语言响应 - 处理响应
下面是演示此工作流的示例代码片段:
ChatGPT API Exampleimport openai
openai.api_key = "your-api-key" # or use the method we defined earlier
def generate_response(prompt):
response = openai.Completion.create(
engine="text-davinci-002",
prompt=prompt,
max_tokens=60,
n=1,
stop=None,
temperature=0.5,
)
return response.choices[0].text.strip()
prompt = "What is the capital of India?"
response = generate_response(prompt)
print(response)
使用 Codex 将自然语言转换为代码
有两种方法可以使用 Codex 使用 OpenAI Python 库:
- 使用引擎设置为
davinci-codex
- 使用 OpenAI 代码函数
让我们了解一下它们。
下面是如何使用 Codex 从自然语言生成 Python 代码的示例,引擎设置为 davinci-codex
:
import openai
import json
# Authenticate with the API key
openai.api_key = "YOUR_API_KEY"
# Set the engine to davinci-codex
engine = "davinci-codex"
# Define the natural language prompt
prompt = (
"Write a Python function to calculate the factorial of a number."
)
# Set up the parameters for the completion
parameters = {
"prompt": prompt,
"max_tokens": 100,
"n": 1,
"stop": "\n",
"temperature": 0.5,
"frequency_penalty": 0,
"presence_penalty": 0,
}
# Generate the code completion
response = openai.Completion.create(engine=engine, **parameters)
# Extract the code from the response
code = response.choices[0].text.strip()
# Print the generated code
print(code)
在 OpenAI Python 库中使用代码方法:
import openai
openai.api_key = "your_api_key"
response = openai.Code.create(
prompt='Write a Python function to calculate the factorial of a number.',
language='python'
)
print(response["code"])
Codex 可用于为各种编程语言生成代码,包括 Python、JavaScript、Ruby 等等。
它还可用于为特定任务生成代码片段或完成部分代码示例。
使用 DALL-E 生成图像
以下是如何使用 DALL-E OpenAI Python 库生成图像的示例:
response = openai.Image.create(
prompt="A blue bird sitting on a branch",
size="256x256"
)
image_url = response["data"][0]["url"]
然后, Pillow
您可以使用 Python 库下载并显示生成的图像:
from PIL import Image
import requests
from io import BytesIO
response = requests.get(image_url)
img = Image.open(BytesIO(response.content))
img.show()
总结
恭喜你,你已经学会了如何在 Python 中使用 OpenAI API!在这篇博客中,我们讨论了什么是 OpenAI API、如何设置帐户、如何安装 OpenAI Python 包、如何验证您的 API 密钥以及如何在项目中使用该 API。我们还提供了一个示例,说明如何使用 API 完成代码中的句子。
请记住,OpenAI API 是一个强大的工具,可以帮助您提高代码的自然语言处理能力。凭借正确的技能和创造力,您可以使用 OpenAI API 构建可以理解和分析自然语言数据的惊人项目。
那么,你还在等什么?立即开始在您的项目中使用 OpenAI API,看看它如何改变您编写代码的方式!