123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- import os
- import platform
- def get_environment():
- """
- 获取当前运行环境
- 优先级:
- 1. 环境变量 FLASK_ENV
- 2. 根据操作系统自动判断(Windows -> development, Linux -> production)
- """
- # 首先检查环境变量
- env = os.environ.get('FLASK_ENV')
- if env:
- return env.lower()
-
- # 根据操作系统判断
- system = platform.system().lower()
- if system == 'windows':
- return 'development'
- elif system == 'linux':
- return 'production'
- else:
- return 'development' # 其他系统默认使用开发环境
- class BaseConfig:
- """基础配置类,包含所有环境共享的配置"""
- SECRET_KEY = os.environ.get('SECRET_KEY') or 'you-will-never-guess'
- JSON_AS_ASCII = False
-
- # 平台特定配置
- PLATFORM = platform.system().lower()
-
- # 文件上传配置
- ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif', 'xlsx', 'xls', 'csv'}
-
- # PostgreSQL 基础配置
- SQLALCHEMY_ENGINE_OPTIONS = {
- 'pool_pre_ping': True,
- 'pool_recycle': 300,
- 'pool_size': 10,
- 'max_overflow': 20
- }
-
- # LLM基础配置
- LLM_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1"
- LLM_MODEL_NAME = "qwen-turbo"
- # LLM_API_KEY = os.environ.get('LLM_API_KEY', "sk-86d4622141d74e9a8d7c38ee873c4d91")
- LLM_API_KEY = os.environ.get('LLM_API_KEY', "sk-db68e37f00974031935395315bfe07f0")
-
- # 日志基础配置
- LOG_FORMAT = '%(asctime)s - %(levelname)s - %(filename)s - %(funcName)s - %(lineno)s - %(message)s'
- LOG_ENCODING = 'UTF-8'
- LOG_ENABLED = True
- class DevelopmentConfig(BaseConfig):
- """Windows 开发环境配置"""
- FLASK_ENV = 'development'
- DEBUG = True
- PORT = 5500
-
- # 开发环境 MinIO 配置
- MINIO_HOST = '192.168.67.138:9000'
- MINIO_USER = 'citu-test'
- MINIO_PASSWORD = 'citu-test'
- MINIO_SECURE = False
- BUCKET_NAME = 'dataops-bucket'
- PREFIX = ''
-
- # 开发环境 PostgreSQL 配置
- SQLALCHEMY_DATABASE_URI = 'postgresql://postgres:postgres@192.168.67.138:5432/dataops'
-
- # 开发环境 Neo4j 配置
- NEO4J_URI = "bolt://192.168.67.138:7687"
- NEO4J_HTTP_URI = "http://192.168.67.138:7474"
- NEO4J_USER = "neo4j"
- NEO4J_PASSWORD = "password"
- NEO4J_ENCRYPTED = False
-
- # 开发环境文件路径配置
- UPLOAD_BASE_PATH = 'C:\\tmp\\upload'
- ARCHIVE_BASE_PATH = 'C:\\tmp\\archive'
-
- # 开发环境日志配置
- LOG_LEVEL = 'DEBUG'
- LOG_FILE = 'flask_development.log'
- LOG_TO_CONSOLE = True
- class ProductionConfig(BaseConfig):
- """Linux 生产环境配置"""
- FLASK_ENV = 'production'
- DEBUG = False
- PORT = 80
-
- # 生产环境 MinIO 配置
- MINIO_HOST = os.environ.get('MINIO_HOST', '192.168.3.143:9000')
- MINIO_USER = os.environ.get('MINIO_USER', 'citu-dataops-acc-key')
- MINIO_PASSWORD = os.environ.get('MINIO_PASSWORD', 'citu-dataops-secret-key')
- MINIO_SECURE = False
- BUCKET_NAME = 'dataops-bucket'
- PREFIX = ''
-
- # 生产环境 PostgreSQL 配置
- SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL', 'postgresql://postgres:dataOps@192.168.3.143:5432/dataops')
-
- # 生产环境 Neo4j 配置
- NEO4J_URI = os.environ.get('NEO4J_URI', "bolt://192.168.3.143:7687")
- NEO4J_HTTP_URI = os.environ.get('NEO4J_HTTP_URI', "http://192.168.3.143:7474")
- NEO4J_USER = os.environ.get('NEO4J_USER', "neo4j")
- NEO4J_PASSWORD = os.environ.get('NEO4J_PASSWORD', "cituneo4j")
- NEO4J_ENCRYPTED = False
-
- # 生产环境文件路径配置
- UPLOAD_BASE_PATH = '/data/upload'
- ARCHIVE_BASE_PATH = '/data/archive'
-
- # 生产环境日志配置
- LOG_LEVEL = 'INFO'
- LOG_FILE = 'flask_production.log'
- LOG_TO_CONSOLE = False
- # 配置字典
- config = {
- 'development': DevelopmentConfig,
- 'production': ProductionConfig,
- 'default': DevelopmentConfig
- }
- # 获取当前环境
- current_env = get_environment()
|