Python-langchain-multi-envs-support

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()

这样,就可以实现,根据环境变量,进行动态切换不同环境配置了。