openai/openai-python: The official Python library for the OpenAI API(openai_secret_manager)

OpenAI Secret Manager模块简介

OpenAI Secret Manager是一个用于管理API密钥的Python模块。它允许您安全地存储和访问OpenAI API密钥,以便在代码中调用API。

安装OpenAI Secret Manager模块

您可使用以下命令使用pip安装openai-secret-manager库:

pip install openai-secret-manager

请确保安装的版本与您当前使用的Python版本兼容。

导入OpenAI Secret Manager模块

在Python脚本中,您可使用以下代码导入openai_secret_manager模块:

import openai_secret_manager

您可使用assert语句检查模块会不会成功导入:

assert "openai" in openai_secret_manager.get_services()

配置OpenAI API密钥

获得OpenAI API密钥

要获得OpenAI API密钥,您需要具有一个OpenAI帐户。登录OpenAI网站并创建一个帐户。在帐户设置中,您将找到您的API密钥,并可以将其复制。

初始化OpenAI Secret Manager

在命令行中运行以下命令来初始化OpenAI Secret Manager:

openai_secret_manager init

运行此命令后,您将被要求提供您的API密钥。输入API密钥后,密钥管理器将被初始化,并将密钥存储在一个安全的位置。

使用OpenAI Secret Manager调用OpenAI API

获得存储的API密钥

使用openai_secret_manager.get_services()方法,您可以检查服务会不会已添加到密钥管理器中。使用openai_secret_manager.get_secret(“openai”)方法,您可以获得存储的API密钥:

secrets = openai_secret_manager.get_secret("openai")

调用OpenAI API

要调用OpenAI API,您需要导入openai库并设置API密钥:

import openai

设置API密钥:

openai.api_key = secrets["api_key"]

现在,您可使用导入的openai库中的任何方法来调用所需的OpenAI API。

总结

OpenAI Secret Manager模块是一个方便的工具,可帮助您管理和调用OpenAI API密钥。通过安装和导入该模块,您可以安全地存储和访问您的API密钥,并在代码中轻松调用OpenAI API。

以下是使用OpenAI Secret Manager模块的基本步骤:

  1. 安装模块
  2. 获得API密钥
  3. 初始化密钥管理器
  4. 使用存储的API密钥调用OpenAI API

确保依照上述步骤操作,以便顺利使用OpenAI Secret Manager模块。

openai_secret_manager的进一步展开说明

# OpenAI Python Library

OpenAI Python库提供了一个方便的方式,使得使用Python语言编写的利用程序可以方便地访问OpenAI API。它包括了一组预定义的API资源类,可以从API响应中动态地初始化本身,使它与各种OpenAI API版本兼容。

你可以在我们的API参考和OpenAI Cookbook中找到OpenAI Python库的使用示例。

## 安装

首先,请确保你的电脑上安装了Python 3.7.1或更新版本。如果你只想使用这个包,运行以下命令安装:

“`
pip install –upgrade openai
“`

安装完包以后,在文件的顶部导入它:

“`python
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的网站上获得到它。你可以在使用这个库之前,将它设置为`OPENAI_API_KEY`环境变量:

“`
export OPENAI_API_KEY=’sk-…’
“`

或将`openai.api_key`设置为对应的值:

“`python
openai.api_key = “sk-…”
“`

关于怎样使用这个库完成各种任务的示例代码可以在OpenAI Cookbook中找到。里面包括了以下功能的代码示例:使用fine-tuning进行分类、聚类、代码搜索、自定义嵌入、从文档集合中进行问答、推荐、嵌入可视化等。

大多数终端支持`request_timeout`参数。这个参数接受一个`Union[float, Tuple[float, float]]`类型的值,如果要求超过了指定的时间(以秒为单位),将会抛出`openai.error.Timeout`毛病(参见:https://requests.readthedocs.io/en/latest/user/quickstart/#timeouts)。

## 聊天补全

可使用聊天模型(比如gpt⑶.5-turbo和gpt⑷)通过聊天补全端点进行调用。

“`python
completion = openai.ChatCompletion.create(model=”gpt⑶.5-turbo”, messages=[{“role”: “user”, “content”: “Hello world”}])
print(completion.choices[0].message.content)
“`

你可以在我们的聊天补全指南中了解更多信息。

## 补全

可使用文本模型(比如babbage-002或davinci-002)通过补全端点进行调用。

“`python
completion = openai.Completion.create(model=”davinci-002″, prompt=”Hello world”)
print(completion.choices[0].text)
“`

你可以在我们的补全指南中了解更多信息。

## 嵌入

嵌入设计用于衡量文本字符串之间的类似度或相关性。要获得文本字符串的嵌入,你可使用以下方法:

“`python
text_string = “sample text”
model_id = “text-embedding-ada-002″
embedding = openai.Embedding.create(input=text_string, model=model_id)[‘data’][0][’embedding’]
“`

你可以在我们的嵌入指南中了解更多信息。

## 模型的精调

通过使用训练数据对模型进行精调,可以改良结果(通过给模型提供更多学习的示例)并下降API调用的本钱/延迟,由于在提示中减少了包括训练示例的需求。

“`python
# 使用已上传的文件创建一个精调任务
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的文档。

## 内容审查

OpenAI提供了一个不要钱的内容审查端点,用于检查内容会不会符合OpenAI的内容政策。

“`python
moderation_resp = openai.Moderation.create(input=”Here is some perfectly innocuous text that follows all OpenAI content policies.”)
“`

你可以在我们的内容审查指南中了解更多信息。

## 图象生成(DALL·E)

DALL·E是一个生成图象的模型,它可以根据提示创建新的图象。

“`python
image_resp = openai.Image.create(prompt=”two dogs playing chess, oil painting”, n=4, size=”512×512″)
“`

你可以在我们的图象生成指南中了解更多信息。

## 音频(Whisper)

语音转文本API提供了两个端点,分别是`transcriptions`(转录)和`translations`(翻译),基于我们的先进的开源`large-v2 Whisper`模型。

“`python
f = open(“path/to/file.mp3”, “rb”)
# 转录
transcript = openai.Audio.transcribe(“whisper⑴”, f)
# 翻译
transcript = openai.Audio.translate(“whisper⑴″, f)
“`

你可以在我们的语音转文本指南中了解更多信息。

## 异步API

API中支持异步操作,只需在网络操作的方法前加上字母`a`。

“`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_type`、`api_base`和`api_version`,并提供`api_key`。`api_type`一定要设置为`’azure’`,`api_base`和`api_version`是你的端点属性。另外,将部署名称作为`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笔记本:

– [使用Azure端点进行精调](https://github.com/openai/openai-python/blob/main/examples/fine_tuning_with_azure_endpoint.ipynb)

## 使用Microsoft Azure Active Directory进行身份验证

要使用Microsoft Active Directory进行身份验证,你需要将`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库中派生的,感谢他们的贡献。

openai_secret_manager的常见问答Q&A

问题1:怎样使用Python调用OpenAI API?

答案:使用Python调用OpenAI API可以依照以下步骤进行:

  1. 首先,在命令行中运行以下命令安装OpenAI库:
    pip install openai
  2. 导入OpenAI库和您的OpenAI API密钥:
    import openai_secret_manager
    assert "openai" in openai_secret_manager.get_services()
    secrets = openai_secret_manager.get_secret("openai")
    api_key = secrets["api_key"]
    import openai
    openai.api_key = api_key
  3. 现在,您可以调用OpenAI API并使用其功能了。
    示例:
    response = openai.Completion.create(
    engine="text-davinci-003",
    prompt="Once upon a time",
    max_tokens=100)

ChatGPT相关资讯

ChatGPT热门资讯

X

截屏,微信识别二维码

微信号:muhuanidc

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

打开微信

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