在使用 API 服務時, 為了避免在分享程式碼時疏忽洩漏 API 的金鑰 (key) 或權杖 (token), 通常會使用 dotenv 或 decouple 等第三方套件來載入環境變數檔 .env (特定的系統檔案) 並取得其內容 (在 Colab 平台上則是使用其 userdata 來讀取存在 Secrets 中的密鑰), 用法參考 :
我比較常用 dotenv, 呼叫 dotenv.load_env() 後, 使用內建模組 os 的 environ.get() 函式即可取得指定名稱之密鑰 :
from dotenv import load_dotenv
import os
load_dotenv()
openai_api_key=os.environ.get('OPENAI_API')
今天在 "LangChain 奇幻旅程" 這本書看到另一種用法, 改用 dotenv.dotenv_values() 函式載入 .env 的內容, 此函式會傳回一個類似 JSON 格式的 OrderedDict 物件, 只要呼叫字典物件的 get() 方法即可取得密鑰之值, 不需要匯入 os 模組 :
>>> from dotenv import dotenv_values
>>> config=dotenv_values('.env')
>>> type(config)
<class 'collections.OrderedDict'>
>>> openai_api_key=config.get('OPENAI_API')
>>> openai_api_key
'我的 OpenAI API key'
沒有留言 :
張貼留言