first commit
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
from functools import lru_cache
|
||||
from typing import Optional
|
||||
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
|
||||
|
||||
class Settings(BaseSettings):
|
||||
model_config = SettingsConfigDict(
|
||||
env_file=".env",
|
||||
env_file_encoding="utf-8",
|
||||
extra="ignore",
|
||||
)
|
||||
|
||||
# Application
|
||||
app_name: str = "PromptCR-Lab"
|
||||
debug: bool = False
|
||||
|
||||
# Database (psycopg2 preferred; fall back to psycopg3 if not built)
|
||||
database_url: str = "postgresql+psycopg://postgres:postgres@localhost:5432/promptcr"
|
||||
|
||||
# Model API keys (loaded from environment, never hardcoded)
|
||||
deepseek_api_key: Optional[str] = None
|
||||
deepseek_base_url: str = "https://api.deepseek.com/v1"
|
||||
deepseek_model: str = "deepseek-chat"
|
||||
|
||||
kimi_api_key: Optional[str] = None
|
||||
kimi_base_url: str = "https://api.moonshot.cn/v1"
|
||||
kimi_model: str = "moonshot-v1-8k"
|
||||
|
||||
qwen_api_key: Optional[str] = None
|
||||
qwen_base_url: str = "https://dashscope.aliyuncs.com/compatible-mode/v1"
|
||||
qwen_model: str = "qwen-turbo"
|
||||
|
||||
# Defaults
|
||||
default_model_concurrency: int = 5
|
||||
default_max_retries: int = 3
|
||||
|
||||
|
||||
@lru_cache
|
||||
def get_settings() -> Settings:
|
||||
return Settings()
|
||||
Reference in New Issue
Block a user