peterhartwigCF commited on
Commit
34967e4
·
verified ·
1 Parent(s): f124ae7

adding finetune for testing

Browse files
Files changed (1) hide show
  1. app/config.py +100 -99
app/config.py CHANGED
@@ -1,99 +1,100 @@
1
- import os
2
- from functools import lru_cache
3
- from typing import Optional
4
-
5
- from pydantic_settings import BaseSettings
6
-
7
-
8
- os.environ["WEAVE_CAPTURE_CODE"] = "false"
9
- if os.getenv("HUGGINGFACE_DEMO"):
10
- OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
11
- ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY")
12
- REDIS_PASSWORD = ""
13
- REDIS_USE_SSL = False
14
- else:
15
- from app.aws.secrets import get_secret
16
-
17
- ENV = os.getenv("ENV", "LOCAL")
18
- secrets = get_secret()
19
- if ENV != "PROD":
20
- os.environ["WANDB_API_KEY"] = secrets["WANDB_API_KEY"]
21
- OPENAI_API_KEY = secrets["OPENAI_API_KEY"]
22
- ANTHROPIC_API_KEY = secrets["ANTHROPIC_API_KEY"]
23
- REDIS_PASSWORD = secrets["REDIS_PASSWORD"] if ENV == "PROD" else ""
24
- REDIS_USE_SSL = True if ENV == "PROD" or ENV == "UAT" else False
25
- os.environ["WANDB_BASE_URL"] = "https://api.wandb.ai"
26
-
27
-
28
- class Settings(BaseSettings):
29
- # Supported openai models
30
- OPENAI_MODELS: list = [
31
- "gpt-4o", # first model is the default of the vendor
32
- "gpt-4o-2024-11-20",
33
- "gpt-4o-mini",
34
- ]
35
-
36
- # Supported anthropic models
37
- ANTHROPIC_MODELS: list = [
38
- "claude-3-5-sonnet-latest" # first model is the default of the vendor
39
- ]
40
-
41
- # Supprted AI Services
42
- SUPPORTED_MODELS: list = OPENAI_MODELS + ANTHROPIC_MODELS
43
-
44
- # API Keys
45
- OPENAI_API_KEY: str
46
- ANTHROPIC_API_KEY: str
47
-
48
- DEFAULT_MAX_ATTEMPTS: int = 1
49
-
50
- # AI Service Configuration
51
- DEFAULT_MODEL: str = OPENAI_MODELS[0]
52
- MAX_TOKENS: int = 2000
53
- TEMPERATURE: float = 0.0
54
-
55
- # CORS Configuration
56
- CORS_ALLOW_ORIGINS: bool = True
57
-
58
- # API Configuration
59
- API_V1_PREFIX: str = "/api/v1"
60
- PROJECT_NAME: str = "Dreem Attribution"
61
- DEBUG: bool = False
62
-
63
- # Rate Limiting
64
- RATE_LIMIT_CALLS: int = 100
65
- RATE_LIMIT_PERIOD: int = 60
66
-
67
- # Cache Configuration
68
- REDIS_PASSWORD: Optional[str] = REDIS_PASSWORD
69
- REDIS_USE_SSL: Optional[bool] = REDIS_USE_SSL
70
-
71
- # Logging
72
- LOG_LEVEL: str = "INFO"
73
- LOG_FORMAT: str = "json"
74
-
75
- # API Keys
76
- OPENAI_API_KEY: str = OPENAI_API_KEY
77
- ANTHROPIC_API_KEY: str = ANTHROPIC_API_KEY
78
-
79
- #
80
- MAX_DOWNLOAD_RETRY: int = 10 # times
81
-
82
- def validate_api_keys(self):
83
- """Validate that required API keys are present."""
84
- if not self.OPENAI_API_KEY:
85
- raise ValueError("OPENAI_API_KEY is required")
86
- if not self.ANTHROPIC_API_KEY:
87
- raise ValueError("ANTHROPIC_API_KEY is required")
88
-
89
-
90
- # Create a cached instance of settings
91
- @lru_cache
92
- def get_settings() -> Settings:
93
- """
94
- Create and cache a Settings instance.
95
- Returns the same instance for subsequent calls.
96
- """
97
- settings = Settings()
98
- settings.validate_api_keys()
99
- return settings
 
 
1
+ import os
2
+ from functools import lru_cache
3
+ from typing import Optional
4
+
5
+ from pydantic_settings import BaseSettings
6
+
7
+
8
+ os.environ["WEAVE_CAPTURE_CODE"] = "false"
9
+ if os.getenv("HUGGINGFACE_DEMO"):
10
+ OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
11
+ ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY")
12
+ REDIS_PASSWORD = ""
13
+ REDIS_USE_SSL = False
14
+ else:
15
+ from app.aws.secrets import get_secret
16
+
17
+ ENV = os.getenv("ENV", "LOCAL")
18
+ secrets = get_secret()
19
+ if ENV != "PROD":
20
+ os.environ["WANDB_API_KEY"] = secrets["WANDB_API_KEY"]
21
+ OPENAI_API_KEY = secrets["OPENAI_API_KEY"]
22
+ ANTHROPIC_API_KEY = secrets["ANTHROPIC_API_KEY"]
23
+ REDIS_PASSWORD = secrets["REDIS_PASSWORD"] if ENV == "PROD" else ""
24
+ REDIS_USE_SSL = True if ENV == "PROD" or ENV == "UAT" else False
25
+ os.environ["WANDB_BASE_URL"] = "https://api.wandb.ai"
26
+
27
+
28
+ class Settings(BaseSettings):
29
+ # Supported openai models
30
+ OPENAI_MODELS: list = [
31
+ "gpt-4o", # first model is the default of the vendor
32
+ "gpt-4o-2024-11-20",
33
+ "gpt-4o-mini",
34
+ "ft:gpt-4o-2024-08-06:dreem:selfridges-dresses-test:BVYmIA6e",
35
+ ]
36
+
37
+ # Supported anthropic models
38
+ ANTHROPIC_MODELS: list = [
39
+ "claude-3-5-sonnet-latest" # first model is the default of the vendor
40
+ ]
41
+
42
+ # Supprted AI Services
43
+ SUPPORTED_MODELS: list = OPENAI_MODELS + ANTHROPIC_MODELS
44
+
45
+ # API Keys
46
+ OPENAI_API_KEY: str
47
+ ANTHROPIC_API_KEY: str
48
+
49
+ DEFAULT_MAX_ATTEMPTS: int = 1
50
+
51
+ # AI Service Configuration
52
+ DEFAULT_MODEL: str = OPENAI_MODELS[0]
53
+ MAX_TOKENS: int = 2000
54
+ TEMPERATURE: float = 0.0
55
+
56
+ # CORS Configuration
57
+ CORS_ALLOW_ORIGINS: bool = True
58
+
59
+ # API Configuration
60
+ API_V1_PREFIX: str = "/api/v1"
61
+ PROJECT_NAME: str = "Dreem Attribution"
62
+ DEBUG: bool = False
63
+
64
+ # Rate Limiting
65
+ RATE_LIMIT_CALLS: int = 100
66
+ RATE_LIMIT_PERIOD: int = 60
67
+
68
+ # Cache Configuration
69
+ REDIS_PASSWORD: Optional[str] = REDIS_PASSWORD
70
+ REDIS_USE_SSL: Optional[bool] = REDIS_USE_SSL
71
+
72
+ # Logging
73
+ LOG_LEVEL: str = "INFO"
74
+ LOG_FORMAT: str = "json"
75
+
76
+ # API Keys
77
+ OPENAI_API_KEY: str = OPENAI_API_KEY
78
+ ANTHROPIC_API_KEY: str = ANTHROPIC_API_KEY
79
+
80
+ #
81
+ MAX_DOWNLOAD_RETRY: int = 10 # times
82
+
83
+ def validate_api_keys(self):
84
+ """Validate that required API keys are present."""
85
+ if not self.OPENAI_API_KEY:
86
+ raise ValueError("OPENAI_API_KEY is required")
87
+ if not self.ANTHROPIC_API_KEY:
88
+ raise ValueError("ANTHROPIC_API_KEY is required")
89
+
90
+
91
+ # Create a cached instance of settings
92
+ @lru_cache
93
+ def get_settings() -> Settings:
94
+ """
95
+ Create and cache a Settings instance.
96
+ Returns the same instance for subsequent calls.
97
+ """
98
+ settings = Settings()
99
+ settings.validate_api_keys()
100
+ return settings