Update config.py
Browse files
config.py
CHANGED
@@ -1,52 +1,30 @@
|
|
1 |
import logging
|
2 |
from functools import lru_cache
|
3 |
from typing import Union, Optional
|
4 |
-
from pydantic_settings import BaseSettings
|
5 |
from pydantic import SecretStr, PostgresDsn, DirectoryPath, Field, validator
|
6 |
|
7 |
logger = logging.getLogger(__name__)
|
8 |
|
9 |
class Settings(BaseSettings):
|
10 |
-
model_config = SettingsConfigDict(env_file="/home/abdullah/Documents/hdd/projects/ansari/ansari-backend/.env", env_file_encoding="utf-8", case_sensitive=True)
|
11 |
|
12 |
DATABASE_URL: PostgresDsn = Field(default="postgresql://mwk@localhost:5432/mwk")
|
13 |
MAX_THREAD_NAME_LENGTH: int = Field(default=100)
|
14 |
|
15 |
-
SECRET_KEY: SecretStr = Field(default="secret")
|
16 |
-
ALGORITHM: str = Field(default="HS256")
|
17 |
-
ENCODING: str = Field(default="utf-8")
|
18 |
-
ACCESS_TOKEN_EXPIRY_HOURS: int = Field(default=2)
|
19 |
-
REFRESH_TOKEN_EXPIRY_HOURS: int = Field(default=24*90)
|
20 |
-
|
21 |
-
ORIGINS: Union[str, list[str]] = Field(default=["https://ansari.chat", "http://ansari.chat"], env="ORIGINS")
|
22 |
-
API_SERVER_PORT: int = Field(default=8000)
|
23 |
-
|
24 |
OPENAI_API_KEY: SecretStr
|
25 |
PGPASSWORD: SecretStr
|
26 |
KALEMAT_API_KEY: SecretStr
|
27 |
VECTARA_AUTH_TOKEN: SecretStr
|
28 |
VECTARA_CUSTOMER_ID: str
|
29 |
VECTARA_CORPUS_ID: str
|
30 |
-
DISCORD_TOKEN: Optional[SecretStr] = Field(default=None)
|
31 |
-
SENDGRID_API_KEY: Optional[SecretStr] = Field(default=None)
|
32 |
-
LANGFUSE_SECRET_KEY: Optional[SecretStr] = Field(default=None)
|
33 |
|
34 |
template_dir: DirectoryPath = Field(default="resources/templates")
|
35 |
-
diskcache_dir: DirectoryPath = Field(default="diskcache_dir")
|
36 |
|
37 |
MODEL: str = Field(default="gpt-4o-2024-05-13")
|
38 |
MAX_FUNCTION_TRIES: int = Field(default=3)
|
39 |
MAX_FAILURES: int = Field(default=1)
|
40 |
SYSTEM_PROMPT_FILE_NAME: str = Field(default="system_msg_fn")
|
41 |
|
42 |
-
@validator("ORIGINS", pre=True)
|
43 |
-
def parse_origins(cls, v):
|
44 |
-
if isinstance(v, str):
|
45 |
-
return [origin.strip() for origin in v.strip('"').split(",")]
|
46 |
-
elif isinstance(v, list):
|
47 |
-
return v
|
48 |
-
raise ValueError(f"Invalid ORIGINS format: {v}. Expected a comma-separated string or a list.")
|
49 |
-
|
50 |
@lru_cache()
|
51 |
def get_settings() -> Settings:
|
52 |
try:
|
|
|
1 |
import logging
|
2 |
from functools import lru_cache
|
3 |
from typing import Union, Optional
|
4 |
+
from pydantic_settings import BaseSettings
|
5 |
from pydantic import SecretStr, PostgresDsn, DirectoryPath, Field, validator
|
6 |
|
7 |
logger = logging.getLogger(__name__)
|
8 |
|
9 |
class Settings(BaseSettings):
|
|
|
10 |
|
11 |
DATABASE_URL: PostgresDsn = Field(default="postgresql://mwk@localhost:5432/mwk")
|
12 |
MAX_THREAD_NAME_LENGTH: int = Field(default=100)
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
OPENAI_API_KEY: SecretStr
|
15 |
PGPASSWORD: SecretStr
|
16 |
KALEMAT_API_KEY: SecretStr
|
17 |
VECTARA_AUTH_TOKEN: SecretStr
|
18 |
VECTARA_CUSTOMER_ID: str
|
19 |
VECTARA_CORPUS_ID: str
|
|
|
|
|
|
|
20 |
|
21 |
template_dir: DirectoryPath = Field(default="resources/templates")
|
|
|
22 |
|
23 |
MODEL: str = Field(default="gpt-4o-2024-05-13")
|
24 |
MAX_FUNCTION_TRIES: int = Field(default=3)
|
25 |
MAX_FAILURES: int = Field(default=1)
|
26 |
SYSTEM_PROMPT_FILE_NAME: str = Field(default="system_msg_fn")
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
@lru_cache()
|
29 |
def get_settings() -> Settings:
|
30 |
try:
|