概述

在使用在线大模型服务时,为保证API KEY的安全性,建议将其设置为环境变量,从而避免在代码里显式地配置API Key,降低泄漏风险。

前置条件

已开通在线账号并获取API Key。这里以阿里云百炼平台为例,其他平台类似。

操作步骤

1. Linux系统

添加临时变量

# 用您的百炼API Key代替YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

执行上述命令后,当前终端会话中可以使用该变量,但关闭终端后变量会失效。

# 验证变量是否设置成功
echo $DASHSCOPE_API_KEY

添加永久变量

要使变量在每次登录时自动加载,可以将其添加到用户的~/.bashrc~/.bash_profile文件中。

# 用您的百炼API Key代替YOUR_DASHSCOPE_API_KEY
echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bashrc

然后,执行以下命令使更改生效:

source ~/.bashrc

验证变量是否设置成功:

echo $DASHSCOPE_API_KEY

2. Windows系统

添加临时变量

在命令提示符或PowerShell中,使用以下命令设置临时环境变量:

# 用您的百炼API Key代替YOUR_DASHSCOPE_API_KEY
$env:DASHSCOPE_API_KEY = "YOUR_DASHSCOPE_API_KEY"

验证变量是否设置成功:

echo $env:DASHSCOPE_API_KEY

CMD中,使用以下命令:

# 用您的百炼API Key代替YOUR_DASHSCOPE_API_KEY
set DASHSCOPE_API_KEY=YOUR_DASHSCOPE_API_KEY

验证变量是否设置成功:

echo %DASHSCOPE_API_KEY%

添加永久变量

在Windows中,可以通过系统属性界面添加永久环境变量:

  1. 右键点击“此电脑”或“计算机”,选择“属性”。
  2. 点击“高级系统设置”。
  3. 在“系统属性”窗口中,点击“环境变量”按钮。
  4. 在“系统变量”或“用户变量”部分,点击“新建”。
  5. 输入变量名DASHSCOPE_API_KEY和您的API Key值。
  6. 点击“确定”保存。
  7. 重新启动命令提示符或PowerShell以使更改生效。

如果使PowerShell设置环境变量在当前用户的所有新会话中生效(永久变量),可以按如下操作。

在PowerShell中运行以下命令。

# 用您的百炼API Key代替YOUR_DASHSCOPE_API_KEY
[Environment]::SetEnvironmentVariable("DASHSCOPE_API_KEY", "YOUR_DASHSCOPE_API_KEY", [EnvironmentVariableTarget]::User)

打开一个新的PowerShell窗口。

在新的PowerShell窗口运行以下命令,检查环境变量是否生效。

# 验证变量是否设置成功
echo $env:DASHSCOPE_API_KEY

如果使CMD设置环境变量在当前用户的所有新会话中生效(永久变量),可以按如下操作。

在CMD中运行以下命令。

# 用您的百炼API Key代替YOUR_DASHSCOPE_API_KEY
setx DASHSCOPE_API_KEY "YOUR_DASHSCOPE_API_KEY"

打开一个新的CMD窗口。

在新的CMD窗口运行以下命令,检查环境变量是否生效。

# 验证变量是否设置成功
echo %DASHSCOPE_API_KEY%

常见问题

Q:用echo命令确认环境变量设置成功了,为什么运行代码还是提示找不到API Key

A:具体原因如下:

  • 情况一:没有设置永久性环境变量。临时环境变量只在当前终端会话有效,对于已经启动的 IDE 或其他应用程序并不会生效。请参考本文中设置永久性环境变量的方法。

  • 情况二:没有重启IDE、命令行工具或应用。

    • 通常需要重启IDE(如VS Code)或命令行工具,使其能够加载最新的环境变量。
    • 如果在部署应用后设置了环境变量,可能需要重启应用服务,让应用能够重新加载环境变量。
  • 情况三:需要在配置文件添加环境变量。如果您的应用是通过服务管理器(如systemd、supervisord)启动的,可能需要在服务管理器的配置文件中添加环境变量。

  • 情况四:用了sudo命令。如果使用sudo python xx.py运行脚本,可能会遗漏当前用户环境变量,因为sudo默认不继承所有环境变量。您可采用sudo -E python xx.py命令,其中的-E 参数确保环境变量被传递。如有权限执行该脚本,可以直接执行 python xx.py

参考资料

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐