Blame view

config/env_config.py 3.04 KB
be52af70   tangwang   first commit
1
2
3
4
  """
  Centralized configuration management for SearchEngine.
  
  Loads configuration from environment variables and .env file.
325eec03   tangwang   1. 日志、配置基础设施,使用优化
5
6
  This module provides a single point for loading .env and setting defaults.
  All configuration variables are exported directly - no need for getter functions.
be52af70   tangwang   first commit
7
8
9
10
  """
  
  import os
  from pathlib import Path
be52af70   tangwang   first commit
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  from dotenv import load_dotenv
  
  # Load .env file from project root
  PROJECT_ROOT = Path(__file__).parent.parent
  load_dotenv(PROJECT_ROOT / '.env')
  
  
  # Elasticsearch Configuration
  ES_CONFIG = {
      'host': os.getenv('ES_HOST', 'http://localhost:9200'),
      'username': os.getenv('ES_USERNAME'),
      'password': os.getenv('ES_PASSWORD'),
  }
  
  # Redis Configuration
  REDIS_CONFIG = {
      'host': os.getenv('REDIS_HOST', 'localhost'),
      'port': int(os.getenv('REDIS_PORT', 6479)),
      'password': os.getenv('REDIS_PASSWORD'),
  }
  
  # DeepL API Key
  DEEPL_AUTH_KEY = os.getenv('DEEPL_AUTH_KEY')
  
be52af70   tangwang   first commit
35
36
  # API Service Configuration
  API_HOST = os.getenv('API_HOST', '0.0.0.0')
2a76641e   tangwang   config
37
  API_PORT = int(os.getenv('API_PORT', 6002))
362d43b6   tangwang   店匠体系数据的搜索
38
39
40
41
  # API_BASE_URL: 如果未设置,根据API_HOST构建(0.0.0.0使用localhost)
  API_BASE_URL = os.getenv('API_BASE_URL')
  if not API_BASE_URL:
      API_BASE_URL = f'http://localhost:{API_PORT}' if API_HOST == '0.0.0.0' else f'http://{API_HOST}:{API_PORT}'
be52af70   tangwang   first commit
42
43
44
45
46
47
48
49
  
  # Model Directories
  TEXT_MODEL_DIR = os.getenv('TEXT_MODEL_DIR', '/data/tw/models/bge-m3')
  IMAGE_MODEL_DIR = os.getenv('IMAGE_MODEL_DIR', '/data/tw/models/cn-clip')
  
  # Cache Directory
  CACHE_DIR = os.getenv('CACHE_DIR', '.cache')
  
1852e3e3   tangwang   添加Base配置演示流程和数据库配置
50
51
  # MySQL Database Configuration (Shoplazza)
  DB_CONFIG = {
fb68a0ef   tangwang   配置优化
52
53
54
55
56
      'host': os.getenv('DB_HOST'),
      'port': int(os.getenv('DB_PORT', 3306)) if os.getenv('DB_PORT') else 3306,
      'database': os.getenv('DB_DATABASE'),
      'username': os.getenv('DB_USERNAME'),
      'password': os.getenv('DB_PASSWORD'),
1852e3e3   tangwang   添加Base配置演示流程和数据库配置
57
58
  }
  
be52af70   tangwang   first commit
59
  
be52af70   tangwang   first commit
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
  def print_config():
      """Print current configuration (with sensitive data masked)."""
      print("=" * 60)
      print("SearchEngine Configuration")
      print("=" * 60)
  
      print("\nElasticsearch:")
      print(f"  Host: {ES_CONFIG['host']}")
      print(f"  Username: {ES_CONFIG['username']}")
      print(f"  Password: {'*' * 10 if ES_CONFIG['password'] else 'None'}")
  
      print("\nRedis:")
      print(f"  Host: {REDIS_CONFIG['host']}")
      print(f"  Port: {REDIS_CONFIG['port']}")
      print(f"  Password: {'*' * 10 if REDIS_CONFIG['password'] else 'None'}")
  
      print("\nDeepL:")
      print(f"  API Key: {'*' * 10 if DEEPL_AUTH_KEY else 'None (translation disabled)'}")
  
be52af70   tangwang   first commit
79
80
81
82
83
84
85
86
87
88
89
      print("\nAPI Service:")
      print(f"  Host: {API_HOST}")
      print(f"  Port: {API_PORT}")
  
      print("\nModels:")
      print(f"  Text Model: {TEXT_MODEL_DIR}")
      print(f"  Image Model: {IMAGE_MODEL_DIR}")
  
      print("\nCache:")
      print(f"  Cache Directory: {CACHE_DIR}")
  
1852e3e3   tangwang   添加Base配置演示流程和数据库配置
90
91
92
93
94
95
96
      print("\nMySQL Database:")
      print(f"  Host: {DB_CONFIG['host']}")
      print(f"  Port: {DB_CONFIG['port']}")
      print(f"  Database: {DB_CONFIG['database']}")
      print(f"  Username: {DB_CONFIG['username']}")
      print(f"  Password: {'*' * 10 if DB_CONFIG['password'] else 'None'}")
  
be52af70   tangwang   first commit
97
98
99
100
101
      print("=" * 60)
  
  
  if __name__ == "__main__":
      print_config()