openai/openai-python: The official Python library for the OpenAI API(openai key api reference)
一、OpenAI API介绍和使用准备
A. OpenAI API的概述和作用
1. OpenAI API是甚么
– OpenAI API是一个用于访问OpenAI开发的新型AI模型的接口。
– 区别于大多数只针对单一用例的AI系统,OpenAI API具有更广泛的利用场景。
2. OpenAI API的作用和优势
– 通过OpenAI API,可以利用强大的AI模型进行自然语言处理任务和其他AI任务。
– OpenAI API的优势在于其灵活性和开放性,可用于各种实际利用中。
B. OpenAI API的使用准备
1. 获得OpenAI API密钥
– 在API密钥页面获得OpenAI API密钥,用于要求时进行身份验证。
– 密钥的获得进程和注意事项。
2. 安装和设置OpenAI库
– 使用pip安装openai库。
– 设置环境变量OPENAI_API_KEY,用于认证API要求。
二、Python代码使用OpenAI API
A. 使用OpenAI API进行自然语言处理任务
1. 导入openai库和其他必要的库
– 使用import语句导入openai库和其他需要的库。
2. 编写API要求代码
– 创建OpenAI客户端对象并使用API密钥进行初始化。
– 使用API要求方法发送要求,获得结果。
B. 通过Python代码使用OpenAI API进行其他AI任务
1. 调用相应的API方法
– 根据需要选择适合的API方法,如图象处理、文本生成等。
2. 处理API返回结果
– 根据API返回的结果进行进一步处理和分析。
三、OpenAI API参考文档和使用示例
A. API参考文档概述
1. OpenAI API的官方文档和资源
– 访问OpenAI的开发者平台,获得API参考文档、教程和示例代码等。
2. 了解API的各项功能和参数
– API参考文档中提供详细的功能介绍和参数说明。
B. 使用示例和动态实例
1. 构建简单的利用程序
– 使用OpenAI API构建一个简单的样例利用程序。
– 演示怎样使用API关键概念和技术。
四、常见问题和故障排除
A. API密钥和要求组织的问题
1. 401毛病:提供了毛病的API密钥
– 解决办法:确认使用的API密钥会不会正确。
2. 使用正确的API密钥和要求组织
– 确保使用正确的API密钥和要求组织进行要求。
B. 其他常见问题和故障排除
1. IP白名单问题
– 检查IP白名单设置会不会正确。
2. 其他问题和故障排除方法
– 处理其他可能出现的问题和故障排除方法。
openai key api reference的进一步展开说明
OpenAI Python库
OpenAI Python库是一个方便地从使用Python语言编写的利用程序中访问OpenAI API的工具。它包括一套预定义的API资源类,这些类可以根据API响应动态初始化自己,使其与多个OpenAI API版本兼容。
安装
首先,确保您具有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毛病。
Chat completions
可使用聊天完成端点来调用gpt⑶.5-turbo和gpt⑷等聊天模型。
completion = openai.ChatCompletion.create(
model="gpt⑶.5-turbo",
messages=[
{"role": "user", "content": "Hello world"}
]
)
print(completion.choices[0].message.content)
可以在我们的聊天完成指南中了解更多信息。
Completions
可使用文本模型(例如babbage-002或davinci-002)和我们的传统完成模型来调用完成端点。
completion = openai.Completion.create(
model="davinci-002",
prompt="Hello world"
)
print(completion.choices[0].text)
可以在我们的完成指南中了解更多信息。
嵌入
嵌入用于衡量文本字符串之间的类似性或相关性。要取得文本字符串的嵌入,可使用以下方法:
text_string = "示例文本"
model_id = "text-embedding-ada-002"
embedding = openai.Embedding.create(input=text_string, model=model_id)['data'][0]['embedding']
可以在我们的嵌入指南中了解更多信息。
微调
使用训练数据对模型进行微调可以提高结果(通过给模型提供更多示例来训练)并通过减少在提示中包括训练示例的需求来下降本钱/延迟。
# 使用已上传的文件创建一个微调作业
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="这是一些完全无害的遵照了OpenAI内容政策的文本。")
可以在我们的内容审核指南中了解更多信息。
图象生成(DALL·E)
DALL·E是一种生成图象的模型,可以根据提示生成新的图象。
image_resp = openai.Image.create(prompt="两只狗下棋,油画", n=4, size="512x512")
可以在我们的图象生成指南中了解更多信息。
音频(Whisper)
语音转文本API基于我们先进的开源large-v2 Whisper模型,提供了转录和翻译两个端点。
f = open("path/to/file.mp3", "rb")
transcript = openai.Audio.transcribe("whisper⑴", f)
transcript = openai.Audio.translate("whisper⑴", f)
可以在我们的语音转文本指南中了解更多信息。
异步API
API中支持异步操作,只需在网络绑定方法前面添加a:
async def create_chat_completion():
chat_completion_resp = await openai.ChatCompletion.acreate(
model="gpt⑶.5-turbo",
messages=[
{"role": "user", "content": "Hello world"}
]
)
为了使异步要求更高效,可以传递自己的aiohttp.ClientSession,但一定要在程序/事件循环的末尾手动关闭客户端会话:
from aiohttp import ClientSession
openai.aiosession.set(ClientSession()) # 在程序末尾关闭客户端会话
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参数传递。
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。其他参数需要依照前面一节中的说明进行设置。
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库进行分支的。
openai key api reference的常见问答Q&A
问题1:OpenAI API 是甚么?
答案:OpenAI API 是一款由 OpenAI 公司开发的利用程序接口(API),它允许开发者访问和使用 OpenAI 所开发的最新人工智能模型。通过 OpenAI API,开发者可以利用这些模型进行文本生成、语言翻译、搜索引擎和聊天机器人等多种利用程序的开发。
- OpenAI API 提供了强大的人工智能模型的访问接口。
- 开发者可以利用 OpenAI API 进行文本生成、语言翻译、搜索引擎等利用程序的开发。
- OpenAI API 的使用可以提高开发效力和利用程序的智能程度。
问题2:如何申请和测试 OpenAI API keys?
答案:要申请和测试 OpenAI API keys,可以依照以下步骤进行:
- 访问 OpenAI 的官方网站,并登录或注册一个开发者账号。
- 导航到 API Keys 页面,点击申请 API key 的按钮。
- 填写 API key 申请表格,包括利用程序名称、开发者信息等。
- 提交申请后,OpenAI 团队会对申请进行审核,并在一段时间后发送 API key 给开发者。
- 取得 API key 后,开发者可以将其嵌入到利用程序中进行测试和调试。
需要注意的是,在测试和调试期间,开发者需要遵照 OpenAI API 的使用规范,确保依照接口文档和最好实践进行开发。
问题3:怎样使用 OpenAI API 进行文本生成?
答案:要使用 OpenAI API 进行文本生成,可以依照以下步骤进行:
- 获得 OpenAI API key,并确保已安装 OpenAI Python 库。
- 在 Python 代码中导入 OpenAI 模块,并使用 API key 进行身份验证。
- 定义要生成的文本的输入。
- 调用 OpenAI 模块的相应函数,传递输入文本,并指定生成文本的相关参数。
- 接收并处理 OpenAI 返回的生成文本。
示例代码:
import openai
openai.api_key = 'Your_API_Key'
input_text = 'Input text for generation'
response = openai.Completion.create(
engine='text-davinci-003',
prompt=input_text,
max_tokens=100
)
generated_text = response.choices[0].text