8 tips for securely using API keys(export openai_api_key= openai_api_key)
I. 使用终端添加OpenAI API密钥到系统环境变量
在终端中运行以下命令,用你的API密钥替换yourkey:
- echo “export OPENAI_API_KEY=’yourkey'” >> ~/.zshrc
更新Shell来使环境变量生效。
II. 在OpenAI平台上添加API密钥到系统环境变量
1. 打开https://platform.openai.com,并创建一个账户(如果还没有)。
2. 点击”Account”页面。
3. 复制你的API密钥到系统环境变量。
III. 在代码中设置OpenAI API密钥
在使用OpenAI库之前,可以将API密钥设置为环境变量:
export OPENAI_API_KEY=’sk-…’
或,将API密钥直接设置为openai.api_key
的值:
openai.api_key = ‘sk-…’
IV. 在Pycharm中设置OpenAI API密钥
A. 在Pycharm中设置API密钥时可能会遇到”export”毛病问题:
- 毛病信息为”export : The term ‘export’ is not recognized…”
B. 可使用以下方法来设置API密钥:
- 在Windows命令提示符中使用以下命令:
– openai –api-key <OPENAI_API_KEY> api fine_tunes.create -t “[yourfilelocationhere]” -m - 在Pycharm中直接设置API密钥。
V. 在Windows命令提示符中设置OpenAI API密钥
A. 打开一个命令提示符窗口或终端。
B. 输入以下命令:
- export OPENAI_API_KEY=<your-api-key>
C. 替换<your-api-key>为你的API密钥。
VI. 在Jupyter中设置OpenAI API密钥
A. 打开Jupyter。
B. 输入以下命令来设置API密钥:
- export BEARER_TOKEN='<BEARER TOKEN>’ #和之前的Bearer Token相同
- export OPENAI_API_KEY='<OPENAI API密钥>’
通过以上步骤,你可以将OpenAI API密钥添加到系统环境中,并轻松使用OpenAI的功能。不管你是使用终端、Pycharm、Windows命令提示符或者Jupyter,你都可以根据区别的需求选择最合适你的方法进行设置。记得在设置API密钥时替换为你自己的密钥,以确保正确的授权和访问权限。
export openai_api_key= openai_api_key的进一步展开说明
使用API密钥的8个安全使用技能
1. 了解API密钥的风险
API密钥使用存在一定的风险,因此我们需要意想到这些潜伏的风险。以下是一些与API密钥使用相关的常见任务:
– 在代码中直接硬编码API密钥
– 将API密钥以明文情势存储
– 在公共代码库中包括API密钥
– 将API密钥留在公然可访问的位置
这些都是API密钥可能会被不适当使用的例子。换句话说,使用API密钥时总会存在一些风险。通过遵守API密钥安全的最好实践,我们可以保护数据并避免未经授权访问我们的利用程序。
API密钥可能会由于各种途径的盗取或泄漏而遭到要挟,例如钓鱼攻击、数据泄漏和不安全的编码实践。一旦API密钥被盗或泄漏,便可能履行一些不需要的操作,例如访问敏感数据、对数据进行不需要的更改,或在极端情况下致使全部系统崩溃。
2. 选择具有公共源代码的利用程序
确保选择具有公共源代码的利用程序是确保API密钥安全的最好方式之一。这意味着任何人都可以查看利用程序的代码。
具有透明朝码的开放源代码利用程序有两个主要好处:
– 它有助于辨认潜伏的安全漏洞或歹意活动,使其他开发人员能够帮助辨认并修复潜伏的漏洞。
– 使用像GitHub和BitBucket这样的开源代码库可以找到具有公共源代码的利用程序。用户可以检查底层代码以检测歹意活动或安全漏洞,并在确认该利用程序安全后使用他们的API密钥。
3. 设置适合的密钥限制
不管你多么安全地保护你的API密钥,依然存在泄漏的可能性。这将对利用程序的安全漏洞产生影响,并可能致使经济损失。
为了解决这个问题,你可以为每一个API密钥设置上限。例如,为你用作教程展现的API密钥设置一个上限为5美元,任未尝试使用该API密钥的人只能使用最多5美元。超过这个限制后,该API密钥将失效。
4. 使用一次性密钥
一次性API密钥是临时和短暂的密钥,用于临时使用后便可抛弃或使其过期。
要使用这些密钥,为每一个目的生成一个新的密钥。可以从API提供商的网站上生成它们,就像生成其他API密钥一样。作为增加的安全措施,将前面的密钥限制设置利用到这些密钥上。当完成使用一次性密钥后,可以撤消它以避免进一步使用。
5. 永久不要将API密钥提交到代码库中
一个常见的毛病是不知不觉地将API密钥提交到GitHub代码库中。为了避免这类情况产生,将API密钥存储在与主代码分离的文件中,然后在.gitignore文件中明确指定要疏忽的文件或目录。这样提交代码时就会疏忽这些文件/目录。
配置文件中存储API密钥
存储API密钥的配置文件示例以下:
`OPENAI_API_KEY=’xxxxxxxxxxxx’`
在Python中,可使用以下代码获得和打印API密钥:
“`
from config import OPENAI_API_KEY
print(OPENAI_API_KEY)
“`
在下一个技能中,我们将斟酌使用环境变量来存储API密钥。
6. 使用环境变量替换API密钥
另外一个常见毛病是将API密钥直接硬编码到代码中。
将API密钥存储为环境变量
一种安全存储API密钥的方法是将其保存为计算机上的环境变量。当把密钥保存在用户配置文件中时,例如在~/.bashrc或~/.bash_profile文件中,这将非常有用。
例如,你可以将OpenAI API密钥作为环境变量保存在用户配置文件中,创建~/.bashrc或~/.bash_profile文件,文件内容以下:
`export OPENAI_API_KEY=’xxxxxxxxxxxx’`
当代码需要访问API密钥时,可以通过Python库自动检测或指定为输入参数来检测到它。
检索API密钥
下面是怎么从环境变量中检索API密钥的方法:
1. 在终端窗口中,输入以下内容($OPENAI_API_KEY是OpenAI API密钥):
`$ echo $OPENAI_API_KEY`
2. 在Python中,使用以下代码:
`os.environ[‘OPENAI_API_KEY’]`
3. 或,使用以下代码访问保存的OpenAI API密钥:
`os.getenv(‘OPENAI_API_KEY’)`
如果Python库没法自动检测到API键,可以将其作为输入参数指定。例如,对我们的OpenAI代码,这将是openai_api_key输入参数:
`llm = OpenAI(temperature=0.7, openai_api_key=os.getenv(‘OPENAI_API_KEY’))`
云平台上的秘密管理
同时,可以检查你部署LLM-powered利用程序的云平台会不会提供管理API凭据的功能。
例如,Streamlit社区云具有秘密管理功能,可让你安全地存储和访问Streamlit利用程序中的秘密作为环境变量。
你可以将OpenAI API密钥粘贴到秘密文本框中,以下所示:
然后,在利用程序中使用这些凭据,方法以下(不要忘记导入os):
`os.environ[‘OPENAI_API_KEY’] = st.secrets[‘OPENAI_API_KEY’]`
7. 监控和轮换API密钥
为了监控API密钥,你可以估计利用程序的经常使用使用量。如果使用量超越一定阈值,这可能意味着你的API密钥已被盗用。另外,监视API密钥的IP地址可以帮助辨认不需要的访问。设置警报和时通知任何可疑活动。
轮换API密钥是减轻安全漏洞的另外一种有效方式。可以定期使用新生成的密钥来替换旧的密钥并撤消旧的密钥。
8. 报告对利用程序的耽忧
如果你在检查公然共享利用程序的代码时发现潜伏的安全问题,建议对此进行报告。
有两种报告方法:
联系利用程序开发人员。请提供具体的细节(截图或毛病消息),以帮助他们理解和解决问题。这不但保护了你自己,还帮助了其他用户。如果你有时间和能力,你也能够修复问题并提交一个拉取要求。
总结
API密钥是为开发人员和用户提供访问API提供商服务的重要资产。但在使用API密钥时,安全性是一个使人耽忧的问题,不管是在代码中使用,或者在第三方利用程序中粘贴。本文提供了八个使用API密钥的安全技能,旨在避免未经授权访问和潜伏经济损失。
在撰写本文时,我向社区询问了关于安全使用API密钥的问题:
– 哪些技能让您印象最深入?您会不会使用了本文未提及的方法?请在下方评论或通过Twitter(@thedataprof)或LinkedIn与我联系,并让我知道您的想法。
感谢Joshua Carroll、Krista Muir和Amanda Kelly的头脑风暴,和Lukas Masuch和Charly Wargnier的技术审查。再次感谢Ksenia Anske编辑本文。
Streamlit愉快使用!