private-gpt/private_gpt/settings/settings.py

54 lines
1.1 KiB
Python

from pydantic import BaseModel, Field
from private_gpt.settings.settings_loader import load_active_profiles
class ServerSettings(BaseModel):
env_name: str = Field(
description="Name of the environment (prod, staging, local...)"
)
port: int = Field("Port of PrivateGPT FastAPI server, defaults to 8001")
class DataSettings(BaseModel):
local_data_folder: str = Field(
description="Path to local storage."
"It will be treated as an absolute path if it starts with /"
)
class LLMSettings(BaseModel):
mode: str = Field(enum=["local", "open_ai", "sagemaker", "mock"])
class LocalSettings(BaseModel):
llm_hf_repo_id: str
llm_hf_model_file: str
embedding_hf_model_name: str
class SagemakerSettings(BaseModel):
endpoint_name: str
class OpenAISettings(BaseModel):
api_key: str
class UISettings(BaseModel):
enabled: bool
path: str
class Settings(BaseModel):
server: ServerSettings
data: DataSettings
ui: UISettings
llm: LLMSettings
local: LocalSettings
sagemaker: SagemakerSettings
openai: OpenAISettings
settings = Settings(**load_active_profiles())