Blame view

app/config.py 1.66 KB
e7f2b240   tangwang   first commit
1
2
3
4
5
6
  """
  Configuration management for OmniShopAgent
  Loads environment variables and provides configuration objects
  """
  
  import os
8810a6fa   tangwang   重构
7
  from typing import Optional
e7f2b240   tangwang   first commit
8
9
10
11
12
13
14
15
16
17
18
19
20
  
  from pydantic_settings import BaseSettings
  
  
  class Settings(BaseSettings):
      """Application settings loaded from environment variables
  
      All settings can be configured via .env file or environment variables.
      """
  
      # OpenAI Configuration
      openai_api_key: str
      openai_model: str = "gpt-4o-mini"
e7f2b240   tangwang   first commit
21
22
      openai_temperature: float = 0.7
      openai_max_tokens: int = 1000
8810a6fa   tangwang   重构
23
24
25
      # Base URL for OpenAI-compatible APIs (e.g. Qwen/DashScope)
      # Qwen 北京: https://dashscope.aliyuncs.com/compatible-mode/v1
      openai_api_base_url: Optional[str] = None
e7f2b240   tangwang   first commit
26
27
28
29
30
  
      # Search Configuration
      top_k_results: int = 10
      similarity_threshold: float = 0.6
  
8810a6fa   tangwang   重构
31
32
33
34
      # Search API (see docs/搜索API对接指南.md)
      search_api_base_url: str = "http://120.76.41.98:6002"
      search_api_tenant_id: str = "162"
  
e7f2b240   tangwang   first commit
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
      # Application Configuration
      app_host: str = "0.0.0.0"
      app_port: int = 8000
      debug: bool = True
      log_level: str = "INFO"
  
      # Data Paths
      raw_data_path: str = "./data/raw"
      processed_data_path: str = "./data/processed"
      image_data_path: str = "./data/images"
  
      class Config:
          env_file = ".env"
          env_file_encoding = "utf-8"
          case_sensitive = False
8810a6fa   tangwang   重构
50
          extra = "ignore"
e7f2b240   tangwang   first commit
51
52
53
54
55
56
57
58
59
60
61
  
  
  # Global settings instance
  settings = Settings()
  
  
  # Helper function to get absolute paths
  def get_absolute_path(relative_path: str) -> str:
      """Convert relative path to absolute path"""
      base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
      return os.path.join(base_dir, relative_path)