记录openai官网关于Setup your API key for a single project(为单个项目设置API 可以)的错误(2023/11/24)

简介: 记录openai官网关于Setup your API key for a single project(为单个项目设置API 可以)的错误(2023/11/24)

项目场景:

项目场景:我申请使用openai公司的api借口调用,其中一种方式是为所有的项目设置环境变量OPEN_API_KEY,这种方式可以自行百度,网上介绍的非常多了,另一种方式是Setup your API key for a single project。


问题描述

项目提示中使用.env文件去设置环境变量,将OPEN_API_KEY的值保存在.env文件中。

上面是OPENAI公司的设置方式,但在实际操作过程中会遇到报错:

Traceback (most recent call last):
  File "D:\pyworkspace\ARATools\Utils\mutiKeys.py", line 6, in <module>
    client = OpenAI(
             ^^^^^^^
  File "D:\App\Anaconda\envs\pytorch_cpu\Lib\site-packages\openai\_client.py", line 93, in __init__
    raise OpenAIError(
openai.OpenAIError: The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable

解决方案:


经过我多次百度和google查询,终于解决了这个问题。只需要在代码中添加Python-dotenv包即可解决。


step1
pip install python-dotenv
 
step2 添加如下代码
from dotenv import load_dotenv
load_dotenv('.env')


最后给出完整代码:


 
```python
from openai import OpenAI
import os
from dotenv import load_dotenv
load_dotenv('.env')
 
client = OpenAI(
  api_key=os.environ.get("OPENAI_API_KEY2"),
)
 
completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "You are a poetic assistant"},
    {"role": "user", "content": "3+4"}
  ]
)
 
print(completion.choices[0].message)

这种方法可以适用于多OPENAI_API_KEY的调用方式,避免单一请求超过openai的规定请求上限。

https://platform.openai.com/docs/quickstart?context=python


目录
相关文章
|
8天前
|
前端开发 JavaScript API
惊呆了!学会AJAX与Fetch API,你的Python Web项目瞬间高大上!
在Web开发领域,AJAX与Fetch API是提升交互体验的关键技术。AJAX(Asynchronous JavaScript and XML)作为异步通信的先驱,通过XMLHttpRequest对象实现了局部页面更新,提升了应用流畅度。Fetch API则以更现代、简洁的方式处理HTTP请求,基于Promises提供了丰富的功能。当与Python Web框架(如Django、Flask)结合时,这两者能显著增强应用的响应速度和用户体验,使项目更加高效、高大上。
22 2
|
9天前
|
前端开发 JavaScript API
告别繁琐!AJAX与Fetch API,让你的前后端沟通畅通无阻,项目效率飙升!
在Web开发中,前后端的顺畅沟通至关重要。传统方法常需频繁刷新页面,影响体验与效率。AJAX和Fetch API的出现简化了这一过程。AJAX利用XMLHttpRequest实现局部页面更新,提升用户体验;Fetch API则以更简洁的语法和强大的功能,进一步优化异步请求处理。两者均能显著提高开发效率,简化代码结构,让项目迭代更快速。拥抱这些技术,让Web开发之路更加顺畅。
18 0
|
2月前
|
开发框架 JSON .NET
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
|
2月前
|
API 网络架构 C++
【Azure Key Vault】使用REST API调用Azure Key Vault Secret的示例步骤
【Azure Key Vault】使用REST API调用Azure Key Vault Secret的示例步骤
|
2月前
|
API 网络架构 开发者
【Azure 环境】调用Azure RunCommand 的REST API 设置虚拟机的环境变量(SetEnvironmentVariable)
【Azure 环境】调用Azure RunCommand 的REST API 设置虚拟机的环境变量(SetEnvironmentVariable)
|
2月前
|
JSON Java API
【Azure API 管理】通过Java APIM SDK创建一个新的API,如何为Reqeust的Representation设置一个内容示例(Sample)?
【Azure API 管理】通过Java APIM SDK创建一个新的API,如何为Reqeust的Representation设置一个内容示例(Sample)?
|
2月前
|
存储 API 开发工具
【Azure API 管理】API Management如何有效且快速更新呢?如对APIs/Policy等设置内容
【Azure API 管理】API Management如何有效且快速更新呢?如对APIs/Policy等设置内容
|
2月前
|
API
【Azure API 管理】Azure API Management在设置 Policy时,如何对URL进行解码呢? 使用 HttpUtility.UrlDecode 出错
【Azure API 管理】Azure API Management在设置 Policy时,如何对URL进行解码呢? 使用 HttpUtility.UrlDecode 出错
|
2月前
|
JSON 小程序 API
【Azure API 管理】APIM CORS策略设置后,跨域请求成功和失败的Header对比实验
【Azure API 管理】APIM CORS策略设置后,跨域请求成功和失败的Header对比实验
|
2月前
|
API 数据安全/隐私保护 网络架构
【Azure Developer】使用Postman获取Azure AD中注册应用程序的授权Token,及为Azure REST API设置Authorization
【Azure Developer】使用Postman获取Azure AD中注册应用程序的授权Token,及为Azure REST API设置Authorization