配置获取并配置OpenAI API key

本文章已经生成可运行项目,

配置获取并配置OpenAI API key

一、获取OpenAI API key

  1. 在openai官网注册账号并登录,选择API,点击右上角头像,选择View API keys
  2. 点击Create new secret key按钮创建OpenAI API key,将创建好的OpenAI API key复制并以OPENAI_API_KEY="sk-..."形式保存到.env文件中,将.env文件保存在项目根目录下。

二、读取并配置OpenAI API key

import os
import openai
from dotenv import load_dotenv, find_dotenv

# find_dotenv()寻找并定位.env文件的路径
# load_dotenv()读取该.env文件,并将其中的环境变量加载到当前的运行环境中
_ = load_dotenv(find_dotenv())

# 获取环境变量 OPENAI_API_KEY
openai.api_key = os.environ['OPENAI_API_KEY']

为方便后续代码使用,可将上述代码封装成函数:

import os
from dotenv import load_dotenv, find_dotenv

def get_openai_key():
    _ = load_dotenv(find_dotenv())
    return os.environ['OPENAI_API_KEY']

openai.api_key = get_openai_key()

三、示例

假设项目目录结构如下:

project/
├── .env
├── config.py
└── src/
    └── main.py

.env

OPENAI_API_KEY="sk-..."

config.py

import os
from dotenv import load_dotenv, find_dotenv
import openai

def get_openai_key():
    # 自动查找 .env 文件并加载
    load_dotenv(find_dotenv())
    return os.getenv('OPENAI_API_KEY')

# 设置 OpenAI 的 API 密钥
openai.api_key = get_openai_key()

if __name__ == "__main__":
    print(openai.api_key)

四、运行结果

运行config.py,若成功加载API密钥,将打印出密钥值(此处省略具体密钥)。

五、解释

find_dotenv() 的查找机制

  1. 起始目录:从当前工作目录开始查找.env文件。
  2. 向上遍历父目录:如果在当前目录未找到.env文件,会逐级向上遍历父目录,直到找到.env文件或达到文件系统的根目录为止。
  3. 返回第一个找到的.env文件路径:一旦找到.env文件,函数立即返回该文件的完整路径,不再继续向上查找;如果未找到,返回空字符串。

find_dotenv() 的参数配置

  • filename:默认值为.env,可指定其他文件名。
  • raise_error_if_not_found:布尔值,默认False。若设置为True,未找到.env文件时会引发异常。
  • encoding:指定文件的编码方式,默认使用系统默认编码。

load_dotenv() 的作用

  1. 查找.env文件:使用find_dotenv()找到.env文件的路径。
  2. 加载环境变量:将.env文件中的环境变量加载到当前环境变量中,使得os.getenv('OPENAI_API_KEY')能够获取到相应的值。

注意事项

  • 环境变量的覆盖:默认情况下,load_dotenv()不会覆盖已存在的环境变量。若希望.env文件中的变量覆盖系统中已有的变量,可使用override=True参数。
  • 多重.env文件:若多个目录中存在.env文件,find_dotenv()只会加载第一个找到的文件。确保希望加载的.env文件位于最优先查找的位置。
本文章已经生成可运行项目
### 配置OpenAI API Key的方法 为了在Python环境中配置使用OpenAI API,通常有两种主要方式来设置API密钥。一种是在代码内部直接定义环境变量或通过`config.py`文件导入;另一种则是利用操作系统的环境变量功能。 #### 方法一:直接在脚本中指定API键 可以直接在Python脚本里声明API密钥,创建一个名为`client`的对象实例用于后续调用API服务[^1]: ```python import os from openai import OpenAI api_key = "your_api_key_here" client = OpenAI(api_key=api_key) completion = client.completions.create( model="gpt-3.5-turbo-instruct", prompt="Say this is a test", max_tokens=7, temperature=0 ) print(completion.choices[0].text) ``` 这种方法简单明了,但对于生产环境来说不够安全,因为这会暴露敏感信息给版本控制系统或其他开发者可见的地方。 #### 方法二:通过操作系统环境变量设定API键 更推荐的做法是从外部读取API密钥作为环境变量的一部分,在Windows上可以通过命令行工具设置临时/永久性的环境变量[^2]。对于Linux/MacOS用户,则可以在终端执行相应指令完成相同的操作。 一旦设置了环境变量之后,就可以修改上述例子中的代码如下所示: ```python import os from openai import OpenAI openai_api_key = os.getenv('OPENAI_API_KEY') if not openai_api_key: raise ValueError("No OPENAI_API_KEY set for environment variable") client = OpenAI(api_key=openai_api_key) completion = client.completions.create( model="gpt-3.5-turbo-instruct", prompt="Say this is a test", max_tokens=7, temperature=0 ) print(completion.choices[0].text) ``` 这种方式不仅提高了安全性,还便于管理和切换不同的开发环境下的API密钥。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值