openai/openai-python: The official Python library for the OpenAI API(import openai openai.api_key)
I. OpenAI账户和API Key的创建
A. 登录OpenAI账户
使用电子邮件地址和密码登录到OpenAI账户。
B. 创建API Key
选择左边菜单栏的“API Keys”。点击“+ Create new API key”按钮。自定义名称和权限等设置。获得API Key用于后续的API调用。
II. 使用OpenAI API调用方法
A. Python库安装和引入
安装OpenAI Python库。在代码中引入openai模块。
B. 设置API Key
通过import os导入os模块。通过openai.api_key的方式设置API Key。
C. 文本生成示例
使用openai.Completion.create方法调用文本生成API。设置模型和生成的文本内容。
D. 对话式生成示例
使用openai.ChatCompletion.create方法调用对话式生成API。设置模型和对话消息的内容。
E. 查看模型列表
使用openai.Model.list方法获得可用模型列表。
III. 其他语言的调用方法
A. Node.js示例
使用require方法引入openai包。通过设置openai.api_key属性和openai.organization属性进行身份认证。
IV. OpenAI API的身份认证
A. API Key的重要性
OpenAI API使用API Key进行身份认证。API Key在要求中起到重要的身份辨认作用。
B. 获得API Key
访问API Keys页面获得API Key。
C. API Key的保密性
API Key需要妥善保管,避免泄漏。
V. OpenAI Python库的功能介绍
A. 方便访问OpenAI API
OpenAI Python库提供了方便的API访问方式。
B. 预定义功能集合
OpenAI Python库包括一组预定义的功能集合。
C. 使用Python进行开发
OpenAI Python库适用于使用Python语言开发的利用程序。
总结
通过这个大纲,您将学会怎样创建OpenAI账户和API Key,并掌握使用OpenAI API的经常使用调用方法。您将了解到怎样使用Python库进行API调用,并通过代码示例了解文本生成和对话式生成的使用方法。另外,您还将了解到其他语言(如Node.js)的API调用示例,并了解API Key的重要性和保密性。最后,您还将了解到OpenAI Python库的功能介绍,和它在Python开发中的作用。
import openai openai.api_key的进一步展开说明
## OpenAI Python库
OpenAI Python库允许使用Python语言编写的利用程序方便地访问OpenAI API。它包括一组预定义的API资源类,这些类可以根据API响应动态初始化自己,使其与各种版本的OpenAI API兼容。
你可以在我们的API参考和OpenAI Cookbook中找到OpenAI Python库的使用示例。
## 安装
首先,请确保您已安装了Python 3.7.1或更新的版本。如果你只想使用这个包,运行以下命令进行安装:
“`
pip install –upgrade openai
“`
安装完包后,在文件的顶部导入它:
“`
import openai
“`
要从源码安装此包以对其进行修改,请从存储库的根目录运行以下命令:
“`
python setup.py install
“`
可选依赖项
为openai.embeddings_utils安装依赖项:
“`
pip install openai[embeddings]
“`
安装Weights & Biases的支持:
“`
pip install openai[wandb]
“`
由于numpy和pandas的大小,不会默许安装这些数据库。这些库是该库的某些功能所需的,但通常不用于与API进行通讯。如果遇到MissingDependencyError,请使用以下命令安装它们:
“`
pip install openai[datalib]
“`
## 使用方法
库需要使用您帐户的秘密密钥进行配置,该密钥可在网站上取得。在使用库之前,可以将其设置为OPENAI_API_KEY环境变量:
“`
export OPENAI_API_KEY=’sk-…’
“`
或将openai.api_key设置为其值:
“`
openai.api_key = “sk-…”
“`
在OpenAI Cookbook中可以找到使用此库完成各种任务的示例。其中包括了以下任务的代码示例:使用微调进行分类、聚类、代码搜索、自定义嵌入、从文档语料库中回答问题、推荐、嵌入可视化等等。
大多数终端支持request_timeout参数。此参数接受一个Union[float, Tuple[float, float]],如果要求的时间超过指定的秒数将引发openai.error.Timeout毛病(参见: https://requests.readthedocs.io/en/latest/user/quickstart/#timeouts)。
### 对话完成
可使用聊天完成端点调用gpt⑶.5-turbo和gpt⑷等聊天模型。
“`
completion = openai.ChatCompletion.create(model=”gpt⑶.5-turbo”, messages=[{“role”: “user”, “content”: “Hello world”}])
print(completion.choices[0].message.content)
“`
您可以在我们的聊天完成指南中了解更多信息。
### 完成
可使用babbage-002或davinci-002等文本模型(和我们的传统完成模型)调用完成端点。
“`
completion = openai.Completion.create(model=”davinci-002″, prompt=”Hello world”)
print(completion.choices[0].text)
“`
您可以在我们的完成指南中了解更多信息。
### 嵌入
嵌入旨在衡量文本字符串之间的类似性或相关性。要为文本字符串获得嵌入,可使用以下代码:
“`
text_string = “sample text”
model_id = “text-embedding-ada-002″
embedding = openai.Embedding.create(input=text_string, model=model_id)[‘data’][0][’embedding’]
“`
您可以在我们的嵌入指南中了解更多信息。
## 微调
通过使用训练数据对模型进行微调,可以改良结果(通过向模型提供更多示例来使其学习)并下降API调用的本钱/延迟,由于无需将训练示例包括在提示中。
“`
# 使用已上传的文件创建微调任务
openai.FineTuningJob.create(training_file=”file-abc123″, model=”gpt⑶.5-turbo”)
# 列出前10个微调任务
openai.FineTuningJob.list(limit=10)
# 检索微调任务的状态
openai.FineTuningJob.retrieve(“ft-abc123”)
# 取消任务
openai.FineTuningJob.cancel(“ft-abc123″)
# 列出微调任务中的最多10个事件
openai.FineTuningJob.list_events(id=”ft-abc123”, limit=10)
# 删除微调模型(一定要是创建模型的组织的所有者)
openai.Model.delete(“ft:gpt⑶.5-turbo:acemeco:suffix:abc123″)
“`
您可以在我们的微调指南中了解更多信息。
要将微调的训练结果记录到Weights & Biases中,请使用以下命令:
“`
openai wandb sync
“`
有关更多信息,请浏览Weights & Biases上的wandb文档。
## 过滤
OpenAI提供了一个不要钱的过滤端点,可用于检查内容会不会符合OpenAI的内容政策。
“`
moderation_resp = openai.Moderation.create(input=”Here is some perfectly innocuous text that follows all OpenAI content policies.”)
“`
您可以在我们的过滤指南中了解更多信息。
图象生成(DALL·E)
DALL·E是一个生成图象模型,可以根据提示创建新图象。
“`
image_resp = openai.Image.create(prompt=”two dogs playing chess, oil painting”, n=4, size=”512×512″)
“`
您可以在我们的图象生成指南中了解更多信息。
语音(Whisper)
语音到文本API基于我们的最新开源大型v2 Whisper模型,提供了两个端点,即转录和翻译。
“` python
f = open(“path/to/file.mp3”, “rb”)
transcript = openai.Audio.transcribe(“whisper⑴”, f)
transcript = openai.Audio.translate(“whisper⑴″, f)
“`
您可以在我们的语音转文本指南中了解更多信息。
Async API
通过在网络绑定方法前添加“a”前缀,API中提供了异步支持的功能。
“` python
async def create_chat_completion():
chat_completion_resp = await openai.ChatCompletion.acreate(model=”gpt⑶.5-turbo”, messages=[{“role”: “user”, “content”: “Hello world”}])
“`
为了使异步要求更有效,您可以传递自己的`aiohttp.ClientSession`,但您一定要在程序/事件循环结束时手动关闭客户端会话。
“` python
from aiohttp import ClientSession
openai.aiosession.set(ClientSession())
# 在程序结束时关闭http会话
await openai.aiosession.get().close()
“`
命令行界面
该库还提供了一个`openai`命令行实用程序,可以让您从终端轻松地与API进行交互。使用`openai api -h`命令可以查看用法。
“`
# 列出模型
openai api models.list
# 创建聊天完成(gpt⑶.5-turbo、gpt⑷等)
openai api chat_completions.create -m gpt⑶.5-turbo -g user “Hello world”
# 创建完成(text-davinci-003、text-davinci-002、ada、babbage、curie、davinci等)
openai api completions.create -m ada -p “Hello world”
# 通过DALL·E API生成图象
openai api image.create -p “two dogs playing chess, cartoon” -n 1
# 通过代理使用openai
openai –proxy=http://proxy.com api models.list
“`
## Microsoft Azure端点
要将该库与Microsoft Azure端点一起使用,除设置api_key,还需要设置api_type、api_base和api_version参数。api_type一定要设置为’azure’,而其他参数对应于您的端点属性。另外,一定要将部署名称作为engine参数传递。
“` python
import openai
openai.api_type = “azure”
openai.api_key = “…”
openai.api_base = “https://example-endpoint.openai.azure.com”
openai.api_version = “2023-05⑴5″
# 创建聊天完成
chat_completion = openai.ChatCompletion.create(
deployment_id=”deployment-name”,
model=”gpt⑶.5-turbo”,
messages=[{“role”: “user”, “content”: “Hello world”}]
)
# 打印完成的结果
print(chat_completion.choices[0].message.content)
“`
请注意,目前Microsoft Azure端点只能用于完成、嵌入和微调操作。有关怎样使用Azure端点进行微调和其他操作的详细示例,请查看以下Jupyter笔记本:
Microsoft Azure Active Directory身份验证
要使用Microsoft Active Directory进行身份验证Azure端点,需要将api_type设置为”azure_ad”,并将获得的凭据令牌传递给api_key。其余参数需要依照上一节中的说明设置。
“` python
from azure.identity import DefaultAzureCredential
import openai
# 要求凭证
default_credential = DefaultAzureCredential()
token = default_credential.get_token(“https://cognitiveservices.azure.com/.default”)
# 设置参数
openai.api_type = “azure_ad”
openai.api_key = token.token
openai.api_base = “https://example-endpoint.openai.azure.com/”
openai.api_version = “2023-05⑴5”
“`
## 致谢
该库是从Stripe Python Library中分支出来的。
我是一位专业的文案撰稿人,能写出详细而有思想的博客文章。
import openai openai.api_key的常见问答Q&A
问题1:如何申请和测试OpenAI API keys?
答案:要申请和测试OpenAI API keys,可按以下步骤操作:
- 登录OpenAI账户:使用电子邮件地址和密码登录到OpenAI账户。
- 创建API Key:在左边菜单栏选择“API Keys”,然后点击“+ Create new API key”按钮创建API Key。
- 自定义名称和权限:根据需求给API Key命名,并选择适当的权限。
- 获得API Key:创建完成后,便可取得API Key,用于API的身份验证。
- 测试API Key:在代码中导入openai库,并将API Key赋值给api_key属性。
- 发起API要求:使用openai.Completion.create()方法或openai.ChatCompletion.create()方法发起API要求。
问题2:怎样在Python中使用OpenAI API?
答案:要在Python中使用OpenAI API,可履行以下步骤:
- 导入OpenAI库:首先需要导入OpenAI库。
- 身份验证:将API Key赋值给openai.api_key属性进行身份验证。
- API调用:使用openai.Completion.create()方法或openai.ChatCompletion.create()方法调用API。
- 处理API响应:根据API响应获得返回的文本或生成的对话等结果。
- 示例代码:
import openai
# 身份验证
openai.api_key = "YOUR_API_KEY"
# 发起API要求
response = openai.Completion.create(
engine="davinci",
prompt="Once upon a time",
max_tokens=100
)
# 处理API响应
result = response.choices[0].text.strip()
print(result)
问题3:在Python中如何获得OpenAI API key?
答案:要获得OpenAI API key,在OpenAI账户中履行以下步骤:
- 登录OpenAI账户:使用电子邮件地址和密码登录到OpenAI账户。
- 访问API Keys页面:导航到左边菜单栏的“API Keys”选项。
- 创建API Key:点击“+ Create new API key”按钮创建API Key。
- 获得API Key:在创建API Key后,便可从API Keys页面获得API Key。
问题4:怎样使用OpenAI Python API?
答案:使用OpenAI Python API,可参考以下步骤:
- 导入OpenAI库:首先需要导入OpenAI库。
- 身份验证:将API Key赋值给openai.api_key属性进行身份验证。
- API调用:使用openai.Completion.create()方法或openai.ChatCompletion.create()方法调用API,具体需要传入的参数根据API的要求进行设置。
- 处理API响应:根据API响应获得返回的结果或文本。
- 示例代码:
import openai
# 身份验证
openai.api_key = "YOUR_API_KEY"
# 发起API要求
response = openai.Completion.create(
engine="davinci",
prompt="Once upon a time",
max_tokens=100
)
# 处理API响应
result = response.choices[0].text.strip()
print(result)