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,可以依照以下步骤进行:

  1. 访问 OpenAI 的官方网站,并登录或注册一个开发者账号。
  2. 导航到 API Keys 页面,点击申请 API key 的按钮。
  3. 填写 API key 申请表格,包括利用程序名称、开发者信息等。
  4. 提交申请后,OpenAI 团队会对申请进行审核,并在一段时间后发送 API key 给开发者。
  5. 取得 API key 后,开发者可以将其嵌入到利用程序中进行测试和调试。

需要注意的是,在测试和调试期间,开发者需要遵照 OpenAI API 的使用规范,确保依照接口文档和最好实践进行开发。

问题3:怎样使用 OpenAI API 进行文本生成?

答案:要使用 OpenAI API 进行文本生成,可以依照以下步骤进行:

  1. 获得 OpenAI API key,并确保已安装 OpenAI Python 库。
  2. 在 Python 代码中导入 OpenAI 模块,并使用 API key 进行身份验证。
  3. 定义要生成的文本的输入。
  4. 调用 OpenAI 模块的相应函数,传递输入文本,并指定生成文本的相关参数。
  5. 接收并处理 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

ChatGPT相关资讯

ChatGPT热门资讯

X

截屏,微信识别二维码

微信号:muhuanidc

(点击微信号复制,添加好友)

打开微信

微信号已复制,请打开微信添加咨询详情!