chatgpt|安装及示例|聊天|嵌入|微调|适度|图像|音频|异步|API 错误代码-OpenAI Python库简介

文章目录

  • OpenAI Python库
    • 安装
      • 可选依赖项
    • 用法
      • 参数
      • 微软 Azure 端点
      • 微软 Azure 活动目录身份验证
      • 命令行界面
    • 示例代码
      • 聊天
      • 嵌入
      • 微调
      • 适度
    • 图像生成 (DALL·E)
    • 音频转录(Whisper)
    • 异步API
    • 要求
    • 信用
    • TIPS:OpenAI API 错误代码
      • API 错误
        • 状态码 概述
        • 详细解释

OpenAI Python库

项目git地址

OpenAI Python 库提供了对 OpenAI API 的便捷访问来自用 Python 语言编写的应用程序。它包括一个用于初始化的 API 资源的预定义类集自己从 API 响应动态地使其兼容具有广泛版本的 OpenAI API。

您可以在官方的网站中找到 OpenAI Python 库的使用示例 API reference and the OpenAI Cookbook.

安装

你不需要这个源代码,除非你想修改包。如果你只是想要使用这个包,只需运行:

pip install --upgrade openai

从源安装:

python setup.py install

在这里插入图片描述

可选依赖项

openai.embeddings_utils安装依赖:

pip install openai[embeddings]

为 Weights & Biases安装支持:

pip install openai[wandb]

numpypandas 等数据库因其大小而默认不安装。该库的某些功能需要它们,但通常不需要与 API 对话。如果遇到“MissingDependencyError”,请使用以下命令安装它们:

pip install openai[datalib]

用法

该库需要使用您帐户的密钥进行配置,该密钥可在 网站 上找到。在使用库之前将其设置为 OPENAI_API_KEY 环境变量:

export OPENAI_API_KEY='sk****'

或者将 openai.api_key 设置为其值:

import openai
import os
os.environ["http_proxy"] = "http://127.0.0.1:10809"
os.environ["https_proxy"] = "http://127.0.0.1:10809"
openai.api_key = "sk****"# 列表模式
models = openai.Model.list()# 打印第一个模型的 id
print(models.data[0].id)# 创建完成
completion = openai.Completion.create(model="ada", prompt="Hello world")# 打印完成
print(completion.choices[0].text)

参数

所有端点都有一个支持“request_timeout”参数的“.create”方法。此参数采用 Union[float, Tuple[float, float]],如果请求超过该时间(以秒为单位),将引发 openai.error.Timeout 错误(参见:https://requests.readthedocs.io/en/latest/user/quickstart/#timeouts)。

微软 Azure 端点

为了将库与 Microsoft Azure 端点一起使用,除了 api_key 之外,您还需要设置 api_type、api_base 和 api_version。 api_type 必须设置为’azure’,其他对​​应于您端点的属性。此外,部署名称必须作为引擎参数传递。

import openai
import os
os.environ["http_proxy"] = "http://127.0.0.1:10809"
os.environ["https_proxy"] = "http://127.0.0.1:10809"
openai.api_type = "azure"
openai.api_key = "sk****"
openai.api_base = "https://example-endpoint.openai.azure.com"
openai.api_version = "2023-03-15-preview"# 创建完成
completion = openai.Completion.create(deployment_id="deployment-name", prompt="Hello world")# 打印完成
print(completion.choices[0].text)

请注意,目前 Microsoft Azure 端点只能用于完成、嵌入和微调操作。有关如何使用 Azure 端点进行微调和其他操作的详细示例,请查看以下 Jupyter notebook:

  • Using Azure completions
  • Using Azure fine-tuning
  • Using Azure embeddings

微软 Azure 活动目录身份验证

为了使用 Microsoft Active Directory 对您的 Azure 端点进行身份验证,您需要将 api_type 设置为“azure_ad”并将获取的凭证令牌传递给 api_key。其余参数需要按照上一节中的说明进行设置。

from azure.identity import DefaultAzureCredential
import openai# Request credential
default_credential = DefaultAzureCredential()
token = default_credential.get_token("https://cognitiveservices.azure.com/.default")# Setup parameters
openai.api_type = "azure_ad"
openai.api_key = token.token
openai.api_base = "https://example-endpoint.openai.azure.com/"
openai.api_version = "2023-03-15-preview"# ...

命令行界面

这个库还提供了一个 openai 命令行工具这使得从您的终端与 API 交互变得容易。跑步openai api -h 用于使用。

# 列出模型
openai api models.list# 创建完成
openai api completions.create -m ada -p "Hello world"# 创建聊天完成
openai api chat_completions.create -m gpt-3.5-turbo -g user "Hello world"# 通过DALL·E API生成图片
openai api image.create -p "two dogs playing chess, cartoon" -n 1

示例代码

在 OpenAI Cookbook 中可以找到有关如何使用此 Python 库完成各种任务的示例。它包含以下代码示例:

  • 使用微调分类
  • 聚类
  • 代码搜索
  • 自定义嵌入
  • 从文档语料库中回答问题
  • 建议
  • 嵌入的可视化
  • 和更多

在 2022 年 7 月之前,这个 OpenAI Python 库在其示例文件夹中托管代码示例,但此后所有示例都已迁移到 OpenAI Cookbook。

聊天

可以使用聊天完成端点调用“gpt-3.5-turbo”等对话模型。

import openai
import os
os.environ["http_proxy"] = "http://127.0.0.1:10809"
os.environ["https_proxy"] = "http://127.0.0.1:10809"
openai.api_key = "sk****"  # supply your API key however you choosecompletion = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Hello world!"}])
print(completion.choices[0].message.content)
  As an AI language model, I do not have any physical sensations or emotions but I can help you with a wide range of tasks such as writing, editing, summarizing, translating and more. How may I assist you today?

嵌入

在 OpenAI Python 库中,嵌入将文本字符串表示为浮点数的固定长度向量。嵌入旨在衡量文本字符串之间的相似性或相关性。

要获取文本字符串的嵌入,您可以使用 Python 中的 embeddings 方法,如下所示:

import openai
import os
os.environ["http_proxy"] = "http://127.0.0.1:10809"
os.environ["https_proxy"] = "http://127.0.0.1:10809"
openai.api_key = "sk****" # supply your API key however you choose# 选择要嵌入的文本
text_string = "sample text"# 选择嵌入
model_id = "text-similarity-davinci-001"# 计算文本的嵌入
embedding = openai.Embedding.create(input=text_string, model=model_id)['data'][0]['embedding']

此 获取嵌入笔记本 中显示了如何调用嵌入方法的示例。

以下 Jupyter 笔记本中共享了如何使用嵌入的示例:

  • 使用嵌入分类
  • 使用嵌入进行聚类
  • 使用嵌入的代码搜索
  • 使用嵌入的语义文本搜索
  • 用户和产品嵌入
  • 使用嵌入的零样本分类
  • 使用嵌入的推荐

有关嵌入和 OpenAI 提供的嵌入类型的更多信息,请阅读 OpenAI 文档中的嵌入指南。

微调

对训练数据模型进行微调既可以改善结果(通过为模型提供更多示例来学习),也可以降低 API 调用的成本/延迟(主要是通过减少在提示中包含训练示例的需要)。

以下 Jupyter notebooks 中共享了微调示例:

  • 微调分类(一个简单的笔记本,显示微调所需的步骤)
  • 微调模型以回答有关 2020 年奥运会的问题
    • 第 1 步:收集数据
    • 第 2 步:创建综合问答数据集
    • 第 3 步:训练专门用于问答的微调模型

将您的微调同步到 Weights & Biases,以跟踪中央仪表板中的实验、模型和数据集:

openai wandb sync

有关微调的更多信息,请阅读 OpenAI 文档中的微调指南。

适度

OpenAI 提供了一个审核端点,可用于检查内容是否符合 OpenAI 内容政策

import openai
import os
os.environ["http_proxy"] = "http://127.0.0.1:10809"
os.environ["https_proxy"] = "http://127.0.0.1:10809"
openai.api_key = "sk****"  # supply your API key however you choosemoderation_resp = openai.Moderation.create(input="Here is some perfectly innocuous text that follows all OpenAI content policies.")

有关详细信息,请参阅审核指南.

图像生成 (DALL·E)

import openai
import os
os.environ["http_proxy"] = "http://127.0.0.1:10809"
os.environ["https_proxy"] = "http://127.0.0.1:10809"
openai.api_key = "sk****"  # supply your API key however you chooseimage_resp = openai.Image.create(prompt="two dogs playing chess, oil painting", n=4, size="1024x1024")
for i in range(4):image_url = image_resp['data'][i]['url']print(image_url)

音频转录(Whisper)

import os
os.environ["http_proxy"] = "http://127.0.0.1:10809"
os.environ["https_proxy"] = "http://127.0.0.1:10809"
openai.api_key = "sk****"   # supply your API key however you choose
f = open(r".\Desktop\test1.mp3", "rb")
transcript = openai.Audio.transcribe("whisper-1", f)
  暂时无权限,提示:openai.error.RateLimitError: You exceeded your current quota, please check your plan and billing details.

waitlist等待中:
在这里插入图片描述

异步API

通过在网络绑定方法前添加 a 可以在 API 中获得异步支持:

import openai
import os
os.environ["http_proxy"] = "http://127.0.0.1:10809"
os.environ["https_proxy"] = "http://127.0.0.1:10809"
openai.api_key = "sk****"   # supply your API key however you chooseasync def create_completion():completion_resp = await openai.Completion.acreate(prompt="This is a test", model="davinci")

为了使异步请求更高效,您可以传入自己的aiohttp.ClientSession,但是最后必须手动关闭client session你的程序/事件循环:

import openai
from aiohttp import ClientSessionopenai.aiosession.set(ClientSession())
# At the end of your program, close the http session
await openai.aiosession.get().close()

有关详细信息,请参阅 使用指南 .

要求

  • Python 3.7.1+

一般来说,我们希望支持我们的 Python 版本客户正在使用。如果您遇到任何版本的问题,请在我们的支持页面上告诉我们。

信用

这个库是从 Stripe Python 库 派生出来的。

TIPS:OpenAI API 错误代码

引自:OpenAI API 中文教程 - W3Cschool
本指南概述了您可能会从 API 和我们的官方 Python 库中看到的错误代码。概述中提到的每个错误代码都有专门的部分提供进一步的指导。

API 错误

状态码 概述

401 - Invalid Authentication Cause: 无效认证
Solution: 确保使用正确的 API 密钥和请求组织。
401 - Incorrect API key provided Cause: 请求的 API 密钥不正确。
Solution: 确保使用的 API 密钥正确,清除浏览器缓存,或生成一个新的。
401 - You must be a member of an organization to use the API Cause: 您的帐户不属于组织。
Solution: 联系我们以加入新组织或请您的组织经理邀请您加入组织。
429 - Rate limit reached for requests Cause: 您发送请求的速度太快了。
Solution: 调整你的要求。阅读速率限制指南。
429 - You exceeded your current quota, please check your plan and billing details Cause: 您已达到每月最高支出(硬性限制),您可以在账户账单部分查看。
Solution: 申请增加配额。
429 - The engine is currently overloaded, please try again later Cause: 我们的服务器正在经历高流量。
Solution: 请稍等片刻后重试您的请求。
500 - The server had an error while processing your request Cause: 我们服务器上的问题。
Solution: 稍等片刻后重试您的请求,如果问题仍然存在,请联系我们。检查状态页面。

详细解释

401 - Invalid Authentication
此错误消息表明您的身份验证凭据无效。发生这种情况的原因可能有多种,例如:

您使用的是已撤销的 API 密钥。

您使用的 API 密钥与分配给请求组织的 API 密钥不同。

您使用的 API 密钥没有您所调用端点所需的权限。

要解决此错误,请执行以下步骤:

检查您是否在请求标头中使用了正确的 API 密钥和组织 ID。您可以在您的帐户设置中找到您的 API 密钥和组织 ID。

如果您不确定您的 API 密钥是否有效,您可以生成一个新密钥。确保在请求中用新的 API 密钥替换旧的 API 密钥,并遵循我们的最佳实践指南。

401 - Incorrect API key provided
此错误消息表示您在请求中使用的 API 密钥不正确。发生这种情况的原因可能有多种,例如:

您的 API 密钥中有拼写错误或多余的空格。

您正在使用属于不同组织的 API 密钥。

您正在使用已被删除或停用的 API 密钥。

旧的、已撤销的 API 密钥可能会缓存在本地。

要解决此错误,请执行以下步骤:

尝试清除浏览器的缓存和 cookie,然后重试。

检查您是否在请求标头中使用了正确的 API 密钥。

如果您不确定您的 API 密钥是否正确,您可以生成一个新的。确保替换代码库中的旧 API 密钥并遵循我们的最佳实践指南。

401 - You must be a member of an organization to use the API
此错误消息表明您的帐户不属于某个组织。发生这种情况的原因可能有多种,例如:

您已经离开或被从以前的组织中移除。

您的组织已被删除。

要解决此错误,请执行以下步骤:

如果您已经离开或被从以前的组织中移除,您可以申请一个新组织或受邀加入现有组织。

要申请新组织,请通过 help.openai.com 联系我们

现有组织所有者可以通过成员面板邀请您加入他们的组织。

429 - Rate limit reached for requests
此错误消息表示您已达到为 API 分配的速率限制。这意味着您在短时间内提交了过多的令牌或请求,并且超出了允许的请求数量。发生这种情况的原因可能有多种,例如:

您正在使用发出频繁或并发请求的循环或脚本。

您正在与其他用户或应用程序共享您的 API 密钥。

您正在使用具有低速率限制的免费计划。

要解决此错误,请执行以下步骤:

调整您的请求,避免进行不必要或多余的呼叫。

如果您使用的是循环或脚本,请确保实施退避机制或尊重速率限制和响应标头的重试逻辑。您可以在我们的速率限制指南中详细了解我们的速率限制政策和最佳实践。

如果您与其他用户共享您的组织,请注意限制是按组织而不是按用户应用的。值得检查您团队其他成员的使用情况,因为这会影响限制。

如果您使用的是免费或低级别计划,请考虑升级到提供更高速率限制的现收现付计划。您可以在我们的速率限制指南中比较每个计划的限制。

429 - You exceeded your current quota, please check your plan and billing details
此错误消息表示您已达到 API 的每月最大支出。您可以在 account billing settings 的“hard limit”下查看每月最高限额。这意味着您已经消耗了分配给您的计划的所有积分,并且已经达到了当前账单周期的限制。发生这种情况的原因可能有多种,例如:

您正在使用消耗大量信用或代币的大容量或复杂服务。

对于您的组织的使用,您的限制设置得太低。

要解决此错误,请执行以下步骤:

在您的帐户设置中检查您当前的配额。您可以在帐户的使用部分查看您的请求消耗了多少令牌。

如果您使用的是免费计划,请考虑升级到提供更高配额的现收现付计划。

如果您需要增加配额,您可以申请一个并提供有关预期使用情况的相关详细信息。我们将审核您的请求并在大约 7-10 个工作日内回复您。
429 - The engine is currently overloaded, please try again later
此错误消息表明我们的服务器流量过大,目前无法处理您的请求。发生这种情况的原因可能有多种,例如:

对我们服务的需求突然激增。

我们的服务器有计划或计划外的维护或更新。

我们的服务器发生意外或不可避免的中断或事件。

要解决此错误,请执行以下步骤:

稍等片刻后重试您的请求。我们建议使用指数退避策略或尊重响应标头和速率限制的重试逻辑。您可以关于我们的速率限制最佳实践的信息。
查看我们的状态页面,了解有关我们的服务和服务器的任何更新或公告。
如果在合理的时间后您仍然收到此错误,请联系我们以获得进一步的帮助。对于给您带来的不便,我们深表歉意,感谢您的耐心等待和理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/6675.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python和ChatGPT在一起了

👉 Python练手必备👉 Python毕设实战项目👉 Python爬虫实战必备👉 30款Python小游戏附源码👉 Python清理微信单向好友神器

chatgpt赋能python:Python支持跨平台软件开发

Python支持跨平台软件开发 作为一种高级编程语言,Python 以其丰富的库和跨平台支持而备受开发人员欢迎。Python 通过将应用程序的可移植性最大化,使得开发人员可以轻松地在不同的操作系统平台上构建和部署软件。 跨平台支持 Python 支持各种不同的操作…

ChatGPT今日正式开放API服务中小企业

开放隐私计算 开放隐私计算 开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神,专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播,愿成为中国 “隐私计算最后一公里的服务区”。 183篇原创内容 公…

chatGPT python API

import requests import os # 设置代理服务器地址和端口号 proxies { "https": "http://127.0.0.1:9910", "http": "http://127.0.0.1:9910" } # 设置API密钥和API请求 API_KEY "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"…

[语音信号处理] 说话人转换 voice conversion .CycleGANVC .StarGANVC .

语音信号处理的总体结构 从这个总体结构可以看出:无论是语音识别,还是语音编码与合成,输入的语音信号首先要进行预处理。 预处理 对信号进行适当放大和增益控制,并进行反混叠滤波来消除工频信号的干扰。 数字化 将模拟信号转…

【Google语音转文字】Speech to Text 超级好用的语音转文本API

前面有一篇博客说到了讯飞输入法,支持语音输入,也支持电脑内部音源输入,详细参考:【实时语音转文本】PC端实时语音转文本(麦克风外音&系统内部音源) 但是它只是作为一个工具来使用,如果我们想自己做一些好玩的东西…

Stable Diffusion +ChatGPT+文本转语音+剪映制作视频

目录 chatgpt免费体验入口网址 模型下载 huggingface.co civitai.com 使用Deliberate模型案例 StableDeffusion做的图片,chatGPT出的文案,微软文本转语音配的音,使用剪映做的视频 chatgpt免费体验入口网址 http://chat.xutongbao.top …

语音怎么转换成文字?分享两种语音转文字的方法

怎么把语音文件中的内容转换成文字呢?大家在日常的学习和办公过程中,在遇到一些重要内容或者是讲话,是不是会有将它录成语音的经历?因为这样会方便我们及时记录一些重要的内容,但当我们整理语音时,还要一句…

OpenAI-ChatGPT最新官方接口《语音智能转文本》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(六)(附源码)

Speech to text 语音智能转文本 Introduction 导言Quickstart 快速开始Transcriptions 转录python代码cURL代码 Translations 翻译python代码cURL代码 Supported languages 支持的语言Longer inputs 长文件输入Prompting 提示其它资料下载 Speech to text 语音转文本 Learn how…

学术界的期刊编辑如何识别通过 ChatGPT 编写出来的论文?

最近 ChatGPT 风靡全球,国外也有不少大学生使用 ChatGPT 来撰写论文,这给学术出版界的期刊编辑识别以 ChatGPT 为代表的人工智能写作出来的文章带来了很大的挑战。 咱们国内有一句古话:道高一尺,魔高一丈。 学术出版界的期刊编辑…

ChatGPT原理解释

写了一本介绍ChatGPT原理的课程 结构如下 01、介绍ChatGPT及其原理 1.1 ChatGPT的概述 1.2 什么是自然语言处理(NLP) 1.3 深度学习与NLP的关系 1.4 GPT模型的介绍 02、GPT原理探讨 2.1 GPT模型的输入与输出 2.2 GPT模型的结构 2.3 GPT模型的预训练方法…

什么?ChatGPT这么火,你没搞过实战?只用来口嗨侃大山了?

导语:AI技术在各个领域的应用越来越广泛,ChatGPT作为一款强大的自然语言处理模型,能帮助企业和个人提高工作效率和客户满意度。本文将详细介绍如何将ChatGPT集成到微信公众号上,帮助您实现自动化的客户服务和信息发布,…

ChatGPT这么火,我们能怎么办?

今天打开百度,看到这样一条热搜高居榜二:B站UP主发起停更潮,然后点进去了解一看,大体是因为最近AI创作太火,对高质量原创形成了巨大冲击! 记得之前看过一位UP主的分享,说B站UP主的年收入大体约等…

GPT-3.5(ChatGPT)训练和部署成本估算

因为ChatGPT(GPT-3.5)未正式公布参数量,暂时按照1750亿参数计算。 后续其他模型公布参数量后,可按参数量线性比例估算相关数值。 以下数值仅为理论估算,可能和实际数值相差很大,敬请谅解。 一、GPT-3.5磁…

使用ChatGPT写一篇文章

一、MyBatis中一对一关联查询概述 MyBatis是一个Java持久层框架,它提供了简单而强大的数据访问方式。在实际的开发中,我们经常需要查询两个表之间的关联数据,这就需要用到MyBatis的一对一关联查询。本文将介绍如何在MyBatis中实现一对一关联…

使用tailwindcss实现文章的快速排版

Tailwind CSS 是一个功能类优先的 CSS 框架,它集成了诸如 flex, pt-4, text-center 和 rotate-90 这样的类,它们能直接在脚本标记语言中组合起来,构建出任何设计。tailwindcss生产环境非常小,并且一切皆是响应式的。 首先来看一个…

微信公众号文章如何排版?

记得小编在刚开始接触制作公众号文章的时候,最头疼的就是文章的排版了。因为刚开始不懂也不知道该怎么设置字号,字间距,段落格式。也是狠心好好研究了很久才慢慢摸索出来一些经验,这边给大家简单的分享一下文章排班的基本设置吧 首…

ChatGPT专业应用:基于原有文章改写新文章

正文共 611 字,阅读大约需要 2 分钟 市场运营/SEO投放必备技巧,您将在2分钟后获得以下超能力: 自动改写SEO文章 Beezy评级 :B级 *经过简单的寻找, 大部分人能立刻掌握。主要节省时间。 推荐人 | Alice 编辑者 | Lind…

【ChatGPT】写一篇文章《ChatGPT 已成为下一代的新操作系统》,不少于3000字,使用markdown格式。

目录 ChatGPT 已成为下一代的新操作系统 一、ChatGPT 的发展背景 1.1 人工智能的崛起

【Unity】AI实战应用——Unity接入GPT和对游戏开发实际应用的展望

GPT for unity插件地址: GitHub - sunsvip/ChatGPTForUnity: ChatGPT for unity 用法: 打开Unity PackageManager界面.Add package from git URL粘贴插件地址添加 https://github.com/sunsvip/ChatGPTForUnity.git ————————————————————————————…