配置获取并配置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文件位于最优先查找的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值