File size: 1,361 Bytes
0a40afa
 
c5a266f
 
 
0a40afa
 
 
 
 
 
 
 
 
2e1dd92
0a40afa
 
 
665cc97
9dfeb67
665cc97
9dfeb67
665cc97
0a40afa
 
c5a266f
 
 
665cc97
c5a266f
0a40afa
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
from pydantic import Field
from pydantic_settings import BaseSettings, SettingsConfigDict
import logging

logger = logging.getLogger(__name__)

class Settings(BaseSettings):
    OPENAI_API_KEY: str = Field("", env="OPENAI_API_KEY")
    AZURE_DI_ENDPOINT: str = Field("", env="AZURE_DI_ENDPOINT")
    AZURE_DI_KEY: str = Field("", env="AZURE_DI_KEY")

    # Azure OpenAI
    AZURE_OPENAI_ENDPOINT: str = Field("", env="AZURE_OPENAI_ENDPOINT")
    AZURE_OPENAI_DEPLOYMENT: str = Field("", env="AZURE_OPENAI_DEPLOYMENT")
    AZURE_OPENAI_API_VERSION: str = Field("2025-03-01-preview", env="AZURE_OPENAI_API_VERSION")
    AZURE_OPENAI_API_KEY: str = Field("", env="AZURE_OPENAI_API_KEY")
    AZURE_OPENAI_EMBEDDING_MODEL: str = Field("text-embedding-3-small", env="AZURE_OPENAI_EMBEDDING_MODEL")

    # Retry configuration
    LLM_MAX_RETRIES: int = Field(50, env="LLM_MAX_RETRIES")
    LLM_BASE_DELAY: float = Field(1.0, env="LLM_BASE_DELAY")
    LLM_MAX_DELAY: float = Field(600.0, env="LLM_MAX_DELAY")

    model_config: SettingsConfigDict = {"env_file": ".env"}

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        logger.info(f"Settings initialized with API version: {self.AZURE_OPENAI_API_VERSION}")
        logger.info(f"LLM retry config: max_retries={self.LLM_MAX_RETRIES}, base_delay={self.LLM_BASE_DELAY}s")

settings = Settings()