File size: 1,320 Bytes
82972f8 3729aab ca8a143 82972f8 57e9738 82972f8 815ee87 ca8a143 815ee87 82972f8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import logging
from functools import lru_cache
from typing import Union, Optional
from pydantic_settings import BaseSettings
from pydantic import SecretStr, PostgresDsn, DirectoryPath, Field, validator
logger = logging.getLogger(__name__)
class Settings(BaseSettings):
MAX_THREAD_NAME_LENGTH: int = Field(default=100)
OPENAI_API_KEY: SecretStr
KALEMAT_API_KEY: SecretStr
VECTARA_AUTH_TOKEN: SecretStr
VECTARA_CUSTOMER_ID: str
VECTARA_CORPUS_ID: str
template_dir: DirectoryPath = Field(default="/home/user/app/resources/prompts")
MODEL: str = Field(default="gpt-4o-2024-05-13")
MAX_FUNCTION_TRIES: int = Field(default=3)
MAX_FAILURES: int = Field(default=1)
SYSTEM_PROMPT_FILE_NAME: str = Field(default="system_msg_fn")
# A/B Testing database connection configuration
AB_TESTING_DB_NAME: str
AB_TESTING_DB_USER: str
AB_TESTING_DB_PASSWORD: SecretStr
AB_TESTING_DB_HOST: str
AB_TESTING_DB_PORT: int
# A/B Testing environment variables
AB_TESTING_EXPERIMENT_ID: int
AB_TESTING_MODEL_1_ID: int
AB_TESTING_MODEL_2_ID: int
@lru_cache()
def get_settings() -> Settings:
try:
settings = Settings()
return settings
except Exception as e:
logger.error(f"Error loading settings: {e}")
raise
|