1、os.getenv()并不会主动去读取.env的内容,它读取的是环境变量中的内容。要读取.env的内容需要先load_dotenv()。
import os
api_key = os.getenv("OPENAI_API_KEY")
print(api_key)
# 输出None
import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
print(api_key)
# 正确输出,sk-xxxxxxxxxxxxxxxxxxxxx
2、load_dotenv()后,不一定需要显式地进行xxx=os.getenv("XXX"),因为很多库把xxx参数值的默认值设为os.getenv("XXX")
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
load_dotenv()
llm = ChatOpenAI(model='deepseek-r1')
response = llm.invoke("你好")
print(response.content)
# 正常运行
以下正常运行,但api_key=os.getenv("OPENAI_API_KEY") 和 base_url=os.getenv("OPENAI_BASE_URL")是多余的
# 以下正常运行,但api_key=os.getenv("OPENAI_API_KEY") 和 base_url=os.getenv("OPENAI_BASE_URL")是多余的 :
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
import os
load_dotenv()
llm = ChatOpenAI(model='deepseek-r1',
api_key=os.getenv("OPENAI_API_KEY"), # 多余的
base_url=os.getenv("OPENAI_BASE_URL") # 多余的
)
response = llm.invoke("你好")
print(response.content)