Python-langchain-multi-envs-support
多环境支持
相关依赖
- pip install python-dotenv
相关配置
在项目根目录创建一个dotenv目录,里面存放多个环境的,且以.env
结尾的配置文件。
比如:dev.env
OPENAI_API_BASE=xxx
OPENAI_API_KEY=xxx
OPENAI_API_TYPE=azure
OPENAI_API_VERSION=xxx
ELASTICSEARCH_URL=http://localhost:9200
ELASTICSEARCH_USERNAME=
ELASTICSEARCH_PASSWORD=
ELASTICSEARCH_PORT=9200
ENV_NAME=DEV
configs.model_config 相关代码
# 多环境配置目录
MULTI_ENV_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), "dotenv")
ENV_MAP = {
'online': MULTI_ENV_PATH + '/online.env',
'test': MULTI_ENV_PATH + '/test.env',
'dev': MULTI_ENV_PATH + '/dev.env',
}
完整代码
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
from dotenv import load_dotenv
from configs.model_config import ENV_MAP
def load_setting():
# 加载 .env 文件中的环境变量
app_env = os.environ.get("APP_ENV", 'dev')
env_path = ENV_MAP.get(app_env)
load_dotenv(env_path)
print(f'当前加载的环境配置ENV_NAME={os.environ.get("ENV_NAME", "")}')
os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")
os.environ["OPENAI_API_TYPE"] = os.getenv("OPENAI_API_TYPE")
os.environ["OPENAI_API_BASE"] = os.getenv("OPENAI_API_BASE")
os.environ["OPENAI_API_VERSION"] = os.getenv("OPENAI_API_VERSION")
if __name__ == '__main__':
load_setting()
这样,就可以实现,根据环境变量,进行动态切换不同环境配置了。